CS/OS

프로세스(Process) 관리, 자원(Resource)의 개념

Kitsune_park 2022. 1. 29. 22:03

OS에서 가장 많이 쓰이는 단어라 해도 과언이 아닌 프로세스는 실행을 위해 시스템(커널)에 등록된 작업이다.

 

커널에 등록되는 이유는 시스템을 잘 관리하고 성능향상을 위함이다. 

 

자원이란, 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 객체이다.

 

H/W 자원에는 프로세서, 메모리 등이 있고, S/W 자원에는 메세지, 시그널 등이 있다.

 

프로세스 관리에 대해 이해하려면 프로세스 상태(Process States)에 대해 먼저 이해해야한다.

 

 

먼저 Created상태는 어떤 작업이 커널에 등록된 상태이며, 이때 PCB가 할당된다. 

 

여기서 쓸 수 있는 메모리 공간이 있느냐에 따라 ready로 갈지 suspended ready로 갈지 결정된다.

 

메모리가 있어서 ready상태로 가게 되었을 때, 프로세서(CPU)외에 다른 모른 자원을 할당 받은 상태가 된다.

 

이 상태에서 프로세서(CPU)를 할당받으면 Running State가 된다.

 

Running상태(작업중인 상태)에서 또 두가지 경우로 벗어난다. 프로세서를 뺏기는 것을 Preemption

 

이라 하며, ready 상태로 내려오게 된다. 다른 요청이 있을때까지 기다리는 상태를 block이라 하고

 

이때 asleep상태가 된다. asleep 상태에서 기다린것이 왔을때 바로 running으로 가는것이 아니라

 

wakeup을 통해 ready 상태로 갔다가 다시 running으로 가는 메커니즘이다.

 

Created상태에서 메모리가 없을때는 suspended ready상태이며, 블록된 상태에서 메모리까지

 

뺏기면 suspended blocked상태가 된다.

 

마지막으로 Terminated(Zombie state)는 프로세스 수행이 끝난 상태로, 모든 자원을 반납한 후,

 

커널 내에 일부 PCB 정보만 남아있는 상태다.

 

 

 

 

 

'CS > OS' 카테고리의 다른 글

Process Scheduling 2(기본 스케줄링 및 알고리즘)  (0) 2022.02.04
Process Scheduling 1  (0) 2022.02.02
스레드 관리(Thread management)  (2) 2022.01.30
운영체제의 역할˙구분  (0) 2022.01.28
운영체제(OS)의 기본  (1) 2022.01.28