[ OS ] 스케줄링

이숭인·2021년 8월 11일
0

[ OS ] 운영체제

목록 보기
7/9

스케줄링

멀티 프로세스 환경에서 여러 프로세스들은 동시에 돌아갈 수 있으며, 여러 프로세스들이 요구하는 시스템 자원들 을 적절히 분배 하여 프로세스에 할당 하는것을 의미합니다.

스케쥴링을 통해

  • 공정성 : 모든 프로세스에 공정하게 할당합니다.
  • CPU 의 활용 극대화 : CPU 의 낭비 시간을 줄이고, CPU 가 순수하게 프로세스를 실행하는데 사용되는 비율을 증가시킵니다.
  • 프로세스 처리율(시간 당 작업량) 증가 : 단위 시간당 프로세스를 처리하는 비율을 증가시킵니다.
  • 오버헤드 최소화
  • 대기시간 최소화 : 프로세스가 대기 큐에서 대기하는 시간을 최소화합니다.
  • 반환시간 최소화 : 프로세스가 실행되고 실행이 완료되는 시간을 최소화합니다.

등과 같은 장점을 얻을 수 있습니다.

스케쥴링에는 여러가지 알고리즘이 존재합니다.

  1. FCFS (First Come First Served, First in First Out) - 선입 선처리 스케쥴링
  2. Shortest Job First - 최소 작업 우선 스케쥴링
  3. Priority - 우선순위 스케쥴링
  4. Round - Robin - 라운드 로빈 스케줄링



FCFS ( First Come First Served, First in First Out )


먼저 자원 할당을 요청한 프로세스가 먼저 자원을 제공받으며, 이미 사용중이라면 사용이 끝날때까지 기다려야하는 비선점 스케쥴링 방식 입니다.

장점

  1. 단순한 스케줄링 방식
  2. 자원을 요청한 모든 프로세스가 cpu를 할당받아 실행
  3. 프로세스 처리율이 높다

단점

  1. 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 올 수 없는 비선점방식의 스케줄링 방식 이기 때문에 프로세스간의 통신 이 필요한 작업에는 부적합 하다.
  2. 자원 할당을 요청한 순서대로 프로세스가 실행 되므로, 어떤 프로세스의 실행시간 이 매우 길다면 뒤에 실행되어야 할 프로세스들의 대기시간 이 늘어난다.



Shortest Job First - 최소 작업 우선 스케줄링


프로세스의 실행 시간 을 이용하여 가장 짧은 시간을 갖는 프로세스 가 먼저 자원을 할당 받는 방식입니다.

FCFS 와는 달리 먼저 CPU를 할당 받은 프로세스가 존재하더라도 우선순위가 높은 프로세스CPU를 강제 선점 할 수도 있는 방식입니다. 이 스케줄링 방식은 비선점 스케줄링 방식 혹은 선점 스케줄링 방식 이 가능합니다.

장점

  • 실행시간이 짧은 작업을 먼저 처리하게 되므로 프로세스가 대기큐에서 머무는 평균 대기시간이 짧다

단점

  1. 수행시간이 긴 작업은 짧은 작업에 밀려 기아 가 발생할 수 있다
  2. 모든 프로세스의 실행시간을 예측하기가 힘들어서 실용적이지 못하다.
  3. 실행시간이 짧은 순서대로만 실행 되므로 공정성 에 어긋납니다.

텍스트



Priority 스케줄링 - 우선순위 스케줄링


우선순위 스케줄링 은 프로세스마다 우선순위가 존재합니다.
우선순위 스케줄링선점 , 비선점 스케줄링이 가능합니다. 만약 우선순위가 같다면 FIFO 방식으로 동작합니다.

장점

  1. 프로세스의 중요성에 따라 작업을 수행하기 때문에 합리적입니다.
  2. 실시간 시스템에서 사용 가능합니다.

단점

  1. 다른 프로세스들에 비해 상대적으로 낮은 우선순위 를 가진 프로세스는 자원을 할당받지 못하는 경우 도 생기기 때문에 기아 가 발생할 가능성이 존재합니다.



Round - Robin - 라운드 로빈 스케줄링


Round - Robin 스케줄링은 작은 단위의 시간시간 할당량 을 정의하여 그 시간 만큼 자원을 할당 하는 방식입니다.
만약 할당받은 시간 내에 작업을 끝내지 못하면 다음 프로세스가 자신의 시간 할당량 만큼 CPU를 사용 하게 됩니다.

장점

  1. 모든 프로세스가 공정하게 스케줄링 을 받을 수 있습니다.
  2. 실행 큐에 프로세스의 수 를 알고 있을때 유용합니다.
  3. 평균 대기시간이 적습니다.

단점

  1. CPU 가 프로세스에 할당될 단위 시간인 시간 할당량 이 너무 길면 FIFO 방식 으로 변하고, 너무 짧으면 실행중인 프로세스가 자주 바뀌므로 Context Switching 에 의해 오버헤드가 발생 하게 됩니다.
  2. 하드웨어적으로 시간을 체크할 타이머 가 필요합니다.
  3. 작업중인 프로세스가 할당된 시간만큼만 작업이 가능하므로 다른 프로세스를 기다려야하기때문에 평균 처리시간이 높습니다.



요약

스케줄링은 멀티 프로세스 환경에서 여러 프로세스들은 동시에 돌아갈 수 있으며, 여러 프로세스들이 요구하는 시스템 자원들 을 적절히 분배 하여 프로세스에 할당 하는것을 의미합니다.

스케줄링 방식으로는 대표적으로 FCFS , SJF(Shortest Job First) , Priority , Round - Robin 알고리즘이 존재합니다.

  • FCFS : 먼저 자원 할당을 요청한 프로세스가 먼저 자원을 제공받으며, 이미 사용중이라면 사용이 끝날때까지 기다려야하는 비선점 스케쥴링 방식

  • SJF : 프로세스의 실행 시간을 이용하여 가장 짧은 시간을 갖는 프로세스가 먼저 자원을 할당받는 방식. 비선점 스케줄링 방식 혹은 선점 스케줄링 방식 이 가능

  • Priority : 우선순위 스케줄링 은 프로세스마다 우선순위가 존재. 선점 , 비선점 스케줄링이 가능합니다. 만약 우선순위가 같다면 FIFO 방식으로 동작

  • Round - Robin : Round - Robin 스케줄링은 작은 단위의 시간시간 할당량 을 정의하여 그 시간 만큼 자원을 할당 하는 방식. 만약 할당받은 시간 내에 작업을 끝내지 못하면 다음 프로세스가 자신의 시간 할당량 만큼 CPU를 사용



profile
iOS Developer

0개의 댓글