꾸준하게 기록하기
article thumbnail

 

멀티 프로그래밍과 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

 

제로베이스 컴퓨터 공학 전공자 따라잡기 강의 시청 후 정리한 내용입니다.
728x90

'CS > 운영체제' 카테고리의 다른 글

인터럽트  (0) 2022.02.23
선점형과 비선점형 스케쥴러  (0) 2022.02.23
스케쥴링 알고리즘 기본  (0) 2022.02.23
프로세스 스케쥴링  (0) 2022.02.22
운영체제 구조 - 사용자 모드와 커널 모드  (0) 2022.02.22
profile

꾸준하게 기록하기

@:_:

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!