프로세스는 실행 중인 프로그램으로 디스크로 부터 메모리에 적재되어 시스템 자원을 할당 받을 수 있는 것을 의미한다. 할당 받는 시스템 자원으로는 CPU 시간, 운영되기 위해 필요한 주소 공간, Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 등을 할당 받을 수 있다.
그림에서 확인할 수 있듯이 프로세스는 각각 독립되어 있어 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 만약 접근을 원한다면 프로세스간 통신(IPC, Inter-process communication)을 사용해야한다.
PCB는 특정 프로세스에 대한 중요한 정보를 저장하고 있는 운여체제 자료구조로서 프로세를 관리하기 위해 프로세스의 생성과 동시에 생성된다. 프로세스 전환시 CPU를 반환할 때 작업의 진행 상황을 저장하기 위해 PCB를 사용하며 이후 CPU를 다시 할당 받았을 때 PCB에 저장된 작업 상황을 가져와 작업을 이어 나간다.
new
프로세스 생성
terminated
프로세스 종료
running
프로세스 수행 중
waiting
I/O나 다른 이벤트가 발생하기를 기다리는 중. 현재 프로세스가 수행을 하지 못하고 다른 작업을 기디리는 중이므로 CPU를 낭비하지 않기 위해 다른 ready 상태의 프로세스를 수행하게된다.
Ready
작업 기다리는 것이 끝나고 다시 프로세스를 수행할 수 있는 상태가 되었다.(running으로 갈 준비 완료)