손영배 블로그 누구나 쉽게 이해하고 습득하기

CPU 스케줄러 본문

OS

CPU 스케줄러

손영배 2019. 10. 3. 21:02

스케줄러는 ready queue에 존재하는 프로세스들을 특정 우선순위를 기반으로 CPU를 할당받게 해주는 역할이다.

 

스케줄러가 스케줄링을 하는데에 2가지 중요한 요소, 최대관심사, 기준

  • 첫번째, 대기 시간(waiting time), CPU 할당시간
  • 두번째, 스케줄링을 어떻게 구현할 것인가? 어떤 자료구조인가?

스케줄링의 목표는?

  • CPU 활용을 최대화
  • 평균 대기 시간을 최소화
  • 처리량 최대화

선점 과 비선점의 차이는?

- 1. 선점 : 뺏을 수 있는 방법 

  • 한 프로세스가 CPU를 할당받아 실행중이라도 다른 프로세스가 현재 프로세스를 중지 시키고 CPU를 강제적으로 뺏을 수 있는 스케줄링 방식
  • 장점 : 긴급하게 처리해야 할 높은 우선순위를 가진 프로세서들을 빠르게 처리가능
  • 단점 : 프로스세 간 문맥 교환이 자주 발생 -> 운영체제의 오버헤드 증가 효과적인 선점을 하려면 준비 상태의 프로세스가 많아야 함 우선순위를 고려해야 함

선점 알고리즘 [Preemptive scheduling]

Round Robin (RR) Algorithms

 

time sharing system(시분할 시스템)이 나온 뒤로부터 수행되는 스케줄링 알고리즘

 

Round + Robin(새이름) = robin이라는 새가 새끼한테 모이를 줄 때, 조금씩 나눠서 조금 주고, 또 조금 주고 한 라운드를 다 돌면 그 다음에 다시 처음 새끼부터 조금씩 주는 것을 반복한다고 해서 robin이라는 새처럼 한 라운드에 조금씩 전부 분배하고 다시 반복하는 스케줄링 Round Robin이라고 한다

 

그래서 모두에게 공평한 알고리즘 

현재 지금 우리의 운영체제는 Priority + RR 형태로 스케줄링 되고 있다는 것

https://blog.naver.com/PostView.nhn?blogId=jhnyang&logNo=221502772494

 

[운영체제]RR(Round Robin라운드로빈)순환할당스케줄링, time quantum 타임퀀텀

[운영체제 목차 책 추천]Round Robin (RR) Algorithms​이번에 살펴볼 스케줄링 알고리즘은 RR입니...

blog.naver.com

SRT(Shortest Remaining time) , SRTF라고도 부름 마지막에 First를 붙여서

선점 스케줄링 알고리즘

최단 잔여시간을 우선으로 하는 스케줄링

진행 중인 프로세스가 있어도, 최단 잔여시간인 프로세스를 위해 sleep시키고 짧은 프로세스를 먼저 할당한다.

 

Priority Scheduling(우선 순위 스케줄링)

  • 우선 순위가 높은 프로세스에 CPU를 우선 할당하는 방식의 스케줄링
  • 우선 순위는 시간 제한, 메모리 요구량, 프로세스의 중요성, 자원사용 비용 등에 따라 달라질 수 있다.
  • 우선 순위가 같을 경우, FCFS와 다를게 없다.(비선점, 선점 둘다 사용된다.

 

 

- 2. 비선점 기법[Non-preemptive scheduling] : 뺏을 수 없는 방법

  • 한 프로세스가 CPU를 할당받아 실행중이라면 다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링방식
  • 일괄 처리 시스템에 적합/ 시분할 시스템에 적합X
  • 장점 : 모든 프로세스에 대한 공정한 기능, 프로세스 간의 오버헤드가 적어 효율
  • 단점 : 짧은 작업이 긴 작업이 끝날때까지 기다리게 되는 경우 발생

비선점 알고리즘

 

FCFS(First Come First Served)

 

  • 먼저 CPU를 요청하는 프로세스를 먼저 처리하는 방식
  • CPU를 요청하는 프로세스의 burst time에 따라 평균 waiting time이 나빠진다.

SJF(Shortest - Job - First)

  • 평균 waiting time을 최소화하기 위해 사용하는 방식
  • 버스트 시간이 짧은 프로세스부터 CPU를 할당한다.
  • 문제점 : Waiting time을 최소화하는 데는 최적이지만, brust timed 긴 프로세스은 오랜 시간 굶주려야 하므로,
  • Non starvation을 어기게 된다.

https://hyunah030.tistory.com/4

 

[운영체제] CPU 스케줄러 - FCFS, SJF, SRT, RR, Priority Scheduling

CPU 스케줄러 CPU 스케줄러 CPU 스케줄러란? 다중 프로그램 OS의 기본으로, 여러 프로세스들이 CPU를 교환하며 보다 생산적으로 동작한다. CPU를 선점한 프로세스가 대기하는 시간을 보다 효율적으로 사용하기 위..

hyunah030.tistory.com

 

 

특징

문제점

 

 

 

 

'OS' 카테고리의 다른 글

교착상태 deadlock  (0) 2019.10.24
비동기식 병행 실행  (0) 2019.10.24
프로세스와 스레드 기초  (0) 2019.10.03
프로세스 스케줄러  (0) 2019.10.02