190 likes | 1.09k Views
운영체제론 - 4 장 CPU 스케쥴링 -. 민 주 홍 y2kminju@kunsan.ac.kr Information Sciences & Technology Laboratory 2012.01.05. 목차. 스케쥴링의 개요 스케쥴링의 목적과 기준 스케쥴링 방법 스케쥴링 알고리즘. 스케쥴링의 개요 (1/4). 장기 스케쥴러 (Job scheduler(Long Term Scheduler)) 프로세스를 생성 하고 제거 하는 동작 을 하는 스케쥴러
E N D
운영체제론- 4장 CPU 스케쥴링 - 민 주 홍 y2kminju@kunsan.ac.kr Information Sciences & Technology Laboratory 2012.01.05
목차 스케쥴링의 개요 스케쥴링의 목적과 기준 스케쥴링 방법 스케쥴링 알고리즘 IST (Information Sciences & Technology) Laboratory
스케쥴링의 개요(1/4) • 장기스케쥴러(Job scheduler(Long Term Scheduler)) • 프로세스를 생성하고 제거하는 동작을 하는 스케쥴러 • 작업들을 준비(Ready)상태로 전이시키며 제어 코드와 PCB를 연결지어주기억 장치로 이동 시킴 • 단기 스케쥴러(Process Scheduler(Short Term Scheduler)) • 준비상태에있는 여러 개의 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할 것인 가를 결정하는 스케쥴러 • 중기 스케쥴러(Mid-level scheduler(Mid Term Scheduler)) • 실행중인 프로세스를 중지 하거나 다시 활성화 시키는 기법을 사용 • 시스템에 대한 부하의 양을 조절하는 기능 담당 • Swapping기법을 사용 IST (Information Sciences & Technology) Laboratory
스케쥴링의 개요(2/4) • CPU 스케쥴러 • CPU가 쉬게 될 때마다 운영체제는 준비 큐에 있는 프로세스들 중에서 하나를 선택하여 실행함 • CPU 스케쥴링 이란 • 운영체제가 프로세서를 CPU 스케쥴러에 의해 언제 할당 할지를 결정하고, 자원들을 효율적으로 이용할 수 있도록 관리하는 것 • 프로세서(Processor) 관리자의 구성 • 작업 스케쥴러 : 상위 스케쥴러(High-level scheduler) • 작업 순서대로 작업을 할당 • 작업을 대기하고 있는 큐에서 작업을 선택 프로세스 큐에 가져다 놓음 • 프로세서 스케쥴러: 하위 스케쥴러(lower-level scheduler) • CPU 할당 및 해제 관리 • 지정된 프로세스 스케쥴링 알고리즘에 준하여 수행 IST (Information Sciences & Technology) Laboratory
스케쥴링의 개요(3/4) 데이터 전송 시 어떤 부분에서 오류가 집중적으로 일어나거나, 주기억 장치의 내용을 캐시 기억 장치에 블록 단위로 한꺼번에 전송하는 것 등을 가리킨다 CPU 버스트 명령 수행 I/O 버스트 입출력 대기 CPU 버스트 명령 수행 I/O 버스트 입출력 대기 • 버스트(burst) • CPU 버스트 • I/O버스트가 한번 수행한 후 다음 번 I/O를 수행하기 까지 직접 CPU를 가지고 명령을 수행하는 일련의 작업 • I/O 버스트 • I/O작업이 요청된 후 완료되어 다시 CPU 버스트로 돌아가기 까지 일어나는 일련의 작업 IST (Information Sciences & Technology) Laboratory
스케쥴링의 개요(4/4) • 스케줄링의 구조 • CPU 스케쥴링의 결정 4가지 조건 ① 프로세스가 실행 상태에서 대기 상태로 전환될 때 • 입출력 요청이나 자식 프로세스 중 하나가 종료되기를 기다리는 호출 시 발생 ② 프로세스가 실행 상태에서 준비 상태로 전환될 때 • 시간 종료에 의한 외부 인터럽트가 일어날 때 발생 ③ 프로세스가 대기 상태에서 준비상태로 전환될 때 • 입출력의 종료시 발생 한다 ④ 프로세스가 수행을 마치고 종료될 때 • 작업의 완료 시에 발생한다 ①, ④-> 준비상태에 있는 새로운 프로세스 선택 ①, ②-> 비선점 스케줄링 나머지-> 선점 스케줄링 IST (Information Sciences & Technology) Laboratory
스케쥴링의 목적과 기준(1/2) • 스케쥴링의 목적 • CPU 어떤 한 시점에서는 어느 하나의 프로세스에게만 할당 되기 때문 다른 프로세스가 할당을 기다리게 됨 • 프로세스들이 작업을 수행하려면 실제 CPU를 할당시켜 줘야 함 • 공정한 스케쥴링 • 처리량 극대화 • 우선순위제 실시 • 응답 시간 최소화 • 반환 시간 예측 가능 • 균형 있는 자원 사용 • 무한 연기 배제 • 응답 시간과 자원 이용간의 조화 IST (Information Sciences & Technology) Laboratory
스케쥴링의 목적과 기준(2/2) • 스케쥴링의 결정 기준 • 프로세스의 I/O 바운드와 CPU 바운드 혼용 • 프로세스의 작업 형태 고려 • 프로세스의 우선순위 고려 • 프로세스의 페이지 부재율 고려 • 프로세스의 자원 선점율 고려 • 프로세스의 버스트 시간 고려 • 프로세스의 잔여 실행 시간 고려 • 스케쥴링의 성능 기준 • CPU 이용률(utilization) • 처리율(throughtput) • 수행 시간(turnaround time) • 대기 시간(waiting time) • 응답 시간(response time) IST (Information Sciences & Technology) Laboratory
스케쥴링 방법 • 선점 스케쥴링(preemptive scheduling) • 한 프로세스가 CPU를 차지하고 있을 때 다른 프로세스가 현재 프로세스를 중단시키고 자신이 CPU를 차지할 수 있는 기법 • 우선순위가 높은 프로세스가 먼저 수행 • 빠른 응답 시간을 요구하는 시분할 시스템에 유용 • 선점으로 인한 많은 오버헤드를 초래 • 비선점스케쥴링(non-preemptive scheduling) • CPU를 할당 받으면 다른 프로세스는 CPU를 그 프로세스로부터 점유할 수 없는 기법 • 모든 프로세스들에 대한 요구를 공정히 처리한다 • 응답 시간의 예측이 가능하다 • 짧은 작업이 긴 작업을 기다리는 경우가 자주 발생한다 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(1/9) • 우선순위 스케쥴링(priority scheduling) • 프로세스에게 우선순위를 부여하여 우선순위가 높은 순서대로 처리 • FIFO & SJF방법 • 비선점스케쥴링 방식 • 정적(static) 우선순위 방법 • 프로세스 실행 중 우선순위가 변하지 않는 것 • 구현이 쉽고 오버헤드가 적음 • 주위 환경의 변화에 쉽게 적응하지 못함 • 우선순위를 변경하지 않는 방법 • 동적(dynamic) 우선순위 방법 • 처음에 정해진 우선순위를 상황에 맞게 계속 조정하여 사용 • 구현하기 복잡하고 오버헤드가 많음 • 상황 변화에 잘 적응함 • 시스템의 응답도를 증가시켜 주므로 효율적 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(2/9) • 기한부 스케쥴링(Deadline Scheduling) • 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료 하도록 하는 기법 • 프로세스가 제한된 시간 안에 완료되지 않을 경우 제거 또는 처음부터 다시 실행해야 한다 • 시스템은 프로세스에게 할당할 정확한 시간을 추정해야 하며, 이를 위해서 사용자는 시스템이 요구한 프로세스에 대해 정확한 정보를 제공 해야한다 • 기한부 작업들이 동시에 실행되면 스케쥴링이 너무 복잡하게 되고 집중적으로 요구되는 자원 관리에 오버헤드가 발생 • 비선점스케쥴링 방식 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(3/9) • 선입처리스케쥴링(First Come First Service Scheduling, FCFS) • 비선점스케쥴링 방식 • 프로세스들은 준비 큐에 도착한 순서대로 CPU를 할당 받음 • 일괄처리 시스템에서 주로 사용, 작업 완료 시간을 예측하기 용이 • 장점 • 알고리즘이 간단 • 대형화 시스템에 적합 • 간단하고 공평 • 반응 속도 예측 가능 • 단점 • 성능(반환 시간)이 좋지 않다 • 즉, Turn-around time 예측 불가능 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(4/9) • 순환 할당 스케쥴링(Round Robin Scheduling, RR) • 시분할 시스템(Time Sharing System)을 위해 고안된 방식 • 준비 큐에서 프로세스의 디스 패치가 FCFS 스케쥴링 방법으로 운영됨 • 지정된 시간(Time quantum, Time slice) 동안 모든 작업에게 CPU를 돌아가며 공평하게 할당 • FCFS를 선점 스케쥴링으로 변형시킨 방법 • 장점 • 골고루서비스 가능, 대화식 시스템에 적합 • 단점 • 시간 할당량이 적으면 문맥교환에 많은 시간 낭비 • 시간 할당량(time slice, time quantum) 값 설정 • 일반적으로 100 밀리초에서1, 2초 사이의 값 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(5/9) • 최단 작업 우선 정책 (ShortestJob First Scheduling, SJF) • 준비 큐 내의 작업 중 수행시간이 가장 짧다고 판단되는 것을 먼저 수행 • 평균 대기시간을 최소화 시킬 수 있음 • 비선점스케쥴링 방식 • 즉, CPU 사이클 시간의 길이가 작은 것을 우선으로 수행 • 장점 • FCFS보다 평균 대기 시간을 감소 • 짧은 작업에 유리 • 단점 • 큰 작업은 시간 예측이 어려움 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(6/9) • 최단 잔여 시간 스케쥴링(Shortest Remaining Time Scheduling, SRT) • SJF스케쥴링 방법을 선점 스케줄링 방식으로 수정한 방법 • 시분할 시스템에 유용하다 • 작업이 끝나기까지 남아 있는 잔여 수행시간이 가장 작은 프로세스를 먼저 실행함 • 장점 • 반환시간 측면에서는 SJF보다 우수 • 단점 • SJF스케쥴링기법 보다 오버헤드가 큼 • 최단 잔여 시간 (SRT : Shortest Remaining Time) • 가장 빨리 종료될 수 있는 작업에 CPU에 먼저 할당 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(7/9) • HRN 스케쥴링(Highest Response ratio Next Scheduling) • SJF 스케쥴링의단점을 보완하여 개발된 방법 • 비선점스케쥴링 방식 • 하나의 프로세스가 CPU를 차지하면 완료될 때까지 실행 • 긴 작업과 짧은 작업간의 불평등 완화 • 우선순위를 계산하여 우선순위가 높은 순서로 CPU를 할당 • 우선순위 : (대기시간+버스트 시간)/ 버스트 시간 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(8/9) • 다단계 큐 스케쥴링(Multi-level Queue Scheduling, MLQ) • 작업들의 성격에 따라 준비 큐를 여러 종류의 큐로 나누어 이용하는 스케쥴링 • 처리를 원하는 작업들은 각각의 준비 큐에 넣어 두고 각 큐의 독자적인 스케쥴링 알고리즘에 따라서 CPU를 할당하는 방법 • 선점 스케쥴링 방식 • 각 큐 내에서 작업들은 FCFS방식으로 처리 • 5개의 큐로 분할 • 시스템 작업 • 대화형 작업 • 편집 작업 • 일괄처리형 작업 • 학생 작업 IST (Information Sciences & Technology) Laboratory
스케쥴링 알고리즘(9/9) • 다단계 피드백 큐 스케쥴링(Multilevel Feedback Queue Scheduling, MFQ) • 다단계 큐 스케쥴링의 단점을 보완한 형태의 스케쥴링 방법 • 하위 큐의 무한정 순서를 기다리는 문제를 해결 • 짧은 작업에 유리 • 하나의 분비 상태 큐를 통해서 여러 개의 피드백 큐를 걸쳐 작업을 처리하는 방법 • 선점 스케쥴링 방식 • 준비 큐 사이의 프로세스 이동이 가능하도록 구현하여 입출력 위주의 프로세스와 CPU 위주의 프로세스 특성에 따라서 서로 다른 CPU의 우선순위를 부여 하여 처리 IST (Information Sciences & Technology) Laboratory