CPUScheduling
CPU 스케줄링이란 무엇인가요?
CPU 스케줄링이란 작업을 처리하기 위해서 프로세스들에게 CPU를 할당하기 위한 정책을 계획하는 것이다.
CPU 스케줄링 대상 프로세스는
Ready Queue에 있는 프로세드들로, 스케줄링 정책에 따라Queue에 정렬한 후 앞에 있는 프로세스부터 CPU를 주게 된다.스케줄링이 필요한 이유
CPU를 효율적으로 사용하기 위해서는 프로세스들을 잘 배정해야 한다.
이를 위해서
Ready Queue에 있는 프로세스를 대상으로 CPU를 할당받는 순서와 방식을 결정하는 것이다.
CPU 스케줄링 방법에는 어떤 것들이 있나요?
비선점
프로세스 종료 또는 입출력 등의 이벤트가 있을 때까지 실행을 보장한다.
장점
모든 프로세스들에게 공정하다.
응답 시간을 예측할 수 있다.
단점
짧은 작업을 수행하는 프로세스라도 긴 작업이 종료될 때까지 기다려야 한다.
선점
OS가 CPU의 사용권을 선점할 수 있는 경우에 강제로 회수한다.장점
높은 우선 순위를 가진 프로세스를 빠르게 처리하려는 시스템에 유용하다.
빠른 응답 시간을 요구하는 시분할 시스템에 유용하다.
단점
높은 우선 순위를 가진 프로세스들만 들어오는 경우 오버헤드가 발생한다.
FCFS(First Come First Served)
큐에 도착한 순서대로 CPU를 할당한다.
SJF(Shortest Job First)
FCFS 알고리즘을 보완하기 위해서 만들어졌다.
수행 시간이 가장 짧다고 판단되는 작업을 우선 수행한다.
평균 대기 시간이 짧으므로 짧은 작업에 유리하지만, 사용 시간이 긴 프로세스는 영원히 CPU를 할당 받지 못할 수 있다.(기아 현상 : Starvation)
HRN(Highest Response-ratio Next)
점유 불평등 현상이 발생하는 SJF 알고리즘을 보완하기 위해 만들어졌다.
우선순위를 계산하여 동작한다.
우선순위 : (대기 시간 + 실행 시간) / 실행 시간
SRTF(Shortest Remaining Time First)
현재 수행 중인 프로세스의 남은
burst time보다 더 짧은CPU burst time을 가진 새로운 프로세스가 도착할 경우 CPU를 강제로 회수한다.새로운 프로세스가 도달할 때마다 스케줄링을 다시 하기 때문에 CPU 사용 시간을 측정할 수 없고,
Starvation현상이 발생할 수 있다.
Round Robin
FCFS에 의해 프로세스를 받아 각 프로세스에 동일한 시간의
Time Quantum만큼 CPU를 할당한다.Time Quantum(Time Slice): 실행의 최소 시간 단위
현대적인 CPU 스케줄링 방식이며, 할당 시간이 끝나면 프로세스는
Ready Queue의 제일 뒤에 삽입된다.CPU 사용 시간이 랜덤한 프로세스들이 섞여 있을 경우에 효율적이고, 프로세스의
Context를 저장할 수 있다.
Last updated