본문 바로가기
Lecture/OS

프로세스 제어 블록과 문맥 교환

by YUNZEE 2023. 10. 16.
728x90
프로세스 제어 블록

프로세스 제어 블록(PCB)은 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조로 TCB(task control block)라고도 한다. 모든 프로세스에는  고유의 프로세스 제어 블록이 있으며, 프로세스가 생성될 때 만들어져 프로세스 실행이 완료되면 폐기된다. 

포인터: 준비 상태나 대기 상태는 큐로 운영되는데 프로세스 제어블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다.

프로세스 상세: 프로세스 상태에는 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있다. 이는 프로세스가 현재 어떤 상태에 있는지를 나타내며, 프로세스 제어 블록의 두 번째 블록에 저장된다.

 

문맥교환

문맥교환의 예시를 들자면 13번 테이블의 파스타를 하고 14번 테이블의 등심스테이크를 한다고 했을 때 파스타는 주문서에 요리를 끝냈다고 표시하고 준문서를 주문 목록으로 옮기고 주문 목록에서 14번 주문서를 가져온다. 이처럼 요리 작업의 전환 과종은 2개의 주문서를 교환 switching 함으로써  이루어진다.

여기서 13번 파스타에서 14번 등심스테이크로 바뀔 때 세팅한 도구나 재료들이 바뀐다. 즉 요리과정의 전환 과정은 주문서를 바꾸는 것과 동시에 작업 환경을 바꾸는 것이다. 문맥 교환은 CPU를 차지하던 프로세스가  나가고 새로운 프로세스를 받아들이는 작업을 말한다. 

 

문맥교환의 절차

프로세스 p1과 프로세스 p2의 문맥 교환 과정을 보여준다.

프로세스 p1이 자신에게 주어진 시간을 다 사용하여 타임아웃이 되면 p1의 프로세스 제어 블록에 현재까지의 작업 결과가 저장되고 p1은 준비 상태로 쫓겨난다. 준비 상태에 있던 프로세스 p2가 실행 상태로 가면 CPU의 레지스터가 p2의 프로세스 제어 블록 값으로 채워져 다음 작업을 하게 된다.

 

728x90

'Lecture > OS' 카테고리의 다른 글

스레드  (2) 2023.10.17
프로세스의 연산  (2) 2023.10.17
멀티 프로세싱  (4) 2023.10.16
컴퓨터 성능 향상 기술  (2) 2023.10.14
CPU와 메모리  (0) 2023.10.12