-
반응형
프로세스 / 스레드란?를 통해 프로세스와 스레드에 대해 알아보았다.
프로세스는 실행 흐름에 따라 상태가 변하는데 이 상태에 대해 알아보도록 하자.
프로세스의 상태
프로세스는 실행의 흐름에 따라 상태가 변합니다. 상태를 정의하는 이름은 운영체제에 따라 다르지만, 대부분 서로 비슷한 개념으로 구성되어 있습니다. 프로세스의 흐름은 일반적으로 5개의 상태로 정의됩니다.
- 생성 (New) : 프로세스 생성 상태
- 준비 (Ready) : 프로세스가 초기화와 같은 작업을 통해 CPU에 할당되기를 기다리는 상태
- 실행 (Running) : 프로세스가 CPU에 할당되어 실행 중인 상태
- 대기 (Waiting) : 보류(Block)라고도 하며, 프로세스가 입출력이나 이벤트를 기다리는 상태 (해당 작업이 끝나면 다시 CPU에 실행되기 위해 Ready 상태로 돌아가야 합니다.)
- 종료 (Terminated) : 프로세스 종료 상태
프로세스의 상태 전이
- New -> Ready : 운영체제에 의해 프로세스를 승인 (admit)
- Ready -> Running : 프로세서가 프로세스를 수행하기 위해 CPU 할당(시간도 할당됨) (dispatch)
- Running -> Ready : 할당된 시간이 지나면 time out interrupt가 발생 (interrupt)
- Running -> Waiting : time out 전에 입출력이나 이벤트 요청이 발생 (sleep, block) (event wait)
- Waiting -> Ready : 입출력/이벤트 요청이 완료되면 다시 Ready 상태로 전이 (event completion)
- Running -> Terminated : 프로세스 종료 (exit)
- Ready -> Terminated : exit
- Waiting -> Terminated : exit
References
- https://rebas.kr/852
728x90'OS' 카테고리의 다른 글
교착상태(Deadlock) 란? (0) 2020.10.29 프로세스 / 스레드란? (0) 2020.10.21