개발공부/CS

[운영체제] pcb에 저장되는 정보는?

카슈밀 2025. 2. 16. 01:37
반응형

**PCB (Process Control Block)**에는 운영 체제가 각 프로세스를 관리하기 위해 필요한 다양한 정보가 저장됩니다.

이 정보들은 주로 프로세스 상태, 실행 정보, 메모리 관리 정보 등을 포함하여, 프로세스가 제대로 실행되고, 컨텍스트 스위칭 시 필요한 정보를 복원할 수 있게 합니다. PCB에 저장되는 주요 정보는 다음과 같습니다:

1. 프로세스 식별 정보

  • 프로세스 ID (PID): 프로세스를 고유하게 식별하는 번호입니다. 이 ID는 운영 체제가 프로세스를 추적하는 데 사용됩니다.
  • 부모 프로세스 ID (PPID): 프로세스를 생성한 부모 프로세스의 ID입니다. 이는 프로세스 간의 계층적 관계를 파악하는 데 사용됩니다.
  • 프로세스 그룹 ID: 동일한 그룹에 속하는 프로세스들을 묶어서 관리하는데 사용됩니다.

2. 프로세스 상태

  • 프로세스 상태 (Process State): 현재 프로세스의 상태를 나타냅니다. 일반적인 상태는 다음과 같습니다:
    • Ready: 실행 준비가 된 상태.
    • Running: CPU에서 실행 중인 상태.
    • Waiting: I/O 또는 다른 이벤트를 기다리고 있는 상태.
    • Terminated: 실행이 끝난 상태.

3. 프로세서 상태 정보

  • 프로그램 카운터 (Program Counter, PC): 프로세스가 실행될 때, 다음에 실행할 명령어의 메모리 주소를 저장합니다. 이를 통해 프로세스가 중단되었을 때, 다시 실행을 시작할 위치를 결정합니다.
  • CPU 레지스터 값: 프로세스가 실행 중인 동안 사용되는 CPU 레지스터들의 값을 저장합니다. 여기에는 누산기(Accumulator), 스택 포인터(Stack Pointer), 상태 레지스터(Status Register) 등 여러 레지스터 값이 포함됩니다.

4. 메모리 관리 정보

  • 메모리 할당 정보: 프로세스가 사용하는 메모리 영역에 대한 정보가 포함됩니다. 이에는 페이지 테이블(paging)이나 세그먼트 테이블(segmentation) 등이 포함될 수 있습니다.
  • 프로세스가 사용하는 메모리의 시작 주소와 크기도 기록됩니다.

5. I/O 상태 정보

  • 열려 있는 파일 리스트: 프로세스가 사용 중인 파일들과 관련된 정보입니다. 어떤 파일을 열고 있는지, 해당 파일에 대한 파일 설명자(file descriptor)가 포함됩니다.
  • 사용 중인 I/O 장치 정보: 프로세스가 사용하는 입출력 장치에 대한 정보입니다.

6. 자원 할당 정보

  • 자원 할당 정보: 프로세스가 사용하는 시스템 자원에 대한 정보입니다. 예를 들어, 프로세스가 잠금(lock)을 획득한 경우, 자원에 대한 상태가 기록될 수 있습니다.
  • 세마포어, 뮤텍스 등의 동기화 자원에 대한 정보도 포함될 수 있습니다.

7. 스케줄링 정보

  • 프로세스 우선순위 (Priority): 프로세스의 우선순위가 기록됩니다. 이 정보는 운영 체제가 프로세스를 스케줄링할 때, 어떤 프로세스에게 CPU 시간을 우선적으로 할당할지 결정하는 데 사용됩니다.
  • 스케줄링 큐 링크: 프로세스가 대기 중인 스케줄링 큐에 링크되어 있을 경우, 해당 큐에 대한 정보가 포함될 수 있습니다.

8. 신호 처리 정보 (Signal Handling Information)

  • 신호 정보: 프로세스가 처리해야 할 신호(signal)나 인터럽트에 대한 정보입니다. 예를 들어, 프로세스가 종료될 때나 다른 프로세스가 신호를 보낼 때 어떤 처리를 해야 할지에 대한 정보가 저장됩니다.

9. 소유자 및 보안 정보

  • 소유자 정보 (User Information): 프로세스를 실행한 사용자의 정보입니다. 이는 보안이나 자원 할당과 관련하여 사용될 수 있습니다.
  • 권한 정보: 프로세스에 대한 접근 권한 정보가 포함될 수 있습니다.

10. 타이밍 정보

  • 프로세스 시작 시간: 프로세스가 시작된 시간 정보입니다.
  • 프로세스 실행 시간: 프로세스가 실행된 시간 정보입니다.
  • 타이머 정보: 프로세스가 CPU를 사용한 시간, I/O 대기 시간 등의 타이밍 정보가 기록됩니다.

11. 자식 프로세스 정보

  • 자식 프로세스 목록: 프로세스가 생성한 자식 프로세스들의 정보입니다. 이 정보는 부모-자식 관계를 추적하는 데 사용됩니다.

12. 컨텍스트 스위칭 정보

  • 컨텍스트 스위칭에 필요한 정보: 운영 체제가 컨텍스트 스위칭을 할 때, PCB에 저장된 정보를 사용하여 프로세스를 교체합니다. 프로세스가 중단되거나 전환될 때, 이 정보를 사용하여 이전 상태로 복원할 수 있습니다.

결론

PCB는 운영 체제가 각 프로세스를 효율적으로 관리하고, 컨텍스트 스위칭을 원활하게 처리하기 위해 필수적인 정보를 저장하는 구조체입니다. 프로세스의 상태, CPU 상태, 메모리 정보, I/O 상태, 자원 할당 정보 등이 포함되어, 시스템이 여러 프로세스를 동시에 관리하고, 필요할 때마다 빠르게 상태를 복원할 수 있게 합니다.

728x90