Процесс в режиме ожидания диска или непрерывного режима ожидания обычно ожидает завершения операции ввода-вывода. В этом состоянии его нельзя разбудить сигналами, поэтому процесс не может быть остановлен с помощью сигнала SIGKILL.
Мое ограниченное понимание того, что происходит, заключается в следующем: планировщик ЦП в ядре поддерживает очередь выполнения, которая представляет собой список процессов, которые готовы к запуску. Когда процесс получает процессор, он либо
- Полностью использует время и распределяется по расписанию, или
- Необходимо дождаться ответа операции, обычно ввода-вывода, и запросов, которые нужно перенести в очередь ожидания, ожидая события.
Процессы, которые планируются из-за # 2, также указывают планировщику, должны ли они быть прерваны или нет, пока они ожидают события. Если они не могут продолжить надлежащую работу, если их прерывает сигнал (обычно это драйверы устройств), они указывают, что они должны быть разбужены только событием. Они находятся в режиме непрерывного сна и будут перемещены в очередь ожидания.
Если вы испытываете регулярное зависание системы из-за неактивности диска, это может быть одним из
- Багги драйвер устройства
- Неисправности на вашем оборудовании (Дисковод?)
- Монтируемые файловые системы медленно реагируют.
Я видел это снова и снова с файловыми системами NFS. Если по какой-либо причине отклик устройства будет потерян, процесс останется в спящем режиме, что сделает практически невозможным использование устройства / устройства до перезагрузки.
Если вы считаете, что доступ к жесткому диску приводит к зависанию ввода-вывода, возможно, было бы целесообразно проверить, есть ли на диске поврежденные блоки или сектора.