[Chapter 09] 스케줄링 알고리즘과 우선순위

·2022년 10월 27일

※ 아래는 윤성우 뇌를 자극하는 윈도우즈 프로그래밍 한빛미디어(주) 2022년
Chapter09(p.293 ~ 315)를 읽고 정리한 내용입니다.

01 응답성 관점에서 RTOS와 일반 OS의 구분

RTOS(실시간 운영체제)와 일반 OS를 구분 짓는 기준을 단순히 속도로 정의하면 안 된다.
속도와는 별도로 응답성의 관점에서 이 둘을 구분해야 한다.
응답성이 좋으면 RTOS라 한다.
일반적으로 응답성이 좋을수록 둘 이상의 일을 동시에 처리하는 멀티 프로세스의 성격이 약하다.
-> Soft RTOS

데드라인이 중요한 시스템에서 이를 충족시킬 수 있는 능력을 지닌 RTOS를 Hard RTOS라 한다.
(예) 자동차의 ABS 시스템 등 0.1초라도 늦게 동작하면 안되는 경우

02 선점형 OS와 비선점형 OS의 특징

선점형 OS는 현재 실행 중인 프로세스보다 높은 우선순위의 프로세스가 등장하면 그 순간
바로 실행중인 프로세스를 변경해 버린다.
비선점형 OS는 우선 순위가 높은 프로세스가 등장하더라도 현재 실행 중인 프로세스가
일을 넘기지 않으면 프로세스의 실행이 이동하지 않는다.

03 스케줄러가 동작하는 세 가지 시기

(1) 퀀텀 혹은 타임 슬라이스(Time Slice)마다 (라운드 로빈 스케줄링 알고리즘)
(2) 프로세스가 생성 및 소멸될 때 마다 (우선순위 스케줄링 알고리즘)
(3) 현재 실행 중인 프로세스가 블로킹 상태에 놓일 때 마다

(참고) 기아 상태(Starvation)
우선순위 스케줄링에서 우선 순위가 낮은 프로세스가 절대로 실행되지 않는 상태에 빠지는 것

04 Priority Inversion

우선 순위가 아래와 같은 프로세스가 있다.

프로세스 A > 프로세스 B > 프로세스 C

프로세스 C가 계산해서 던져주기로 한 값이 도착하지 않았기 때문에 프로세스 A가 작업을 멈췄다.
A는 Blocked 상태에서 C가 값을 던져주길 기다렸지만 우선순위가 높은 B에 의해 B의 작업이
이루어 지고 있다.
-> 해결 방법 : 프로세스 A가 프로세스 C에게 자신의 우선순위를 잠시 위임하고 Blocked 상태에 빠지면 된다.

0개의 댓글