프로세스 상태와 스케쥴링

2020. 1. 11. 18:56컴퓨터공학기초 및 이론/운영체제

멀티프로그래밍과 Wait

각각 실행시간이 동일한 3개의 프로그램(프로세스)가 있고 Wait를 저장매체로부터 읽기에 소모되는 시간으로 가정하면

위와 같이 효과적인 프로그램사용이 가능. 이는 프로세스 상태를 체크하여 일어나는 것으로, 프로세스는 각각

running state, ready state, block state로 나뉨

위의 wait는 block state고, 위의 시간축에 작업이 예정되어 있는 것은 ready state, 실제 작업이 일어나는 동안의 상태를 running state라고 볼 수 있음. 각각은 구체적으로 세개의 Queue를 통해 작업을 관리할 수 있음. Round Robin 스케쥴러를 생각하면, state를 통한 세개의 큐에서 프로세스의 작업이 시분할 단위로 소요시간을 전부 사용하고 종료될 때까지는 계속해서 세개의 큐를 상태에 따라 다르게 들어감. 

running상태에서 파일을 읽을때는 block으로 갈 수 도있고, 시분할로 나뉜 작업시간을 다 사용할 경우에는 다시 ready상태로 큐에 들어갈 수 있음. block은 block작업이 끝나면 ready큐에 들어가 작업대기상태가되고, 대기상태인 작업은 다시 프로세스를 통해 running됨. 이같은 알고리즘과 큐의 원리를 통해 다중 프로그램은 CPU를 효율적으로 사용할 수 있음.