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

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


Process의 상태 전이

다중 프로그래밍 환경이니까 프로세스의 상태 전이가 필요
in 주기억장치(RAM) 안에서


프로세스 생성하는 과정

  1. 새로운 프로세스를 위한 프로세스 식별자를 할당한다.
  2. 새로운 프로세스를 위한 주소 공간과 프로세스 제어블록(process control block)을 할당한다.
  3. 새로운 프로세스의 프로세스 제어블록을 초기화한다.
  4. 새로운 프로세스를 스케줄링 큐의 준비 또는 준비/보류 리스트에 연결한다.

프로세스 상태

  • Create(생성)
    • 사용자가 요청한 작업이 커널에 등록되어 커널 공간에 PCB 등이 만들어진 상태
    • 프로세스가 생성되는 단계
  • Ready(준비)
    • 프로세스가 생성되어 주기억장치에 적재가 되고, 실행하는데 필요한 자원을 모두 얻은 상태
  • Running (실행)
    • 프로세스가 CPU를 점유하여 실행중인 상태
  • Terminated 
    • 프로세스가 종료되는 상태
  • Asleep(대기)
    • 처리 소도가 느린 I/O(입/출력) 작업 중인 상태
    • 주기억장치에 적재는 되었지만 필요한 자원을 얻지 못한 상태
  • Suspended Ready 
    • 필요한 자원은 모두 얻었지만 주기억장치에 적재되지 못한 상태
  • Suspended Blocked
    • 필요한 자원도 없고 주기억장치에도 절재되지 못한 상태
    • ex) 시디(필요한 자원)가 없어서 출력을 못함


상태 전이

  • Dispatch 
    • 준비 -> 실행
    • 프로세스 스케줄러에 의해 결정된 우선순위에 따라 프로세스가 CPU를 점유하게 되는 상태
  • Time out
    • 실행 -> 준비
    • 프로세스가 실행중이다가 제한된 시간을 다 소비하여 CPU 점유를 빼앗기는 상태
  • Block
    • 실행중이던 프로세스가 외부 요인에 의해서 자원을 빼앗기는 상태
  • Wake up 
    • 프로세스가 자원을 할당받는 상태
  • Swap in
    • 프로세스가 주기억장치에 적재 되는 상태
  • Swap out
    • 프로세스가 주기억장치에서 해제 되는 상태
  • Spooling
    • 입출력 장치의 공유 및 상대적으로 느린 입출력 장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입 출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정  

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?