멀티 프로그래밍과 Wait

출처: 위키디피아
- 멀티 프로그래밍: CPU 활용도를 극대화 하는 스케쥴링 알고리즘
- Wait: 간단히 설명하자면 저장매체로부터 파일 읽기를 기다리는 시간
프로세스 상태

출처: http://i-bada.blogspot.com/2012/04/blog-post_2886.html
-
running state: 현재 CPU에서 실행 상태
- running 상태 프로세스에 할당된 time slot이 끝난 경우 ready state로 이동
- running state에서 실행중인 프로세스가 특정 이벤트를 기다려야 더 진행이 가능한 상황에서 blocked state로 이동시킴
-
ready state: CPU에서 실행 가능 상태(실행 대기 상태)
- dispatcher가 실행을 위해서 하나의 프로세스를 선택하면 ready state => running state로 이동
-
block state: 특정 이벤트 발생 대기 상태
- 특정 이벤트를 기다리다 그 이벤트가 발생하면 ready state로 이동
예시

- 우선순위로 교차로 실행되지만 wait인 상태에선 blocked state로 넘어가기 때문에 레디에 먼저 도착한 프로세스가 먼저 실행됨
- 실행중인 프로세스가 모두 blocked state 기다리고 있는경우 CPU는 idle 상태로 대기