어제의 나보다 성장한 오늘의 나

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

CS/운영체제

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

NineOne 2021. 5. 25. 00:36

프로세스 상태

우리가 실행하고 있는 프로그램들(카톡, 브라우저, 음악 등)은 같이 실행되고 있다. 정확히는 동시에 실행되는 게 아니라 프로세스에서 빠르게 프로세스를 교체하면서 실행시키고 있는데 그에 따른 lifeCycle이 있다.

https://kosaf04pyh.tistory.com/190

new ( 프로세스 생성중 )

  • 작업을 커널에 등록
  • PCB할당 및 프로세스 생성
  • 커널
    • 가용 메모리 공간 체크 및 프로세스 상태 전이
    • 가용 메모리가 있다면 ready, 없다면 suspended ready

ready ( 프로세스가 CPU를 기다리는 상태 )

  • 프로세서(CPU) 외에 다른 모든 자원을 할당받은 상태**(즉시 실행 가능 상태)**
  • ready 상태를 가지는 여러개의 프로세스들이 존재할 수 있음
  • CPU를 할당받게 되면 running 상태로 전이되는데 이를 dispatch라 한다.

running ( 프로세스가 CPU를 할당받아 명령어를 수행 중인 상태 )

  • 일반적으로 CPU는 하나이기 때문에 여러 프로세스가 동시에 실행되도 실제로 실행 중인 프로세스는 하나

blocked ( 프로세스가 CPU를 할당 받아도 당장 실행할 수 없는 상태 )

  • 프로세서 외에 다른 자원을 기다리는 상태
  • 프로세스가 I/O 작업 등을 처리중인 상태를 의미

teminated ( 프로세스의 실행 종료 )

  • 프로세스의 실행이 완료되고 할당된 CPU를 반납, 커너 공간 내의 PCB는 남아 있음

suspended ( 프로세스 중지 상태 )

  • suspended 상태의 프로세스는 메모리를 강제로 뺏긴 상태로 특정한 이유로 프로세스의 수행이 정지된 상태를 의미한다.
  • 중기 스케줄러에 의해 디스크로 스왑 아웃된 상태

오로지 하나의 프로세스만 running 상태에 있을 수 있는 반면, 여러 개의 프로세스가 ready 상태나 block상태에 있을 수 있다. 그러면 다음과 같은 프로세스도 있을 수 있다.

  • ready 상태에서 계속 CPU의 점유권을 못 가져가는 프로세스
  • asleep 상태에서 ready 상태로 못 넘어가는 프로세스

위의 두 개의 프로세스는 결과적으로 실행은 잘 되지도 않으면서 메모리에서 자리만 차지하고 있는 꼴이 된다. 이런 비효율은 없어져 줘야겠다. 즉, 다시 DISK로 swap out 해버린다. ready 상태에서 swap out 하면 suspended ready 상태가 되고, asleep 상태에서 swap out 하면 suspended block 상태가 되어버린다. 물론 이 두 상태에서 나중에 필요에 의해 swap in 하여 다시 메모리에 load 될 수도 있다. 

프로세스를 스케줄링 하기 위한 큐

  • 다중 프로그래밍 환경에서는 여러 개의 프로세스를 사용하기 때문에 프로세스들을 관리하기 위한 자료구조가 필요

작업 큐 (Job Queue)

  • 시스템의 모든 프로세스를 관리하기 위한 큐
  • 프로세스의 상태와 무관하게 현재 시스템내에 있는 모든 프로세스를 관리
  • 때문에 작업 큐에 있다고 해서 반드시 메모리를 가지고 있다는 건 아님

준비 큐 (Ready Queue)

  • CPU를 할당받기 위해 기다리고 있는 프로세스를 관리
  • 프로세스 상태에서 준비 상태에 있게 된다.
  • 프로세스의 처리는 스케줄링 알고리즘을 사용

장치 큐 (Device Queue)

  • 각각의 장치마다 서비스를 기다리는 프로세스를 관리
  • 프로세스 상태에서 blocked
  • 해당 장치의 서비스를 받고 나서 장치 컨트롤러가 인터럽트를 발생시키면 준비 큐로 이동

 

 

출처

https://operatingsystems.tistory.com/entry/OS-Job-Queue-Ready-Queue-%EA%B7%B8%EB%A6%AC%EA%B3%A0-Device-Queue?category=495588

https://jhnyang.tistory.com/7

https://kosaf04pyh.tistory.com/190

Comments