Multi-Processor Scheduling
- CPU가 여러 개인 경우 스케줄링은 더욱 복잡해짐
- Homogeneous Processor인 경우
- Queue에 한줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있다.
- 반드시 특정 프로세서에서 수해오디어야 하는 포로세스가 있는 경우에는 문제가 더 복잡해짐
- Load Sharing
- 일부 프로세서에 job이 몰리지 않도록 부하를 적절히 공유하는 메커니 즘이 필요
- 별개의 큐를 두는 방법 vs 공동 큐를 사용하는 방법
- Symmetric Multiprocessing(SMP)
- 각 프로세서가 각자 알아서 스케줄링 결정
- 모든 CPU들이 동등함
- Asymmetric Multiprocessing
- 하나의 프로세서가 시스템 데이터의 접근과 공유를 책임지고 나머지 프 로세서는 거기에 따름
- 여러개의 CPU 중에 하나의 CPU가 컨트롤러의 역할을 함
Real-Time Scheduling
Real-Time Job : 정해진 시간 안에 반드시 마무리 되어야 하는 작업
- Hard real-time systems
Hard real-time task는 정해진 시간 안에 반드시 끝내도록 스케줄 링해야 함
- Soft real-time computing
Soft real-time task는 일반 프로세스에 비해 높은 priority를 갖도록 해야 함
Thread Scheduling
User level Thread : 사용자 프로세스가 직접 스레드를 관리 운영체제는 스레드의 존재를 모름
Kernel level Thread : 운영체제가 스레드의 존재를 알고 있음
- Local Scheduling
User level Thread의 경우 사용자 수준의 Thread Library에 의 해 어떤 Thread를 스케줄할지 결정
- Global Scheduling
Kernel level Thread의 경우 일반 프로세스와 마찬가지로 커널의 단기 스케줄러가 어떤 Thread를 스케줄할지 결정
CPU Scheduling Algorithm Evaluation
