Terminologies
Concurrency
- 동시성, 병행성
- ability of two or more threads to execute in interleaving (or overlapping) time periods and proceed at same time
- 동시에 여러 application 실행된다는 의미
Parallelism
- 병렬성
- ability of two or more threads to execute in overlapping at same time
- 여러 작업을 동시에 실행
- 꼭 여러 application일 필요 없음
- 하나의 application이더라도 여러 subtask로 나눠서 동시 실행
Thread
- Modern OS: thread $\neq$ process
- Scheduling의 단위, 자원 소유권의 단위 → 분류됨
- thread (lightweight process): scheduling의 단위
- process (task): 자원 소유권의 단위
- main thread: 최초의 thread
Multithreaded Process Model
- 하나의 process에 여러개 thread 존재
- execution sequence
- 담기 위해 stack 존재
- 동시 진행 가능
Address Space