솜은 코튼

[OS] 프로세스 제어 블록(PCB), 문맥 교환 본문

OS

[OS] 프로세스 제어 블록(PCB), 문맥 교환

솜.코 2023. 5. 28. 09:12

 

 

프로세스 제어 블록(PCB)

.

 

 

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

 

모든 프로세스는 고유의 프로세스 제어 블록을 가지며 프로세스 생성 시 만들어져 완료 시 폐기된다.

 

 

 

포인터   PCB를 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 사용
프로세스 상태   생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등 어떤 상태인지 나타냄
프로세스 구분자   운영체제 내 여러 프로세스를 구별하기 위한 구분자
프로세스 카운터   다음에 실행될 명령어의 위치를 가리키는 값 저장
프로세스 우선순위   우선순위에 따라 PCB들이 여러 줄로 서 있음
각종 레지스터 정보   다음 실행을 위해 자신이 사용하던 레지스터의 중간값을 보관
메모리 관리 정보   메모리 보호를 위해 경계 레지스터 값과 한계 레지스터 값 저장
할당된 자원 정보   프로세스 실행을 위해 입출력 자원이나 오픈 파일 등에 대한 정보
계정 정보   계정 정보, CPU 할당 시간, CPU 사용 시간 등
부모 프로세스 구분자
자식 프로레스 구분자
  부모 프로세스를 가리키는(PPID)와 자식 프로세스를 가리키는(CPID) 정보

 

 

포인터의 역할

.

 

입출력이 완료되기를 기다리는 프로세스는 대기 상태로 전환되는데

시스템 내에는 다양한 종류의 입출력장치가 있어 대기 상태에 모이는 프로레스도 다양하다.

 

이 프로세스들을 하나로 모으면 해당 프로세스를 찾기 위해 대기 상태의 모든 프로세스를 뒤져야 한다.

 

이를 위해 같은 입출력을 기다리는 프로세스의 PCB는 동일한 입출력 큐에 모여있다.

 

즉, 대기 큐와 준비 큐는 여러개가 있고 준비 큐는 프로세스의 우선순위에 따라 나뉜다.

 

 

문맥 교환

.

 

 

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

 

이때 두 프로세스의 제어 블록의 내용이 변경된다.

나가는 프로세스의 제어 블록에는 지금까지의 작업 내용을 저장하고,

들어오는 프로세스의 제어 블록의 내용으로 CPU가 다시 세팅된다.

 

물론 이 절차에서 시간이 발생한다.

 

 

 

문맥 교환은 한 프로세스가 자신에게 주어진 시간을 다 사용할 때(타임아웃),

인터럽트가 걸렸을 때 등 발생한다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제'와 '운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호), 운영체제 10판 (Abraham Silberschatz)