OS

[OS] Lecture 3. Process Management (1/2)

사랑우주인 2022. 1. 30. 02:45

작업(Job)/ 프로그램

- 실행 할 프로그램+ 데이터

- 디스크에 보관 상태

 

 

프로세스

- 실행 중인 프로그램

- 커널에 등록되고 커널의 관리 하에 있는 작업

- 프로세스 관리(PCB)를 할당 받은 개체

- 능독적인 개체. 실행 중, 자원을 요구, 할당, 반납하여 진행

 

Process Control Block(PCB)

- 커널 공간(kernel space) 내에 존재

- 각 프로세스의 정보를 관리

 

자원(Resource)

- 커널의 관리 아래에 프로세스에 할당/반납 되는 수동적 개체(passive entity)

- 할당/반납은? 커널

 


프로세스의 상태

-프로세스와 자원의 상호작용에 의해 결정

 

1. created state 

- 프로세스= 작업을 커널에 등록

- PCB 할당, 프로세스 생성

- 상태 전이: ready or suspended ready

- 상태 전이 조건: 가용 메모리 공간

- 가용 메모리 있니? ready, 가용 메모리 없니? suspended ready

 

 

2. ready state

- 프로세서(CPU)를 대기 상태= 프로세서 할당 받으면 실행 가능한 상태 

- 즉시 실행 가능한 상태

- dispatch(schedule): CPU를 할당 받음. ready-> running

- preemption: CPU 반납

 

3. running state

- 실제 작업 실행. 프로세서와 필요한 자원을 모두 할당 받은 상태  

 

4. asleep state

- 프로세서 외 다른 자원 할당 요청 상태(ex) I/O). 자원에 따라 각각 관리

- 바로 running 상태로 갈 수 있을까? No. alseep 상태 동안 다른 프로세스의 running을 고려해야 한다.

- 그래서 asleep 상태가 끝나면 ready 상태로 간다(=wakeup)

 

5. suspended state

- 메모리를 할당 받지 못한(빼앗긴)  상태

- asleep(blocked)상태에서 메모리도 빼앗김= suspended blocked

 

5.1 suspended blocked

- 메모리도 빼앗기면 진행 중이었던 작업 정보는 어디에 보관을 할까?  

- memory image 찍어서 swap-deivce에 저장

-swap-device: 작업 정보 저장을 위한 파일 시스템. HW. 하던 일을 저장 

-swap-out(= suspended) : swap-device에 이미지 저장

-swap-in(= resume): swap-device에 이미지 정보로 메모리 할당 받아서 작업 복구

 

6. terminated/zombie state

- 프로세스 수행이 끝난 상태

- 모든 자원을 반납. But 커널 내 일부 PCB 정보만 남아 있는 상태 

- 커널이 PCB 정보를 수집한다. 수집이 완료되면 소멸한다.

- PCB 수집 이유: 프로세스 관리 효율.

어떤 자원을 주로 요청하는지? 일은 얼마나 해야하는지? 다음에 비슷한 작업 수행 시, 수집한 정보를 통해 관리 효율을 높일 수 있다.