(OS) CPU 스케줄링👨🏻💻 programming/◽ 운영체제2022. 12. 13. 11:09
Table of Contents
728x90
CPU 스케줄링 (CPU Scheduling)
- 프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정합니다.
- CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready queue)에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 합니다.
- 선점형 스케줄링과 비선점형 스케줄링이 있습니다.
※ CPU란 ?
CPU(Central Processing Unit)는 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치를 말하며, 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼입니다.
1. 비선점형 방식 (non-preemptive)
프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않습니다. 따라서 컨텍스트 스위칭으로 인한 부하가 적습니다. 모든 프로세스에 대한 요구를 공정하게 처리할 수 있지만 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기해야할 수도 있습니다.
FCFS / FIFO ( Frist Come, First Served / First In Frist Out) |
✔ 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 ✔ 단점: 길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상(convoy effect)이 발생 |
SJF ( Shortest Job First ) |
✔ 실행 시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘 ✔ 단점: 긴 시간을 가진 프로세스가 실행되지 않은 기아 현상이 일어나며 평균 대기 시간이 가장 짧음. |
우선순위 ( Priority ) |
✔ 각 프로세스 별로 우선순위를 할당하고, 우선순위에 따라 cpu를 할당하는 알고리즘 ✔ SJF 스케줄링의 경우 긴 시간을 가진 프로세스가 실행되지 않는 현상이 있다. 우선순의를 부여함으로서 단점을 보완한 알고리즘 |
2. 선점형 방식 (preemptive)
현대 운영체제가 쓰는 방식이며, 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스에 cpu 소유권을 할당하는 방식입니다. 비교적 응답이 빠른 장점이 있지만 높은 우선순위 프로세스들이 계속 들어오는 경우 오버레드를 초래합니다.
라운드로빈 ( RR, Round Robin ) |
✔ 현대 컴퓨터가 쓰는 스케줄링인 우선순위 스케줄링(priority scheduling)의 일종 ✔ 각 프로세스는 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 준비 큐 (ready queue)의 뒤로 가는 알고리즘 |
SRF ( Shortest Remain Time ) |
✔ SRF는 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘 |
다단계 큐 ( MLQ, MultiLevel Queue ) |
✔ 우선순위에 따른 준비 큐를 여러 개 사용하고, 큐마다 라운드 로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용한 것 ✔ 큐 간의 프로세스 이동이 안 되므로 스케줄링 부담이 적지만 유연성이 떨어지는 특징이 있다 ✔ 각 큐는 자신만의 독자적인 스케줄링을 가진다. |
Reference.
도서: 면접을 위한 CS 전공지식 노트 (길벗, 주홍철)
블로그: 흔들리며 피는 꽃 - [운영체제] CPU 스케줄링 (선점 & 비선점) (tistory.com)
728x90
'👨🏻💻 programming > ◽ 운영체제' 카테고리의 다른 글
(OS) 네트워크 기기 (3) | 2022.12.14 |
---|---|
(OS) TCP/IP, UDP 계층구조, OSI (2) | 2022.09.20 |
(OS) 네트워크 기초 (0) | 2022.09.07 |
(OS) 프로세스와 스레드 (1) | 2022.08.03 |
(OS) 운영체제와 메모리 (0) | 2022.07.29 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!