-
[운영체제] Scheduler와 Dispatcher운영체제 2023. 11. 16. 18:43
CPU 스케줄러(CPU Scheduler)
CPU 스케줄링을 수행하는 프로세스로 모든 컴퓨터 자원을 사용 상태로 유지하고 효과적으로 공유할 수 있도로 작업을 수행합니다.
- CPU 스케줄링(CPU Scheduling)
CPU 이용률을 최대화하기 위해 CPU가 유휴 상태가 될 때마다, 프로세스 우선순위에 따라 CPU를 회수하여 대기 큐에 있는 다른 프로세스에 할당하는 것
스케줄러 종류
장기 스케줄러 (Long-term scheduler or job scheduler)
장기 스케줄러는 Job Queue에서 작업을 선택하고 해당 작업을 해당 컴퓨터의 주 메모리(Ready Queue)에 로드하는 작업을 담당하며 작업 스케줄러라고도 합니다.
단기 스케줄러 (Short-term scheduler or CPU scheduler)
단기 스케줄러는 스케줄링 알고리즘에 따라 Ready Queue에서 다음 실행할 작업을 선택하고 Dispatcher의 도움을 받아 해당 프로세스에 CPU 제어권을 부여하는 작업을 담당합니다. CPU 스케줄러라고도 합니다.
중기 스케줄러 (Medium-term scheduler or Swapper)
차단되거나 대기 상태의 프로세스를 관리하고 스와핑 하는 작업을 수행합니다. 또한 중기 스케줄러는 자원을 효율적이고 공평하게 사용되도록 보장하기 위해 리소스 할당을 수정하는 일을 담당합니다. 프로세스가 예상보다 많은 메모리를 사용하지 않도록 메모리를 관리하며 프로세스가 오랜 기간 CPU를 할당받지 못한 경우 우선순위를 조정할 수 있습니다.
디스패처(Dispatcher)
스케줄러의 내부 모듈로 CPU의 제어권을 다음 실행될 프로세스에게 할당하는 작업을 담당합니다.
디스패처는 Context Switching 작업을 실행하고 운영체제의 모드를 커널모드에서 사용자 모드로 전환시켜 다음 프로그램이 이전에 실행하던 위치부터 실행할 수 있도록 도와줍니다.
이때 디스패처가 하나의 프로세스를 중지하고 다음 프로세스를 시작하는데 걸리는 시간을 디스패치 대기 시간이라고 하며 이 시간이 짧을수록 CPU 이용률이 증가합니다.
https://www.notesjam.com/2018/07/cpu-scheduling-in-operating-system.html
'운영체제' 카테고리의 다른 글
[운영체제] 동시성(Concurrency) VS 병렬성(Parallelism) (0) 2023.11.29 [운영체제] 스케줄링 종류와 기아상태 (0) 2023.11.22 [운영체제] 프로그램, 프로세스, 스레드 비교 (0) 2023.11.10 [운영체제] 동기(sync) vs 비동기(async), 블로킹(Blocking) vs 논블로킹(Non-Blocking) (0) 2023.11.08 [운영체제] 입출력(I/O) 제어 - 폴링, 인터럽트, DMA (0) 2023.11.08 - CPU 스케줄링(CPU Scheduling)