군대에서 한것/Operating System

181221/16/프로세스 상태와 스케줄러

_으량_ 2018. 12. 21. 23:13
반응형


2018년 12월 21일 <프로세스 상태와 스케줄러>


멀티 프로그래밍과 Wait

> 멀티 프로그래밍 : CPU 활용도를 극대화 하는 스케줄링 알고리즘

> Wait : 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정

+ 일정 프로세스가 CPU에 넣어지고나서 기다리는 시간

Program A    |Run|     |     |    |Run|     |     |    |

Program B    |     |Run|     |    |     |Run|     |    |

Program C    |     |     |Run|    |     |     |Run|    |

Combined    |Run|Run|Run|    |Run|Run|Run|    |

*빈칸은 wait

--> 이렇게 하기 위해서는 어떤 특정 시점에 어떤 프로세스를 실행시킬지 판단해야함 그 요소 중 하나가 프로세스 상태(Process Status)이다.


프로세스 상태 (Process Status)

프로세스 상태에 대한 이미지 검색결과

출처:https://zetawiki.com/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%83%81%ED%83%9C

- running state : 현재 CPU에서 실행 상태

- ready state : CPU에서 실행 가능 상태 (실행 대기 상태)

- block state : 특정 이벤트 발생 대기 상태 (예: 프린팅이 다 되었다!)

>프로세스 상태간 관계

- Running --> Block : 프로세스가 입출력이나 특정한 이벤트를 위한 대기

- Block --> Ready : 입출력이나 특정한 이벤트가 발생했다면 프로세스를 실행 가능 상태로 바뀜

- Ready --> Running : 스케줄러가 다른 레디 상태의 프로세스를 선택해서 실행시킴

- Running --> Ready : (ex. 시분할 시스템) 스케줄러가 다른 프로세스 실행을 위해 실행중인 프로세스를 레디 상태로 바꿔줌


--> 여러 레디 상태의 프로세들이 존재할 경우 프로세스 상태만으로 스케줄러가 판단하기에는 어려움. 그래서 또 다른 스케줄링 알고리즘

나오는데... 다음 시간에

반응형