제4장 CPU 스케줄링 200812120 이나현
CPU 스케줄링의 개요 프로세스 스케줄링의 개요 스케줄링(Scheduling)이란 운영체제의 핵심기능으로 특정 자원을 요청하고 있는 대상들 중에서 누구에게 먼저 그 자원을 할당해 줄 것인가를 결정하는 일이다. CPU 스케줄링이란 다중 프로그래밍을 가능하게 하는 운영체제의 기본으로 CPU들을 대상으로 CPU 자원을 할당해 주는 순서를 정하는 일이다. 다중프로그래밍(Multiprogramming)이란? 한 개 또는 여러 개의 CPU를 가진 컴퓨터 시스템에서 동시에 여러 프로세서들에게 CPU를 분할 사용하여 CPU의 이용율과 처리율을 높이는 것이다. 대표적인 기법은 시분할 기법과 공간 분할 기법이 있다. 시분할 기법(Time Sharing) 여러 프로세서들이 동시에 작업이 수행될 때 같은 자원을 CPU가 교대로 사용하는 기법이다. 공간 분할 기법(Space Sharing) 하나의 자원을 분할하여 여러 프로세서가 동시에 같이 사용하는 기법이다
프로세서의 실행 바람직한 CPU 스케줄링은 프로세스에 대하여 관찰된 다음 사실에 영향을 받는다. 프로세스(process)는 이 2 상태를 오가며 실행된다. 프로세스 실행 CPU 버스트(burst)로부터 시작되며 입출력 버스트가 뒤따르고, 그 후 또 다른 CPU 버스트가 뒤따르는 과정을 반복한다. 결국은 입출력 버스트보다는 실행 종료를 요구하는 시스템의 요구와 함께 CPU 버스트로 끝나게 된다.
프로세스 스케줄링의 목적 (1) 사용자 관점 : 응답시간의 단축(Response Time) (2) 시스템 관점 : 작업 처리량(throughput), 자원 활용도(Resource Utilization)
프로세스 스케줄링 기준의 고려 사항 프로세스의 속성 → I/O 위주, 연산 위주인가? (2) 시스템의 속성 → 일괄처리 시스템인지, 대화형 시스템인지? (3) 신속한 응답 시간의 중요성 → 특정 프로세서를 우선적으로 스케줄링 할 수 있는 기법제공 (4) 프로세스의 우선 순위 → 특별한 사항이 아닌 경우 지정된 우선 순위에 따라 실행 (5) 프로세스의 총 실행 시간 → 일반적으로 프로세서의 실행시간이 긴 경우 우선 순위가 낮다. (6) 프로세스의 활용 목적 → 중요도, 활용분야에 따라 스케줄링 기법을 달리 하여 목적달성
프로세스 단계별 스케줄링
장기, 중기, 단기 스케줄링의 개념 시스템에 입력되는 작업 또는 명령어에 대해 이들 중 어는 장기 스케줄링=작업 스케줄링(1단계) 시스템에 입력되는 작업 또는 명령어에 대해 이들 중 어는 작업(명령어)부터 커널에 등록시켜 프로세서화 할 것인지 결정하는 단계이다. ■ 장기 스케줄링의 목적 : I/O 위주의 프로세서와 연산 위주의 프로세서들을 적절히 혼합하여, 입출력처리기와 프로세서 가 같이 사용되도록 스케줄링 함으로써 시스템 전체의 자원 활용 면에서 균형을 맞출 수 있도록 지원하는 것
(2) 중기 스케줄링= (2단계) 주기억장치를 할당 받지 못한 프로세서들에 대해 어떤 프로세서 에게 주기억장치를 할당해 줄 것인지 순서를 결정하는 단계이다. → 기억장치 관리기법과 관계를 가지며. 각 프로세서의 주기억장 치 공간의 요구 정도를 고려하여 스케줄링이 이루어진다. (3) 단기 스케줄링= (2단계) 준비 상태(Ready State)에 있는 프로세서들을 대상으로 어느 프로세서에게 CPU를 할당할 것인가를 결정하는 단계이다. → 프로세서 스케줄링 또는 디스패치(Dispatcher)에 의해 수행 → 임의의 시점에서 사용하던 프로세서가 일시 중단, 종료 되었 을 때 수행된다. → 다중프로그래밍과 시분할 작업 등에 자주 수행 된다. ※ 단기 스케줄링의 사건(원인) : I/O 인터럽트, 클럭 인터럽트, 시스템 호출 인터럽트 등
프로세스 방법별 스케줄링 선점(Preemptive;우선권) 스케줄링 운영체제가 프로세서 등의 자원을 할당 받고 있는 프로세스로부터 그 자원을 선점하여 다른 프로세스에 할당 할 수 있도록 허용하는 정책을 말한다. 비선점 (Non-preemptive;우선권) 스케줄링 한 프로세스가 프로세서 등의 자원을 할당 받았을 때 그 자원을 스스로 반납할 때까지 계속 그 자원을 사용하도록 허용하는 정책을 말한다
종류 방법 특징 비고 우선순위 스케줄링 우선순위를 할당해 우선순위가 높은 순서대로 처리하는 기법 ① 고정적 우선순위 ② 가변적 우선순위 ③ 구입된 우선순위 비선점 기한부 프로세스가 주어진 시간 내에 작업이 끝나도록 계획한다. ① 마감 시간을 계산해 야하기 때문에 막대한 오버헤드와 복잡성이 발생 FIFO 작업이 컴퓨터에 들온 순서대로 수행하는 방법 ① 대화형에 부적합 ② 간단하고 공평하다 ③ 반응 속도를 예측 기능 라운드 로빈 FIFO 방식의 변형으로 일정한 시간을 부여하는 방법 ① 시분할 방식에 효과적 ② 할당 시간이 크면 FIFO와 같다 ③ 할당 시간이 작으면 문맥 교환이 자주 발생 선점 SJF 수행 시간이 적은 작업을 우선적으로 처리하는 방법 작은 작업에 유리하고 큰 작업은 상당한 시간이 많이 걸린다.
종류 방법 특징 비고 SRT 스케줄링 수행 중 나머지 수행 시간이 적은 작업을 우선 처리하는 방법 작업처리는 SJF와 같으나 이론적으로 가장 작은 대기 시간이 걸린다. 선점 HRN SRT의 큰 작업이 시간이 많이 걸리는 점을 보완한 방법 우선순위=(대기시간+수행시간)/수행시간 비선점 MLQ 서로 다른 작업을 각각의 큐에서 시간 할당에 의해 처리하는 방법 각각의 큐는 독자적인 스케줄링 알고리즘 사용 MFQ 하나의 준비 상태 큐를 통해 여러 개의 귀환 큐를 걸쳐 일을 처리하는 것 CPU와l I/O 장치의 효율을 높일 수 있다 FSS 설 관련된 다양한 프로세스 집합을 지원하는 알고리즘 UNIX 환경에 접합