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. 시분할 시스템) 스케줄러가 다른 프로세스 실행을 위해 실행중인 프로세스를 레디 상태로 바꿔줌
--> 여러 레디 상태의 프로세들이 존재할 경우 프로세스 상태만으로 스케줄러가 판단하기에는 어려움. 그래서 또 다른 스케줄링 알고리즘이
나오는데... 다음 시간에
'군대에서 한것 > Operating System' 카테고리의 다른 글
190102&0109/21~22/인터럽트 종류 & 인터럽트 내부 동작 (0) | 2019.01.02 |
---|---|
190101/19~20/스케쥴링 알고리즘 조합 & 인터럽트란 (0) | 2019.01.01 |
181225/18/선점형과 비선점형 스케줄러 (0) | 2018.12.23 |
181223/17/프로세스 상태기반 스케줄링 알고리즘 기본 (0) | 2018.12.23 |
181220/15-2/스케쥴링 알고리즘 기본2 (0) | 2018.12.20 |