비선점(nonpreemptive)
프로세스가 일단 실행 상태에 진입하면 종료되거나 자발적으로 CPU를 놓을 때까지는 CPU를 빼앗기지 않음
선점(preemptive)
현재 실행 중인 프로세스라 할지라도 운영체제에 의해 인터럽트가 걸려 비자발적으로 준비 큐로 이동될 수 있음.
-프로세스 간 문맥교환(context switching)이 자주 발생하여 오버헤드가 큼. 그러나 한 프로세스가 CPU 오랫동안 독점하는 현상을 방지할 수 있음.
FCFS
비선점 모드
프로세스 들어온 순서대로 처리 - 큐
-프로세스 순서에 따라 평균 대기시간이 엄청 달라짐 (비효율)
Convoy Effect(호위효과) : 실행시간이 긴 프로세스가 끝날 때까지 짧은 프로세스가 계속 기다림
Round-Robin (RR)
선점 모드
time-slicing(quntum)기법
FCFS랑 비슷한데 각 프로세스당 time quntum을 할당하는 방식
ex) Q=1, 1이상 지체되면 끊어버리고 다음 프로세스.
프로세스 |
도착시간 |
서비스시간 |
A |
0 |
3 |
B |
2 |
6 |
C |
4 |
4 |
D |
6 |
5 |
E |
8 |
2 |
0 1 2 3 4 5 6 7 8
A A B A B C B D C
--------------------------------------
A B C B D C E
C B B
D
SPN(Shortest Process Next)
비선점 모드
nonpreemptive SJF라고도 함
SRT(Shortest-Remaining-Time)
선점 모드
preemptive SJF 라고도 함
남아있는 실행시간을 매 스케줄링마다 계산해야 되므로 비효율적
긴 프로세스가 기아 가능성
HRRN (Highest-Response-Ratio-Next)
비선점 모드
R=(w+s)/s
(w=waiting s=service)
출처: 운영체제 내부구조 및 설계원리 제8판, William Stallings, 프로텍미디어
'프로그래밍 > CS' 카테고리의 다른 글
[운영체제] 멀티 프로세스/멀티 쓰레드 시간분석 비교 프로그래밍 (2) | 2020.12.23 |
---|---|
[논리회로] 디코더와 인코더 (0) | 2020.12.23 |
[논리회로] 병렬가산기, 비교기 (0) | 2020.12.23 |
[논리회로] 조합논리회로, 전가산기 (0) | 2020.12.23 |
[자료구조] [C] 퀵 정렬 (quick sort) (0) | 2020.12.23 |