1. CPU 스케줄러란?
준비큐에 있는 프로세스에게 CPU를 할당하는 방법을 CPU 스케줄러 라고 한다.
참고로 프로세스는 메모리와 CPU를 할당받아 사용된다.
2. CPU 스케줄러가 왜 필요할까?
만약 카카오톡을 왼쪽 화면에 켜놓고 대화를 보며
유튜브를 듀얼 모니터에 켜놓고 오른쪽 화면에는 게임을 켜놨다고 가정하자.
그럼 카카오톡, 유튜브, 게임을 동시에 하고 있는 것 처럼 느끼지만
사실 아니다.
이 3개의 프로그램은 CPU에서 각 하나 씩 잠깐 실행되는 단계를 정말 빠른 속도로
진행하고 있어서 인간의 눈으로는 인식을 못하고 동시에 실행되는 것 처럼
보이는 것이다.
그럼 동시에 실행되는 것 처럼 빠르게 프로그램을 CPU에 할당하기 위해
어떤 방법이 필요할텐데 이를 CPU 스케줄러 라고한다.
3. CPU 스케줄러의 종류
CPU 스케줄러는 크게 비선점 스케줄링과 선점 스케줄링으로 나뉜다.
비선점 스케줄링은 말 그대로 프로세스가 실행되고 있는 도중엔 선점할 수 없고
반대로 선점 스케줄링은 프로세스가 실행되고 있어도 선점할 수 있다.
비선점 스케줄링의 종류
- FCFS (First Come First Served)
먼저 CPU를 요청하는 프로세스를 먼저 처리
- SJF (Shortest Job First)
평균 대기 시간을 최소화하기 위한 방식으로
버스트 시간이 짧은 프로세스부터 CPU 할당
선점 스케줄링의 종류
- SRT (Shortest Remaining Time)
최단 잔여시간을 우선으로 하는 방식으로
프로세스가 진행중이라도, 최단 잔여시간 프로세스를 먼저 할당한다.
- RR (Round Robin)
모든 프로세스를 공평하게 실행하기 위한 방식으로
모두 같은 우선순위를 가지고, Time slice를 기반으로 한다.
Time slic burst가 일어난 프로세스는 스케줄링 큐의 끝으로 이동한다.
최악의 경우 FCFS와 효율이 같고 Time slice가 너무 작다면 Context Switch가 많이 일어난다.
-> 프로세스를 처리하는 것보다 이사 비용이 더 들 수 있음 (ex)Time slice = 0.1초
- Priority Scheduling
우선 순위가 높은 프로세스에 CPU를 우선 할당
'간단한 IT 지식' 카테고리의 다른 글
[오늘의 지식] OSI 7계층 (0) | 2024.04.18 |
---|---|
[오늘의 지식] 데드락 (0) | 2024.04.17 |
[오늘의 지식] 프로세스와 스레드 (0) | 2024.04.11 |
[오늘의 지식] 트리의 순회 (0) | 2024.03.08 |
[오늘의 지식] 해시 테이블(Hash Table) (3) | 2024.03.07 |