OS (Operating System)

[OS] Week03 - 2 (3/18) : process state, PCB, scheduler, architecture

FDEE 2021. 3. 18. 16:56

Process address space

- virtual memory

- Stack : method, local value

- heap : Dynamically allocate moemory

- data

- text : code

 

Process

- not Program (text) : passive : "Execution"

- Program + Stack + Heap + PCB : active (유동적으로 변동한다)

 

Process State

- new : created

- running : executed (현재 진행중인 프로세스)

- waiting : Interrupt를 기다리는중 (I/O request 상태)

- ready : 다른 process가 running 중일때 임시정지상태

- terminated : finished

 

State diagram

- ready - running : Dispatch (스케쥴러에 의해 running 상태로 변환)

- running - ready : interrupt (Interrupt exit 발생 후 스케쥴러에 의해 다른 process가 running 상태로 변환)

- running - waiting : I/O event

- wating - ready : I/O event finished

 

PCB

- Process Control Bolck

- 프로세스를 유지하기 위한 data structure

- PC (Program Counter) : register값을 저장

- CPU regester (regesters, stack pointer) 저장

- Context switch가 이루어질 때 정보를 저장, 불러오는 공간 (snapshot)

- Memory에 위치하기 때문에 Context switch가 자주 일어나는 경우 느려진다

 

Process scheduling

- scheduling : process 간의 전환

- queue : process 들이 기다리는 공간 (first in first out 방식)

- Job queue : set of processes in the system

- Ready queue : set of ready 상태의 processes / Dispatch 발생시 running process 변환

- Device queues : set of I/O event 발생한 processes / event 종료시 ready queue로 이동

 

Process의 두가지 분류

- I/O bounded : 입출력이 잦은 process / ex) word process / 우선순위 우선

- CPU bounded : 연산이 많은 process / ex) decoding / 우선순위 차후

 

Scheduler

- process간의 전환을 담당

- Long term scheduler

  Process의 개수를 조절하는 의미, 실제로는 사용되지 않는 알고리즘

- Short term scheduler (CPU scheduler)

  Ready queue - 1 process 선택하여 Dispatch 하는 역할 (매우 빈번하게 발생)

  Timer Device 에서 10ms마다 interrupt 발생하기 때문에 최소 10ms마다 동작

- Medium term scheduler

  swap in, swap out 담당, Momory 공간이 제한적이기 때문에 swap out process를 택하는 역할

 

architecture of Context-switch

- Context-switch가 자주 일어날수록 느려지기 때문에 여러가지 architecture가 존재

- SUN UltraSPARC : Multiple sets of registers

  Context switch 발생시 PCB저장 대신 특정 regester에 저장하는 방식으로 Memory 접근을 줄인 방식

- ARM : Mutiple store and load instructions

  한가지 process가 아닌 여러 process들의 PCB 데이터를 store, load 하는 방식으로 Memory 접근을 줄인 방식

 

Process - fork

- fork : creation (프로세스 생성)

- forming tree : 프로세스는 tree 형식이기 때문에 부모 process - 자식 process를 접근하는 fork가 자주 발생

- PID : Process ID : tree 구조에서 process id