본문 바로가기
컴퓨터공학

23. 스레드

by 이면지91 2024. 10. 25.

 

스레드 thread 는 프로세스를 구성하는 실행 흐름의 단위로 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.

 

 

1. 프로세스와 스레드

  • 실행 흐름이 하나인 프로세스를 단일 스레드 프로세스라고 한다.
  • 실행 흐름이 여러 개인 프로세스를 멀티 프로세스라고 한다.
    - 프로세스를 이루는 여러 명령어를 동시에 실행이 가능하다.

스레드의 구성 요소 > 스레드 ID, 프로그램 카운터, 레지스터 값, 스택 등 실행에 필요한 최소한의 정보
cf) 프로세스를 이루는 스레드들은 그 프로세스의 자원을 공유할 수 있다

 

2. 멀티 프로세스와 멀티 스레드

 

  • 프로세스를 fork하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장된다.
  • 저장된 메모리 주소를 제외하면 모든 것이 동일한 프로세스 두 개가 통째로 메모리에 적재된다.
  • fork를 3~4번 하면 메모리에는 같은 프로세스가 통째로 3~4개가 적재된다.
  • 스레드들은 각기 다른 스레드 ID, 프로그램 카운터 값을 포함한 레지스터 값, 스택을 가질 뿐 프로세스가 가지는 자원을 공유한다.

  • 프로세스끼리는 자원을 공유하지 않는다.
    - 프로세스 간에도 자원을 주고받을 수 있다. 프로세스 간 통신, IPO
    - 파일을 통한 프로세스 간 통신, 공유 메모리를 통한 프로세스 간 통신
  • 스레드는 프로세스의 자원을 공유한다.

 

'컴퓨터공학' 카테고리의 다른 글

25. CPU 스케줄링 알고리즘  (0) 2024.10.28
24. CPU 스케줄링  (0) 2024.10.26
22. 프로세스 상태와 계층 구조  (0) 2024.10.24
21. 프로세스 개요  (0) 2024.10.23
20. 운영체제의 큰 그림  (0) 2024.10.22