CPU 스케쥴링은 멀티프로그래밍의 기본이다.
CPU 이용률을 최대화하는 것이 multi-programming의 목적이다.
스케쥴링 기법
운영체제가 프로세스를 프로세서에 할당하는 것을 디스패치(Dispatch)라고 한다. 그리고 운영체제가 레디 큐에 있는 프로세스들 중에서 어떤 프로세스를 디스패치할 것인가 정하는 것이 프로세스 스케줄링(Process scheduling)이다.
스케줄링 알고리즘에는 대표적으로 FCFS, SJF, SRF, RR 네 가지 방식이 있고, 알고리즘을 평가할 때는 수행 시간(Burst time)과 CPU 사용량(CPU utilization), 단위 시간 당 끝마친 프로세스의 수(Throughput), 하나의 프로세스가 레디 큐에서 대기한 시간부터 작업을 마칠 때까지 걸리는 시간(Turnaround time), 프로세스가 레디 큐에서 대기한 시간(Wating time), 프로세스가 처음으로 CPU를 할당받기까지 걸린 시간(Response time)을 기준으로 한다.
선점(Preemptive) 방식과 비선점(Non-Preemptive) 방식으로 나뉜다. 선점 스케줄링은 운영체제가 강제로 프로세스의 사용권을 통제하는 방식이고, 비선점 스케줄링은 프로세스가 스스로 다음 프로세스에게 자리를 넘겨주는 방식이다. 즉, 선점 스케줄링 방식에서는 CPU에 프로세스가 할당되어 있을 때도 운영체제가 개입해 다른 프로세스에게 CPU를 할당할 수 있다.
FCFS, SJF, SRF, RR, 우선순위 스케쥴링 기법의 각 설명과 간트 차트를 통한 시간 계산은 아래의 페이지에서 볼 수 있다.
🦕 공룡책으로 정리하는 운영체제 Ch.5: Process Scheduling
운영체제가 어떤 프로세스를 프로세서에 할당할 것인가 정하는 프로세스 스케줄링(Process scheduling)에 대해 다루는 챕터다. FCFS, SJF, RR 등 다양한 프로세스 스케줄링에 대해 소개한다.Scheduling Criter
parksb.github.io
'TABA > 운영체제' 카테고리의 다른 글
[공룡책] Ch7. Synchronization examples (0) | 2024.01.23 |
---|---|
[공룡책] Ch6. Synchronization tools 정리 (0) | 2024.01.23 |
[공룡책] Ch4. Threads & Concurrency 정리 (0) | 2024.01.12 |
[공룡책] Ch3. Process 정리 (0) | 2024.01.12 |
[공룡책] Ch2. Operating system structures 정리 (0) | 2024.01.12 |