본문 바로가기
Computer Science/OS

CPU 스케줄링

by snfjddl 2021. 8. 18.

스케줄링

최고의 성능을 내기 위해 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것

스케줄링은 한마디로 최대한 평등하게, 효율적으로 자원을 활용하여 작업(프로세스)을 처리하는데 그 목적이 있다.

 

종류

  1. Batch System: 가능한 많은 일 수행, 시간보다 처리량이 중요
  2. Interactive System: 빠른 응답, 적은 대기시간
  3. Real-Time System: deadline, 기한을 맞추는 것이 중요

 

선점: 운영체제가 CPU 사용권을 선점할 수 있는 경우. 진행 중인 프로세스가 있을 때, 다른 프로세스로 변경 가능

 

종류

  • 라운드 로빈(Round Robin) 스케줄링
    각 프로세스에 Time Quantum을 부여, Time Quantum만큼 수행 후 대기 Queue 맨 뒤로 보내짐.
    시분할 방식에 효과적.
    TQ가 너무 크면 FCFS와 같아지고, 너무 작으면 Context Switching이 자주 일어나서 Overhead 증가, 적절한 TQ 설정이 중요
    *Overhead: 부가적인 작업으로 인해 추가로 더 소요되는 자원, 시간
  • SRT(Shortest Remaining Time) 스케줄링
    가장 빨리 끝나는 프로세스를 먼저 처리
    남은 처리시간이 더 짧은 프로세스가 준비 Queue에 들어오면 바로 교체
  • 다단계 큐(multi-level Queue) 스케줄링
    프로세스를 여러 종류의 그룹(우선순위 다름)으로 나누어 여러 개의 Queue를 이용(Queue마다 다른 Time Quantum, 스케줄링 부여) *큐간이동 불가
  • 다단계 피드백 큐(multi-level feedback Queue) 스케줄링
    일단 모든 프로세스는 FCFS로 최상단 준비 Queue에 들어가고 RR처럼 TQ 부여, TQ를 모두 소모한 프로세스는 아래의 Queue로 내려가고 TQ를 다 소모하지 못한 프로세스는 현재 Queue에 남음.
    이 특징은 CPU burst와 중요도의 상관관계에서 비롯됨
    사용자와 interactive 하지 않은, background 프로세스는 CPU burst가 매우 크다는 특징을 이용.

 

비선점: 프로세스 종료 또는 IO 등 event가 있을 때까지 실행 보장

 

종류

  • 우선순위(Priority) 스케줄링
    각 프로세스에 우선순위를 부여하여 처리
  • 기한부(deadline) 스케줄링
    프로세스를 명시된 시간 내에 완료되도록 계획
  • FIFO==FCFS
    대기 Queue에 도착한 순서대로 프로세스를 처리
    batch 시스템에 주로 사용
  • SJF(Shortest Job First)
    소요시간이 짧은 순서대로 처리, 짧은 작업에 유리
  • HRN(Highest Response Ratio Next)
    SJF의 단점(소요시간이 긴 프로세스가 무한 대기상태)을 보완한 방법.
    *우선순위 계산법: (대기시간 + 소요시간) / 소요시간 = 응답 시간
    응답 시간이 클수록 우선순위가 높다
반응형

'Computer Science > OS' 카테고리의 다른 글

프로세스 상태  (0) 2021.11.19
교착상태(Deadlock)  (0) 2021.08.19
프로세스와 스레드  (0) 2021.08.18
운영체제의 역할  (0) 2021.08.18
[OSTEP] 운영체제 개요  (0) 2021.01.01

댓글