본문 바로가기

C.E/OS

Process - Process Scheduling

Process Scheduling, 프로세스 스케쥴링

 

Process Scheduling의 경우 운영체제의 형태에 따라 그 목적을 구분 할 수 있다. 만일 운영체제가

 

Multi-Programming이라면 몇 개의 Process가 동시에 수행되게 함으로 CPU의 활용도를 극대화 시킨다.

 

Time Sharing이라면 빠른 빈도로 CPU의 제어권을 이동시키는 중에 사용자와 프로그램간의 상호작용을 할 수 있게 한다.

 

시스템의 운영을 위해서 여러가지 Queue가 존재하는데 이를 Process Scheduling Queue라고 한다.

 

Job Queue : 시스템상의 존재하는 모든 Process의 집합.

 

Ready Queue : Main Memory에서 수행되기를 기다린느 Process의 집합.

 

Device Queue : 각 장치별로 이를 Access하려는 장치들의 집합.

 

각각의 Queue는 2개의 Pointer를 가지고 있다.  이를 대표적으로 Head와 Tail이라고 구분한다.

 

Head의 경우 가장 첫번째 Process의 PCB주소 를 가르키고 있다. 그리고 첫번째 프로세스는

 

두번째 Process의 PCB주소를 가르키며 두번째는 세번째. 이런 식으로 Linked List방식으로 연결되어 있다.

 

그리고 Tail의 경우에는 가장 마지막 Process의 PCB 주소를 가르키고 있다.

 

이를 그림으로 나타내면 아래와 같다.

 

 

 

이러한 Queue의 상태를 Diagram으로 표현 할 수있다. 아래의 Diagram에서 사각형은 CPU의 제어권을 넘기는

 

이유가 되며 원형은 Process가 기다리던 Event의 발생을 가르킨다. 또한 I/O Queue가 Device Queue와 같다.

 

 

 

 

'C.E > OS' 카테고리의 다른 글

Process - Operation on Process  (0) 2013.12.09
Process - Schedulers  (0) 2013.12.09
Process - Process Control Block(PCB)  (0) 2013.12.09
Process - Process State  (0) 2013.12.09
System Structure - System Generation  (0) 2013.12.09