혼공컴운_CH10-2_프로세스 상태와 계층 구조

Today Jeeho Learned·2026년 1월 22일
post-thumbnail

프로세스 상태와 계층 구조

프로세스는 단순히 실행/정지 상태만 있는 것이 아니라, 운영체제의 효율적인 관리 하에 여러 상태를 오가며 실행됩니다. 또한, 프로세스는 다른 프로세스를 생성하며 계층적인 구조를 형성합니다.


1. 프로세스 상태 (Process State)

컴퓨터는 여러 프로세스를 빠르게 번갈아 가며 실행합니다. 운영체제는 PCB(프로세스 제어 블록)를 통해 각 프로세스의 현재 상태를 기록하고 관리합니다.

주요 프로세스 상태는 다음과 같습니다.

1. 생성 상태 (New)

  • 프로세스가 막 생성되어 메모리에 적재되고, PCB를 할당받은 상태입니다.
  • 아직 CPU를 할당받을 준비가 완전히 끝나지 않은 초기 단계입니다.

2. 준비 상태 (Ready)

  • 실행에 필요한 준비를 마치고, CPU 할당을 기다리는 상태입니다.
  • 자신의 차례가 오면 즉시 실행 상태로 전환될 수 있습니다(Dispatch).

3. 실행 상태 (Running)

  • CPU를 할당받아 실행 중인 상태입니다.
  • 할당된 시간(Time Slice) 종료 시: 타이머 인터럽트에 의해 다시 준비 상태로 돌아갑니다.
  • 입출력 요청 시: 입출력 작업을 위해 대기 상태로 전환됩니다.

4. 대기 상태 (Waiting / Blocked)

  • 프로세스 실행 도중 입출력장치 사용이 필요해 입출력 작업이 끝날 때까지 기다리는 상태입니다.
  • CPU보다 속도가 느린 입출력장치의 작업이 완료되면(인터럽트 발생), 프로세스는 다시 준비 상태로 이동합니다.

5. 종료 상태 (Terminated)

  • 프로세스가 실행을 멈추고 종료된 상태입니다.
  • 운영체제는 해당 프로세스의 PCB와 사용하던 메모리 영역을 정리(해제)합니다.

2. 프로세스 계층 구조

프로세스는 실행 도중 시스템 호출(System Call)을 통해 다른 프로세스를 생성할 수 있습니다. 이로 인해 프로세스는 계층적인 트리(Tree) 구조를 형성합니다.

  • 부모 프로세스 (Parent Process): 새 프로세스를 생성한 프로세스.
  • 자식 프로세스 (Child Process): 부모에 의해 생성된 프로세스.
  • 특징:
    • 부모와 자식은 엄연히 다른 프로세스이므로 서로 다른 PID(프로세스 ID)를 가집니다.
    • 자식 프로세스의 PCB에는 부모의 PID인 PPID(Parent PID)가 기록되기도 합니다.

3. 프로세스 생성 기법 (Fork & Exec)

운영체제는 부모 프로세스가 자식 프로세스를 만들 때 복제옷 갈아입기라는 두 가지 단계를 거칩니다.

1. fork() : 복제

  • 부모 프로세스는 fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성합니다.
  • 자식 프로세스는 부모의 자원(메모리 내용, 열린 파일 등)을 상속받지만, 별도의 PID를 가진 독립된 프로세스가 됩니다.

2. exec() : 전환

  • 복제된 자식 프로세스는 exec 시스템 호출을 통해 새로운 프로그램으로 전환됩니다.
  • 메모리 공간을 새로운 프로그램의 코드로 덮어씌워, 부모와는 다른 독자적인 동작을 수행하게 됩니다.
profile
기록해야 (살아)남는다 !

0개의 댓글