본문 바로가기
카테고리 없음

CPU scheduling 발표 노트

by 오우지 2021. 11. 7.

CPU 스케줄링에 대해 이야기 하기 전

스레드 = 프로세스 라고 전제하고 시작하자.

 

프로세스와 스레드에 대해 이해가 부족하다면 하림님 블로그를 참고해주세요

https://rlagkfla1212.tistory.com/35

 

먼저 CPU 스케줄링을 하기 전에

 

OS의 역할

º CPU의 사용률을 올리는 것.

º 빈번한 컨텍스트 스위칭을 통한 타임 쉐어링

 

 

 

CPU 스케줄링이란 : CPU 스케줄러를 통해 레디 큐에 CPU의 타임 슬롯을 배치하는 것.

다시 말해 ready에 있는 프로세서들이 디스패쳐에 의해 프로세서에서 실행되는 것을 의미합니다.

 

 

선점과 비선점

비선점이란 한번 CPU가 할당되면 끝날 때 까지 CPU를 잡고 안놓는걸 얘기하고

선점이란 인터럽트에 의해 CPU가 뺴앗기는걸 이야기 합니다. 현대 OS는 전부 선점 방식을 사용한다고 생각하시면 됩니다.

 

 


스케줄링 알고리즘

 

선입선출, FCFS(First Come First Served) 스케줄링: 가장 먼저 들어온 작업을 먼저 처리하는 방법으로 알고리즘 시간에 배운 큐와 방식이 같다고 생각하면 됩니다.

장점: 순서에 따라서 처리되니까 공평하게 분배된다.

단점: 앞에 긴 테스크가 있으면 뒤에서 오래 기다려야 합니다.

 

최단작업 우선, SJF(Shortest-Job-First) 스케줄링: CPU 버스트가 가장 짧은 순으로 CPU를 분배 합니다.

SJF 스케줄링은 선점 방식과 비선점 방식으로 나뉘는데

 

º 선점방식 : 실행되고 있는 중에 가장 짧은 작업이 들어오면 현재 작업을 멈추고 방금 들어온 가장 짧은 작업을 실행하는 것이고

º 비선점방식 : 실행되고 있는 중에는 실행이 중단되지 않지만 현재 작업이 끝난 후에 남은 작업 중에 가장 짧은 작업 시간을 가지는 작업을 실행하는 방식을 이야기 합니다.

 

장점:

º 가장 작은 대기 시간을 가진다,

º 레디큐에 가장 적은 프로세스 수를 가진다.

 

단점:

º 작업시간은 오직 예상만 가능하다.

º Starvation problem - 짧은 애들만 들어오면 긴 애가 작업을 처리하지 못한다.

 

-참고로 선점방식이 대기시간이 조금 더 짧습니다.

 

참고용 시간 계산식 입니다.

a는 가중치, Tn + 1은 다음 프로세스의 예상되는 실행시간, tn은 n번째 프로세스의 실행시간을 의미합니다.

라운드 로빈 스케줄링 : 타이머를 가지는 스케줄링(10 to 100ms)

장점 : 적은 응답 시간을 가진다. FCFS에 비해 적은 대기시간을 가진다. SJF에 비해 starvation problem이 적게 일어난다.

단점 : 같은 사이즈의 작업에 약하다.

 

퀀텀이 길어질수록 FCFS랑 비슷해진다.

 

우선순위 스케줄링 : 각 프로세스에 우선순위를 부여해서 높은 우선순위를 가진 프로세스를 먼저 실행하는 것으로 SJF도 일종의 우선순위 스케줄링이라고 할 수 있다.

장점 : 우선순위 스케줄링의 단점인 starvation problem을 aging을 통해 해결할 수 있다.

 

결론은 운영체제에 따라 적합한 알고리즘을 사용하고 있다. 대표적으로 윈도우는 우선순위 스케줄링을 쓰고 있다.

 

출처 : Operating System Concepts 10th edition