운영체제-공룡책

공룡책 이용하여 운영체제 공부하기 - 11 (Process Scheduling)

amelia-suyeon 2023. 8. 20. 16:19

■ multiprogramming의 목적

 

- 매시간에 프로세스를 동작 시키기 위해

- CPU 사용을 극대화 하기 위해

 

■ time sharing의 목적 

 

- 프로세스들 간의 CPU 코어를 자주 변경 하기 위해

- 유저들은 각각의 프로그램이 동작하는 동안에도 상호 작용(즉 사용)할 수 있기 위해

 

■ Scheduling Queses 란?

 

- process들은 시스템에 들어간 것과 같으며, 프로세스들은 준비된 queue 에 있다.

  • ready queue 란 CPU 코어에서 작동을 위한 대기를 하는 곳

- process들은 확실한 이벤트가 발생하기 위해 기다린다.

  • 이때  process들은 queue에서 대기

- 이 queue들은 보통 수행된다.

  • PCB와 같은 링크드 리스트에서 수행 

 

<ready queue와 wait queue의 과정>

 

 

■ Queueing Diargram

 

queueing diagram 이란?

 

-> 프로세스 스케줄링의 공통적인 표현과 같다.

 

설명을 덧붙이자면, read queue에서 cpu 자원을 할당 받기 위해 기다린다.

-> cpu 할당을 받은 후, i/o request가 들어오면 i/o queue 에서 waiting 상태, 혹은 실행되다가 interrupt가 되면 다시 ready 상태가되어 -> 처음으로 돌아가 cpu 할당을 기다린다.

 

이런식으로 주기를 반복하다 결국 종료 된다. 이때 모든 queue 에서 삭제되며, 자신의 PCB와 자원을 반납한다!

 

■ Context Swith 

(이 부분의 개념은 항상 마음에 와닿지 않았었는데, 다시 보려고 한다.)

 

context swith란?

먼저, 프로세스에서 context란 PCB에서의 표현을 말한다.

 

- interrupt(방해요소) 가 발생했을 때,

  • 시스템은 동작하는 프로세스의 현재 context를 저장
  • 후에 다시 재개 되었을때, 이 context를 복구 할 수 있도록 함

- context swith는 아래와 같은 일을 한다.

  • 다른 프로세스에게 cpu 코어를 바꿔준다.
  • 현재 프로세스의 저장된 상태를 수행 한다. (아마 위처럼 저장된 것을)
  • 그리고 다른 프로세스 상태도 저장한다.

 

 

프로세스에서 부터 프로세스 까지의 context swith의 다이어그램