[운영체제] 프로세스 관리[2]
복기
- Backing Store == Swap Device
-
하드의 일정 공간을 Midium Scheduler가 Swap In/Out 할 프로그램들의 예비 저장 공간.
- Context Switching in OS
-
CPU 실행이 프로세스 1에서 2로 전환 발생.
Dispatcher: CPU Scheduler가 프로세스간 전환 실행을 할 때,
현 프로세스의 상태를 각 프로세스당 할당된 PCB에 저장해두어야한다.
즉 기존 Context 를 저장하고, 새로운 Context를 가져온다.
이 역할을 Dispatcher가 맡는다.
P1에서 P2로 넘어갈 때마다. Context Switching Overhead 발생.
Overhead는 속도를 위해 어셈블리어같은 Low Level Lang 작성.
- CPU Scheduling
방식
Preemptive Vs. Non-preemptive.
Preemptive - 기존의 실행중인 프로세스가 한창 진행중인 상황에서도 강제로 끊고,
Ready Queue의 다음 프로세스를 실행.
(응급상황 병원진료 – 갑자기 응급환자가 들어오면.. 일반 환자는 놔두고 응급환자를 본다.)
Non-preemptive - 실행중인 프로세스가 실행을 마치지 않는 한, 끊지 않는다.
(일반적인 병원 진료— 진료 받는 도중에 환자를 쫓아내지 않는다.)
Scheduling Criteria (척도)
- CPU 이용률 – CPU가 놀지 않는지.. - %
- Throughput (처리율) – 단위 시간당 일 처리량. - Jobs / sec
- Turn around(반환시간) –
- Wating Time(대기시간) – CPU 서비스를 위해 Ready Queue에서 대기한 시간 - sec
- Response Time(응답시간) –
CPU Scheduling 종류들
-
FCFS - First-Come, First-Served
-
간단하고, 공평하다. 하지만 최선일까??
-
3명의 친구가, 은행에 방문.. 번호표 뽑는다.
P1: 24msec, P2:3msec, P3:3msec
P1 - P2 - P3 순서인 경우.
AVG Waiting Time: (0 + 24 + 27)/3 = 17.xx
더 줄일 방법이 없나??
P3 - P2 - P1 을 하면?
AVG Waiting Time: (0 + 3 + 6) /3= 3
후자가 낫네???
-
평균대기시간 입자에서 보면 짧은 일을 우선 처리하는게 낫다.
-
Convoy Effect: 오래걸리는 Job이 앞설 때, 작은일들이 대기하면서 뒤따르는 모양새.
-
Non-preemptive 유형.
-
-
SJF - Shortest - Job - First
-
이상적이나, 현실적이지 못하다.
왜? 프로세스가 얼마나 걸릴지는 돌려보지 않는 한.. 알 수 없다.
-
-
Time Sharing
Time Quantam ==> 0
적절한 Time Quantum 을 찾는 것이 중요.