# 운영체제 4장 CPU 스케줄링 ## 키워드 - CPU 스케줄링, ## 질문 만들기 ### 01 스케줄링 개요 - CPU 스케줄링이란? - CPU 스케줄링의 단계에 대해서 설명하세요. - CPU 스케줄링의 목적은? ### 02 스케줄링 시 고려사항 ### 03 다중 큐 ### 04 스케줄링 알고리즘 ### 05 인터럽트 처리 ## 질문 답안 - CPU 스케줄링이란? - **여러 프로세스의 상황을 고려**하여 **CPU와 시스템 자원을 어떻게 배정할지** **결정**하는 일 - CPU 스케줄링의 단계에 대해서 설명하세요. - 고수준 스케줄링 high level scheduling - **시스템 내의 전체 작업 수를 조절**하는 것, 여기서 작업은 운영체제에서 다루는 일의 가장 큰 단위로 1개 또는 여러 개의 프로세스로 이루어지고 있다. - **전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 걸정**한다. 이 결정에 따라 시스템의 전체 프로세스 수가 결정되는데 이를 멀티프로그랠밍 정도라고 한다. - long-term, job, admission scheduling - 저수준 스케줄링 low level scheduling - 어떤 프로세스에 CPU를 할당할지, - 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 일 - short-term scheduling - 중간 수준 스케줄링 middle level scheduling - 고수준 스케줄링은 프로세스를 활성화할지 말지를 결정하여 전체 프로세스 수를 조절하는 방식인데, 프로세스가 활성화된 후에도 여러 가지 사정으로 시스템에 과부화가 걸릴 수 있다. - 시스템 부하를 조절하려면 고수준 스케줄링 대신 중간 수준 스케줄링을 고려해야 한다. - 시스템에 과부화가 걸려서 전체 프로세스 수를 조절해야 한다면 **이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다.** - 보류된 프로세스는 처리 능력에 여유가 생기면 다시 활성화된다. - **중지(suspend) 와 활성화(active)로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막는다.** - 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할을 한다. (**buffer 역할**) - CPU 스케줄링의 목적은? - 공평성 - 모든 프로세스가 자원을 공평하게 배정받아야 한다. - 특정 프로세스 배제X - 효율성 - 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링한다 - 유휴자원을 사용하려는 프로세스에는 우선권을 줘야 한다. - 안정성 - 우선 순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 한다. - 확장성 - 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야 한다. - 반응 시간 보장 - 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 내에 프로세스의 요구에 반응해야 한다. - 무한 연기 방지 - 특정 프로세스의 작업이 무한히 연기되어서는 안된다. ###### tags: `Opersating System`