존재하다이 답변사용자 제안
일반적으로 중단 없는 절전 모드는 오래 지속되지 않지만 Windows에서는 손상된 드라이버나 손상된 사용자 공간 프로그램(exec가 없는 vfork)으로 인해 D에서 영원히 절전 모드가 될 수 있습니다.
버그 없는 커널의 D에 사용자 공간 프로그램이 실제로 어떻게 잠길 수 있습니까? 유저모드가 일부러 D에 갇힐 수 있는건 작은 버그인거 같은데...
답변1
프로세스에 의해 호출되면 상위 프로세스는 하위 프로세스가 아직 vfork
실행되지 않는 한 (단 두 개의 인증된 기능과 그 친척 등) D 상태로 유지됩니다. 상위 프로세스는 여전히 호출을 실행 중이므로 상태 D에 있습니다._exit
execve
execve
execvp
vfork
아이가 이와 같은 일을 하면(어리석지만 효과가 있는), 부모는 상태 D에 무기한 남게 되고, 아이는 상태 R에 무기한 남게 됩니다.
if (!vfork()) while (1) {}