1. CPU Scheduing
CPU 스케쥴링이란 메인 메모리에 올라와 있는 프로세스들이 CPU의 자원을 할당받기 위해 Ready Queue에 줄서있는 것을 말한다.
1) Preemptive vs Non-preemptive (선점 : 비선점)
실행 중인 프로세스를 도중에 끄고 스케쥴링하는 방법을 Preemptive라 한다. Non-preemptive 이면 하나의 프로세스가 모두 끝날때까지 다른 프로세스들은 계속 기다려야만 한다.
2) Scheduling criteria
어떤 스케쥴링 방식이 더 좋은가 판단하는 척도에는 다섯 가지가 있다.
- CPU Utilization(CPU 이용률) : CPU가 얼마나 놀지 않고 일하는가
- Throughput(처리율) : 단위 시간당 몇개의 작업을 처리하는가
- Turnaround time(반환 시간) : 어떤 프로세스가 작업을 끝나고 반환되기까지 걸리는 시간
- Waiting time(대기 시간) : CPU 처리를 받기 위해 얼마나 기다렸는가
- Response Time(응답 시간) : 처음 응답이 나올 때까지 걸리는 시간, 주로 대화형 컴퓨터에서 척도로 사용한다.
2. CPU Scheduling 알고리즘 종류
1) FCFS(First-Come, First-Served)
2) Shortest-Job-First(SJF)
- Shortest-Remaining-Time-First
3) Priority
4) Round-Robin(RR)
5)Multilevel Queue
6) Multilevel Feedback Queue
3. FCFS (First-Come, First-Served)
FCFS란 먼저 온 프로세스를 처리하는 CPU 스케쥴링 방식이다.
- Simple&Fair : 즉, 간단하고 공평하다는 장점이 있다.
- 비선점 (Nonpreemptive scheduling) 이기에 다른 프로세스가 도중에 끼어들 수 없다.
그러나, AWT(Average Wating Time) 평균 대기 시간 면에서 비효율적일 수 있다는 단점이 있다.
P1, P2, P3의 처리 시간이 각각 24, 3, 3이라고 가정해보자.
FCFS의 경우 들어온 순서대로 처리하기 때문에 p1,p2,p3 순으로 처리한다. 이 경우 평균 대기시간은 (0 + 24 + 27) / 3 = 17msec 가 나온다. 그러나 p2, p3, p1 순서대로 처리했다면 (0 + 3 + 6) / 3 = 3msec 로 줄어들게 된다.
즉, 들어온 순서대로 처리하면 앞 순번의 프로세스가 상대적으로 오래 걸릴 경우 뒷 순번의 프로세스는 계속 기다려야 하기 때문에 평균 대기 시간이 늘어난다는 단점이 있다. 이 모양이 마치 다른 프로세스들이 시중처럼 따라다닌다고 하여 호위효과(Convoy Effect)라고도 한다.
'Programming > 운영체제' 카테고리의 다른 글
CPU 스케쥴링 알고리즘(3) - Multilevel Queue Scheduling, Multilevel Feedback Queue Scheduling (0) | 2021.07.25 |
---|---|
CPU 스케쥴링 알고리즘(2) - SJF, Priority, Round-Robin (0) | 2021.07.25 |
프로세스 관리 (Process Management) (0) | 2021.07.23 |
운영체제 서비스 (0) | 2021.07.13 |
이중모드, 하드웨어 보호 (0) | 2021.07.13 |