자 일흔 다섯 번째 키워드인 'CPU 선점형 스케줄링'을 알아 보았다.
이번 키워드는 이전 키워드인 CPU 스케쥴링과 연관되는 키워드이므로 알아보았다.
CPU 선점형 스케줄링(preemptive scheduling)은 현재 실행 중인 프로세스를 중단하고, 준비 상태에 있는 다른 프로세스에게 CPU를 할당할 수 있는 스케줄링 방식이다.
이는 비선점형 스케줄링(non-preemptive scheduling)과 대비되며, 선점형 스케줄링에서는 운영체제가 더 높은 우선순위의 프로세스가 도착하면 언제든지 현재 실행 중인 프로세스를 중지시키고 그 프로세스를 실행할 수 있다.
응답 시간 개선
중요한 작업이나 실시간 작업이 빠르게 처리될 수 있다. 높은 우선순위 프로세스가 빨리 실행될 수 있기 때문에 시스템의 응답 시간이 줄어든다.
공정성
여러 프로세스가 CPU 시간을 공정하게 분배받을 수 있다. 이는 특히 다중 사용자 시스템에서 중요하다.
복잡성 증가
문맥 전환(context switch)이 빈번하게 발생할 수 있어 시스템의 복잡성이 증가하고, 문맥 전환에 따른 오버헤드가 발생할 수 있다.
문맥 전환 오버헤드
프로세스를 중지하고 다른 프로세스를 실행하는 과정에서 문맥 전환이 필요하다. 이는 CPU 자원을 소모하고 시스템 성능에 영향을 미칠 수 있다.
실시간 시스템 적합
실시간 시스템에서 요구되는 응답 시간을 보장할 수 있어, 시간에 민감한 작업을 수행하는 데 적합하다.
우선순위 역전 방지
우선순위 역전(priority inversion) 문제를 해결하기 위한 기법을 포함할 수 있다. 예를 들어, 우선순위 상속(priority inheritance) 기법을 통해 낮은 우선순위 프로세스가 높은 우선순위 프로세스를 블로킹하지 않도록 할 수 있다.