CS Chapter_9 - 스케쥴링

장선웅·2022년 8월 13일
0

1. 스케쥴링이란?

스케쥴링이란, 다중 프로그래밍을 가능케 하는 운영체제의 동작 기법이다.

1_1 스케쥴링의 목적

프로세스 스케쥴링의 목적은 시스템 성능의 향상이다.

  • 공정한 스케쥴링 : 모든 프로세스에게 공정하게 할당을 해야함
  • 응답시간 최소화 : 대화식 사용자에게는 최대한 응답시간을 빠르게 해야함
  • 반환시간 최소화 : 프로세스를 제출한 시간부터 완료시까지 걸리는 반환시간을 최소화 한다
  • 대기시간 최소화 : 프로세스 준비 상태 큐에서 대기하는 시간을 최소화 해야하며 앞에서 처리가 늦어시면 뒤에서 부하가 생기기 때문에 빠르게 처리해야한다.
  • 우선 순위 제도 : 먼저 처리해야 하는 것에 우선 순위를 부여해서 먼저 처리함.
  • 처리량 극대화 : 단위시간당 할 수 있는 처리량을 최대화 한다.
  • 균형 있는 자원 사용 : 자원들이 유휴 상태에 놓이지 않도록 골고루 사용하게 함.
  • 무한 연기 회피 : 자원을 사용하기 위해 무한정 연기하는 경우를 회피.

2. 선점형 스케쥴링

한 프로세스가 CPU를 할당받아서 실행하고 있을 때 다른 프로세스가 CPU를 사용하고 있는 프로세스를 중지시키고 CPU를 차지할 수 있는 스케쥴링 기법

2_1. Round Robin

  • 시분할 시스템위해 설계된 선점형 스케쥴링 기법이다.
  • 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위로 CPU를 할당한다.

2_2. SRT

  • 최단 잔여시간을 우선으로 하는 스케쥴링 기법이다.
  • 진행 중인 프로세스가 있어도 최단 잔여시간인 프로세스를 위해 sleep시키고 짧은 프로세스를 먼저 할당한다.

2_3. MLQ

  • 우선순위마다 준비 큐 형성
  • 각 큐는 라운드로빈이나 FCFS등 독자적 스케줄링 사용 가능하다.
  • 대화형, 배치 등의 프로세스 성격에 따라 우선순위 부여한다.
  • 큐들 간의 프로세스 이동이 불가하기 때문에 스케줄링 부담이 적지만 유연성이 떨어질 우려가 있다.
  • 우선순위가 낮은 프로세스는 오랬동안 CPU할당을 기다리는 기아 현상이 발생할 수도 있다.

2_4. MLFQ

  • 우선순위마다 준비 큐 형성
  • MLQ와 비슷하게 높은 우선순위 큐의 프로세스에 CPU를 할당한다.
  • MLQ와의 차이점은 각 작업의 특성에 따라 동적으로 우선순위를 부여한다.
  • 기본적으로 우선순위가 높은게 먼저 실행 되지만, 같은 경우에는 RR방식으로 같이 실행 된다.

3. 비선점형 스케쥴링

이미 사용되는 cpu를 빼았지는 못하고 사용이 끝날 때 까지 기다리는 스케줄링 기법

3_1. FCFS

  • 저 도착한 순서에 따라 작업을 수행하는 배치형 시스템
  • 오버헤드가 낮다.
  • 수행시간이 긴 프로세스가 자원을 점유하고 있을 경우 다른 프로세스의 대기시간이 늘어난다.

3_2 SFJ

  • 시간이 짧은 프로세스부터 처리하는 알고리즘
  • 프로세스가 다음 CPU 요청에서 얼마만큼의 CPU를 할당 받았는지 알 수 없다는 단점이 있다.

3_3 HRN

  • 각 작업의 우선순위로 CPU 할당을 해주는 스케쥴링
  • 우선순위가 낮은 프로세스 즉, 오랫동안 대기하는 프로세스에 우선순위를 증가시켜 기아상태를 해결할 수 있다.

기아상태와 교착상태?

교착상태란, 무한 대기 상태를 의미한다. 즉, 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 다음 단계롤 진행하지 못하는 상태이다.

기아상태란, 특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당 받지 못하는 상태를 의미한다.

  • 기아상태와 교착상태

-> 교착상태는 여러 프로세스가 동일 자원 점유를 요청할 때 발생
-> 기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스는 영원히 자원 할당이 안되는 경우를 주로 의미한다. (!= 스레드)
=> 해당 프로세스의 해당 우선순위를 높여준다, 우선순위가 아닌 요청 순서대로 처리하는 FIFO 기반 요청큐 사용

profile
개발을 꿈꾸는 초짜

0개의 댓글