[OS] 운영체제 스케줄링이란 무엇인가?

 스케줄링이란? 

1. 스케줄링은 프로세스가 생성되어 실행될때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 의미합니다.

2. 프로세스가 생성되어 완료될때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 됩니다.

3. 스케줄링의 종류에는 장기 스케줄링, 중기 스케줄링, 단기 스케줄링이 있습니다.

 

 장기 스케줄링 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미합니다. 작업 스케줄링, 상위 스케줄링이라고도 하며, 작업 스케줄러에 의해 수행됩니다. 
 중기 스케줄링  어떤 프로세스들이 CPU를 할당 받을 것인지 결정하는 작업을 의미합니다. CPU를 할당받으려는 프로세스가 많을 경우 프로세스를 일시 보류시킨 후 활성화해서 일시적으로 부하를 조절합니다.
 단기 스케줄링    프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업을 의미합니다. 프로세서 스케줄링, 하위 스케줄링이라고도 합니다. 프로세서 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행됩니다. 

 

스케줄링의 목적

스케줄링은 CPU나 자원을 효율적으로 사용하기 위한 정책으로 아래와 같은 목적을 가지고 있습니다.

 

공정성 : 모든 프로세스에 공정하게 할당합니다.

처리율(량)증가 : 단위 시간당 프로세스를 처리하는 비율(양)을 증가시킵니다.

CPU 이용률 증가 : 프로세스 실행 과정에서 주 기억장치를 액세스한다든지, 입출력 명령실행 등의 원인에 의해 발생할 수 있는 CPU의 낭비 시간을 줄이고, CPU가 순수하게 프로세스를 실행하는데 사용되는 시간 비율을 증가시킵니다.

우선순위 제도 : 우선순위가 높은 프로세스를 먼저 실행합니다.

오버헤드 최소화 : 오버헤드를 최소화합니다.

응답시간 최소화 : 작업을 지시하고 반응하기 시작하는 시간을 최소화합니다.

반환시간 : 프로세스를 제출한 시간부터 실행이 완료되는 시간을 최소화합니다.

반환시간 최소화 : 프로세스를 제출한 시간부터 실행이 완료될떄까지 걸리는 시간을 최소화합니다.

대기시간 최소화 : 프로세스가 준비상태 큐에서 대기하는 시간을 최소화합니다.

균형있는 자원의 사용 : 메모리, 입출력장치 등의 자원을 균형있게 사용합니다.

무한 연기 회피 : 자원을 사용하기 위해 무한정 연기되는 상태를 회피합니다.

 

 프로세서 스케줄링의 기법 

비선점 스케줄링

1. 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법입니다.

2. 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될때까지 CPU를 사용합니다.

3. 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합합니다.

4. 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있습니다.

5. 비선점 스케줄링의 종류에는 FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘이 있습니다.

 

선점 스케줄링

1. 하나의 프로세스가 CPU를 할당받아 실행하고 있을 떄 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법입니다.

2. 우선순위가 높은 프로세스를 빠르게 처리할 수 있습니다.

3. 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됩니다.

4. 많은 오버헤드를 초래합니다.

5. 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요합니다.

6. 선점 스케줄링의 종류에는 라운드로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 있습니다.

 

※ 인터럽트용 타이머 클록이란?

하나의 시스템 내에서 동작하는 장치들을 감시하기 위해 주기적인 신호를 발생하는 것으로, 하나의 프로세스가 자원을 독점하지 못하도록 방지하기 위해 사용됩니다.

 

 

 

'OS' 카테고리의 다른 글

[OS] 교착상태란 무엇인가?  (4) 2019.02.09
[OS] 여러가지 프로세서 운영기법들  (0) 2019.02.08
[OS] PCB란 무엇인가?  (0) 2019.02.06
[OS] 프로세스란 무엇인가?  (0) 2019.02.05

댓글

Designed by JB FACTORY