'스케쥴링'에 해당되는 글 3건

  1. 2008.08.19 스케쥴링
  2. 2008.08.19 선점,비선점 스케쥴링 1
  3. 2008.08.01 스케쥴링 기법

스케쥴링

Algorithm 2008. 8. 19. 09:53

1. 스케줄링의 개요

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

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

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

[표]


>스케줄링과 문맥 교환이 무엇인지 개념을 파악하고, 스케줄링의 종류만 간단히 알자.

>잠깐만!

문맥 교환(Context Switching)

하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생디는 것으로 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업을 의미한다.


2. 스케줄링의 목적


>스케줄링의 목적과 성능 평가 기준을 묻는 문제가 자주 출제됨. 스케줄링은 CPU나 자원을 효율적으로 사용하기 위한 정책이란 것을 중심으로 알아둔다.


스케줄링은 CPU나 자원을 효율적으로 사용하기 위한 정책으로, 다음과 같은 목적을 가지고 있다.

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

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

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

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

* 오버헤드 최소화: 오버헤드를 최소화한다.

* 응답 시간(Response Time, 반응 시간) 최소화: 작업을 지시하고, 반응하기 시작하는 시간을 최소화한다.

* 반환 시간(Turn Around Time) 최소화: 작업을 지시하고, 반응하기 시작하는 시간을 최소화한다.

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

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

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


>우선순위

우선순위는 시스템에 의해 자동으로 또는 외부 사항에 의해 결정되기도 한다. 시간 제한, 기억장치 요구, 개방된 파일 수, 평균 입ㆍ출력 실행 시간 등을 이용한 내부적 우선순위와 작업을 지원하는 정책, 부서 등의 외부적 우선순위가 있다.


>잠깐만!

스케줄링의 성능 기준

스케줄링의 목적 중 CPU 이용률, 처리율, 반환 시간, 대기 시간, 응답 시간은 여러 종류의 스케줄링 성능을 비교하는 기준이 된다.


3. 프로세서 스케줄링(프로세스 스케줄링)의 기법

 

>선점, 비선점 스케줄링의 의미 파악하고 각 스케줄링의 종류도 알아두자.

 

비선점(Non-preemptive) 스케줄링

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

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

* 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.

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

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

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


선점(Preemptive) 스케줄링

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

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

* 주로 빠른 응답 시가늘 요구하는 대화식 시분할 시스템에 사용된다.

* 많은 오버헤드(Overhead)를 초래한다.

* 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클럭(Clock)이 필요하다.

* 선점 스케줄링의 종류에는 Round Robin(RR), SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 있다.


>인터럽트용 타이머 클럭

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

'Algorithm' 카테고리의 다른 글

셀정렬  (1) 2008.08.23
삽입정렬  (0) 2008.08.23
선점,비선점 스케쥴링  (1) 2008.08.19
병행프로세스와 상호배제  (0) 2008.08.19
주소지정방식  (0) 2008.08.19
Posted by 으랏차
,

선점 스케줄링에 해당하는 선점 우선순위, SRT, RR, 다단계 큐, 다단계 피드백 큐 알고리즘에 대하여 알아보자.


>선점 스케줄링은 대부분 비선점 스케줄링을 보완한 것이다.


1. 선점 우선순위

* 준비상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법이다.

* 비선점 우선순위 기법을 선점 형태로 변경한 것으로, 준비상태 큐에 새로 들어온 프로세스의 순위가 높을 경우 현재의 프로세스를 보류하고 새로운 프로세스를 실행한다.


2. SRT(Shortest Remaining Time)

* 비선점 스케줄링인 SJF 기법을 선점 형태로 변경한 기법으로, 선점 SJF 기법이라고도 한다.

* 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법으로, 시분할 시스템에 유용하다.

* 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가한다.


>SRT는 SJF를 변경한 것으로, 두 개의 알고리즘을 비교하는 문제가 출제됨.

SJF는 실행시간이 가장 짧은 프로세스.

SRT는 현재 실행중인 프로세스의 남아 있는 실행 시간과 새로운 프로세스의 실행 시간을 비교하여 짧은 것.


3. RR(Round Robin)

* 시분할 시스템(Time Sharing System)을 위해 고안된 방식으로, FCFS 알고리즘을 선점 형태로 변형한 기법이다.

* FCFS 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 시간 할당량(Time Slice, Quantum) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치된다.

* 할당되는 시간이 클 경우 FCFS 기법과 같아지고, 할당되는 시간이 작을 경우 문맥교환 및 오버헤드가 자주 발생한다.

* 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리하다.


>RR은 전반적인 내용을 묻는 문제가 출제됨. RR은 시간 할당량을 사용하는 데 할당된 시간이 클수록 FCFS와 같고, 할당되는 시간이 작을수록 문맥 교환과 오버헤드가 자주 발생된다.


예제]


4. 다단계 큐(MQ, Multi-level Queue)

* 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법이다.

* 일반적으로 프로세스 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 편집 프로세스, 일괄 처리 프로세스 등으로 나누어 준비상태 큐를 상위, 중위, 하위 단계로 배치한다.

