프로세스 상태기반 스케쥴링 알고리즘

NNIIE·2021년 4월 19일
0

운영체제

목록 보기
7/7

Queue 기반 스케쥴링

아주 간단한 기본적인 스케쥴링 알고리즘
자료구조인 Queue(First In First Out)기반 스케쥴링이다.
프로세스들을 각 상태의 Queue 자료구조에 넣어 실행시키는 방법이다.
Ready, Running, Block 상태 자료구조에서 순환되는 방식이며 Ready상태큐 에는 실행가능한 프로세스들을, Running상태 큐에는 실행중인 프로세스를, Block상태 큐에는 Wait상태(예를들면 하드디스크에서 자료를 읽어오는 상태)인 프로세스들을 차곡차곡 담는다. 포인트시점에서 Ready State Queue 자료구조에서 pop() 함으로써 먼저들어온 프로세스들을 실행시킨다. pop() 시점에 실행가능한 즉, Ready상태 큐에 프로세스가 없으면 CPU는 idle상태에 돌입한다.

선점형과 비선점형 스케쥴러

  • 선점형 스케쥴러 : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할수 있다 (프로세스 running중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능)

  • 비선점형 스케쥴려 : 하나의 프로세스가 끝나지않으면 다른 프로세스는 CPU를 사용할 수 없다 (프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을 때만 다른 프로세스로 교체가능)

스케쥴러 구분

  • FIFO(FCFS), SJF, Priority-based는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘이다
  • RoundRobin은 시분할 시스템을위한 기본 알고리즘이다 (선점형 스케쥴러)



지금까지 배운 내용을 섞어서 짜본 스케쥴러 알고리즘이다

0개의 댓글