CS/OS

[운영체제] 2-4. PCB

F12:) 2023. 9. 12. 17:08

오늘은 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의 간단한 구조

CPU에는 우측과 같이 구성되어있습니다.

 

입력과 출력을 담당하는 IN/OUT.

instruction의 연산을 담당하는 ALU

정보의 흐름을 제어하는 CU(Control Unit)

ALU에서 이용하는 정보가 임시로 저장되는 Register

 

 

여기서 Register에 저장되는 정보들을 조금 알아봅시다.

 

eip : insturction point의 정보를 저장합니다.

elags : 프로세스의 상태를 나타냅니다.

 

e__ : 범용 레지스터라고 불리며 프로세스의 instruction을 실행하는 도중에 필요한 임지 값을 저장하는 공간입니다.

 

나머지 내용은 수업에서 다루지 않아 패스하겠습니다.