728x90

1 프로세스 제어 블록

프로세스 제어 블록은 프로세스를 실행하는 데 필요한 중요한 정보를 보관하는 자료 구조로 PCB라고도 한다.

모든 프로세스는 고유의 프로세스 제어 블록을 가지고, 프로세스가 끝나면 폐기된다.

 

포인터 : 준비 상태나 대기 상태에서 큐에 연결할 포인터이다.

프로세스 상태 : 각 프로세스의 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 상태를 나타낸다.

프로그램 구분자 : PID로 어떤 프로세스인지 구분한다.

프로그램 카운터 : 다음에 실행될 명령어의 위치를 가리키는 프로그램 카운터의 값을 저장한다.

프로세스 우선순위 : 준비 상태에 있는 프로세스 중 우선순위가 높은 프로세스를 실행 상태로 옮긴다.

각종 레지스터 : 누산기, 색인 레지스터, 스택 포인터 등 레지스터의 값을 저장한다.

메모리 관리 정보 : 메모리의 위치 정보, 경계 레지스터와 한계 레지스터의 값, 세그멘테이션 테이블, 페이지 테이블의 정보 등을 저장한다.

프로세스 제어 블록

 

2 문맥 교환(Context Switch)
문맥 교환은 CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업을 말한다.

 

프로세스 P0가 실행하다가 타임아웃이 되면 P0의 PCB에 현재까지의 작업 결과를 저장하고 준비 상태로 쫓겨난다.

준비 상태에 있던 P1가 실행 상태로 가면 PCb를 채운 후 다음 작업을 실행한다.

Context Switch는 시간을 다 사용하거나, 인터럽트 처리를 할 때 등 다양한 경우에 발생한다.

728x90

+ Recent posts