CS/운영체제

[운영체제 ] 2. 프로세스 상태와 스케줄링 알고리즘

쉽코기 2021. 9. 18. 02:15

1. 프로세스 스케쥴링

 

<배치 처리 시스템>

  • 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행 하는 방식
  • 한번에 등록된 여러 프로그램을 단순히 순차적으로 실행시킴
  • 비선점형 스케쥴러에서 쓰임

<시분할 시스템>

  • 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템
  • 특정 시간을 기준으로 interupt 를 발생시켜 프로세스들을 cpu에서 전환함
  • 선점형 알고리즘에서 쓰임
  • RoundRobin 알고리즘이 사용됨

<멀티 프로세싱>

  • 여러 CPU 에서 하나의 프로그램을 병렬로 실행시키는 시스템
  •  프로세스 진행중 해당 프로세스가 blocked 상태라면 CPU가 쉬게 되고 이때 멀티 프로세싱이 효율적일 수 있음

 

 

2. 프로세스 상태

- 프로세스는 총 5가지의 상태로 구분된다. 그 중 3가지를 이용하여 스케줄러가 CPU의 사용여부를 판단하게 된다. 

  • ready state: CPU에서 실행 가능한 상태 / 실행 대기중인 상태
  • running state: 현재 CPU에서 실행중인 프로세스 
  • block state: 특정 이벤트를 대기하고 있는 상태 (= wait 상태)

 


3. 스케쥴링 알고리즘 

  • FiFO :  단순히 실행된 순서에 맞게 실행시킴
  • SJF : 가장 시간이 적은 프로세스를 먼저 실행 시킴
  • Priority-based : 프로세스마다의 우선수위를 고려하여 순서에 맞게 실행시킴
  • RoundRobin : 시분할 시스템을 위한 기본 알고리즘 

일반적으로 ReadyQueue , RunningQueue( Job Queue ) , BlockQueue( Deviece Que ) 에 프로세스들이 프로세스 상태에 맞게 들어가고 여러 알고리즘들이 혼합 되어 스케쥴링이 완성된다.  여기서 BlockQueue( Deviece Que ) 는 Device I/O 작업을 대하고 있는 프로세스의 집합이다.