1

Какое влияние оказывает уничтожение процесса на операционную систему (Windows и Linux)?

У меня есть сценарий, который разветвляет некоторые исполняемые файлы и отслеживает их выполнение и убивает те, которые превышают определенный лимит времени выполнения. Я хотел знать, будут ли процессы уничтожения вызывать проблемы в ОС

1 ответ1

3

Это зависит от того, что это за процессы и что они делают.

На самом базовом уровне ядро спроектировано так, чтобы справляться с неожиданно умирающими процессами пользовательского режима (с одним или двумя исключениями: например, в Linux есть код специального случая, чтобы вызвать сбой системы, если init когда-либо завершится; один такой особенный процесс в Windows, но вы, вероятно, не пишете эти программы). Он автоматически закрывает все файлы, открытые процессом, освобождает память, снимает блокировки и т.д. Таким образом, вам не нужно беспокоиться о нарушении фундаментальной стабильности ОС.

Теперь становится интереснее, если рассматриваемый процесс записывает данные в файловую систему или связывается с другими процессами (возможно, даже не на том же компьютере). Узлы связи получат внезапный EOF, TCP RST или что-то подобное. Файлы сохранятся, возможно, с внутренне несовместимым содержимым, и что-то может сработать. В конечном счете, вы несете ответственность за то, чтобы все остальное в системе было подготовлено к тому, чтобы ваш процесс ушел.

Читайте о дизайне, предназначенном только для сбоев, о том, как создавать надежные системы при наличии ограничителей ресурсов и т. П.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .