본문 바로가기

CS 지식/운영 체제

CPU 스케쥴링

반응형

CPU Scheduling

1. 스케줄링

  • CPU 를 잘 사용하기 위해 프로세스를 잘 배정
  • 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓
  • 목표
    1. Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요
    2. Interactive System: 빠른 응답 시간. 적은 대기 시간.
    3. Real-time System: 기한(deadline) 맞추기.

2. CPU 스케쥴링의 종류

선점 : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리 시간 예측 어려움)

1) FCFS (First Come First Served)

  • 큐에 도착한 순서대로 CPU 할당
  • 실행 시간이 짧은 게 뒤로 가면 평균 대기 시간이 길어짐

2) SJF (Shortest Job First)

  • 수행시간이 가장 짧다고 판단되는 작업 먼저 수행
  • FCFS 보다 평균 대기 시간 감소, 짧은 작업에 유리

3) HRN (Highest Response-ratio Next)

  • 우선순위를 계산하여 점유 불평등 보완(SJF 단점 보완)
  • 우선순위 = (대기시간 + 실행시간) / (실행시간)

비선점 : 프로세스 종료 or I/O 등 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이)

1) Priority Scheduling

  • 정적/동적으로 우선순위를 부여하여 우선순위가 높은 순서대로 처리
  • 우선 순위가 낮은 프로세스가 무한정 기다리는 기아 현상 발생 가능
  • Aging 방법으로 기아현상 문제 해결 가능

2) Round Robin

  • FCFS에 의해 프로세스들이 보내지면 각 프로세스는 동일한 시간의 Time Quantum 만큼 CPU 할당

3) Multilevel-Queue (다단계 큐)

반응형