PCB(Process Control Block) and Context Switching
RECOMMEND POSTS BEFORE THIS
1. PCB(Process Control Block)
PCB(Process Control Block) 혹은 TCB(Task Control Block)는 특정 프로세스에 대한 정보를 담고 있는 자료구조입니다. 운영체제는 PCB에 담긴 프로세스 정보를 이용하여 프로세스를 관리/제어합니다. 프로세스가 생성될 때마다 고유의 PCB가 생성되고 프로세스가 완료되면 제거됩니다. PCB는 프로세스의 중요한 정보를 포함하고 있으므로 일반 사용자가 접근하지 못하는 보호된 메모리 영역에 존재합니다.
1.1. Information in PCB
- Process id - 프로세스 ID
- Process state - 프로세스의 상태(new ready waiting, running, terminated)
- Program counter - 다음 명령의 주소를 가리키고 있는 계수기
- CPU register - CPU 레지스터
- CPU-scheduling - 프로세스의 우선순위, 최종 실행 시간, 스케줄링 큐를 가리키는 포인터 등
- Memory-management - register, 페이지 테이블, 세그먼트 테이블의 base, limit 값에 대한 정보
- Accounting - CPU 사용 시간, 실제 사용된 시간, 시간 제한 등
- I/O status - 프로세스에 할당된 I/O 기기에 해당하는 정보
2. Context Switching
문맥 교환(Context Switching)에 대해 알아보기 전에 문맥(Context)의 정의를 살펴보겠습니다.
문맥(Context)
현재 CPU가 실행하고 있는 프로세스의 정보
현재 CPU가 현재 실행하고 있는 프로세스의 정보를 문맥이라고 하니 이를 교환하는 행위를 문맥 교환이라고 정의 내릴 수 있겠습니다. 현재 실행 중인 프로세스의 정보를 담고 있는 CPU 레지스터의 내용이 다음 실행할 프로세스의 정보로 변경되는 것을 의미합니다.
예를 들어 프로세스A
를 실행 중이던 CPU가 프로세스B
를 실행하기 위해 프로세스A
의 정보를 어딘가
에 저장하고, 프로세스B
의 정보를 어딘가
로부터 꺼내옵니다.
여기서 말하는 어딘가
가 바로 PCB입니다.
2.1. Process of Context Switching
- P0 프로세스가 인터럽트되면서 PCB0에 P0 프로세스의 상태 정보를 저장합니다.
- 다음 수행할 P1 프로세스의 PCB1에서 P1 프로세스의 상태 정보가 CPU에 재로딩됩니다.
- P1 프로세스를 일정 시간 수행합니다.
- P1 프로세스가 인터럽트되면서 PCB1에 P1 프로세스의 상태 정보를 저장합니다.
- 다음 수행할 P0 프로세스의 PCB0에서 P0 프로세스의 상태 정보가 CPU에 재로딩됩니다.
- P0 프로세스를 일정 시간 수행합니다.
댓글남기기