OperatingSystems:ASpiralApproach(Hardcover)ASpiralApproach
카테고리
지은이 Elmasri, Ramez/ Carrick, A. G./ Levine, David (McGraw-HillCollege, 2009년)
상세보기


책의 내용을 보니 중간에는 설명하기 너무 애매한 내용들이 많아서 빼버리고 바로 CPU 스케쥴링으로 넘어옵니다.
(괜히 Spiral Approach가 아니군요. -_-)

이번에 이야기를 할 것은 이전의 프로세스가 Run state 일때, Wait state로 넘어가기도 하고 Ready state로 넘어가기도 한다고 이야기를 했습니다. 여기서는 Ready state와 Run state에 있을 때, 어떠한 조건으로 먼저 수행을 시킬 것인지에 대해서 이야기를 하고 넘어갑니다. 전체적인 기준은 Ready Queue에 있는 것을 기준으로 합니다. 또한 CPU scheduling에 대한 내용은 굉장히 많은 내용이 있지만 개인적으로 생각했을 때, 그래도 이 정도는 알아두는 것이 좋겠다. 싶은 부분만 뽑아서 설명하고 넘어가겠습니다.


* FCFS (First Come First Served)
가장 먼저 들어온 것이 가장 먼저 나간다. 뭐, 큐 그 자체의 의미와 동일합니다. 먼저 수행되기를 원하는 작업이 가장 먼저 수행이 되기 때문에 보통 별다른 생각없이 짜다보면 이렇게 나오기도 하고, 특별한 경우가 아니라면, 그닥 문제가 되는 일도 없습니다. 하지만 단점으로는 먼저 들어간 작업이 굉장히 시간이 오래 걸리는 동작이라면, 배려가 없어지기 때문에 문제가 발생합니다.

* Priority Scheduling
우선순위 스케쥴링. 각각의 작업에 우선순위를 매겨, 해당하는 우선순위가 높은 작업이 들어온 경우 가장 빨리 처리가 된다. 선점에 대한 내용은 뒤에 이야기를 할 것이기 때문에 우선 제끼고, Ready 큐에 10개의 작업이 있던, 1000개의 작업이 있던지 신경을 쓰지 않고, 자신의 우선순위에 맞추어 줄을 선다는 것입니다. 장점으로는 중요한 작업이 먼저 처리가 되기 때문에 FCFS의 부분적인 단점을 해결한다는 것이 장점이지만, 우선순위가 낮은 작업은 우선순위가 높은 작업이 처리가 될 때까지 무작정 기다리기만 해야 한다는 것과 우선순위가 높은 작업이 들어오더라도 즉시 처리가 되지 않는다는 것이 있습니다.

* SRTF (Shortest Run Time First)
가장 적은 시간이 남은 작업이 먼저 수행이 된다. 이 부분은 사실 Priority Scheduling과도 연계가 될 수 있습니다. 우선 가장 적은 작업 시간이 남은 것이 먼저 수행이 된다면, FCFS에서 필요로 하는 수행시간이 굉장히 긴 작업을 수행할 때 생기는 문제점을 해결을 할 수 있습니다. 단점으로는 필요한 시간이 긴 작업은 계속해서 자신의 위치를 빼앗긴다는 것, 그리고 새로운 작업이 Ready 큐에 들어오는 순간, 이를 다시 계산을 해야한다는 단점이 있습니다. (결과적으로 일 처리가 느려질 수 있다는 뜻입니다.)

* Preemption
위의 다양한 조건들에 대해서 선점을 하도록 허용한다. 예를 들어, Priority + Preemption이라면, 리셋 버튼을 누르는 순간 기존의 작업을 쫓아내고 리셋 버튼에 해당하는 동작을 하게 된다. 지금 위의 예로는 Priority와 SRTF만이 이 조건을 만족할 수 있다.

* Multilevel queues
위와같이 다양한 CPU 스케쥴링 방식을 섞어서 사용하는 멀티 레벨 큐 방식. 보통 Priority로 level을 나누고, 그 안에서는 FCFS를 사용한다고 생각하는 것이 가장 편리하게 이해하는 방법이다. (그림이 있으면 좋을텐데... -_-)
저작자 표시 비영리 변경 금지
신고

'Theory > CA & OS' 카테고리의 다른 글

OS, Synchronization  (0) 2011.09.12
OS, Thread (스레드, 쓰레드)  (0) 2011.09.12
OS, CPU 스케쥴링 (Process scheduling)  (0) 2011.09.12
OS, 하드웨어 동작 방식  (0) 2011.09.12
OS, 인터럽트 벡터(Interrupt vector)  (0) 2011.09.11
OS, Architectural Approches to Building An OS  (0) 2011.09.10

+ Recent posts