CS 공부 & 면접 맛보기 0x10 [운영체제] : Process 상태 변화 과정

2025. 1. 22. 23:00코딩 도구/CS 면접 도구

반응형

질문

프로세스의 상태 변화 과정은 어떻게 이루어지나요?

면접 답변

프로세스의 상태 변화는 Submit → Hold → Ready → Run → Wait/Exit의 순서로 진행됩니다. 각 상태는 프로세스의 실행 흐름과 자원 할당 상황을 반영합니다.


1. Submit (제출)

  • 사용자가 작업을 시스템에 제출한 상태입니다.
  • 아직 메모리에 적재되지 않은 상태이며, 작업 대기열에 들어가 있습니다.

2. Hold (대기)

  • 제출된 작업이 스풀 공간(디스크의 할당 위치)에 저장된 상태입니다.

Spooling(스풀링)

  • 느린 입출력 장치의 속도를 보완하기 위해 사용되는 기법입니다.
  • 입출력 데이터를 직접 장치에 전송하지 않고 디스크에 임시 저장한 뒤, 한 번에 처리합니다.

3. Ready (준비)

  • 프로세스가 CPU를 할당받기 위해 대기 중인 상태입니다.
  • 준비 상태 큐(Ready Queue)에 들어가 있으며, CPU 할당을 기다립니다.
  • Hold → Ready 전이는 Job 스케줄러에 의해 수행됩니다.

Dispatch (디스패치)

  • Ready 상태의 프로세스 중 하나CPU를 할당받아 Run 상태로 전이되는 과정입니다.

4. Run (실행)

  • 프로세스가 CPU를 할당받아 실행 중인 상태입니다.
  • CPU에서 명령어를 실행하며, 특정 조건이 발생하면 다른 상태로 전이될 수 있습니다.

5. Wait (대기) / Block (블록)

  • 프로세스가 입출력 작업 또는 외부 이벤트를 기다리는 상태입니다.
  • 해당 작업이 완료되면 Ready 상태로 전이될 수 있습니다.

Wake up (웨이크업)

  • Wait 상태에서 Ready 상태로 전이되는 과정입니다.
  • 입출력 작업이 완료되거나 대기 중인 자원이 사용 가능해질 때 발생합니다.

6. Exit (종료)

  • 프로세스의 실행이 종료되고, 시스템에서 자원 할당이 해제된 상태입니다.
  • 정상 종료 또는 비정상 종료(에러)로 인해 발생할 수 있습니다.

프로세스 상태 전이도

Submit → Hold → Ready → Run → Wait → Ready → Run → Exit

요약

  • Submit: 사용자가 작업 제출
  • Hold: 디스크에 임시 저장
  • Ready: CPU 할당 대기
  • Run: CPU에서 실행 중
  • Wait: 입출력 대기
  • Exit: 프로세스 종료
반응형