CPU 프로세스 스케줄링::운영체제

2020. 6. 25. 15:19computer science/operating system

1. 선점 스케줄링

 

 CPU가 어떤 프로세스에 의해 점유 중일 때, 우선순위가 높은 프로세스가 CPU를 차지할 수 있습니다.

 우선 순위가 높은 프로세스를 빠르게 처리해야 할 경우에 유용하지만, 오버헤드가 발생하여 처리시간을 예측하기 힘듭니다.

 

SRT(Shortest Remaining Time) 스케줄링

 짧은 시간 순서대로 프로세스를 수행합니다.

 남은 처리 시간이 더 짧은 프로세스가 Ready 큐에 들어오면 그 프로세스가 바로 선점됩니다.

 

라운드 로빈(Round Robin) 스케줄링

 각 프로세스는 같은 크기의 CPU 시간을 할당받고 선입선출(FIFO)에 의해 선점됩니다.

 할당시간이 너무 크면 선입선출과 다를 바 없어지고, 너무 작으면 오버헤드가 너무 커집니다.

 

다단계 큐(Multi-level Queue) 스케줄링

 Ready 큐를 여러 개 사용하는 기법입니다.

 각각의 큐는 자신의 스케줄링 알고리즘을 수행하며, 큐와 큐 사이에도 우선순위를 부여할 수 있습니다.

 

다단계 피드백 큐 스케줄링

 다단계 큐와 비슷하나 프로세스들이 다른 큐로 이동할 수 있습니다.

 

 

2. 비선점 스케줄링

 

 프로세스가 스스로 CPU를 놓아주는 시점(작업이 완료되는 시점)에만 스케줄링이 일어납니다.

 

FIFO(First In First Out) 스케줄링

 프로세스들은 Ready 큐에 도착한 순서대로 CPU를 할당받습니다.

 작업 완료 시간을 예측하기 매우 용이합니다.

 하지만 덜 중요한 작업이 중요한 작업을 기다리게 할 수도 있습니다.

 

SJF(Shortest Job First) 스케줄링

 큐 안에 있는 프로세스 중 수행 시간이 짧은 것을 먼저 수행합니다.

 평균 대기 시간을 감소시킬 수 있습니다.

 

HRN(Highest Response ratio Next) 스케줄링

 긴 작업과 짧은 작업 간의 지나친 불평등을 어느 정도 보완한 기법입니다.

 수행 시간의 길이와 대기 시간을 모두 고려해 우선순위를 정합니다.

 

우선순위(Priority) 스케줄링

 프로세스에게 우선순위를 정적, 혹은 동적으로 부여하여 우선순위가 높은 순서대로 처리합니다.

 동적으로 부여할 경우 구현이 복잡하고 오버헤드가 많다는 단점이 있으나, 시스템의 응답속도의 효율을 증가시킵니다.

 

기한부(Deadline) 스케줄링

 작업을 명시된 시간이나 기한 내에 완료하도록 계획하는 기법입니다.