1. Process, Program이란


Program?

하드디스크 등의 저장 매체에 저장, 실행 파일의 형태


Process?

프로그램이 메모리에 적재되어 있는 상태, 즉 실행 중인 프로그램


2. Process control block

프로세스에 관한 정보를 저장하는 구조체

  • 프로세스 당 하나씩 존재

  • 프로세스가 생성될 때 만들어지고 종료되면 삭제

  • 커널에 의해 생성, 저장, 관리

출저 : Operating System Concepts - 10th edition


3. Diagram of Process State

출저 : Operating System Concepts - 10th edition

너무나도 유명한 그림이죠. 이제 해당 Diagram에 대해 차근차근 설명해보도록 하겠습니다.


3.1 New

프로세스가 생성된 상태를 의미

  • 메모리 할당 및 필요한 자원이 적재된 상태를 의미하며 PCB에 New 상태로 등록.


3.2 Ready

프로세스가 스케줄링(CPU의 선택)을 기다리는 상태

  • 프로세스는 Ready Queue에서 대기

  • 현재 실행중인 Process가 종료 및 중단 되는 경우, CPU Scheduler는 ready queue에서 한 개의 프로세스를 선택하여 Scheduling을 진행.

  • 스케줄링 정책이 잘못되면 ready queue에 오래 머무르는 starving process가 발생하기도 한다.


3.3 Running

프로세스가 CPU에 의해 현재 진행되고 있는 상태

  • 부여된 Time slice 소진 시, 다시 ready 상태로 바뀜.(Ready queue에 삽입)

  • 프로세스가 I/O 혹은 event 진행 시, 실행 중이던 Process를 Waiting(Blocked) 상태로 만들고 Wait queue에 삽입

3.4 Blocked/Waiting

I/O 혹은 어떠한 event가 끝나기를 기다리는 상태

  • ex) 프로세스 자원 요청, 입출력 요청 시 완료를 기다리는 상태

3.5 Terminated

Process가 종료된 상태.

1. 불완전한 종료(Zombie)

자식 프로세스가 남긴 종료 코드(exit code)를 부모 프로세스가 읽어가지 않아 완전히 종료되지 않은 상태를 의미한다.
(Process table 항목, PCB가 시스템에서 제거되지 않은 상태)

2. 완전 종료(Out)
자식 프로세스가 종료하면서 남긴 종료 코드를 부모 프로세스가 읽어가서 완전히 종료된 상태
(Process table 항목, PCB가 시스템에서 완전히 제거된 상태)

profile
천천히 나아가는 중

0개의 댓글