일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- hacking
- webhacking.kr
- Shell code
- wargame
- Payload
- BOF
- system hacking
- webhacking
- 네트워크
- 해킹
- Buffer Overflow
- PWN
- 운영체제
- stack overflow
- Spring
- Operating System
- OS
- Lord of BOF
- LOB
- Pwnable.kr
- pwnable
- Spring Framework
- 정보처리기사 실기
- 정보보안기사 실기
- 정보보안기사
- Spring MVC
- 웹해킹
- SQL
- System
- 워게임
- Today
- Total
DongDD's IT
Process Scheduling - Scheduler, Criteria, Scheduling algorithm, Multiple-processor 본문
Process Scheduling - Scheduler, Criteria, Scheduling algorithm, Multiple-processor
DongDD 2017. 10. 22. 17:16Process Scheduling
CPU Scheduler
- 메모리에 있는 실행할 준비가 된 Process를 선택해 CPU를 할당해줌
- CPU Scheduling은 4가지 경우에 일어날 수 있음
1) Running -> Waiting으로 상태가 변했을 때
2) Running -> Ready로 상태가 변했을 때
3) Waiting -> Ready로 상태가 변했을 때
4) Running -> Terminate로 상태가 변했을 때
- Dispatcher Module
-> short-term scheduler에 의해 선택된 프로세스에 대해 CPU 제어를 함
1) context switching이 일어났을 때
2) user mode로의 변환이 일어났을 때
3) 해당 프로그램을 재시작하기 위해 점프했을 때
Scheduling Criteria(기준)
1) CPU Utilization
- CPU의 이용률
2) Throughput
- 시간당 실행을 완료한 프로세스 수
3) Turnaround time
- 프로세스 완료 시간
4) Waiting time
- ready queue에 머무른 시간
5) Response time
- 요청 후 처음 Response가 올때 까지의 시간
Scheduling Algorithm
1) FCFS(First-Come, First-Serve)
- 먼저 도착한 프로세스 순으로 CPU를 할당하는 방법
- Process가 P1->P2->P3 순으로 들어왔을 때 들어온 순서대로 처리함
- Waiting time : P1 = 0, P2 = 10, P3 = 22
-> 만약 P1보다 CPU Burst Time이 더 짧은 P2, P3가 먼저 들어온다면 평균 Wating time이 감소한다.
Convoy effect
- 짧은 프로세스가 긴 프로세스보다 뒤에 처리되어 Waiting time이 길어져 CPU 이용률이 감소하는 현상
2) SJF(Shortest-Job-First)
- 도착한 프로세스 중 CPU Burst time이 가장 작은 프로세스를 먼저 처리하는 방법
- preemption과 non-preemption에서 다르게 작동함
1. preemption -> SRTF(Shortest-Remaining-Time-First)
- 수행되고 있던 프로세스가 있더라도 더 짧은 프로세스가 들어오면 현재 프로세스의 남은 시간이 더 길다면 새로운 프로세스로 CPU를 넘겨줌
- P1이 수행되던 도중 P2가 들어오는데 이 때 P1은 5가 남았고 P2는 4가 남았기 때문에 P2를 수행함
- P2 수행 도중 P3가 들어오지만 P2=P3이므로 그대로 P2 수행.
- P4가 들어왔지만 P3가 더 짧기 때문에 P3 수행
- P1의 남은 시간보다 P4가 더 짧기 때문에 P4를 수행하고 마지막에 P1을 수행함
2. non-preemption
- 더 짧은 프로세스가 오더라도 현재 수행중이라면 현재 수행중인 프로세스가 끝날때 까지 CPU를 넘겨주지 않음
- P1이 수행될 당시 다른 프로세스가 없기 때문에 P1이 수행되고 수행동안 다른 프로세스가 들어오더라도 끝날때 까지 계속함
- P1이 끝난 후에는 P2, P3, P4가 모두 들어와 있어 이때부터 가장 짧은 수행시간을 먼저함
- P2와 P4같이 같은 경우에는 먼저 들어온 프로세스 수행
- SJF의 단점 : Starvation이 일어날 수 있음
-> 긴 프로세스가 짧은 프로세스가 계속 들어오면서 수행될 수 없는 상태가 될 수 있음
-> 프로세스가 자원을 기다리고 있는 시간에 비례해 우선순위를 부여하는 Aging기법을 사용해 해결할 수 있음
3) Priority Scheduling
- 각각의 프로세스에 우선순위를 할당해 수행하는 방법
- 동적으로 priority를 부여하는 방법과 고정된 priority를 사용하는 방법이 있음
- 이 방법도 SJF와 마찬가지로 Starvation이 발생할 수 있고 마찬가지로 Aging 기법으로 해결 가능
4) RR Scheduling(Round-Robin)
- 특정한 시간(Time quantum)을 두어 해당 시간만큼만 수행 후 다른 프로세스에게 CPU를 주는 방법
- Time quantum이 큰 경우 FCFS와 같은 방식처럼 될 수 있고, 너무 작을 경우는 자주 일어나는 Context switching때문에 overhead가 커질 수 있음
- Time quantum = 5인 경우 5만큼 수행 후 다른 CPU에게 넘겨줌
- 계속 번갈아가며 수행함
5) Multilevel Queue
- 각 프로세스를 그룹에 따라 나눠 각기 다른 queue를 사용하는 방법
- Queue간의 우선순위를 나눔
6) Multilevel Feedback queue
- Multilevel queue와 마찬가지로 프로세스가 그룹에 따라 다른 queue로 나눠 우선순위가 생기지만프로세스들이 다른 큐로 이동할 수 있음
Multiple-Processor
1) Symmetric MultiProcessing(SMP)
- 모든 프로세서가 동등한 권한을 가지고 공유데이터를 가지고 있음
2) Asymmetric MultiProcessing
- 하나의 마스터 프로세서가 나머지 프로세서에 작업을 할당함
- 마스터 프로세서만 시스템 데이터에 접근 가능
Process Affinity(친밀도)
1. Soft Affinity : Affinity가 약해 다른 프로세서로 이동이 가능
2. Hard Affinity : Affinity가 강해 해당 프로세서에서만 수행 가능. 이동 불가
Load Balancing
1. Push migration
- CPU Utilization을 모너티랑 하는 프로세스가 imbalance한 이용률을 보고 Load가 약한쪽으로 작업을 옮김
2. Pull migration
- CPU가 스스로 자신의 Load가 약하다고 생각하면, 다른 프로세서의 작업을 가져옴