CPU 스케줄링

운영체제 2017. 8. 5. 22:00
반응형
SMALL

CPU 스케줄링은 OS공부에 있어서 가장 중요한 파트라고 생각한다. 학부 교수님도 많이 강조하고 실제 대학원 면접이나 IT회사 면접에 갔을시 물어볼법한 중요한 내용이다.


1. CPU-입출력 버스트 사이클

- 프로세스 실행은 CPU버스트로 시작이 된다.

- 뒤이어 입출력버스트가 발생한다.

- 그 뒤에 또 다른 CPU버스트가 발생하며  마지막 CPU 버스트는 실행을 종료하기 위한 시스템 요청과 함께 끝난다.


<CPU -입출력 버스트의 실행 과정>



2. CPU 스케줄러


   -  단기스케쥴러(또는 CPU 스케쥴러)에 의해 실행한다.

   -  CPU가 유휴 상태가 될 때마다 운영체제는 준비 큐에 있는 프로세스들(PCB) 중에서 하나를 선택하여 할당한다.

       -  준비완료 큐에 있는 모든 프로세스들은 CPU에서 실행이 될 기회를 기다리며 대기하고 있다.


 


<CPU 버스트 시간의 도표>





3. 선점스케줄링과 비선점 스케줄링



* 선점스케줄링


-  우선순위가 높은 프로세스들부터 처리가 가능하다. 

-  빠른 응답시간을 처리하는 시스템에서 사용되며 유리하다.

-  현재 window, machintosh에서도 사용하고 있는 스케줄링 방법이다.

-  1) 실행 상태 -> 대기 상태,  ex) 입출력 요청, 자식 프로세스의 종료를 기다리는 호출

   2) 실행 상태 -> 준비 상태,  ex) 인터럽트 발생

   3) 대기 상태 -> 준비 상태,  ex) 입출력의 종료

   4) 실행 상태 -> 종료 상태,  ex) 프로세스의 종료


이런식으로 될때 1~4번까지 모두 실행이 가능한게 선점스케줄링 방식이고, 단점으론 오버헤드가 증가한다는 점이다.


* 비선점스케줄링

- 이미 할당된 자원을 다른 프로세스가 강탈할 수 없다.

- 응답시간 예측이 엄청 편하고 일괄처리 할 때 유용하다.

- 우선순위가 높은 프로세스들부터 처리하는게 아닌 순서대로 들어온대로 처리하기 때문에 우선순위로 처리되어야      하는게 안된다는 단점이 있다.

- 위에서 쓴 1~4번들중에 1, 4번에 해당이 되면 비선점 스케줄링 방식이다.


4. 디스패처


- CPU의 제어를 단기 스케쥴러가 선택한 프로세스에게 부여하는 모듈이다.

- 문맥을 교환한다.

- 사용자 모드로 전환하는 일을 하며 프로그램을 다시 시작하기 위해 사용자 프로그램의 위치로 적절히 이동하는 일을 한다.

- 디스패처는 모든 프로세스의 문맥교환시 호출되기 때문에 가능한 한 빨라야한다.

- 디스패처가 하나의 프로세스를 중단시키고 다른 프로세스를 실행하는데까지 걸리는 시간을 디스패처 지연이라고 말한다.


반응형
LIST

'운영체제 ' 카테고리의 다른 글

프로세스의 정의  (0) 2017.06.29
명령해석기  (0) 2017.01.30
운영체제서비스  (0) 2017.01.30
이중동작모드(Dual-Mode operation)  (0) 2017.01.15
멀티프로세싱(Multi Processing)이란?  (0) 2016.09.20
블로그 이미지

만년필석사

,