2010-02-28 5 views
1

Надеюсь, это связано с программированием.Что происходит во время завершения работы ОС?

Что именно происходит во время выключения операционной системы, давайте возьмем Linux здесь как открытый источник, и об этом может быть больше знаний.

  • (How) - прекращены ли потоки ядра?
  • Обеспечивает ли источник питания прекращение подачи питания (капитан очевидно), когда компьютер находится в «чистом» состоянии? Что я имею в виду с ясным состоянием, так это то, что в ЦПУ больше ничего не происходит и т. Д.

  • Почему большинство операционных систем так долго останавливаются? Я имею в виду, что им не нужно инициализировать что-то или даже загружать ресурсы в память.

  • Почему бы не операционные системы не походить на «Эй, неважно - давайте просто прекратим все процессы, а просто выключим питание»?

+0

отнести его к SF, а не к программированию вообще. –

+0

Больше supuser.com достойный для меня. – voyager

+3

Я уже давно нахожусь здесь. Хотя вам просто интересно узнать о некоторых вещах, о которых вы не узнаете в каком-либо руководстве или так, мои вопросы чаще называются «Домашнее задание». Я думаю, что это может быть форма троллинга здесь. «звучит как hw для меня ...» «Надеюсь, это не ваша домашняя работа» ... (да, я нахожу вас там) – yapl

ответ

7
  1. Ну, иногда ОС делает только махнуть. Дайте «перезагрузить» правильные аргументы управления и splat.

  2. Что делать, если изменения в файле хранятся в памяти и не сбрасываются на диск? Возможно, вам захочется вытащить их первым.

  3. Что делать, если какой-то процесс демона частично прошел через некоторое сложное обновление файла? Возможно, вы захотите его закончить.

  4. Что делать, если демонам необходимо сообщить что-то еще в сети, что он уходит, чтобы организовать упорядоченный вылет?

Чтобы справиться со всем этим, операционные системы имеют упорядоченные процедуры останова. На linux вы можете посмотреть, как колбасы не наносятся, просмотрев /etc/rcN.d, для N = 0,1,2,3,4.

Символьные ссылки, начинающиеся с «K», - это процесс останова.

Так или иначе, в конце процесса, на современном оборудовании, операционная система отключает питание. Разумеется, это зависит от аппаратного обеспечения.

0

Я считаю, что ОС вызывает ACPI или аналогичные функции управления питанием, чтобы выполнить окончательную команду отключения. Если компьютер не поддерживает это, Linux просто прекратит выполнение, при этом все сети будут отключены.

Причина не делает внезапное отключение питания является то, что:

  1. Некоторое оборудование хочет быть выключение чисто - например, парковка жесткого диска.
  2. У пользователя могут быть несохраненные данные - лучше попросить все приложения закрыть.
4

Последняя версия Mac OS X, Show Leopard, на самом деле делает что-то довольно интересное: приложения должны оставаться в «стабильном» состоянии, где они могут быть прекращены без предупреждения. Если это не так (во время записи на диск), они должны сообщить ОС.Затем, когда вы просите его отключиться, и все приложения находятся в состоянии «стабильного», ОС действительно просто вытаскивает вилку (после того, как будет завершено очевидное завершение работы с аппаратным обеспечением, например, запись всех грязных страниц на диск, жесткий диск останавливается и припаркован и т. д.).

Другая причина, по которой большинству ОС иногда требуется много времени, чтобы закрыть ее, заключается в следующем: у вас, вероятно, есть много приложений, которые не использовались какое-то время и поэтому были заменены. Чтобы полностью закрыть их, ОС отправляет им сообщение о завершении. Но для того, чтобы они могли реагировать на это и выходить безопасно, их нужно снова поменять местами. И это происходит в то же самое время, что диск занят от других процессов, пишущих в него свои данные ...

3
  • , когда компьютер находится ли стоп энергопитания подачи питания (капитан очевидность) в " ясное "состояние? То, что я имею в виду с ясным состоянием является то, что нет ничего происходит в CPU больше, и т.д.

После того, как все процессы остановлены и файловые системы выгружаются, ядро ​​посылает сигнал ACPI в BIOS, который отключает питание.

  • Почему большинство операционных систем так долго для завершения работы? Я имею в виду, что им не нужно инициализировать что-то или даже загружать ресурсы в память.

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

  • Почему не идут операционные системы, как «Эй, фигу - давайте просто прекратить все процессы, в конечном просто отключить питание»?

Поскольку вы рискуете иметь приложения не хранить свои данные правильно, и даже развращает свои данные. Даже если это не проблема, могут быть некорректно сброшены данные из кеша файловых систем на жесткий диск, что приведет к непостоянству файловой системы.

Вы можете прочитать о недавнем EXT 4/KDE 4 debacle, где EXT 4 очищал метаданные файлов перед содержимым файлов на диске, а KDE 4 читал множество тонких файлов в пакетах. Если во время записи вы столкнулись с жестким отключением, все ваши файлы конфигурации будут повреждены/FUBAR.

Смежные вопросы