프로세스 제어 블록(Process Control Block, 줄여서 PCB)은 특정한 프로세스를 정보를 포함하는 커널의 자료 구조(메모리에 저장)
1) 프로세스 상태 ex)프로세스가 실행중인지 대기중인지
2) 프로그램 카운터
3) CPU 레지스터 ex)프로세스와 관련된 모든 레지스터
4) CPU스케줄링 정보 ex)우선순위, 스케줄링 큐 포인터등
5) 메모리 관리 정보 ex) 프로세스에 할당된 메모리 영역 정보
6) accounting 정보 ex)cpu 사용시간 , 시간 제한 등
7) I/O 상태정보 ex)할당된 I/O장치, 열린 파일
8) PID
생성상태: 프로세스 생성
준비단계(ready) : 프로세스가 cpu에 할당되기를 기다리는 상태
실행단계 : 명령어 실행 단계
대기단계(blocked) :프로세스가 어떤 이벤트를 기다리고 있는 상태
종료단계 : 프로세스 실행을 마친 상태

어떤 프로세스를 실행시킬 것인지 결정하는 소프트웨어
메모리에 있는 프로세스 중 다음에 실행할 프로세스를 정하고 CPU를 할당
자주 호출되기 떄문에 빠르게 실행되어야 함
멀티 프로그래밍의 정도를 줄어주는 역할
메모리에서 프로세스를 제거하고 디스크에 저장시키고 일부를 디스크에서 다시 불러오기 실행이 끝나면 또 다시 디스크에 저장시키고 디스크에서 일부 불러오기 반복 : swapping
디스크에 있는 프로세스 중 메모리 안에 들어올 프로세스 정하기
드물게 호출되고 상대적으로 느림
멀티프로그래밍의 정도를 제어
(I/0-bound 프로세스 - 연산보다 입출력 작업에 더 많은 시간 소비,짧은 CPU사용시간)
(CPU-bound 프로세스 - 입출력 작업보다 연산에 더 많은 시간 소비, 긴 cPU 사용시간)
CPU가 현재 작업 중인 프로세스에서 다른 프로세스로 넘어갈 때 이때까지의 프로세스의 상태를 PCB에 저장하고, 새 프로세스의 저장된 상태(PCB)를 다시 적재하는 Context Switch(문맥교환)이라고 한다.