2018년 12월 25일 <선점형과 비선점형 스케줄러>
선점형과 비선점형 스케줄러
> 선점형 스케줄러 (Preemptive Scheduling) : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음
> 비선점형 스케줄러 (Non-preemptive Scheduling) : 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
+ 시분할 시스템이 안됨
+ 프로세스가 상태를 자체적으로 wait 또는 end 로 들어가지 않으면 다른 프로세스를 실행 시킬 수 없음
+ 과거에 기본이였지만 후에 선점형 스케줄러를 주로 씀, 프로세스를 중단할 때 여러가지 고려해야할게 많아서 힘들었음
선점형과 비선점형 스케줄러 차이
> 비선점형 : 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을때 (end)만, 다른 프로세스로 교체 가능
+선점형이 훨씬 효율적이고 더 좋음
> 선점형 : 프로세스 running 중에 스케줄러가 이를 중단시키고, 다른 프로세로 교체 가능하다
EX )
Process 1 : 1 1 1
Process 2 : 2 . . . 2 2
Process 3 : 3 3 . . . 3
시분할2칸 |
|
|
|
|
|
|
||||||
비선점형 |
1 |
1 |
1 |
2 |
3 |
3 |
|
2 |
2 |
3 |
|
|
선점형 |
1 |
1 |
2 |
3 |
1 |
3 |
2 |
2 |
|
3 |
|
|
*스케줄링 알고리즘에 따라 다를수 있음
-> 차이점
- 앞부분에 비선점형에 경우 만약 Process 1의 CPU 실행 시간이 길다고 한다면 나머지 프로세스들은 지연되고 응답시간은 길어진다.
- 선점형에 경우 Process 1의 CPU 실행 시간이 길다고 해도 중간에 중단 시키므로 다른 프로세스들이 골구로 돌아간다. 즉 응답시간이 짧아진다.
'군대에서 한것 > Operating System' 카테고리의 다른 글
190102&0109/21~22/인터럽트 종류 & 인터럽트 내부 동작 (0) | 2019.01.02 |
---|---|
190101/19~20/스케쥴링 알고리즘 조합 & 인터럽트란 (0) | 2019.01.01 |
181223/17/프로세스 상태기반 스케줄링 알고리즘 기본 (0) | 2018.12.23 |
181221/16/프로세스 상태와 스케줄러 (0) | 2018.12.21 |
181220/15-2/스케쥴링 알고리즘 기본2 (0) | 2018.12.20 |