제4장 CPU 스케쥴링 운영체제 1-C반 200812100 박소라
개요 CPU스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 기본으로 프로세스들 간의 CPU 배정을 원활히 함으로써 운영체제는 시스템의 출력을 더욱 개선할 수 있다. 모든 컴퓨터 자원은 사용되기 전에 스케줄 되어야 하므로 스케줄링은 운영체제 기능의 기초가 된다. CPU는 컴퓨터에서 주요 자원의 하나이므로 CPU 스케줄링은 운영 체제 설계의 중심이다
개요 CPU가 주로 수행하는 것은 사용자의 작업과 프로그램이지만 그 외 다른 시스템 활동도 수행해야 한다. 대해서 대응 조치를 취해야 한다. 인터럽트는 시분할 단말기 키보드에서의 개별적 특성일 수도 있고, 채널 프로그램의 결과일 수도 있다. 일괄 처리 시스템은 작업을 수행하는 반면, 시분할 시스템은 사용자 프로그램을 가지고 있다.
CPU 입출력 버스트 주기 프로세스 실행은 cpu실행과 입출력 대기 상태의 순환인데, 프로세스는 이 두 상태를 오가며 실행된다. 프로세스 실행은 cpu 버스트로부터 시작되며 입출력 버스트가 뒤따르고, 그 후 또 다른 cpu 버스트가 뒤따르는 과정을 반복한다.
프로세스 성능 기준 CPU 사용률 전체작업시간 중에서 CPU가 사용된 시간 처리율(throughput) 단위 시간당 완료되는 작업 수 반환시간(turnaround time) 작업이 맡겨진 시간부터 종료될 때 까 지의 시간 대기시간(waiting time) 준비상태 큐에서 대기하는 시간 반응시간(response time) 어떤 요구를 의뢰한 시간으로부터 반응이 시작될 때까지의 시간
프로세스 스케쥴링 목적 1. 공정해야함. 2. 단위시간당 처리량을 최대화. 3. 대화식 사용자에게는 도리수록 응답을 빠르게 주어야 함. 4. 예측이 가능해야 함. 5. 오버헤드를 최소화 시켜야 함. 6. 자원의 사용에 있어서 균형을 이루어 주어야 함. 7. 응답시간과 자원의 활용간에 균형을 유지해야 함. 8. 무한정으로 실행이 연기되는 것을 피해야 함.
프로세스 스케쥴링 목적 우선 순위 제도를 실행하는 것이 좋음. 주요 자원을 차지하고 있는 프로세스에게 우선권을 주어야 함. 바람직한 행동을 보이는 프로세스들에 서비스를 더 잘 주어야 함. 시스템에 부하가 많이 걸린 경우에도 성능체증은 서서히 일어나야 함.
스케쥴링 단계 및 목적 단계 1단계 스케줄링 : 어느 작업부터 시스템내의 자원들을 실제로 사용할 것인지를 결정 2단계 스케줄링 : 어느 프로세스부터 CPU를 차지할 수 있도록 할 지를 결정. 3단계 스케줄링 : CPU가 이용 가능할 때 어느 프로세스에 배당될지를 결정. 목적 1. 응답시간의 단축 2. 알고리즘 스케줄링 3. 작업 처리량, 자원 활용도
선점형 스케쥴링과 비선점형 스케쥴링 선점형 스케쥴링 어떤 스레드 가 CPU를 사용하고 있는 동안 다른 스레드 에 의해 그 CPU의 사용을 선점당할 수 있는 방식 비선점형 스케쥴링 어떤 스레드 가 CPU의 사용권을 다른 스레드 에게 이양한 후에야 다른 스레드 가 그 CPU를 사용할 수 있게 되는 방식
비선점 스케줄링 종류 기한부(Deadline) - 일정시간 동안 프로세스 완료하는 기법 - 제한된 시간 안에 완료되지 않을 경우 제거 되거나 처음부터 다시 실행해야함 - 여러 프로세스들이 동시에 실행되면 스케줄링이 복잡해지며, 프로세스 실행 시 집중적으로 요구되는 자원관리에 오버 헤드가 발생한다. 우선순위(Priority) - 프로세스마다 우선순위 부여 - 우선순위가 동일 한경우 FCFS 기법으로 할당 - 가장 낮은 순위를 부여 받은 프로세스는 무한 연기 또는 기아 상태가 발생할 수 있다.
선점형 스케줄링 Round Robin - 시분할 시스템을 위해 고안된 방식, FCFS 기법 변형 - 각 프로세스는 시간 할당량 동안만 실행한 후 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치 - 할당된 시간이 클수록 FCFS와 같다. - 시간이 작을 수록 문맥교환과 오버헤드가 자주 발생 SRT(Shortest Remaining Time) - SJF 기법을 변형, 선점 SJF라고도 한다. - 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당. - 준비상태 큐에 있는 프로세스의 실행 기간 추적으로 오버헤드 증가
선점형 스케줄링 다단계 큐 - 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비단계 큐 사용 - 시스템, 대화형, 편집, 일괄처리 프로세스 등으로 분류 - 준비상태 큐 마다 다른 스케줄링 기법 사용가능 - 다른 준비상태 큐로 이동 불가 - 하위단계 준비 큐에 있는 프로세스를 실행하는 도중이라도 상위 단계 준비상태 큐에 프로세스가 들어오면 상위단계 프로세스에게 CPU를 할당 다단계 피드백 큐 - 다단계 큐 기법 개선하여 다른 준비상태 큐로 이동 가능 - 각 큐마다 시간 할당량부여 시간동안 완료 되지 못한 프로세스는 다음 단계 큐로 이동 - 마지막 단계 큐에서는 RR스케줄링으로 할당