본문 바로가기
학교 공부/시스템

[운영체제] CPU 스케줄링 알고리즘

by 그적 2020. 3. 5.

CPU 스케줄링 알고리즘

 FCFS(First Come First Service)
 : 가장 간단한 CPU 스케줄링 알고리즘으로, 대기 큐에 도착한 순서에 따라 CPU를 할당한다. 또한 비선점 스케줄링 기법이다.


② SJF(Short Job First)
 : SJF 스케줄링은 장기 스케줄링에서 자주 사용되는 알고리즘이며, 수행 시간이 가장 짧다고 판단되는 프로세스부터 먼저 CPU를 할당한다. FCFS보다 평균 대기 시간을 짧은 것에 비해, 큰 작업에 대해서는 FCFS 보다 대기 시간 예측이 어렵다.
비선점 스케줄링 기법이다.


③ 라운드 로빈 스케줄링(Round Robin Scheduling)
 : RR 스케줄링은 CPU 시간이 만료될 때까지 처리를 완료하지 못할 경우, CPU는 준비 큐에 있던 다음 프로세스로 넘어가고, 실행 중이던 프로세스는 준비 큐의 마지막번째로 들어가게 된다. FCFS에 의해 프로세스들이 보내지는데, 각 프로세스들은 같은 크기의 CPU 시간을 할당한다. 선점형 스케줄링 기법이다.
CPU 사용시간을 허가받은 시간(Time Quantum)라는 시간의 단위를 정의하여 구현한다.


④ 우선순위 스케줄링(Proiroty Scheduling)
 : 우선순위가 가장 높은 프로세스에게 제일 먼저 CPU를 할당하는 방식이다. Aging 기법을 사용하여, 기다리는 시간이 길어질 경우 우선순위를 높여 CPU를 할당받을 수 있게 하는 방법이다.


⑤ SRT(Shortest Remaining Time)
 : SJF와 마찬가지로 처리가 가장 빠르게 이뤄진다고 판단하는 프로세스를 먼저 수행한다. 프로세스가 실행 중이더라도, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 생기면 더 짧은 처리 소요시간을 가진 프로세스가 선점된다. 또한, 실시간 시스템에 유리하며, 선점형 스케줄링 기법이다.


⑥ 다단계 큐(Multi Level Queue)
 : 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 스케줄링 기법이다. 준비 큐에는 전위 큐(Foreground Queue), 후위 큐(Background Queue)로 분할하여 운영한다. 어느 큐에 먼저 CPU를 할당할 것인지를 결정하는 독자적인 스케줄링 알고리즘을 가지고 있다.
 ** 주로 전위 큐는 RR 스케줄링 기법을 사용해 대화형 작업을 담고, 후위 큐에는 FCFS 기법을 사용하여 계산 위주의 작업을 담는다. 

다단계 큐  //출처https://velog.io/@pa324/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81



⑦ 다단계 피드백 큐(Multi Level Feedback Queue)
 : 다단계 큐와 비슷하지만, 프로세스가 큐와 큐 사이를 이동할 수 있다. 새로운 프로세스가 들어오면 높은 우선순위를 할당해주어 n번째 단계까지 RR 스케줄링으로 순환한다. 다단계 피드백 큐는 우선순위 스케줄링과 RR스케줄링을 사용한 Hybrid 스케줄링 기법이다. againg 기법을 활용하여 프로세스를 우선순위가 높은 큐로 이동시킬 수 있다.

다단계 피드백 큐  //출처https://velog.io/@pa324/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81

 

댓글