컴퓨터 과학

[운영체제] 프로세스와 스레드 - 커널영역

Data Jun 2025. 11. 25. 22:24

운영체제가 여러 프로세스를 관리하기 위해 -반드시 필요한 요소가 바로 **PCB(Process Control Block)**입니다. 이번 글에서는 PCB가 무엇을 포함하고 어떻게 관리되는지, 그리고 프로세스 테이블과의 관계를 간단하게 살펴보겠습니다.

 

1. PCB(Process Control Block)란

운영체제는 메모리에 적재된 수많은 프로세스를 구분해야 합니다. 이를 위해 각 프로세스마다 고유한 관리 정보를 담은 PCB를 생성합니다.

 

1️⃣ PCB는 언제 만들어지고 언제 삭제될까?

 

  • 프로세스 생성 시: 커널 영역에 PCB가 생성됨
  • 프로세스 종료 시: PCB는 삭제되고 모든 자원이 회수됨

2️⃣ PCB가 담고 있는 대표 정보

  • 프로세스 ID(PID) – 프로세스를 식별하는 번호
  • 레지스터 값 – 실행 도중 저장해야 하는 CPU 레지스터 정보
  • 프로세스 상태 – 준비, 실행, 대기 등
  • CPU 스케줄링 정보 – 우선순위 등
  • 메모리 관리 정보 – 코드/데이터/스택/힙의 위치
  • 파일/입출력 정보 – 해당 프로세스가 사용하는 파일 및 장치 정보

이 정보들이 있어야 문맥 교환(context switch) 시 프로세스를 이전 상태로 정확히 복구할 수 있습니다.

 

2. 프로세스 테이블(process table)

운영체제는 수많은 PCB들을 각각 따로 관리하는 대신, 커널 내부에 프로세스 테이블이라는 구조를 두고 PCB들을 한곳에 모아 관리합니다.

 

1️⃣  프로세스 테이블의 역할

  • 새로운 프로세스 실행 → PCB를 테이블에 추가
  • 프로세스가 종료 → PCB 삭제 및 자원 회수

즉, 프로세스 테이블은 “현재 실행 중인 모든 프로세스의 PCB 목록”이라고 볼 수 있습니다.

 

3. 좀비 프로세스(zombie process)란?

프로세스는 종료되었지만 부모 프로세스가 아직 종료 상태를 회수(wait)하지 않아,
PCB가 테이블에 남아 있는 상태를 좀비 프로세스라고 부릅니다.

  • 실행은 끝났지만 PCB는 남아 있음
  • 부모 프로세스가 회수하면 PCB가 제거됨

운영체제에서 가끔 문제가 되는 상황이지만, wait() 호출로 해결 가능합니다.

 

 

정리하면

  • PCB는 프로세스를 표현하는 핵심 정보 묶음이다.
  • 프로세스 테이블은 PCB들의 집합이며, OS가 프로세스를 관리하는 핵심 구조.
  • 좀비 프로세스는 종료되었지만 PCB가 남아 있는 프로세스이다.

간단하지만 OS 구조를 이해하는 데 매우 중요한 내용입니다.