[운영체제] 프로세스 상태

DEV_HOYA·2024년 2월 5일
0

CS

목록 보기
51/55
post-thumbnail

📌 프로세스 상태

  • Blocked, blocked Suspended, Ready Suspended를 묶어서 Waiting으로 표현하기도 함

⭐ 생성(Create, New)

  • fork(), exec() 함수를 통해 프로세스가 생성된 상태
  • 이때 PCB에 할당됨

✅ fork( )

  • 부모프로세스의 주소공간을 그대로 복사하며, 새로운 자식 프로세스를 생성하는 함수
  • 주소공간만 복사할 뿐, 부모프로세스의 비동기작업 등을 상속하진 않음

✅ exec( )

  • 새롭게 프로세스를 생성하는 함수

⭐ 대기(Ready)

  • 처음 프로세스가 생성된 이후 메모리 공간이 충분하면 메모리를 할당받고, 아니면 준비큐에 들어가서 대기중인 상태
  • CPU 스케줄러로부터 CPU 소유권이 넘어오기를 기다리는 상태

⭐ 대기 중단(Ready Suspended)

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

⭐ 실행(Running)

  • CPU 소유권과 메모리를 할당받고 인스트럭션을 수행중인 상태
  • CPU burst가 일어났다라고도 표현

⭐ 중단(Blocked)

  • 어떤 이벤트가 발생한 이후 기다리며 프로세스가 차단된 상태
    ex) 프린트 I/O 요청

⭐ 일시 중단(Blocked Suspended)

  • 대기중단과 유사
  • 중단된 상태에서 프로세스가 실행되려 했지만 메모리부족으로 일시 중단된 상태

⭐ 종료(Exit, Terminate)

  • 프로세스가 실행이 완료되어 해당 프로세스에 대한 자원을 반납하며 PCB가 삭제되는 상태
  • 자연스럽게 종료되는 것도 있지만 부모 프로세스가 자식 프로세스를 강제적으로 종료시켜 비자발적 종료(abort)로 종료되는 것도 존재
  • 자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료되거나 사용자가 process.kill 등 여러 명령어로 프로세스를 종료시킬 때 발생

0개의 댓글