CPU Scheduling
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
- 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것
- 프로세스들에게 자원을 최대한 공평하게 배분하며 처리율과 CPU 이용률을 증가시키고, 오버헤드, 응답시간(Response time / Turnaround time), 대기시간을 최소화하기 위한 기법
- 특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에 CPU 교체가 일어남
- 선점형 스케줄링(Preemptive Scheduling) 과 비선점형 스케줄링(Non-preemptive / Cooperative Scheduling) 이 있음
- 메모리에 여러 개의 프로세스를 올려놓고(다중 프로그래밍), CPU의 가동시간을 적절히 나누어(시분할) 각각의 프로세스에게 분배하여 실행
CPU Scheduling 주요 용어
용어 | 설명 |
서비스 시간 | 프로세스가 결과를 산출하기까지 소요되는 시간 |
응답시간 (Response Time) | 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지 소요되는 시간 |
반환시간 (Turnaround Time) | 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간 반환시간 = 대기시간 + 수행시간 |
대기시간 | 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간 프로세스가 도착 즉시 프로세서에 할당되면 대기시간 '0'이 됨 |
평균 대기시간 | 프로세스가 대기 큐에 대기하는 평균 시간 대기시간이 '0'인 프로세스도 평균 대기시간에 합산하여 결과 도출 |
종료시간 | 요구되는 Processing time을 모두 수행하고 종료된 시간 |
시간 할당량 (Time Quantum / Time Slice) | 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량 |
응답률 | (대기시간 + 서비스 시간) / 서비스 시간 HRN(Highest Response ratio Next) 스케줄링에서 사용 HRN 스케줄에서 응답률이 높으면 우선순위가 높다고 판단 |
Scheduling의 유형
1 . Preemptive Scheduling (선점형 스케줄링)
: 하나의 프로세스가 CPU를 차지하고 있을때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식. 즉, 프로세스가 정상적으로 수행중인 가운데 다른 프로세스가 CPU를 강제로 점유하여 실행할 수 있음.
2. Non -Preemptive (비선점형 스케줄링)
: 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU반환 시까지 다른 프로세스는 CPU점유가 불가능한 스케줄링 방식
CPU Scheduling Algorithms
1) 선점형 스케줄링 알고리즘 유형
1. Round-Robin (RR)
- 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기중인 다음 프로세스로 넘어간다
- 균등한 CPU 점유시간
- 시분할 시스템을 이용
2. SRT (Shortest Remaining Time First)
- 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
- 짧은 수행시간 프로세스 우선 수행
2) 비선점형 스케줄링 알고리즘 유형
1. First - Come, First - Served(FCFS)
- 가장 먼저 요청한 프로세스에 CPU를 할당해주는 방식이다.
- 비선점형(Non-preemptive) 스케줄링이다.
- 작성이 간단하고 이해하기 쉽다.
- 평균 대기 시간(Average Waiting Time)이 길어질 수 있다.
- 응답 시간(Response Time)이 길어질 수 있다.
- 반환시간(Turnaround Time) 면에서는 좋을 수 있다.
- Convoy Effect(호위 효과)가 발생할 수 있다.
- FIFO 알고리즘 이라고도 한다.
2. SJF (Shortest Job First)
- 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
- 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기시간 최소
- CPU 요구시간이 긴 작업과 짧은 작업 간의 불평등이 심하여, CPU 요구 시간이 긴 프로세스는 기아 현상이 발생
참고)
'🍋 CS' 카테고리의 다른 글
1장. 네트워크 기초 (0) | 2023.08.27 |
---|---|
운영체제 - 메모리(Memory) (0) | 2023.04.18 |
운영체제 - 공유자원 & 임계구역 (0) | 2023.04.11 |
운영체제 - 프로세스간 통신 (0) | 2023.04.11 |
운영체제 - 프로세스 관리 (0) | 2023.03.31 |