[운영체제] 프로세스의 상태 전이
[운영체제] 프로세스의 상태 전이
Process의 상태 전이
다중 프로그래밍 환경이니까 프로세스의 상태 전이가 필요
in 주기억장치(RAM) 안에서 |
프로세스 생성하는 과정
- 새로운 프로세스를 위한 프로세스 식별자를 할당한다.
- 새로운 프로세스를 위한 주소 공간과 프로세스 제어블록(process control block)을 할당한다.
- 새로운 프로세스의 프로세스 제어블록을 초기화한다.
- 새로운 프로세스를 스케줄링 큐의 준비 또는 준비/보류 리스트에 연결한다.
프로세스 상태
- 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
- 입출력 장치의 공유 및 상대적으로 느린 입출력 장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입 출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
댓글
댓글 쓰기