process scheduling

궁금한 점이나 오류는 댓글로 달아주시면, 답변 혹은 수정하겠습니다! “:)”

종류 Abbr 방법 특징 선점/비선점
RR Round Robin FCFS 방식의 변형으로 일정한 시간을 부여하는 방법 시분할 방식에 효과적
할당 시간이 크면 FCFS와 동일
할당 시간이 작으면 문맥 교환이 자주 발생
선점
SRT Shortest Remaining Time 수행도중 나머지 수행 시간이 적은 작업을 우선적으로 처리하는 방법 처리는 SJF와 같으나 이론적으로 가장 작은 대기 시간이 걸림 선점
MLQ Multi-Level Queue 서로 다른 작업을 각각의 큐에서 타임 슬라이스로 처리한다. 각각의 큐는 독자적인 스케줄링 알고리즘을 사용 선점
MFQ Multi-Level Feedback Queue 하나의 준비 상태 큐를 통해서 여러 개의 피드백 큐를 걸쳐 일을 처리한다. CPU와 I/O 장치의 효율을 높일 수 있음 선점
우선순위   우선순위를 할당해 우선순위가 높은 순서대로 처리하는 방법 정적 우선순위
동적 우선순위
비선점
기한부   프로세스가 주어진 시간 내에 작업이 끝나게 계획하는 방법 마감 시간을 계산해야 하므로 막대한 오버헤드와 복잡성이 발생 비선점
FCFS First Come First Serve 작업이 시스템에 들어온 순서대로 수행하는 방법 대화형에 부적합
간단하고 공평함
반응 속도를 예측 가능
비선점
SJF Shortest Job First 수행 시간이 적은 작업을 우선적으로 처리하는 방법 작은 작업에 유리하고 큰 작업은 시간이 많이 걸림 비선점
HRN Highest Response-ratio Next SRT의 큰 작업이 시간이 많이 걸리는 점을 보완한 방법이다. 우선순위 = (대기시간 + 버스트시간) / 버스트시간 비선점

프로세스PID 실행시간 대기시간
P1 30 40
P2 50 30
P3 10 20

우선순위 계산
P1 = (40 + 30)/30 = 2.3
P2 = (30 + 50)/50 = 1.6
P3 = (20 + 10)/10 = 3.0

P3 P1 P2
0 10 40 90

평균실행시간 : (10 + 30 + 50)/3 = 30
평균대기시간 : (0 + 10 + 40)/3 = 16.67
평균반환시간 : (10 + 40 + 90)/3 = 46.67