본문 바로가기

3학년 1학기/운영체제

Two-State Processor model

 

Two-State Processor model

 

Processor의 state는 상태를 뜻한다.

 

현재 수행중인지 아니면 수행중이 아닌지, 즉

 

Running State 혹은 Not Running State 인지를 뜻하는 것이고,

 

이를 Two-State Processor model 이라고 칭한다.

 

OS의 주요 업무는 processor의 수행을 control 하는것이다.

processor의 수행을 control할 OS의 구현/설계 방법 중

프로세스가 보여주는 행위(behavior)를 기술하는것이

가장 첫단계이다.

 

쉽게 말하자면, processor의 control을 수행하려면 processor가 어떤 상황에서

어떠한 behavior, 어떠한 행위,행동을 보이는지를 OS가 알아야한다!

 

예를 들면, 어떠한 시점에서, 하나의 프로세스는 수행중(Running-state)이고

다른 프로세스들은 휴식중, 즉 수행중이 아닐것(Not Running-state)이다.

 

OS는 새로운 프로세스를 생설할 때, 그 프로세스에 대한 프로세스 제어 블록,

즉 PCB를 생성하고 그 프로세스를 우선 비수행 상태((Not Running-state)

초기화 시켜논다. 

 

이제 프로세스는 OS에 의해 생성이 되었고, OS에 알려졌고, 자신이 수행될 기회를 기다린다.

왜냐? 처음에 OS가 프로세스를 생성할때 비수행상태로 초기화 시켰기때문이다.

 

현재 수행중인 프로세스 A가 있고,

생성되고 비수행상태인 프로세스 B가 있다고 예를 들어보면,

언젠가는 프로세스 A가 인터럽트 당하게 되며,

운영체제의 디스패처가 수행할 새로운 프로세스를 선택하게 된다.

인터럽트 당한 프로세스 A는 수행 상태에서 비수행 상태로 변경될것 이며

비수행 상태이던 프로세스 B가 수행 상태로 바뀐다.

 

 

각 프로세스는 OS가 자신의 상태를 추적할 수 있도록 표현되어야 한다. 프로세스의 현재 상태와 매모리 내에서의 위치 등 여러가지를 포함한 정보가 필요한데, 프로세스 제어 블록이 바로 이 정보들을 가지고 있다.

 

현재 수행되지 않는 프로세스들은 수행될 차례를 기다리면서 일종의 큐(Queue)에 저장되어야한다. 큐의 각 항목은 프로세스들의 프로세스 제어블록을 가르키는 포인터들이다.

 

큐의 자료구조에 각 항목들은 여러 프로세스들의 프로세스 제어블록이 아니라 각 프로세스의 PCB을 가르키는 포인터들이다.