CS
3. 4 CPU 스케줄링 알고리즘
HSH12345
2023. 3. 6. 02:03
CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다.
1. 비선점형 방식(프로세스가 CPU 소유권을 포기하여 강제로 프로세스를 중지하지 않아 컨텍스트 스위칭으로 인한 부하가 적다)
- FCFS(First Come, First Served) : 가장 멈ㄴ저 온것을 가장 먼저 처리하는 알고리즘, 길게 수행되는 프로세스로 인해 준비 큐에서 오래 기다리는 현상이 발생하는 단점이 있음
- SJF(Shortest Job First) : 실행시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘, 긴 시간을 가진 프로세스가 실행되지 않는 형상이 발생 -> 과거 실행 시간을 토대로 오래된 작업일수록 우선순위를 높혀 보완한다.
2. 선점형 방식(현대 운영체제 방식이며, 프로세스 알고리즘을 통해 강제로 중단시키고 다른 프로세스에게 CPU 소유권을 넘긴다)
- 라운드 로빈 : 프로세스마다 동일한 할당 시간을 주고 그 시간안에 끝나지 않으면 준비 큐의 뒤로 넣는다.
- SRF : SJF와 다르게 중간에 더 짧은 작업이 들어오면 프로세스를 중지하고 더 짧은 프로세스를 실행한다.
- 다단계 큐 : 우선수위에 따른 어려개의 큐를 준비하고 큐마다 다른 스케쥴링 알고리즘을 적용한다. 프로세스간 이동이 불가하여 스케줄링 부담이 적지만 유연성이 떨어진다.