프로세스란 프로그램을 실행한 것이다
운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보를 PCB라고 한다
구성요소
💡 “A thread(or lightweight process) is a basic unit of CPU utilization”
-> 프로세스 내부에 CPU 수행 단위가 여러개 있는 경우
Thread의 구성
Thread가 동료 Thread와 공유하는 부분(=Task)
전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
Responsiveness
e.g. multi-threaded Web - if one thread is blocked (e.g. Network) another thread continues (e.g. Display)
Resource Sharing
n threads can share binary code, data, resource of the process
Economy
creating & CPU switching thread(rather than a process)
Solaris의 경우 위 두가지 overhead가 각각 30배, 5배(프로세스를 생성하는 경우가)
Utilization of MP Architectures(CPU가 여러개 있는 환경에서만)
MP = multi-processor
each thread may be running in parallel on a different processor
Copy-on-write(COW) - write가 발생할때 Copy를 하겠다.
message passing
: 커널을 통해 메시지 전달shared memory
: 서로 다른 프로세스간에도 일부 주소 공간을 공유하게 하는 shared memory 매커니즘이 있음