멀티 프로세서와 스레드 스케줄링
26 Feb 2020 | OSMulti-Processor Scheduling
Homogeneous Processor
- Queue에 한 줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있다
- 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우에는 문제가 더 복잡해짐
Load sharing (= Load balancing)
- 일부 프로세서에 job이 몰리지 않도록 부하를 적절히 공유하는 메커니즘
- 별개의 큐를 두는 방법 vs 공동 큐를 사용하는 방법
Symmetric Multiprocessing(SMP)
- 각 프로세서가 각자 알아서 스케줄링
Asymmetric multiprocessing
- 하나의 프로세서가 시스템 데이터의 접근과 공유를 책임지고 나머지 프로세스는 거기에 따름
Thread Scheduling
Local Scheduling
- User level thread의 경우 스레드가 속한 프로세스에 의해 스레드의 스케줄링이 결정된다
Global Scheduling
- Kernel level thread의 경우 커널의 단기 스케줄러가 스케줄링을 결정한다
ref. KOCW