프로세스(Process)와 스레드(Thread)

2024. 6. 16. 18:38·ComputerScience/OS
목차
  1. 프로세스와 스레드
  2. 컨텍스트 스위칭(Context Switching)
  3. PCB (Process Control Block)와 TCB (Thread Control Block) 

프로세스와 스레드는 컴퓨터 프로그램 실행 단위로, 자원의 효율적 관리를 위해 알아야 할 중요한 개념이다.

두 개념에 대해 자세히 알아보자.

 

 

미리 알아야 할 키워드 정리

실행 단위

- cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념

 

동시성(Concurrency)

- 여러 작업이 동시에 또는 병렬로 실행되는 것처럼 보이도록 하는 개념으로 실제로는 여러 작업이 정확히 같은 시간에 실행되는 것이 아닌 사용자나 시스템 입장에서 여러 작업이 동시에 진행되는 것처럼 보이는 것

 

 


프로세스와 스레드

  프로세스 스레드
정의 실행 중인 프로그램을 의미하며 하나의 응용 프로그램이 여러 프로세스로 구성될 수 있음 프로세스 내에서 실행되는 작은 실행 단위로 하나의 프로세스는 여러 개의 스레드를 가질 수 있음
주소 공간 각 프로세스는 독립된 주소 공간을 가짐 ➡️ 프로세스마다 별도의 메모리 공간이 할당됨 같은 프로세스 내의 스레드들은 동일한 주소 공간을 공유함 ➡️ 스레드 간 데이터 공유가 쉬움
안정성 한 프로세스에서 발생한 문제는 다른 프로세스에 영향을 미치지 않으며, 각 프로세스는 독립적으로 실행됨 스레드는 같은 프로세스 내에서 실행되므로, 하나의 스레드에서 문제가 발생할 경우, 전체 프로세스에 영향을 미칠 수 있음
통신 IPC(Inter-Process Communication) 기법 활용, 비교적 복잡 같은 주소 공간을 공유하므로 비교적 간단
컨텍스트 스위칭 비용
(프로세스 간 전환) 높음 (스레드 간 전환) 낮음

 

 


 

컨텍스트 스위칭(Context Switching)

- CPU가 현재 실행 중인 프로세스나 스레드의 상태(Context)를 저장하고, 다른 프로세스나 스레드의 실행 상태를 복원하는 작업

 

하나의 CPU에서는 여러 개의 작업을 동시에 수행할 수 없으며,  짧은 시간 간격으로 여러 프로세스를 전환하는 시분할(time-sharing) 방식을 사용하여 동시성을 구현할 수 있다.

 

과정

PCB(Process Control Block) or TCB(Thread Control Block)에 현재 상태 정보 저장 ➡️ 상태 변경을 통해 다음 실행할 프로세스나 스레드 선택  ➡️선택된 프로세스나 스레드의 PCB or TCB를 통한 상태 복원 ➡️ 세로운 프로세스나 스레드로 실행 재개

 

 

 


 

PCB (Process Control Block)와 TCB (Thread Control Block) 

PCB와 TCB는 프로세스와 스레드 각각의 상태(실행 중, 준비 상태, 대기 상태)를 관리하는 데 사용되는 데이터 구조이다.

각각 PID, TID (Identifier) 식별자를 포함하고 context switching을 지원한다.

 

데이터 구조 PCB TCB
구성 요소 프로세스 or 스레드 ID, 상태, 프로그램 카운터, CPU 레지스터
메모리 관리 정보 스택 포인터
메모리 관리 프로세스 전체의 메모리 공간 정보를 포함 ➡️ context switching 시 메모리 매핑 변경 필요 O 스레드의 스택정보와 관련된 메모리 정보, 동일한 프로세스 내에서 이루어짐 ➡️ 메모리 매핑 변경 필요 X

 

CPU 레지스터

-  CPU 내부의 고속 메모리 공간으로 명령어 실행 중에 필요한 데이터를 일시적으로 저장 ➡️ 연산 속도 증가

 

프로그램 카운터

- CPU가 다음에 실행할 명령어의 주소를 가리키는 레지스터

 

 

 

출처

더보기

https://www.youtube.com/watch?v=1grtWKqTn50&t=302s

 

'ComputerScience > OS' 카테고리의 다른 글

Ubuntu ERROR "vmwgfx seems to be running on an unsupported hypervisor...  (0) 2024.05.30
  1. 프로세스와 스레드
  2. 컨텍스트 스위칭(Context Switching)
  3. PCB (Process Control Block)와 TCB (Thread Control Block) 
'ComputerScience/OS' 카테고리의 다른 글
  • Ubuntu ERROR "vmwgfx seems to be running on an unsupported hypervisor...
지화자_
지화자_
나만의 글로 기록하기
지화자_
냉정과열정사이
지화자_
전체
오늘
어제
  • 분류 전체보기 (47)
    • 알고리즘 (18)
      • 개념정복 (6)
      • 문제풀이 (12)
    • ComputerScience (5)
      • 데이터베이스 (3)
      • 네트워크 (0)
      • OS (2)
    • SSAFY (2)
    • Java (6)
    • Server (10)
    • Spring (3)
    • 일상 (1)
    • OpenSource (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dfs
  • cd
  • AOP
  • BFS
  • 빌드
  • 조합
  • 추상클래스
  • 부분집합
  • CI
  • 비트마스크
  • 인터페이스
  • 분할정복
  • 알고리즘
  • 재귀함수
  • 구현
  • 소프티어
  • 백준바이러스
  • n-queen
  • 백준
  • 백트래킹
  • OOP
  • 배포
  • 병합정렬
  • 나무섭지
  • 아니안무서워

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
지화자_
프로세스(Process)와 스레드(Thread)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.