-
CPU 스케줄링Computer Science/Operating System 2021. 1. 10. 00:38
질문
5.1 기본 개념
- CPU 스케줄러가 하는 역할은 무엇인가요?
- CPU가 유휴 상태가 될 때마다, 운영체제는 준 비 큐에 잇는 프로세스 중에서 하나를 선택해 실행해야 합니다. 이러한 선택 절차를 수행하는 역할을 합니다.
- 선점 스케줄링과 비선점 스케줄링의 차이는 무엇인가요?
- 비선점 스케줄링에서는 CPU가 한 프로세스에 할당되면 프로세스가 종료하든지, 또는 대기 상태로 전환해 CPU를 방출할 때까지 점유합니다.
- 선점 스케줄링에서는 CPU가 어떤 프로세스가 종료되기 전 다른 프로세스에 할당할 수 있습니다.
- 디스패처란 무엇인가요?
- 디스패처란 CPU 코어의 제어를 CPU 스케줄러가 선택한 프로세스에 주는 모듈이며, 문맥 교환, 사용자 모드 전환 등의 역할을 수행합니다.
5.2 스케줄링 기준
- CPU 스케줄링 알고리즘을 비교하기 위한 기준은 어떤 것이 있나요?
- CPU 이용률 : CPU를 최대한 바쁘게 유지시키자
- 처리량 : 단위 시간 당 완료된 프로세스의 개수
- 총처리 시간 : 프로세스를 실행하는데 소요된 시간
- 대기 시간 : 준비 큐에서 대기하면서 보낸 시간의 합
- 응답 시간 : 하나의 요구를 제출한 후 첫 번째 응답이 나올 때까지의 시간
5.3 스케줄링 알고리즘
- FCFS 스케줄링이란?
- CPU를 먼저 요청하는 프로세스에게 먼저 할당하는 방법
- FIFO 큐를 이용해서 구현합니다다
- 진입 순서에 따라 평균대기 시간이 매우 길 수 있습니다.
- SJF 스케줄링이란?
- CPU 버스트 시간이 짧은 프로세스부터 CPU를 할당합니다.
- 최적의 수행 능력을 가지고 있지만 프로세스의 CPU 버스트 시간을 예상해야하기 때문에 구현이 어렵습니다
- RR 스케줄링이란?
- FCFS 스케줄링과 흡사하지만 시스템이 프로세스들 사이를 옮겨 다닐 수 있도록 선점이 추가됩니다.
- 시간 할당량을 정해서 CPU는 준비 큐를 돌면서 한 번에 한 프로세스에 한 번의 시간 할당량 동안만 CPU를 할당합니다.
- 시간 할당량을 작거나 크게 정함에 따라 성능이 정해지기 때문에 적절한 선택이 중요합니다
- 우선순위 스케줄링이란?
- 우선 순위가 높은 프로세스에 먼저 CPU를 할당하는 방법입니다. 우선 순위가 같다면 FIFO 방식으로 작동합니다
- 기아 상태란 무엇인가요?
- 우선 순위 스케줄링 알고리즘을 사용할 경우 낮은 우선순위 프로세스들이 CPU를 무한히 대기하는 경우가 발생합니다.
- 이를 방지하기 위해 오랫동안 시스템에서 대기하는 프로세스들의 우선순위를 점진적으로 증가시키는 방법을 사용합니다(aging)
요약
- CPU 스케줄링은 준비 큐에서 대기 프로세스를 선택하고 CPU를 할당하는 작업입니다. 디스패처에 의해 선택된 프로세스에 CPU가 할당됩니다.
- 스케줄링 알고리즘은 선점형 또는 비선점형으로 나뉩니다. 거의 모든 운영체제는 선점형입니다.
- FCFS 스케줄링은 가장 간단한 스케줄링 알고리즘이지만 짧은 프로세스가 매우 긴 프로세스를 기다리게 할 수 있습니다
- SJF 스케줄링은 최적이며 평균 대기시간이 가장 짧지만, 다음 CPU 버스트의 길이를 예측하기 어려우므로 구현하기는 어렵습니다.
'Computer Science > Operating System' 카테고리의 다른 글
메모리 관리 (0) 2021.01.14 교착 상태 (0) 2021.01.14 동기화 도구들 (0) 2021.01.10 스레드와 병행성 (0) 2021.01.10 프로세스 (0) 2021.01.10 - CPU 스케줄러가 하는 역할은 무엇인가요?