CPU Scheduling
- 정의 : Main Memory 또는 Ready Queue에 프로세스들이 대기하고 있을때, 하나가 끝나고 다음것으로 넘어갈때 어느 프로세스를 선택할것인가를 결정하는 것
- Preemptive : 선점형
- CPU가 A 프로세스를 실행중에 있는데, Interrupt나 I/O가 발생하지 않았음에도 작업을 중단하고, Ready Queue에서 다른 프로세스를 가져와 실행하는 것
- Non-preemptive : 비선점형
- Preemptive와 반대의 개념
- A 프로세스에 CPU가 할당되어 있으면, Interrupt나 I/O가 발생하기 전까지는 절대 다른것으로 변경하지 않는것
- 스케줄링을 설정하는 기준
- CPU Utilization : CPU 이용률
- Throughput : 처리율
- Turnaround time : 반환시간
- 하나의 작업이 Ready Queue에 들어갔다가 작업을 종료할 때까지의 시간
- Waiting time : 대기 시간
- 프로세스가 CPU를 할당받기 위해 얼마나 대기해야하는가
- Response time : 응답 시간
- 대화형 시스템에서 주로 사용 (현재 대부분의 컴퓨터)
- 처음 응답이 나오는데 걸리는 시간
CPU Scheduling Algorithms
1. First-Come, First-Served(FCFS)
2. Shortest-Job-First(SJF)
3. Priority
4. Round-Robin(RR)
5. Multilevel Queue
6. Multilevel Feedback Queue
이어서 다음 포스팅 부터 각가의 CPU 스케줄링 알고리즘에 대해서 알아보도록 하겠습니다.