멀티 프로그래밍과 Wait
wait : 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정
멀티 프로그래밍 : CPU 활용도를 극대화하는 스케줄링 알고리즘
① 일 때는 프로세스 A를 선택 (B나 C는 wait 상태이므로)
② 일 때는 프로세스 B를 선택 (A나 C는 wait 상태이므로)
③ 일 때는 프로세스 C를 선택 (A나 B는 wait 상태이므로)
Scheduler 는 특정 시점에 어떤 프로세스가 실행이 가능하고 아닌지 미리 파악하고 있어야 한다.
빨간색 화살표 시간에 프로세스 A, B, C 모두가 실행되면서 CPU 활용도는 100%
어떤 시점에 어떤 프로세스를 CPU에 넣을지 결정하는데 있어서 프로세스 상태가 중요한 요소이다.
주요한 요소 프로세스 상태 정보(ready,running,blocked)를 Scheduler가 필요로 한다.
프로세스 상태
기본적인 스케쥴링 알고리즘에서 프로세스 상태정보를 정의해 놓음.
스케쥴링 알고리즘이 어떤 시점에 어떤 프로세스를 실행할지 판단해야 한다.
이 때 중요한 요소 중 하나가 프로세스 상태 정보이다.
- running state : 현재 CPU에서 실행 상태
- ready state : 지금 CPU에 넣으면 바로 실행 가능한 상태 (실행 대기 상태)
- block state : wait 상태 (ex.저장매체에서 파일읽기를 기다리는 시간) ,특정 이벤트 발생 대기 상태.
바로 CPU 에서 실행 되지는 않는다. 특정 이벤트가 발생되기 전까지 wait
프로세스 상태간 관계
- 프로세스 상태는 ready, running, block states 3가지가 있다.

① 프로세스 블록(대기상태)됨
② 다른 ready 상태의 프로세스를 선택해서 running 상태로 변경
③ 스케줄러가 프로세스를 running 상태에서 ready 로 변경
④ 프로세스가 CPU 에 실행가능한 상태가 되었다.
프로세스 상태기반 스케줄링 알고리즘
① 시점에서는 프로세스 1,2,3은 다 ready 상태
스케줄러가 프로세스1,2,3 중에 2를 선택
② 시점에서는 프로세스 1,3 은 ready상태(아직 실행을 안해서), 프로세스2는 block상태
스케줄러가 프로세서 1,2,3 중에 어떤 걸 골라야 하는지 또 다른 정책이 필요.
-> state별로 Queue(FIFO)를 두어서 사용
( 프로세스 state 기반한 스케줄링 알고리즘에서 Queue 자료구조를 적용하면 합리적으로 알고리즘 적용가능)
- Ready State Queue
- Running State Queue
- Block State Queue
제로베이스 컴퓨터 공학 전공자 따라잡기 강의 시청 후 정리한 내용입니다.
'CS > 운영체제' 카테고리의 다른 글
인터럽트 (0) | 2022.02.23 |
---|---|
선점형과 비선점형 스케쥴러 (0) | 2022.02.23 |
스케쥴링 알고리즘 기본 (0) | 2022.02.23 |
프로세스 스케쥴링 (0) | 2022.02.22 |
운영체제 구조 - 사용자 모드와 커널 모드 (0) | 2022.02.22 |