CS/CS STUDY

2022.02.13. 4차 CS 스터디: CPU 스케줄링의 목적/기준/종류, 선점형/비선점형, 스케줄러와 디스패처, Dispatcher latency

ImYena 2022. 2. 12. 22:00
728x90

CPU 스케줄링

목적

  • 공평성
  • 효율성
  • 확장성
  • 사용자의 반응시간 보장
  • 무한연기(기아현상) 방지
CPU burst : 프로세스가 CPU를 쓰는 시간
I/O burst : 프로세스가 I/O 작업을 하는 시간
 > 대부분 프로세스가 IO bound Process이다!

 

선점형 vs 비선점형

  • 선점형 : 하나의 프로세스가 실행 중일 때 다른 프로세스가 CPU를 선점할(빼앗을) 수 있는 경우
  • 비선점형 : 하나의 프로세스사 실행 중일 때 다른 프로세스는 대기해야 하는 경우

 

디스패처(Dispatcher)

: Ready 상태의 프로세스를 Running 상태로 상태전이 시키는 것을 dispatch라고 하는데, 해당 역할을 진행하는 것을 Dispatcher라고 함

 

스케줄러와 디스패처 차이

  • 스케줄러 : CPU가 해야할 일을 계획하는 일 진행
  • 디스패처 : CPU를 프로세스에 할당하는 일 진행

> 보통 CPU의 스케줄러는 포괄적 의미로 둘 다 포함함!

 

Dispatcher latency

  • 디스패처가 하나의 프로세스를 멈추고 다른 프로세스에게 CPU의 제어권을 넘기는데 걸리는 시간
  • Context switch 되는 시간, 하나의 프로세스사 멈추고 다른 프로세스가 런 되기까지의 시간
  • CPU가 노는 시간

 

스케줄링 기준

  1. CPU Utilization(CPU 이용률)
  2. Throughput(처리량)
  3. Turnaround Time(처리시간)
  4. Waiting Time(대기시간)
  5. Response Time(응답시간)

 

스케줄링 종류

  • FCFS
    • FIFO
    • 사실상 스케줄링 하지 않은 것
  • SJF/SRTF
    • 가장 이상적인 방법(처리시간/대기시간 기준으로는 최고지만, 응답시간을 따졌을 때 애매)
    • 일이 언제 끝날지 예측 한다는 건데 불가능, 그래서 잘 사용 안함
    • 기아 문제 발생
  • RR
    • 시분할
    • 타임퀀텀
  • Priority-based
    • 우선순위
    • 기아 문제 발생
    • 에이징 기법을 통해 대기 시간이 오래되면 우선순위를 높여주는 방법으로 기아문제 해결
  • MLQ
    • 작업별로 우선순위 큐가 다름
    • 기아 문제 발생, 큐가 서로에게 있어서 독립적이기 때문
    • 에이징 기법 사용 불가능
  • MLFQ
    • MLQ의 단점 보완
    • 타임퀀텀으로 우선순위 큐가 다름
    • 실행 시간을 몰라도 SJF와 비슷한 효과를 낼 수 있음
    • 큐가 독립적이지 않음
    • 설계/구현이 어려움
728x90
반응형