Process 2
Thread
A thread(or lightweight process) is a basic unit of CPU utilization
즉, CPU를 수행하는 단위이다
thread의 구성
- program counter
- register set
- 쓰레드마다 PC(Program Counter)의 값, register의 값이 있어야 문맥을 알 수 있다.
- stack space
- thread가 함수를 사용하면 함수를 호출하고 return 하는 정보를 stack에 쌓아야 하기 때문에 각 쓰레드마다 stack이 있다.
thread가 동료 thread와 공유하는 부분(task라고도 부름)
- code section
- data section
- OS resource
Thread 장점
Responsiveness(응답성)
- ex) multi-threaded web: 만약 thread가 blocked되면(network) 다른 thread가 이미지라도 먼저 띄우면 사용자 입장에서 덜 답답하다.
Resource Sharing(자원 공유)
- code, data, 각종 자원 공유 → 효율적으로 자원 사용
Economy(경제성)
- 프로세스를 만드는 것은 overhead 크다.
- thread를 만드는 것은 비용이 덜 든다.
- A프로세스에서 B프로세스로 문맥전환(context switching)을 하는것은 overhead가 크다.
- thread간의 문맥전환은 비용이 덜 든다.
Utilization of MP Architectures
- MP : Multiprocessor
- thread를 사용하면 병렬성을 높일 수 있다.
- CPU가 여러개 달린 컴퓨터에서만 얻을 수 있는 장점
Implementation of Threads(쓰레드의 구현)
Kernel Threads
- thread가 여러개라는 사실을 커널(운영체제)이 알고 있다.
- 따라서 thread A에서 thread B에서 넘어가는 것도 커널이 CPU scheduling을 하듯이 관리한다.
User Threads
- library를 통해 지원됨
- process안에 thread가 여러개라는 사실을 운영체제는 모른다.
- 커널이 볼 때는 일반적인 process로 보인다.
- 프로세스 본인이 CPU 수행단위를 여러개 두면서 관리함
'sw사관학교정글 > OS 개념정리' 카테고리의 다른 글
[week08] KOCW 운영체제(반효경교수님) - CPU Scheduling 1 (0) | 2021.12.30 |
---|---|
[week08] KOCW 운영체제(반효경교수님) - Process Management (0) | 2021.12.30 |
[week08] KOCW 운영체제(반효경교수님) - Process 1 (0) | 2021.12.30 |
[week08] KOCW 운영체제(반효경교수님) - System Structure & Program Execution 2 (0) | 2021.12.30 |
[week08] KOCW 운영체제(반효경교수님) - System Structure & Program Execution 1 (0) | 2021.12.30 |