Computer Science 기본 지식/운영체제

[운영체제] OS관련 용어

로파이 2021. 10. 4. 12:49

기본적인 OS관련 용어를 정리한다.

 

RTOS vs OS

RealTime OS는 일반 OS보다 반응 속도가 빠른 운영체제를 지칭한다. 주로 반응 속도가 중요한 시스템에서 사용되며 범용적인 역할을 하는 OS보다 할 수 있는 일이 제한적이다. 반응 시간에 데드 라인이 있을 정도로 제약이 있는 경우 Hard RTOS라고 하며 자동차의 ABS, 에어백 동작과 같은 안전 시스템이나 반응 시간이 중요한 첨단 무기 체계의 시스템을 예로 들 수 있다. 그밖에 일반적인 RTOS를 Soft RTOS라고 한다.

 

선점형 OS vs 비선점형 OS

선점형 OS: 프로세스마다 우선순위를 부여하고 현재 실행중인 프로세스보다 우선순위가 높은 프로세스가 생성되었다면 그 프로세스를 먼저 실행시키도록 한다. 사용자의 입력에 반응을 하는 프로세스를 먼저 실행 시켜 반응 속도를 빠르게 할 수 있기 때문에 대화형 시스템에 적합하다. 대부분의 현대 운영체제는 우선순위에 따라 스케줄러가 알아서 실행할 프로세스를 결정하기 때문에 선점형 OS이며 프로그래머가 신경쓸 일이 없다.

 

비선점형 OS: 우선순위에 상관없이 가장 먼저 실행되는 프로그램을 실행하거나 프로그래머가 실행할 순서를 지정해야한다. 비선점형 OS는 우선순위가 높은 프로세스가 생성되었다고 해서 먼저 실행시키려 하지 않으며 현재 프로세스를 블로킹 상태에 놓고 명시적으로 CPU를 양보해야 다른 프로세스를 실행한다. 따라서 어떤 프로세스를 먼저 실행시킬 것 인지, 언제 양보할 것 인지를 프로그래머가 결정해야한다.

 

라운드 로빈(Round-Robin) 알고리즘

우선 순위에 따른 프로세스를 항상 먼저 실행하면 우선 순위가 낮은 프로세스는 매 번 우선순위가 높은 프로세스의 등장으로 긴 시간을 기다려야할 수 도 있다. 이러한 현상을 기아 현상(Starvation)이라고 하며 이를 방지하기 위해 프로세스마다 주어진 일정 시간만큼만 CPU를 사용하게끔 하는 방법을 라운드 로빈이라고 한다.

라운드 로빈 알고리즘은 CPU 사용 시간, 퀀텀 혹은 타임 슬라이스의 기준으로 CPU를 사용할 시간을 부여하고 이 시간이 경과되면 현재 프로세스를 대기하고 우선 순위에 따라 결정한 다음 프로세스로 교체한다. 이러한 방법으로 낮은 우선순위를 가진 프로세스가 다른 프로세스가 종료될 때까지 기다리는 것보다 더 빨리 CPU 사용할 권리를 얻게 되며 모든 프로세스를 한번씩 실행했다면 다시 우선순위가 높은 순서대로 타임 슬라이스를 부여한다.

라운드 로빈 알고리즘으로 기아 현상을 줄이고 반응형 시스템에서 반옹 속도를 높일 수 있기 때문에 더 좋은 정책을 가진다. 하지만 타임 슬라이스를 너무 짧게 잡으면 오히려 실행 프로세스를 교체하는 과정, 문맥 교환에 걸리는 비용이 증가하여 전체 처리 시간이 증가할 수 있다.

 

CPU 스케줄러의 개입 시점

스케줄러가 직접 개입하여 실행할 프로세스를 결정하는 시기.

1) 매 타임 슬라이스의 종료 : 현 프로세스의 타임 슬라이스 종료로 다음 프로세스를 결정해야한다.

2) 프로세스 생성 및 소멸 : 새로운 프로세스의 등장으로 우선순위를 비교하여 먼저 실행시킬 지 결정하거나 소멸로 다음 프로세스를 결정해야한다.

3) 현재 실행 중인 프로세스가 블로킹 상태가 될 때: 현재 프로세스는 CPU를 양보했으므로 다음 실행될 프로세스를 결정해야한다.

 

참고 : 뇌를 자극하는 윈도우즈 시스템 프로그래밍 (윤성우 저)