저장된 프로그램은 아직 움직이지 않는다. 실행되는 순간 운영체제가 필요한 자원을 준비하고, 프로그램은 실행 가능한 하나의 작업 단위가 된다.
운영체제는 여러 프로그램을 동시에 관리한다
브라우저를 열고, 음악을 듣고, 문서를 편집하면서 예약 프로그램도 실행할 수 있다.
CPU는 한정되어 있는데 여러 프로그램이 동시에 움직이는 것처럼 보인다.
프로세스는 상태를 바꾸며 움직인다
모든 프로세스가 항상 CPU를 사용하는 것은 아니다.
CPU를 기다릴 수도 있고, 파일 읽기나 네트워크 응답을 기다릴 수도 있다.
ILLUST A | ILL-11 | 프로세스 상태 전이 다이어그램 | 상태 전이 필수상태 전이는 운영체제가 CPU와 입출력 자원을 효율적으로 나누기 위해 필요한 개념이다. 실행 중인 프로세스가 입출력을 기다리게 되면 CPU를 계속 잡고 있을 이유가 없으므로 대기 상태로 보내고 다른 프로세스를 실행할 수 있다.
프로세스마다 자신만의 정보가 있다
운영체제는 수많은 프로세스를 구별해야 한다.
어떤 프로세스가 실행 중인지, 다음 명령은 어디인지, 어떤 메모리를 사용하는지, 현재 상태는 무엇인지 기록해야 한다.
PCB가 필요한 이유는 프로세스가 CPU를 빼앗겼다가 다시 실행될 수 있기 때문이다. 어디까지 실행했는지, 어떤 레지스터 값을 갖고 있었는지 저장해 두어야 나중에 같은 지점에서 작업을 이어갈 수 있다.
PCB를 보면 프로세스 자체보다 운영체제가 무엇을 기억해야 하는지가 보인다. 실행 위치와 상태, 레지스터 값, 스케줄링 정보가 남아 있어야 CPU를 잠시 빼앗겼다가도 나중에 같은 실행을 이어갈 수 있다.
PCB에 저장되는 정보는 결국 ‘이 프로세스를 다시 이어서 실행하려면 무엇이 필요한가’에 대한 답이다. 프로세스의 상태를 복원할 수 있어야 운영체제가 여러 프로세스 사이에서 CPU를 번갈아 배분하면서도 각 작업의 연속성을 유지할 수 있다.