CPU 스케줄링 과 목 명 : 운영체제 교 수 님 : 박승기교수님 학 과 : 컴퓨터소프트웨어 학번(반) : C200812098 학 과 : 컴퓨터소프트웨어 학번(반) : C200812098 이 름 : 윤상미
CPU 스케줄링이란? 다중 프로그래밍을 가능하게 하는 운영체제의 기본이 된다.
1.CPU 입출력 버스크 주기 프로세스 실행은 CPU 실행과 입출력 대기상태의 순환 프로세스 실행은 CPU 버스트부터 시작
2.프로세스의 상태 현재상태에 의해서 정의 프로세스의 실행은 CPU 버스트와 입출력 버스트의 혼합된 연속 모든 프로세스는 생성, 활동, 대기, 중단 중 한상태에 있게 된다.
3.프로세스 제어 블록 프로세스 상태 생성, 준비, 실행, 유휴, 중단 등의 상태 프로그램 계수기 프로세스를 수행하기 위한 다음 명령의 주소를 표시 CPU 레지스터 누산기, 색인레지스터, 범용레지스터, 조건코드 등에 관한 정보를 말하며 컴퓨터 구조에 따라 수나 형태가 변화한다.인터럽트발생시 PC와 함께 저장되어 뒤에 다시 수행될 때 원상복구 할 수 있도록 한다.
3.프로세스 제어 블록 주기억 장소 관리 정보 기준 레지스터, 한계 레지스터, 페이지 표 포함 계정정보 CPU사용시간, 실제사용시간, 한정된 시간, 계정번호, 작업이나 프로세스 번호 등 포함. 입출력 상태 정보 특별한 입출력 요구 프로세스에 할당된 입출력장치, 개방된 파일의 목록 등
3.프로세스 제어 블록 CPU 스케줄링 정보 프로세스의 우선 순위, 스케줄링 큐에 대한 포인터, 그 외 다른 스케줄 매개 변수
4.성능의 기준 CPU 사용률 처리율(throughput) 반환 시간(turnaround time) 대기 시간(waiting time) 반응 시간(response time) CPU 사용률과 처리율을 최대화 반환시간, 대기시간, 반응시간을 최소화
5.스케줄러 장기스케줄러 어떤 작업이 시스템에 들어 와서 처리될 것인가를 결정 단기스케줄러 주기억장치 내의 준비상태에 있는 작업들 중에서 실행할 작업을 선택하고 CPU를 배당 두 스케줄러의 근본적인 차이는 실행빈도에 있다 (단기는 수시로 장기는 드물게 수행)
6.스케줄링 단계 1단계 스케줄링(장기) - 작업스케줄링 이라고 불리며 어느 작업부터 시스템내의 자원들을 실제로 사용할 수 있도록 할 것인지를 결정 - 승인스케줄링이라고도 불린다 2단계 스케줄링(중기) - 어느 프로세스부터 중앙처리장치를 차지할 수 있도록 할지를 결정 - 시스템의 작업승인과 작업들에 대한 CPU배당 사이의 완충 역할 3단계 스케줄링(단기) - 중앙처리장치가 이용 가능할 때 어느 프로세스에게 배당될지를 결정
7.스케줄링 목적 공정해야 한다. 단위시간당 처리량을 최대화해야 한다. 대화식 사용자에게는 될수록 응답을 빠르게 주어야 한다. 예측이 가능해야 한다. 오버헤드를 최소화 시켜야 한다. 자원의 사용에 있어서 균형을 이루어 주어야 한다. 응답시간과 자원의 활용간에 균형을 유지해야 한다. 무한정으로 실행이 연기되는 것을 피해야 한다. 우선순위제도를 실행하는 것이 좋다. 주요자원을 차지하고 있는 프로세스에게 우선권을 주어야 한다. 바람직한 행동을 보이는 프로세스들에 서비스를 더 잘해 주어야 한다. 시스템에 부하가 많이 걸린 경우에도 성능체증은 서서히 일어나야 한다.
8.스케줄링의 종류 FIFO 스케줄링 Round-Robin (RR) 스케줄링 SJF 스케줄링 (=SPN 스케줄링) SRT 스케줄링 HRN 스케줄링 다단계 피드백 큐
8.스케줄링의 종류 FIFO 스케줄링 nonpreemptive기법 외관상으로는 공정하지만 어느 정도는 불합리하다. 응답시간에 있어서 차이가 적게 나며 예측이 수월한 편이다. 대화식 사용자들을 스케줄링 하는데 적합하지 않다.
8.스케줄링의 종류 Round-Robin (RR) 스케줄링 프로세스들이 FIFO식으로 디스패치 된다. 타임 슬라이스 또는 시간 할당량이라 불리는 중앙처리장치에서의 시간 량에 제한을 받는다. 시스템이 대화식 사용자들에게 적절한 응답시간을 보장해 주어야 하는 시분할 시스템에 효과적이다
8.스케줄링의 종류 SJF(Shortest-Job-First) 스케줄링 (=SPN 스케줄링) 작업이 끝나기까지의 실행시간의 추정치가 가장 작은 작업을 먼저 실행시키는 nonpreemptive 스케줄링 기법 FIFO 기법보다 평균 대기시간이 작지만 대기시간의 분산은, 특히 긴 작업의 경우, FIFO 기법보다 더 크며 따라서 더욱 예측이 불가능하다 짧은 작업을 긴 작업의 앞에 놓음으로써 긴 작업의 대기 시간을 증가시키기보다는 짧은 작업의 대기 시간을 줄여 평균대기 시간을 줄인다. 차기 CPU 요구 시간을 알기가 어렵다.
8.스케줄링의 종류 SRT(Shortest-Remaining-Time) 스케줄링 SJF기법의 preemption 변형이라 할 수 있으며 시분할 시스템에 유용하다. 남아있는 실행시간의 추정치가 가장 작은 프로세스를 먼저 실행시킨다. 실행되는 각 작업들의 실행시간을 추적해야 하며 때로는 preemption을 해야 한다.
8.스케줄링의 종류 HRN(Highest Response-ratio Next) 스케줄링 SJF기법의 약점, 특힌 긴 작업과 짧은 작업간의 지나친 불평등들을 어느 정도 보완한다. nonpreemptive 스케줄링 기법이며 각 작업의 우선순위는 그 작업이 서비스를 받은 시간뿐 아니라 그 작업이 서비스를 기다린 시간 두 가지의 함수이다. 한 작업이 중앙처리장치를 차지하면 그 작업이 완성 될 때까지 실행된다.
8.스케줄링의 종류 다단계 피드백 큐 프로세스들을 중앙처리장치에 대한 요구량에 따라 분류하는 데 이상적이다. 시스템이 경직되지 않고 유동적인 상태변화에 적응 하도록 하는 적응(adaptive)기법을 사용 입출력위주의 프로세스들은 중앙 처리장치를 잠시만 사용하고 입출력 요구를 발생시키며 연산위주의 프로세스들은 nonpreemptible 기법 하에서 중앙처리장치를 일단 차지하면 장시간 계속 연산을 수행한다. 짧은 작업에 우선권을 주어야 한다. 입출력 장치를 효과적으로 활용하기 위해서 입출력위주의 작업들에게 우선권을 주어야 한다. 가능한 한 빨리 작업의 성격을 파악하여 그 성격에 맞게 스케줄링을 해야 한다.