티스토리 뷰
CPU 스케쥴링
CPU 스케쥴링이 일어나는 시점
Non Preemptive (비선점) | 일단 CPU가 프로세스에 할당되면, 프로세스가 종료하던가 또는 대기상태로 전환해 CPU를 해제할 때까지 CPU를 점유하는 방법. 모든 프로세스에 대해서 공정한 처리가 가능하지만 긴급 응답을 요하는 작업에는 좋지 못하다. 짧은 작업이 긴 작업이 끝날 때까지 기다리는 문제점이 생길 수 있다. |
- 실행상태 → 대기상태 : 입출력 요청 - 종료될 때 | |
예) FCFS, SJF, HRN | |
Preemptive (선점) | 한 프로세스가 CPU를 차지하고 있을 때, 다른 프로세스가 현재의 프로세스를 중지시키고, CPU를 차지할 수 있도록 하는 방법. 긴급을 요하는 우선순위를 갖는 시분할 처리로 실시간 처리에 유용하다. |
- 실행상태 → 준비상태 : 인터럽트 발생할 때 - 대기상태 → 준비상태 : 입출력이 종료될 때 | |
예) RR, MLQ, MFQ |
Running 상태의 CPU를 빼앗는 경우는 없다. CPU자원을 잃는 경우는 대기, 준비, 종료 상태이다.
CPU 스케쥴링 종류
FCFS(First-Come, First-Served) 스케쥴링
SJF(Shortest Job First) 스케쥴링
Ready Queue에 있는 작업 중 작은 프로세스(처리시간이 짧은 프로세스)부터 자원을 할당한다.
선점형으로는 할당받을 당시엔 Burst(처리시간)가 가장 작은 프로세스라 자원을 할당 받았지만, 작업 중에 Ready Queue에 들어온 프로세스가
남은 Burst보다 더 작은 Burst를 가진다면 자원을 빼앗아 그 짧은 작업부터 처리하는 방식이다. Average Waiting Time이 줄어든다.
비선점형은 할당받을 당신에 Ready Queue에 있는 프로세스 중 Burst가 가장 작은 프로세스가 자원을 할당 받고
이 프로세스가 모두 끝난 후에 다른 프로세스에게 자원을 할당하는 것이다.
Non Preemptive SJF라고도 불리나 SRF(Shortest Remaining Time First)스케쥴링이라고도 한다.
- 장점 : 최소의 Average Waiting Time을 실현할 수 있다.
- 단점 : Starvation이 생길 수 있다.
- 해결법 : Aging
RR(Round Robin) 스케쥴링
HRN(Highest Response ratio Next) 스케쥴링
MLQ(Multi Level Queue) 스케쥴링
MFQ(Multilevel Feedback Queue) 스케쥴링
참고
convoy effect
Starvation
Aging
'interview > OS' 카테고리의 다른 글
[운영체제] RAID 종류 (0) | 2018.11.20 |
---|---|
[운영체제] 쓰레드 동기화, 세마포어(Semaphore), 뮤텍스(Mutex) (0) | 2018.06.20 |
[운영체제] Micro Kernel / Monolithic Kernel (1) | 2018.06.19 |
[운영체제] 데드락(교착상태) (1) | 2018.06.19 |
[운영체제] 프로세스와 스레드 (1) | 2018.06.19 |
- Total
- Today
- Yesterday
- 운영체제
- C++
- DATABASE
- 윈도우
- Android
- windows
- 백준
- adapter
- OS
- WinDbg
- HTTP
- listview
- handshake
- 알고리즘
- layout
- 퀵정렬
- 백준알고리즘
- 네트워크
- 스프링부트
- 스프링
- LinearLayout
- debug
- C
- 정렬 알고리즘
- BOJ
- 이진탐색트리
- RelativeLayout
- ConstraintLayout
- frameLayout
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |