- job vs process
- job : 우리가 작성한 프로그램과 데이터를 묶어놓은 것이다.
- process : job 실행을 시스템(커널)에 등록된 작업을 말함.
실행중인 프로그램.
즉 커널에 등록되고 커널 관리하에 있는 작업이다.
자원들을 요청하고 할당 받을 수 있음
종류는 아래와 같다.
(여담). 자원의 개념
커널 관리 하에 프로세스에게 할당 및 반납되는 수동적 개체 (passive entity)
os가 프로세스 관리에 필요한 정보를 저장하는 곳.
이게 관리하는 정보
! PCB 정보는 os별로 서로 다를 수 있다.
자원 간의 상호작용에 의해 결정된다.
created state
작업을 커널에 등록한 상태. PCB 할당 및 프로세스 생성. read 혹은 suspended ready 상태 중 하나로 넘어가게 됨. 쓸 수 있는 메모리 공간 여부에 따라 갈린다. 있는 경우에는 ready 상태가 됨
ready state
프로세서(CPU) 외에 다른 모든 자원을 할당 받은 상태
running 상태로 넘어가는데
running state
프로세서와 자원을 모두 할당 받은 상태. running 에서 ready 상태 혹은 asleep 상태로 내려감
running 상태에서 I/O request가 발생하면 asleep상태에 빠지게 된다. I/O 작업을 하는 동안 메모리에서 자고 있다고 생각하면 된다.
Blocked/Asleep stae
프로세서 외에 다른 자원을 기다리는 상태로 wake-up을 통해 ready state로 전환이 가능하다.
suspended state (지연 상태)
메모리를 할당 받지 못하거나 빼앗긴 상태를 의미한다.
swap-out 또는 swap-in 과정을 거친다.
terminated/ zombie state
프로세스 수행이 끝나 모든 자원이 반납되어 커널 내에 pcb 정보만 남아있는 상태
Note>! 프로세스 관리를 위한 자료구조