운영체제 (Operation System)

[OS] Lecture 3. Process Management (1/2) / 운영체제 강의

유호야 2021. 12. 9. 14:34
반응형

https://www.youtube.com/watch?v=jZuTw2tRT7w&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5 

 

프로세스 실행의 주체

 


 

 

 

 

 

 

 


 

** 프로세스(Process)

* 작업(Job) / 프로그램(Program)
- 실행할 프로그램 + 데이터 
- 컴퓨터 시스템에 실행 요청 전의 상태
(디스크에 보관되어 있는 상태)
* 프로세스 (Process)
- 실행을 위해 시스템(커널)에 등록된 작업
- 시스템 성능 향상을 위해 커널에 의해 관리 됨

목표달성을 위해서
> 운영체제의 역할 : 시스템을 효율적으로 관리한다

** 프로세스의 정의(알아두면 면접 때 좋을 것이다)
*실행중인 프로그램
커널에 등록되고 커널의 관리하에 있는 작업
각종 자원들을 요청하고 할당 받을 수 있는 개체 
능독적인 개체(active entity)
>실행 중에 각종 자원을 요구, 할당, 반납하며 진행

* Process Control Block(PCB)
커널 공간(kernael space) 내에 존재
각 프로세스들에 대한 정보를 관리


* 자원(Resource)의 개념
커널의 관리 하에 프로세스에게 할당/반납되는 수동적 개체(passive entity)
자원의 분류
> 하드웨어 (Processor, memory, disk, monitor, keyboard, Etc.)
> 소프트웨어 (Message, signal, files, installed SWs, Etc.)


* Process Control Block (PCB)
프로세스를 컨트롤하기 위한 정보들을 모아놓은 블럭
OS가 프로세스를 관리하기 위해 데이터를 저장하는 공간이라고 생각하기
프로세스가 생성되었다는 것은 커널에 PCD가 생성되었다는 것을 의미한다.

PCB가 관리하는 정보
- PID : Process Identification Number
- 스케줄링 정보
어떤 프로세스를 먼저 처리해야 하냐
- 프로세스 상태
- 메모리 관리 정보
- 입출력 상태 정보
- 문맥 저장 영역
- 계정 정보

주의할 점
프로세스를 관리하기 위해서 사용하는 것이기 때문에
PCB 정보는 OS 별로 서로 다름
PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나

 프로세스의 상태(Process Status)
시스템에 등록된 후에 여러가지 상태를 거치면서 작업을 수행한다.
자원 간의 상호작용을 통해서 결정이 된다.

Created State
작업(Job)을 커널에 등록
pcb 할당 및 프로세스 생성
커널
> 가용 메모리 공간 체크 및 프로세스 상태 전이
ready or suspended ready

프로세스를 어떻게 정의했나?
> 커널에 등록된 job
가용 메모리 공간이 있느냐에 따라서 yes > ready / no > suspended ready

Running State
CPU를 할당 받으면 Dispatch/Running 상태가 되었다고 한다.
프로세서를 뺏기면 ready 상태가 된다.

i/o가 끝나기를 기다리고 있는 상태 asleep 이라고 함

--
job이 생성이 되고 메모리 할당을 받게 되면 ready
기다리다가 cpu를 할당 받으면 running
차례가 안올 때 ready running
i/o 필요하거나 메모리 가서 데이터를 읽어야할 때 asleep으로 가고 

suspended 된 경우 메모리가 없을 때
...
swap device 하드디스크 같은 것 
I/o하려고 blocked되었는데 메모리도 빼앗겼을 때 suspended blocked
메모리가 없는 상태 뺏길 때 어디다가 저장해야하는 image (swap device)에 저장
메모리가 뺏긴 것 : Swap-out <-> Swap-in

* terminated state / zombie state
프로세스 수행이 끝난 상태
모든 자원 반납 후,
커널 내에 일부 PCB 정보만 남아 있는 상태
이후 프로세스 관리를 위해 정보 수집
running / exit / terminated

소멸되기 전에 terminated state(zombie) 죽었는데 죽지 않은
곳에 잠시 들렸다 간다
kernel 프로세스들이 얼마나 정보를 수집하기 위해서 잠시 들린다.
자원들은 반납한 상태이고 pcb 정보만 남아있다. 커널이 이 정보 수집이 끝나면 
프로세스를 삭제시키고 소멸되게 된다.

프로세스 관리를 위한 자료구조
Ready Queue
I/O Queue
Device Queue

alseep에서는 자원별로 queue를 따로 관리한다.

반응형