CS/운영체제

[운영체제] KOCW 반효경 교수님 강의 - 11. CPU Scheduling 2

pythaac 2022. 4. 12. 21:47
  • CPU 스케줄링이 필요한 이유
    • CPU bound job과 I/O bound job이 섞여있음
    • RR이 적절한 스케줄링 (I/O bound job이 빠르게 나갈 수 있음)
    • 효율적인 RR이 가능한 이유는 Context를 저장하고 복구할 수 있는 Context Switching이 가능하기 때문

  • Multilevel Queue 컨셉
    • 지금까지는 한 줄에서 기다리는 경우, multilevel queue는 여러 줄로 기다리는 경우
    • 우선순위에 따라 우선순위가 높은 큐의 job을 먼저 실행
    • 고민해볼 문제
      • 1. 큐 내에서 어떤 프로세스에게 할당?
      • 2. 우선순위 높은 큐에 무조건 할당? -> starvation
  • Multilevel Queue
    • Ready queue를 여러 개로 분할
    • 각 큐는 독립적인 스케줄링 알고리즘을 가짐
    • foreground queue
      • interactive : 사람과 상호작용하는 job
      • RR
    • background queue
      • batch : 상호작용 없는 job
      • FCFS
    • 큐에 대한 스케줄링
      • 1. 우선순위가 높은 큐를 무조건 우선 : starvation 발생 가능
      • 2. 시간 비율 : 우선순위가 높은 큐 80% / 우선순위가 낮은 큐 20% 시간 할당

  • Multilevel Feedback Queue
    • 우선순위가 중간에 바뀜
    • 생각해볼 문제
      • 1. 우선순위를 어떻게 결정할지?
      • 2. 프로세스 우선순위를 높이고 낮추는 기준을 어떻게 할지?
    • 일반적인 방식
      • 1. 처음 들어온 프로세스는 우선순위가 높은 큐에 할당
      • 2. 우선순위가 높은 큐는 짧은 time quantom을 갖는 RR
      • 3. time quantom이 끝나면 우선순위가 낮은 큐로 이동
      • 4. 우선순위가 낮아질수록 time quantom이 길어짐
      • 5. 가장 낮은 우선순위에서는 FCFS
      • -> CPU 사용 시간이 짧은 프로세스에게 높은 우선순위를 주는 방식

  • Multiple-Processor Scheduling
    • CPU가 여러 개인 경우의 스케줄링
    • 1. 한줄서기
      - CPU들이 하나의 큐에서 프로세스를 가져감
      - 특정 프로세서에서 실행해야하는 경우도 고려해야함
    • 2. CPU마다 줄서기
      - 특정 프로세서에 일이 치우치지 않도록 관리가 필요
    • 1. Symmetric Multiprocessing (SMP)
      - 각 프로세서가 알아서 스케줄링
    • 2. Asymmetric Multiprocessing
      - 하나의 프로세서가 관리
      - 시스템 데이터 접근/공유를 책임지고 나머지 프로세서는 이를 따름

  • Real-time Scheduling
    • Deadline이 있는 스케줄링으로, deadline을 보장해야함
    • Hard real-time system : 반드시 deadline 내에 끝나야 함
    • Soft read-time system : priority로 조절

  • Thread Scheduling
    • User level thread
      • 사용자 프로세스 내에서 직접 쓰레드를 관리
    • Kernel level thread
      • 운영체제가 thread의 존재를 인지

  • 스케줄링 알고리즘 성능측정
    • Queueing model
      • Arrival rate : queue에 도착하는 도착율
      • Service rate : job을 처리하는 처리율
      • Arrival rate과 service rate을 통해 값을 계산
      • 수식을 사용한 이론적인 방식
    • Implementation & Measurement
      • 실제 시스템에 구현하여 성능 측정
    • Simulation
      • 모의 실험
  •