🍋 CS

운영체제 - CPU 스케줄링

밈98 2023. 4. 7. 16:38

CPU Scheduling

  • CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
  • 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것
  • 프로세스들에게 자원을 최대한 공평하게 배분하며 처리율과 CPU 이용률을 증가시키고, 오버헤드, 응답시간(Response time / Turnaround time), 대기시간을 최소화하기 위한 기법
  • 특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에 CPU 교체가 일어남
  • 선점형 스케줄링(Preemptive Scheduling)  비선점형 스케줄링(Non-preemptive / Cooperative Scheduling) 이 있음
  • 메모리에 여러 개의 프로세스를 올려놓고(다중 프로그래밍), CPU의 가동시간을 적절히 나누어(시분할) 각각의 프로세스에게 분배하여 실행

 

CPU Scheduling 주요 용어

용어 설명
서비스 시간 프로세스가 결과를 산출하기까지 소요되는 시간
응답시간 (Response Time) 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지 소요되는 시간
반환시간 (Turnaround Time) 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
반환시간 = 대기시간 + 수행시간
대기시간 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간
프로세스가 도착 즉시 프로세서에 할당되면 대기시간 '0'이 됨
평균 대기시간 프로세스가 대기 큐에 대기하는 평균 시간
대기시간이 '0'인 프로세스도 평균 대기시간에 합산하여 결과 도출
종료시간 요구되는 Processing time을 모두 수행하고 종료된 시간
시간 할당량 (Time Quantum / Time Slice) 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
응답률 (대기시간 + 서비스 시간) / 서비스 시간
HRN(Highest Response ratio Next) 스케줄링에서 사용
HRN 스케줄에서 응답률이 높으면 우선순위가 높다고 판단

 

Scheduling의 유형

1 . Preemptive Scheduling (선점형 스케줄링)

: 하나의 프로세스가 CPU를 차지하고 있을때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식. 즉, 프로세스가 정상적으로 수행중인 가운데 다른 프로세스가 CPU를 강제로 점유하여 실행할 수 있음.

 

2. Non -Preemptive (비선점형 스케줄링)

: 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU반환 시까지 다른 프로세스는 CPU점유가 불가능한 스케줄링 방식

 

CPU Scheduling Algorithms

1) 선점형 스케줄링 알고리즘 유형

1. Round-Robin (RR)

  • 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기중인 다음 프로세스로 넘어간다
  • 균등한 CPU 점유시간
  • 시분할 시스템을 이용

2. SRT (Shortest Remaining Time First)

  • 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
  • 짧은 수행시간 프로세스 우선 수행


2) 비선점형 스케줄링 알고리즘 유형

1. First - Come, First - Served(FCFS)

  • 가장 먼저 요청한 프로세스에 CPU를 할당해주는 방식이다.
  • 비선점형(Non-preemptive) 스케줄링이다.
  • 작성이 간단하고 이해하기 쉽다.
  • 평균 대기 시간(Average Waiting Time)이 길어질 수 있다.
  • 응답 시간(Response Time)이 길어질 수 있다.
  • 반환시간(Turnaround Time) 면에서는 좋을 수 있다.
  • Convoy Effect(호위 효과)가 발생할 수 있다. 
  • FIFO 알고리즘 이라고도 한다.

 

2. SJF (Shortest Job First)

  • 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
  • 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기시간 최소
  • CPU 요구시간이 긴 작업과 짧은 작업 간의 불평등이 심하여, CPU 요구 시간이 긴 프로세스는 기아 현상이 발생

 

 

 

 

 

참고)

https://eun-jeong.tistory.com/17

https://code-lab1.tistory.com/45

'🍋 CS' 카테고리의 다른 글

1장. 네트워크 기초  (0) 2023.08.27
운영체제 - 메모리(Memory)  (0) 2023.04.18
운영체제 - 공유자원 & 임계구역  (0) 2023.04.11
운영체제 - 프로세스간 통신  (0) 2023.04.11
운영체제 - 프로세스 관리  (0) 2023.03.31