PCB(Process Control Block)와 컨텍스트 스위칭(Context Switching)
프로세스 정보를 저장하는 PCB에 담기는 정보를 살펴보고, CPU가 실행할 프로세스를 바꿀 때 일어나는 컨텍스트 스위칭 과정을 설명한다.
강준현
- information
- operating-system
이 글의 목차
1. PCB(Process Control Block)
PCB(Process Control Block) 혹은 TCB(Task Control Block)는 특정 프로세스에 대한 정보를 담고 있는 자료구조이다. 운영체제는 PCB에 담긴 프로세스 정보를 이용해 프로세스를 관리하고 제어한다. 프로세스가 생성될 때마다 고유한 PCB가 생성되고, 프로세스가 완료되면 제거된다. PCB는 프로세스의 중요한 정보를 포함하고 있으므로 일반 사용자가 접근하지 못하는 보호된 메모리 영역에 존재한다.
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이다.
프로세스의 문맥 교환은 다음과 같이 일어난다.
- P0 프로세스가 인터럽트되면서 PCB0에 P0 프로세스의 상태 정보를 저장한다.
- 다음에 수행할 P1 프로세스의 PCB1에서 P1 프로세스의 상태 정보가 CPU에 재로딩된다.
- P1 프로세스를 일정 시간 수행한다.
- P1 프로세스가 인터럽트되면서 PCB1에 P1 프로세스의 상태 정보를 저장한다.
- 다음에 수행할 P0 프로세스의 PCB0에서 P0 프로세스의 상태 정보가 CPU에 재로딩된다.
- P0 프로세스를 일정 시간 수행한다.
REFERENCE
광고
KEEP READING
함께 읽으면 좋은 글
DISCUSSION