본문 바로가기
프로그래밍/CS

[운영체제] 스케줄링

by 엽기토기 2020. 12. 23.
반응형

비선점(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, 프로텍미디어

반응형