[그림]


>다단계 큐와 다단계 피드백 큐의 차이점을 알아두자.


* 각 준비상태 큐는 독자적인 스케줄링을 가지고 있으므로 각 그룹의 특성에 따라 서로 다른 스케줄링 기법을 사용할 수 있다.

* 프로세스가 특정 그룹의 준비상태 큐에 들어갈 경우 다른 준비상태 큐로 이동할 수 없다.

* 하위 단계 준비상태 큐에 있는 프로세스를 실행하는 도중이라도 상위 단계 준비상태 큐에 프로세스가 들어오면 상위 단계 프로세스에게 CPU를 할당해야 한다.


5. 다단계 피드백 큐(MFQ, Multi-level Feedback Queue)

* 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법이다.

* 각 준비상태 큐마다 시간 할당량을 부여하여 그 시간 동안 완료하지 못한 프로세스는 다음 단계의 준비상태 큐로 이동된다.

* 상위 단계 준비상태 큐일수록 우선순위가 높고, 시간 할당량이 적다.

* 요구하는 시간이 적은 프로세스, 입ㆍ출력 중심의 프로세스, 낮은 우선순위에서 너무 오래 기다린 프로세스를 기준으로 높은 우선순위를 할당한다.

* 하위 단계 준비상태 큐에 있는 프로세스를 실행하는 도중이라도 상위 단계 준비상태 큐에 프로세스가 들어오면 상위 단계 프로세스에게 CPU를 할당하며, 마지막 단계 큐에서는 작업이 완료될 때까지 RR 스케줄링 기법을 사용한다.



 

비선점 스케줄링에 해당하는 FCFS, SJF, HRN, 우선순위, 기한부 알고리즘에 대하여 알아보자.


>잠깐만!

비선점 스케줄링과 선점 스케줄링

다음과 같이 대응되는 표를 이용하여 각 알고리즘이 선점 기법인지 비선점 기법인지 정리하자.

[표]


1. FCFS(First Come First Service, 선입선출) = FIFO

* FCFS는 준비상태 큐(대기 큐, 준비 완료 리스트, 작업준비 큐, 스케줄링 큐)에 도착한 순서에 따라 차례로 CPU를 할당하는 기법으로, 가장 간단한 알고리즘이다.

* 먼저 도착한 것이 먼저 처리되어 공평성은 유지되지만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다리게 된다.


예제]


>FCFS(FIFO)는 비선점 기법이며 준비상태 큐에 도착한 순서대로 할당을 받는다.


2. SJF(Shortest Job First, 단기 작업 우선)

* SJF는 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다.

* 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이다.

* 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태가 발생될 수 있다.


>SJF의 전반적인 특징, 평균 반환 시간을 계산하는 문제가 촐제됨.


예제1]

예제2]


3. HRN(Hightest Response-ratio Next)

* 실행 시간이 긴 프로세스에 불리한 SKF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법이다.

* 우선순위 계산 공식을 이용하여 서비스(실행) 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU를 할당한다.

* 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위가 높아진다.

* 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.

* 우선순위 계산식

[수식]


>HRN에서는 의미, 우선순위를 계산하는 공식, 계산문제가 출제됨.


예제]


4. 기한부(Deadline)

* 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법이다.

* 프로세스가 제한된 시간 안에 완료되지 않을 경우 제거되거나 처음부터 다시 실행해야 한다.

* 시스템은 프로세스에게 할당할 정확한 시간을 추정해야 하며, 이를 위해서 사용자는 시스템이 요구한 프로세스에 대해 정확한 정보를 제공해야 한다.

* 여러 프로세스들이 동시에 실행되면 스케줄링이 복잡해지며, 프로세스 실행 시 집중적으로 요구되는 자원 관리에 오버헤드가 발생한다.


5. 우선순위(Priority)

* 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법이다.

* 우선순위가 동일할 경우 FCFS 기법으로 CPU를 할당한다.

* 우선순위는 프로세스의 종류나 특성에 따라 다르게 부여될 수 있다.

* 가장 낮은 순위를 부여받은 프로세스는 무한 연기 또는 기아 상태(Starvation)가 발생할 수 있다.


>무한 연기/기아 상태

우선순위가 낮아 CPU 할당이 무한히 연기되는 상태를 무한 연기라 하고, 무한 연기 상태에서 결국 프로세스를 완료하지 못하는 상태를 기아 상태라 한다.


>잠깐만!

에이징(Aging) 기법

ㆍ시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한번 양보하거나 기다린 시간에 비례하여 일정 시간이 지나면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당받도록하는 기법이다.

ㆍ SJF나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있다.

 

'Algorithm' 카테고리의 다른 글

삽입정렬  (0) 2008.08.23
스케쥴링  (0) 2008.08.19
병행프로세스와 상호배제  (0) 2008.08.19
주소지정방식  (0) 2008.08.19
RISC 기본원리  (0) 2008.08.19
Posted by 으랏차
,

스케쥴링 기법

Algorithm 2008. 8. 1. 12:29

선점(preemptive)스케쥴링과 비선점(nonpreemptive)스케쥴링

 


가. 선점 스케쥴링

특정 프로세스가 중앙처리장치를 효율적으로 사용할 수 없는 시점에 이를 때마다 중 앙처리장치의 사용권이 다른 프로세스로 옮겨지는 방식으로 높은 우선순위의 프로세 스들이 급하게 실행해야 할 경우에 유용하다.

① 대화식 시분할 시스템에서 빠른 응답시간을 유지하는 데에 필요하다.

② 경비가 많이 들고 오버헤드까지 초래한다.

③ 효과적인 선점을 하려면 준비 상태의 프로세스가 많아야한다.

④ 우선순위를 고려해야 한다.

⑤ 문맥교환의 횟수가 비선점 방식에 비해서 많다.

 


나. 비선점 스케쥴링

어떤 자원이 어떤 프로세스에 할당이 되면 실행을 종료할 때까지 그 프로세스가 중앙처 리장치의 사용권을 독점하여 사용하는 것으로 짧은 작업들을 기다리게 되는 경우가 있 지만 모든 프로세스 관리에 공정하다.

① 응답시간의 예측이 쉽다.

② 문맥교환의 횟수가 적다.

③ 일괄처리 방식에 적합한 방식이다.

참조) 우선순위(Priority)

① 정적 우선순위(static priority): 프로세스 실행중 우선순위가 변하지 않는 것으로 구현이 용이하고 동적 우선순위에 비해 오버헤드가 적다.

② 동적 우선순위(dynamic priority): 처음에 정해진 우선순위를 상황에 맞게 계속조정하여 사용하므로 구현이 복잡하고 정적 우선순위에 비해 오버헤드가 크다.

 

 

 

프로세서 스케쥴링의 종류

 


선점( Preemption)

 


1. RR (Round Robin )

① FIFO스케쥴링과 같이 도착 순으로 디스패치되는 방식

② 타임 슬라이스(time slice) 혹은 시간 할당량(time quantum)에 의해 시간제한을 받음

시간할당량이 클 경우 : FIFO스케쥴링 방법과 차이가 없게 됨

시간할당량이 적은 경우 : 문맥교환 오버헤드가 상대적으로 커지게 되어 시스템은 대부분의 시간을 문맥교환(context switching)에 소비하게 됨

③ 대화식으로 사용하는 시분할 시스템에 적합

④ FIFO를 선점 스케쥴링으로 변형시킨 방법

 


2. SRT (Shortest Remaing Time)

① SJF스케쥴링기법을 선점 기법으로 변형시킨 방법

② 시분할 시스템에 유용하다.

③ 작업이 끝나기까지 남아 있는 실행시간의 추정치가 가장 작은 프로세스를 먼저 실행함

④ SJF스케쥴링기법보다 오버헤드가 큼

 


3. Multilevel Feedback Queue

① 짧은 작업에 우선권

② 입출력 위주의 작업들에게 우선권

③ 큐에서 FIFO 형태로 이동

(마지막 단계의 큐에서는 프로세스가 종료될 때까지 RR방식으로 순환)

④ 낮은 단계로 내려갈수록 프로세스의 시간 할당량이 커짐

 

 

 

비선점 ( Non - preemption )

 


1. FIFO ( First In First Out )

① 준비 큐(ready queue)에서 도착한 순서에 따라 디스패치 됨

② 응답시간 차가 적기 때문에 예측이 쉬움

③ 대화식 시스템에는 적합하지 않음

 


2. SJF ( Shortest Job First )

① 작업이 끝나기까지의 실행시간의 추정치가 가장 적은 작업을 먼저 실행 함 (짧은 작업들에 우선적으로 서비스)

② 평균 대기시간을 최소화 시킬수 있음

 


3. 우선순위 ( Priority )

① 각 프로세스에게 우선순위를 부여하여 우선순위가 높은 순서대로 처리함

② 우선순위가 같을 때는 FIFO또는 SJF을 도입하여 실행 함

 


4. 기한부 ( Deadline Scheduling )

작업들을 마감시간까지 완성하도록 계획한 스케쥴링

 


5. HRN ( Highest Response Ratio Next )

① SJF스케쥴링기법의 약점인 긴 작업과 짧은 작업간의 지나친 불평등들을 어느 정도 보완한 방법

② 각 작업의 우선순위는 그 작업이 서비스를 받을 시간뿐 아니라 그 작업이 서비스를 기다린 시간 두 가지의 함수로 결정됨

응답률 = (대기한 시간 서비스 받을 시간)/ 서비스 받을 시간

  

 

'Algorithm' 카테고리의 다른 글

deadlock 4가지  (0) 2008.08.01
B-, B+ Tree  (0) 2008.08.01
CPU scheduling  (0) 2008.08.01
banker's algorithm  (1) 2008.08.01
deadlock  (0) 2008.08.01
Posted by 으랏차
,