운영체제

CPU 스케쥴

으엉어엉 2024. 4. 26. 18:21
728x90

CPU 스케줄링 개요 . 단기 스케쥴러

CPU 스케줄링 (CPU Scheduling)

  • 준비 큐의 프로세스들 중에서 CPU를 할당할 순서를 정하는 것
  • 운영체제의 단기 스케줄러 (CPU 스케줄러)가 수행함

 
CPU 스케줄링 알고리즘 (CPU Scheduling Algorithm)

  • CPU 스케줄링 정책 (policy)
  • 다양한 CPU 스케줄링 알고리즘이 있으며 특정 상황에 알맞은 것을 선택해야 한다

 
 

운영체제의 CPU 스케줄러는 다음의 목표를 달성해야 한다

  • CPU 이용률을 최대화
  • 처리량을 최대화
  • 반환시간을 최소화
  • 대기 시간을 최소화
  • 응답시간을 최소화

모두 달성할 수 없으므로 응용분야에 따라 적절한 목적에 따라 달리 비중을 줘야함.
 


 

 

 

 

First-Come, First-Served (FCFS) 스케줄링

 
 

 
 


Shortest-Job-First (SJF) 스케줄링

 

 

 


 

우선순위 (priority) 스케줄링

 
각 프로세스의 우선순위를 정해서(혹은 계산해서) 우선순위 번호 (정수)를 각 프로세스 에게 부여하고 우선순위가 높은 프로세스에게 CPU를 할당하는 알고리즘들

  • 우선순위는 고정(static) 또는 변동(dynamic)
  • 선점식, 비선점식 모두 가능
  • 문제점 : 기아상태(Starvation) 또는 무한 정지(indefinite blocking)
    • 낮은 우선순위 프로세스가 실행되지 못함
  • 해결책 : 에이징(Aging) 
    • 오랫동안 시스템에 대기하는 프로세스들의 우선순위를 점진적으로 증가시킨다

 


 
 

라운드 로빈(Round Robin: RR) 스케줄링

 

  • 시분할 시스템을 위해 만들어짐
  • 각 프로세스는 시간량 (또는 시간 할당량) (time slice, time quantum) 동안 CPU를 할당받는다. 시간량은 보통 10-100 밀리초이다. 이 시간이 지나면 프로세스는 CPU를 빼앗기고 준비 큐의 끝에 들어간다
  • 준비 큐는 선입선출(FCFS) 방식의 큐이다.
    • 새로운 프로세스는 준비 큐의 끝에 들어간다.
    • 스케줄러는 큐의 맨 앞의 프로세스를 선택하여 CPU를 할당
  • 운영체제는 타이머 인터럽트를 설정하여 주기적으로 인터럽트를 일으킴. 인터럽트가 발생하면, 운영체제가 실행되므로 이때 스케줄러를 실행한다.
  • 선점방식 ( 실행되다가 interupt 되면 ready 상태로 바뀜)
  •  

 

시간 할당량의 크기를 어떻게 정할 것인가?

 

  • 시간 할당량이 크다면 FCFS 스케줄링 방식이 됨
  • 시간 할당량이 적다면, 문맥 교환 부담이 증가함

 
 
프로세스의 실행은 “CPU 실행”과 “입출력 대기”가 반복되는 사이클로 볼 수 있다.
 
대화식 시스템의 경우, 프로세스들의 CPU 버스트 시간의 분포

  • 짧은 CPU 버스트가 대부분.
  • CPU를 매우 짧게 사용하고, 사용자와의 대화를 위한 입출력을 많이 하는 패턴

 

 
 
 

다단계 큐(Multilevel Queue) 스케줄링

 

 

 

 

728x90

'운영체제' 카테고리의 다른 글

교착상태  (0) 2024.06.14
프로세스 동기화  (0) 2024.06.14
쓰레드  (1) 2024.04.26
프로세스  (1) 2024.04.26
운영체제 구조  (0) 2024.04.26