1. CPU 스케줄링 기본 개념
CPU 스케줄러
- 메모리에 있는 프로세스들 중 실행 준비가 되어있는 ready 상태의 프로세스를 선택하고, 그 프로세스에 CPU를 할당
CPU 스케줄링 결정은 다음의 4가지 상황에서 발생
- 한 프로세스가 실행 상태에서 대기 상태로 전환될 때 (Running -> Waiting)
- 프로세스가 실행 상태에서 준비 완료 상태로 전환될 때 (Running -> Ready)
- 프로세스가 대기 상태에서 준비 완료 상태로 전환될 때 (Wating -> Ready)
- 프로세스가 종료될 때 (Exit)
디스패쳐
- Context Switch
- 사용자 모드로 전환
- 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동
디스패치 지연 (Latency)
- 하나의 프로세스를 중지하고 다른 프로세스를 실행시킬 때 소요되는 시간
스케줄링 기준
- CPU 이용률 (Utilization) : CPU를 가능한 최대한 바쁘게 유지
- 처리량 (Throughput) : 단위 시간 당 완료된 프로세스의 개수
- 총 처리 시간 (Turnaround time) : 프로세스의 제출 시간과 완료 시간의 간격
- 대기 시간 (Wating time) : 준비 완료 큐에서 대기하면서 보낸 시간의 합
- 응답 시간 (Response time) : 하나의 요구를 제출한 후 첫 번째 응답이 발생할 때 까지의 시간
2. 스케줄링 알고리즘
선입 선처리 스케줄링 (First-come, First-Served, FCFS)
- CPU를 먼저 요청하는 프로세스가 CPU를 먼저 할당 받음
- FIFO 큐로 관리
장점 |
|
단점 |
|
최단 작업 우선 스케줄링 (Shortest-Job-First, SJF)
- CPU burst가 짧을 수록 CPU를 먼저 할당 받음
장점 |
|
단점 |
|
선점형 최단 작업 우선 스케줄링(Preemptive SJF)
- 새로 들어온 작업의 burst가 짧다면 현재 실행 중인 작업을 중단하고 burst가 짧은 작업을 수행
비선점형 최단 작업 우선 스케줄링(Non-Preemptive SJF)
- 현재 작업을 완료할 때까지 중단하지 않고 계속 작업을 한 뒤에 burst가 짧은 작업을 할당
우선 순위 스케줄링 (Priority)
- 우선순위가 프로세스들에 연관되어 있으며, 높은 우선순위를 가진 프로세스에게 CPU 할당
장점 |
|
단점 |
|
라운드 로빈 스케줄링 (Round-Robin)
- 시간 할당량(Time Quantum) 이라고 일컫는 작은 단위의 시간을 정의
- 1번에 한 프로세스에게 1번의 시간 할당량 동안 CPU를 할당
장점 |
|
단점 |
|
'CS > 운영체제' 카테고리의 다른 글
[운영체제-7] 메인 메모리 / 가상 메모리 (0) | 2021.11.11 |
---|---|
[운영체제-6] 프로세스 동기화 (0) | 2021.11.10 |
[운영체제-4] 스레드와 동시성 (0) | 2021.11.09 |
[운영체제-3] 프로세스 관리 (0) | 2021.11.09 |
[운영체제-2] 운영체제 구조 (0) | 2021.11.08 |