CPU 스케줄링 및 디스패칭(DisPatching)
CPU 스케줄러 큐
- Job Queue : 현재 시스템 내에 있는 모든 프로세스
- Ready Queue : 현재 메모리 내에 있고 실행되기를 기다리는 프로세스
- Device Queue : Device I/O 작업을 대기하고 있는 프로세스
CPU 스케줄링의 단계
1. 장기 스케쥴러 - 메모리와 디스크 사이의 스케쥴링을 담당 프로세스에 메모리와 리소스 할당
2. 단기 스케쥴러 - CPU와 메모리 사이의 스케쥴링을 담당 Ready Queue에 있는 프로세스 중 어떤 프로세스를 실행 시킬지 담당.
3. 중기 스케쥴러 - 여유 공간 마련을 위해서 프로세스를 메모리에서 내보낸다 (SWAPPING) 메모리에 많은 프로세스가 올라가는 것을 관리하는 스케쥴러
CPU 스케줄링 종류
- 선점 스케쥴링
💡 프로세스가 있을때 우선순위가 높은 프로세스가 큐에 들어 왔을때 해당 프로세스를 중단 시키고 새 프로세스를 실행 시킨다.
2. 비 선점 스케쥴링
💡 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식
CPU 스케쥴러
FCFS(FIRST COME FIRST SERVED) - 큐
💡 비선점 스케쥴링 방식으로 먼저 온 프로세스를 먼저 처리하는 방식
- 단점은 Convoy effect로 소요 시간이 긴 프로세스가 실행될 때 다른 가벼운 프로세스가 많은 시간을 기다리게 돼 효율성이 떨어진다.
SJF(SHORTEST JOB FISRT)
💡 비선점 스케쥴링 방식으로 다른 프로세스가 있어도 CPU Burst Time 즉 수행 시간이 짧은 프로세스에게 먼저 할당한다.
- 단점은 지나치게 수행 시간이 짧은 프로세스만 할당하다 보면 시간이 긴 프로세스들이 영원히 실행되지 않을 수 있다.
ROUND ROBIN
💡 선점 스케쥴링 방식으로 여러 프로세스를 효율적으로 처리할 수 있고 쉽게 적용할 수 있다. 적절한 응답시간 보장한다. 각 프로세스는 동일한 할당 시간을 가지면서 할당 시간이 끝나면 가장 뒤의 레디 큐로 가게 된다.
- 장점은 Response time이 빨라진다.
- 단점은 할당 시간이 너무 커지게 된다면 FCFS와 비슷해진다. 또한 할당 시간이 너무 작다면 잦은 Context Switch가 발생한다.
SRT(Shortest Remaining Time)
💡 비선점 SJF를 선점으로 바꾸는 방법으로 실행 중인 프로세스가 있더라도 남은 실행 시간이 짧은 프로세스를 먼저 할당한다.
Priority Scheduling
💡 우선 순위가 가장 높은 프로세스에 할당하는 스케쥴링이다.
- Starvation - 우선 순위가 낮은 경우 영원히 실행되지 않는 프로세스가 있다.
- Aging - 우선 순위가 낮아 실행되지 않을 때는 시간이 지날수록 우선 순위를 높게 하여 실행될 수 있도록 한다.
'기술면접 > 운영체제' 카테고리의 다른 글
운영체제 8장 정리 데드락 DeadLock 교착상태 (0) | 2022.01.19 |
---|---|
운영체제 6장 정리 동기화 Race Condition Mutex Lock Semaphore (0) | 2022.01.19 |
운영체제 4장 정리 프로세스와 쓰레드 (0) | 2022.01.19 |
운영체제 3장 정리 메모리 (0) | 2022.01.19 |
운영체제 2장 정리 Opreating System Architecture (0) | 2022.01.19 |
댓글