[OS] CPU Scheduling(etc)

동동·2022년 4월 18일
post-thumbnail

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

profile
괴발개발

0개의 댓글