커널 모드에서 실행되는 프로세스를 선점할 수 없는 이유

커널 모드에서 실행되는 프로세스를 선점할 수 없는 이유

사용자 모드 프로세스는 선점 가능하다고 읽었는데 왜 커널 모드 프로세스가 아닌가?

답변1

"커널 선점은 모든 또는 대부분의 장치 드라이버가 커널 공간에서 실행되는 모놀리식 및 하이브리드 커널에서 주로 사용되는 방법으로, 실행 중에 스케줄러가 강제로 컨텍스트 전환(예: 선점 스케줄링, 실행 가능 및 더 높은 우선 순위 프로세스를 나타냄)을 수행할 수 있도록 합니다. 드라이버 또는 커널 기능(예: 시스템 호출)이 실행을 완료하고 프로세서 제어권을 스케줄러에 반환할 때까지 협력적으로 기다리지 않고 드라이버 또는 커널의 다른 부분을 제어합니다.

이 접근 방식은 모놀리식 커널과 하이브리드 커널에 두 가지 주요 이점이 있으며, 마이크로커널 지지자들이 모놀리식 커널에 대해 제기한 주요 비판 중 하나에 대한 답변입니다. 즉, 장치 드라이버가 무한 루프나 기타 복구 불가능한 상태에 들어가 전체 시스템이 고장날 수 있다는 것입니다. 모놀리식 코어의 일부 드라이버와 시스템 호출은 느리게 실행되며 실행이 완료될 때까지 프로세서 제어권을 스케줄러나 다른 프로그램에 반환할 수 없습니다. "

https://en.wikipedia.org/wiki/Kernel_preemption

관련 정보