스케쥴링

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 으랏차
,