* 준비상태(Ready)에서 실행상태(Running)로 상태전이(State Transition)된다고 한다. 이 과정을 디스패칭(dispatching)이라고 하고 디스패처(dispatcher)가 이 일을 수행한다.
- 디스패칭의 단위는 thread 또는 lightweight 프로세스로 불린다.
- 자원 소유 단위는 프로세스 혹은 태스크이다.
Multithreading - 하나의 프로세스에서 여러개의 동시 실행 흐름을 지원하는 OS 의 능력
User-Level Threads
- 커널은 쓰레드의 존재를 알지 못한다. 프로세스 내의 Thread library 가 쓰레드에 관한 관리를 모두 담당한다. 쓰레드의 관리에 있어서 커널이 아예 관여하지 않기 때문에 모드 스위칭이 적게 일어나 굉장히 가볍게 쓰레딩을 할 수 있다. 하지만 이 경우, 하나의 쓰레드만 작동을 멈춰도 그 프로세스 자체가 block 되며, 멀티 프로세서를 전혀 활용하지 못한다는 점이서 별로 이점이 없는 방식이다.
Kernel-Level Threads
- 커널이 모든 프로세스와 모든 쓰레드의 관리를 하는 방식이다. 모든 프로세스와 쓰레드들은 커널에 의해 독자적으로 스케줄링 된다., User-Level 일때와 다르게 Thread table 이 커널 합쳐져서 한 개만 존재하는 것을 볼 수 있다.
728x90
'운영체제' 카테고리의 다른 글
[운영체제 #6] Concurrency : Deadlock and Starvation (0) | 2023.04.24 |
---|---|
[운영체제 #5] Concurrency : Mutual Exclusion and Synchronization (0) | 2023.04.24 |
[운영체제 #3] Process Description and control (0) | 2023.04.24 |
[운영체제 #2] Operating System Overview (1) | 2023.04.24 |
[운영체제 #1] Computer System Overview (0) | 2023.04.12 |