환급미션 35일째...
운영체제 - 프로세스와 스케쥴러의 이해 - 03. 프로세스 상태와 스케쥴러
운영체제 - 프로세스와 스케쥴러의 이해 - 04. 프로세스 상태 기반 스케쥴링 알고리즘 기본
- 멀티 프로그래밍과 wait
멀티 프로그래밍 : cpu 활용도를 극대화하는 스케쥴링 알고리즘
wait : 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정
위 그림에서 Combined == Scheduler로 가정,
제일 먼저 A process 가 실행 가능한 상태,
A가 끝나는 시점에 B process가 실행 가능한 상태,
B가 끝나는 시점에 C process가 실행 가능한 상태인데
이를 연달아 실행하게 되는 상태가 cpu의 활용도가 증가하게 되는 것이다.
* 프로세스 상태
running state : 현재 cpu의 실행 상태 (싱글코어라면 1개)
ready state : cpu에서 실행 가능 상태 (실행대기상태)
block state : 특정 이벤트 발생 대기 상태 == wait (ex)저장매체 - 파일 읽기,
new : 프로세스 생성 중, ready state가 아직 되기 전의 상태
exit : 시스템 리소스 등을 종료하기 위해 필요한 시간
-> 스케쥴링 알고리즘에서 고려해야 하는 각 state
* 프로세스 상태 간 관계
위의 그림을 참고하여 아래 순서대로 진행된다. (running state에서 시작하는 상황이라고 가정)
1. (running -> block state) 특정 이벤트 대기
4. (block -> ready state) 프로세스가 실행 가능한 상태가 된다.
2. (ready -> running state) 스케쥴러가 다른 ready상태의 process를 선택하여 running state로 바꿈
3. (running -> ready state) 스케쥴러가 선택적으로 running state의 프로세서를 ready state로 변경함
1. 시작시점에 1,2,3 process 모두 ready state -> process2 block state (가정)
2. 다음 시점에서 process1,3 ready state & process2 block state -> 다음 process 선택
일반적으로 아래와 같은 형태의 알고리즘으로 선택하게 된다.
1. 세 개의 queue를 둔다. ( ready state queue/ running state queue / block state queue )
*queue == FIFO(first in first out)
2. 큐의 정책에 따라(FIFO, first in first out) 시작 시점에 하나의 프로세스를 가져온다. -> process 1부터 실행
첫 번째 프로세스를 선택한 직후의 시점.
(ready state queue 는 1-2-3 에서 1이 먼저 실행되고 2-3이 남은 상태에서 다음 ready state queue를 나타냄.)
3. 스케쥴러가 다음 프로세스를 선택
4. 알고리즘에 따라 process2가 실행되는데, 다음 시점에 wait 상태가 되기 때문에
running state -> block state queue로 넘어가게 된다.
5. 알고리즘에 따라 다음으로 process3이 실행됨
6. 그 다음 시점에서 process는 다시 실행가능하기 때문에 running -> ready state queue에 들어가게 된다.
7. 다음 ready state에 있던 process1 -> running state queue로 가게 된다.
8. 다음 ready state인 process3이 실행되는 시점에 process2의 대기시간이 끝나게 되면서
block state -> ready state queue로 넘어가게 된다.
9. process2가 실행되면서 running state queue로 넘어가게 되고,
process3의 대기시간이 아직 끝나지 않은 상태이기 때문에 block state queue에 남게 된다.
10. 그 다음 시점에서 process2는 큐에서 없어지게 되고,
process3은 그대로 block state queue에 남아있게 된다.
이 때 cpu는 아무것도 실행되지 않는 상태가 되고, 이를 CPU idle 상태라고 한다.
11. process3의 대기 상태가 끝날 때까지 block -> ready -> running state queue로 각각 넘어가게 되고
실행 이후에는 큐에서 사라지게 된다.
최종적으로 실행되는 cpu의 상태는 아래와 같다.
위에서 진행된 예시는
프로세스 상태를 기본으로 한 기본적인 알고리즘을 보여준다.
만약 'Queue' 자료구조를 사용한 것이 아니라,
우선순위 정책 또는 최단작업우선(SJF) 스케쥴링 알고리즘을 사용했다면 프로세스 실행순서는 달라질 수 있다.
올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE
'패스트캠퍼스' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 37회차 미션 (0) | 2020.11.24 |
---|---|
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 36회차 미션 (0) | 2020.11.23 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 34회차 미션 (0) | 2020.11.21 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 33회차 미션 (0) | 2020.11.20 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 32회차 미션 (0) | 2020.11.19 |