프로세스 제어 블록(PCB)이란?
- 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다.
- 프로세스 상태 관리와 문맥교환(Context Switching)을 위해 필요하다.
- PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지된다.
프로세스 제어 블록(PCB)에 포함되는 정보들
- Process ID : 프로세스를 구분하는 ID
- Process state : 각 State 들의 상태를 저장한다.
- Program Counter : 다음 Instruction의 주소를 저장한다. CPU는 이 값을 참조해서 Process의 Instruction을 수행한다.
- Register : Accumulator, CPU Register, General Register 등을 포함한다.
- CPU Scheduling Information : 우선순위, 최종 실행시간, CPU 점유시간 등이 포함된다.
- Memory Information : 해당 프로세스 주소공간(lower bound ~ upper bound) 정보를 저장
- Process Information : 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
- Device I/O Status : 프로세스에 할당된 입출력 장치 목록, 열린 목록등
- Pointer : 부모/자식 프로세스에 대한 포인터, 자원에 대한 포인터 등
- Open File List : 프로세스를 위해 열려있는 파일의 리스트
Context Switching에서의 프로세스 제어 블록(PCB) 역할
CPU 내의 프로세스가 변경되는 과정을 자세히 살펴보자
이렇게 수행 중인 프로세스를 변경할 때 레지스터에 프로세스의 정보가 바뀌는 것을 Context Switching(문맥 교환)이라고 한다. 즉 문맥교환이란 CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 말한다.
출처
'프로그래밍 > 운영체제' 카테고리의 다른 글
커널 오브젝트(Kernel Object)에 대해서 (2) | 2024.01.24 |
---|---|
스레드(Thread)란 (6) | 2023.07.31 |
프로그램의 실행 (6) | 2023.07.20 |
데이터 전송 명령어(data transfer instruction) 정리 (6) | 2023.06.30 |
데이터 전송 명령이란? (12) | 2023.06.28 |
댓글