반응형
CPU 스케줄링
- CPU가 대기 중인 프로세스들을 어떤 순서로 처리할지 결정하는 작업이다.
CPU 스케줄링 방법 결정 기준
- CPU의 입장과 CPU 할당을 기다리는 프로세스들의 입장을 고려해야 하며, 각 기준들은 보통 Trade-off 관계에 있으므로 절대적으로 좋은 스케줄링 방법이 고정되지 않는다.
(for CPU의 기준들을 높이면서, for PROCESS의 기준들을 낮추는 것이 목표)
for CPU
- CPU 이용률(CPU Utilizaiton) : 시스템 사용 (총 or 특정) 기간 동안의 실제 CPU 사용률
- 처리량(Throughput) : 단위 시간당 작업을 마친 프로세스 개수
for PROCESS
- 반환 시간, 총 처리 시간(Turn-around Time) : 프로세스가 요청한 시간 부터 프로세스 종료까지의 총 시간
- 대기 시간(Waiting Time) : 프로세스가 대기 큐에서 CPU할당을 기다린 시간
- 프로세스가 스케줄링 방법에 따라 (대기 큐 → CPU할당 → 대기큐 ...)처럼 여러번 CPU할당이 반복되면 대기 시간도 여러개 존재한다.
- 응답 시간(Response Time) : '최초'로 CPU를 할당 받기까지 기다린 시간
- 프로세스 마다 한 번 계산된다. 처음 CPU를 점유하는데 걸린 시간이다.
CPU 스케줄링 방식
- 선점형(Preemptive) 방식과 비선점형(Non-Preemptive) 방식이 있다.
비선점형 방식
- 인터럽트 발생이 아닌 이상, 현재 CPU에서 처리 중인 프로세스가 끝나기 전까지 다른 어떤 프로세스도 CPU를 점유 할 수 없다.
- FIFO(First In First Out = FCFS : First Come First Served) : 먼저 요청한 프로세스 순서대로 처리한다.
- SJF(Shortest Job First) : 총 처리 시간이 짧은 프로세스를 우선으로 처리한다.
- 처리 시간이 상대적으로 짧은 프로세스들의 요청이 지속되면 처리 시간이 긴 프로세스는 기아 현상(Starvation)에 빠진다.
- HRN(Hightest Response-Ratio Next) : SJF 기반에 aging기법을 추가하여 기아 현상을 방지한 방법이다.
- 우선순위 = (응답 대기 시간 + 총 처리시간) / 총 처리 시간
선점형 방식
- 특정 우선 순위에 따라 요청(또는 대기 중인) 프로세스가 현재 CPU에서 처리 중인 프로세스를 강제로 밀어내고 CPU를 점유 할 수 있다.
- SRT(Shortest Remaining Time) : SJF과 같지만 선점이 가능하다.
- 처리 시간이 더 짧은 프로세스가 선점
- RR(Round-Robin) : 모든 프로세스들이 같은 Priority를 가지며, 정해진 단위 시간을 기준으로 모든 프로세스를 번갈아 처리한다.(= 대기 큐에 있는 프로세스들을 순서대로 순회하며 정해진 단위 시간씩 처리)
- 단위 시간이 심하게 길어지면 FIFO와 같아진다.
- 단위 시간이 심하게 짧아지면 switching하며 발생하는 overhead가 증가하여 비효율을 초래한다.
- MQ(Multilevel Queue) : 프로세스들을 우선순위에 따라 그룹으로 나눌 수 있다면, 그룹별로 다른 대기 큐를 사용한다. 그리고 (우선 순위가 높은 그룹이 대기하고 있는 큐 → 우선 순위가 낮은 그룹의 큐) 순서로 우선 순위를 가지며 선점을 할 수 있다.
- 각 큐들은 서로 다른 방식으로 스케줄링 될 수 있다.
- 큐마다 스케줄링 방식, CPU 점유 시간 등을 다르게 적용 가능
출처 : http://itnovice1.blogspot.com/2019/08/multi-level-queue.html
- 큐마다 스케줄링 방식, CPU 점유 시간 등을 다르게 적용 가능
- 각 큐들은 서로 다른 방식으로 스케줄링 될 수 있다.
- MFQ(Multilevel Feedback Queue) : MQ와 마찬가지로 여러 대기큐가 존재한다. 대기 큐들은 각각 CPU 점유 시간이 다르며, 우선 순위가 높은 큐일수록 할당 시간(Time Quantum)이 적다. 만약 정해진 할당 시간 안에 프로세스가 완료되지 않으면 해당 프로세스는 한 단계 하위 우선 순위 대기 큐로 보내진다.
- 만약 낮은 우선 순위 대기 큐에서 대기 시간이 너무 길어지면 상위 대기 큐로 이동한다.(기아 현상 방지)
출처 :
https://jwprogramming.tistory.com/17
https://bnzn2426.tistory.com/65
반응형
'IT study > Notebooks' 카테고리의 다른 글
Computer Science 정리 notion (0) | 2021.07.13 |
---|---|
DB - Index (0) | 2021.05.03 |
OS - paging and Segmentation (0) | 2021.04.30 |
OS - Global Interpreter Lock(feat. python) (0) | 2021.04.21 |
DB - Transaction (0) | 2021.04.15 |