오늘은 PCB(Process Control Block)에 대해서 정리해보겠습니다.
Control Data Structures
운영체제에서 프로세스를 조작하기 위해 사용하는 데이터 구조입니다. 각 프로세스와 리소스의 현재 상태의 정보를 나타내고 있습니다. 우리는 그러한 자료구조는 PBC라고 부르기로 하였습니다.
PCB(Process Control Block)
PCB는 우측 그림과 같이 프로세스의 속성 정보들을 포함하고 있습니다.
- 식별자(Identifier) : 0부터 1씩 증가하며 정수값을 갖습니다.
식별자의 프로세스, 부모 프로세스의 식별자(만약 존재한다면!), 프로세스를 실행시키고 있는
사용자의 식별자, 프로세스 그룹의 식별자까지 저장합니다.
-> 운영체제는 프로세스가 생성되면, 프로세스 그룹을 지정합니다. 이에 따라 프로세스 그룹
식별자가 존재합니다.
- 상태(State), 우선순위(Priority)
- PC(Program Counter)
- Memory pointers : 메모리 내의 프로세스 주소를 나타냅니다.
- memory context의 주소 (프로그램 코드, 변수 등)
- I/O 상태 정보 : 어떤 입출력 장치들이 연결되어 있는지를 나타냅니다.
- 통계 정보(Accounting Information)
PCB는 OS에 의해서 생성되고 관리됩니다.
또한, 하나의 프로세스당 하나의 PCB를 갖습니다.
PCB에 저장되어 있는 정보 중에서, 상태(State)가 있었습니다. 이 상태에서 저장하는 정보는 프로세스의 상태와 CPU 레지스터의 상태를 저장합니다. 그러면 여기서 잠깐 레지스터에 대해서 간단히 다뤄보겠습니다.
Register
CPU에는 우측과 같이 구성되어있습니다.
입력과 출력을 담당하는 IN/OUT.
instruction의 연산을 담당하는 ALU
정보의 흐름을 제어하는 CU(Control Unit)
ALU에서 이용하는 정보가 임시로 저장되는 Register
여기서 Register에 저장되는 정보들을 조금 알아봅시다.
eip : insturction point의 정보를 저장합니다.
elags : 프로세스의 상태를 나타냅니다.
e__ : 범용 레지스터라고 불리며 프로세스의 instruction을 실행하는 도중에 필요한 임지 값을 저장하는 공간입니다.
나머지 내용은 수업에서 다루지 않아 패스하겠습니다.
'CS > OS' 카테고리의 다른 글
[운영체제] 3-2. 프로세스 생성 (0) | 2023.09.23 |
---|---|
[운영체제] 3-1. 프로세스 컨텍스트 (0) | 2023.09.23 |
[운영체제] 2-3. 프로세스 상태도 (0) | 2023.09.11 |
[운영체제] 2-2. 프로세스 정의 (0) | 2023.09.11 |
[운영체제] 2-1. 커널 구조 (1) | 2023.09.11 |