멀티 프로세서와 스레드 스케줄링

|

Multi-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