컴퓨터에서 연속적으로 실행되고 있는 프로그램
실행 명령을 받아 메인 메모리 상에 실행되는 작업 단위
각 프로세스는 각자 자신의 주소 공간을 가지고 있으며, 객체(entity)이다.
일반적으로 하드 디스크 등에 저장되어 있는 실행 코드를 말함
커널 내에는 준비 큐,대기 큐, 실행 큐 등의 자료 구조가 있어 이 자료 구조를 통해 프로세스의 상태를 관리
생성(create) : 프로세스가 생성되는 과정
실행(running) : cpu를 차지 후 명령어 실행
준비(ready) : cpu를 활당 받지 않아지만 언제든지 사용가능 상태
cpu는 우선 순위가 놓은 프로세스 부터 할당 됨
대기(waiting) : 보류(block)라고도 불리며, 입출력 완료, 이벤드 종료들을 기다리는 상태
종료(terminated) : 프로세스의 실행이 종료
운영체제가 관리하는 자료구조로 프로세스 관리에 필요한 대부분의 정보가 저장되는 곳
PCB에 저장되는 정보는 프로세스의 고유 번호, 상태, 다음으로 실행시킬 메모리 주소 값, 레지스터 정보, 스케줄링 및 우선 순위, 할당되어 있는 자원 정보, cpu 사용 시간, 입출력 상태 정보 등이 있다.
프로세스가 실행을 마칠 시 모든 정보가 삭제 됨
단일 CPU 환경에서 여러 개의 프로세스가 동시에 실행되는 것을 말하지만 실제로는 동시에 실행 되지 않음
cpu가 실행 중인 프로세스의 상태를 PCB에 저장 후 다른 프로세스의 상태 정보를 PCB에 읽어서 다른 프로세스를 실행하는 것
멀티 프로그래밍 환경에서 이루어지며 병행 처리를 수행
디스패치(dispatch)
준비 리스트에서 우선 순위가 제일 높은 프로세스가 준비 상태에서 실행 상태로 바뀌는 것
보류(block)
할당된 시간을 모두 쓰기 전에 입출력 동작이 필요하여 프로세스가 cpu를 스스로 반납하여 보류 상태로 넘어가는 것
깨움(wakeup)
보류 상태에서 준비 상태로 넘어가는 과정
시간제한(timeout)
OS는 한 프로세스가 cpu를 계속 독점하여 다른 프로세스가 사용하지 못하는 상황을 막고자 clock interrupt를 두어 일정 시간동안만 cpu를 점유할 수 있게 하는 것
멀티 프로그래밍 환경에서 현재 실행 중인 프로세스 다음 프로세스가 어떤 것이 좋을지 결정 하는 과정