ZeroBase/CS

프로세스의 상태

Red_Horse 2025. 8. 14. 16:51

1. 생성 상태 (New)

  • fork() 또는 exec()로 생성
  • PCB 할당
  • fork(): 부모 프로세스의 주소 공간을 그대로 복사 (비동기 작업은 상속 X)
  • exec(): 완전히 새로운 프로세스를 생성

2. 대기 상태 (Ready)

  • 메모리 공간이 충분하면 할당받고, 아니면 준비 큐에 대기
  • CPU 스케줄러로부터 CPU 소유권을 기다리는 상태

3. 대기 중단 상태 (Ready Suspended)

  • 준비 큐가 꽉 차거나 메모리 부족으로 일시 중단된 상태

4. 실행 상태 (Running)

  • CPU 소유권과 메모리 모두 할당
  • 명령어 실행 중 (CPU burst 발생)

5. 중단 상태 (Waiting / Blocked)

  • 특정 이벤트(I/O 완료 등)를 기다리며 차단된 상태

6. 일시 중단 상태 (Blocked Suspended)

  • 차단 상태에서 실행 대기 중, 하지만 메모리 부족으로 중단됨

7. 종료 상태 (Terminated)

  • 실행 완료 후 자원 반납, PCB 삭제
  • 자발적 종료: 정상 실행 완료
  • 비자발적 종료:
    • 부모가 자식 강제 종료
    • 자원 한계 초과
    • 부모 종료
    • 사용자가 kill 명령 실행

'ZeroBase > CS' 카테고리의 다른 글

공유자원과 경쟁상태 그리고 임계영역  (0) 2025.08.17
IPC  (3) 2025.08.17
PCB와 컨텍스트 스위칭  (1) 2025.08.13
DFS(깊이 우선 탐색), BFS(너비 우선 탐색)  (4) 2025.08.13
프로그램 컴파일 과정  (0) 2025.08.12