[CS] CPU 스케줄링의 종류에 대한 나름의 이해

2023. 10. 20. 00:54CS

CPU 스케줄링은 크게 두 가지로 구분할 수 있다.

선점형과 비선점형이다.

선점형은 CPU를 사용하고 있는 프로세스가 끝나기 전에 다른 프로세스가 CPU 권한을 뺏을 수 있는 것이다.

비선점형은 프로세스가 끝날 때까지 뺏지 못한다.

비선점형에는 FCFS, SJF가 있다.

FCFS는 먼저 들어온 작업을 먼저 처리한다.

SJF는 준비큐에 있는 프로세스 중 가장 짧은 작업을 먼저 처리한다. 이렇게 하면 반환시간과 대기시간은 줄어들지만 스타베이션의 문제가 생긴다.

선점형에는 RR, SRTF, Priority Queue가 있다.

RR는 라운드로빈의 약자로 프로세스의 우선순위에 따라 스케줄링하는 것이 아닌 시분할로 즉 시간을 나누어 동일하게 프로세스마다 시간을 부여한다. 그 시간이 끝나면 콘텍스트 스위칭이 일어난다. 이 방법의 문제점은 잦은 콘텍스트 스위칭으로 인한 오버헤드가 크다는 것이다.

SRTF는 짧은 작업을 먼저 하는 것이다. SJF와의 차이는 SJF는 일단 프로세스가 끝날때까지 못뺏지만 SRTF는 도중에 더 작은 시간의 작업이 준비큐에 들어오면 CPU를 뺏는다는 점이다.

Priority Queue는 우선순위가 있는 큐를 여러개 두어 특정 시간이 지나면 우선순위를 떨어뜨리는 식으로 진행한다. 우선순위가 높은 큐부터 실행하고 낮은 우선순위는 부스트로 한번씩 우선순위를 올려서 실행한다

 

이 프로세스 스케줄링을 평가하는 기준에는 반환시간, 대기시간, 반응시간 등이 있다.

반환시간은 프로세스가 처음 들어와서 언제 끝나는지에 대한 시간이다.

대기시간은 프로세스가 준비큐에서 대기하는 시간이다.

반응시간은 프로세스가 처음 들어와서 시작할때까지 걸리는 시간이다.

 

Reference


https://www.yes24.com/Product/Goods/121769526 

 

기술 면접 대비 CS 전공 핵심요약집 - 예스24

1분 1초가 아쉬운 취업/이직 준비생을 위해기술 면접에 필요한 CS 전공의 핵심 내용만 간추렸다!비전공자는 물론 IT 전공자라도 광범위한 CS 전공 중에 어떤 내용이 출제될지 감을 잡기 어렵다. 서

www.yes24.com