(운영체제 카테고리의 글은 Abraham Silberschatz의 'Operating System Concepts'를 기반으로 작성합니다.)
OS가 프로세스를 프로세서에 할당하는 것을 '디스패치 (dispatch)' 라고 한다. 이 때 프로세스 상태가 ready에서 running 으로 바뀐다. 그리고 OS가 ready queue에 있는 프로세스들 중에서 어떤 프로세스를 디스패치할 것인지 정하는 것이 '프로세스 스케줄링' 이다.
스케줄링 알고리즘에는 FCFS, SJF, SRF, RR 등이 있고,
Burst time, CPU Utilization, Throughput, Turnaround time, Waiting time, Response time 을 기준으로 알고리즘을 평가한다.
1. FCFS (First Come - First Served)
- 도착 순서에 따라 waiting time 이 크게 달라진다
- 수행 시간이 큰 프로세스가 먼저 들어오면 뒤에 들어온 프로세서의 waiting time이 크게 증가하는 '콘보이 효과' 가 발생한다.
- OS가 개입하지 않는 비선점 스케줄링 방식이다.
2. SJF (Shortest Job First)
- 콘보이 효과를 해결한다.
- burst time 이 큰 프로세스가 계속 뒤로 밀려나는 기아 (starvation) 현상이 발생한다.
- OS가 개입하지 않는 비선점 스케줄링 방식이다.
3. SRF (Shortest Remaining Time First)
- 기아 (starvation) 문제를 해결할 수 있다.
- OS가 개입하는 선점 스케줄링 방식이다.
4. RR (Round Robin)
- 일정 시간 할당량 단위로 여러 프로세스를 번갈아가며 프로세서에 할당한다.
- 반응성이 좋다. = Low Response Time
- OS가 개입하는 선점 스케줄링 방식이다.
5. Priority Scheduling
- 프로세스를 Aging 하여 오래 대기한 프로세스의 우선 순위를 높이는 방식이다.
- SRF 는 기준을 남은 수행 시간으로 삼는 Priority Scheduling이라고 할 수 있다.
- 다른 스케줄링과 결합해 사용할 수 있어, 선점/비선점 모두 가능하다.
'Computer Science' 카테고리의 다른 글
/작성예정/ 6. Deadlock (교착상태) (0) | 2023.03.16 |
---|---|
OS - 5. 동기화 (Synchronization) (0) | 2023.03.16 |
OS - 3. Threads (쓰레드) (0) | 2023.03.16 |
OS - 2. Process (state, PCB, 스케줄링, context switching, IPC) (0) | 2023.03.16 |
OS - 1. 운영체제 Overview (0) | 2023.03.16 |