정의


단일 처리 시스템에서는 실행 중인 프로세스(A)가 존재하는데 다른 프로세스(B)가 입출력을 요청하면 그 프로세스(B)는 이전의 프로세스(A)의 자원을 놓을때까지 대기하고 있어야합니다. 하지만 다중 프로그래밍에서는 여러 프로세스들이 동시에 돌아갈 수 있으며, 프로세스가 자원(프로세서 등)을 요청하면 운영체제는 그 자원을 적절히 분배하여 프로세스에게 할당합니다.

프로세스 상태 전이

프로세스 상태 전이

new : 새로 생성된 상태

ready : CPU를 할당받기 위해 Ready List에서 기다리는 상태

running : CPU를 할당받아 실행중인 상태

waiting : 입출력 처리나 이벤트가 끝날 때까지 Waiting List에서 기다리는 상태

terminated : 모든 수행이 종료된 상태

전이(Transition) 상태(State) 변화 설명
admitted new→ready 생성된 프로세스가 메모리로 올라옴
dispatch (=schedule) ready→running Ready List 내 프로세스 중 우선순위에 따라 한 프로세스에 CPU 할당
timeout (=preemptive) running→ready 주어진 타임 슬라이스를 다 사용하였거나 우선순위가 높은 프로세스에 의해 선점 당함
sleep (=wait) running→waiting 입출력 처리나 이벤트가 발생하여 프로세스가 스스로 CPU 반납 후 Waiting List로 이동
wakeup waiting→ready 기다리던 입출력 처리나 이벤트가 종료되어 Ready List로 이동
exit running→terminated 프로세스가 running 상태에서 할 일을 모두 끝냄

image.png

용어 설명
대기 시간 자원의 할당을 대기하는 시간을 의미합니다.
실행 시간 실제로 프로세스가 자원을 할당받은 다음 작업을 수행하는 시간을 의미합니다.
반환 시간 작업을 완료하는데 소요되는 전체 시간으로 대기 시간과 실행 시간을 모두 포함합니다.

사용중인 CPU를 뺏을 수 있는지, 없는지로 스케줄링 정책이 구분된다.