프로세스가 상태로 설정되면 TASK_INTERRUPTIBLE
다른 커널 구성요소가 이를 선점할 수 있습니까? 만약 이것이 사실이라면, 프로세스가 wake 조건을 확인하지 못하여 wake할 기회를 놓쳤을 수도 있다고 생각합니다.
답변1
상태는 TASK_INTERRUPTIBLE
스케줄러를 호출할 때 작업이 절전 모드로 전환되는 방식과 관련이 있습니다. 해당 이름은 "중단 가능한 절전 모드"의 약어입니다. 선점을 제어하지 않습니다(사실 Linux는 TASK_INTERRUPTIBLE
(선택적으로) 선점되기 오래 전에 제어합니다).
선점은 절전 모드가 아닙니다. CPU에서 시작된 실행 작업은 최대 절전 모드가 아닌 실행 가능합니다.
작업의 절전 상태가 다른 절전 유형으로 설정되어 있는 동안 작업이 선점되면 TASK_INTERRUPTIBLE
완전한 혼란에 빠질 수 있습니다.
2003년에 누군가가 당신이 의심했던 것과 같은 것을 의심하여 LKML 메일링 리스트에 게시했습니다.
http://lkml.org/lkml/2003/4/14/262
커널 개발자 Rob Love의 후속 작업 및 나머지 토론을 참조하세요.
작업은 TASK_INTERRUPTIBLE
선점형 실행 대기열에 남아 있어야 합니다. 이를 달성하기 위한 해킹(2003년부터 진행됨)이 위 스레드에서 논의되었습니다.