Program?
하드디스크 등의 저장 매체에 저장, 실행 파일의 형태
Process?
프로그램이 메모리에 적재되어 있는 상태, 즉 실행 중인 프로그램
프로세스에 관한 정보를 저장하는 구조체
프로세스 당 하나씩 존재
프로세스가 생성될 때 만들어지고 종료되면 삭제
커널에 의해 생성, 저장, 관리
출저 : Operating System Concepts - 10th edition
출저 : Operating System Concepts - 10th edition
너무나도 유명한 그림이죠. 이제 해당 Diagram에 대해 차근차근 설명해보도록 하겠습니다.
프로세스가 생성된 상태를 의미
메모리 할당 및 필요한 자원이 적재된 상태를 의미하며 PCB에 New 상태로 등록.
프로세스가 스케줄링(CPU의 선택)을 기다리는 상태
프로세스는 Ready Queue에서 대기
현재 실행중인 Process가 종료 및 중단 되는 경우, CPU Scheduler는 ready queue에서 한 개의 프로세스를 선택하여 Scheduling을 진행.
스케줄링 정책이 잘못되면 ready queue에 오래 머무르는 starving process가 발생하기도 한다.
프로세스가 CPU에 의해 현재 진행되고 있는 상태
I/O 혹은 어떠한 event가 끝나기를 기다리는 상태
Process가 종료된 상태.
1. 불완전한 종료(Zombie)
자식 프로세스가 남긴 종료 코드(exit code)를 부모 프로세스가 읽어가지 않아 완전히 종료되지 않은 상태를 의미한다.
(Process table 항목, PCB가 시스템에서 제거되지 않은 상태)
2. 완전 종료(Out)
자식 프로세스가 종료하면서 남긴 종료 코드를 부모 프로세스가 읽어가서 완전히 종료된 상태
(Process table 항목, PCB가 시스템에서 완전히 제거된 상태)