Почему операционные системы имеют возможность выключения? [Дубликат]


10

Экран выключения Windows 98
(источник: ytimg.com )

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

Могу ли я повредить оборудование или испортить мои данные, если я буду постоянно выключать компьютер без использования ОС?

Для пояснения: я хочу использовать Intel Compute Stick в качестве медиаплеера, подключенного к проектору, поэтому он будет управляться электрическим переключателем. На компьютере будет только запущено видео и не будут установлены программы. На компьютере не будет доступа в интернет.


30
Что тебе сказали твои исследования? Быстрый поиск в Google «зачем мне выключать компьютер вместо отключения питания» найдет множество ответов ... И да, вы можете повредить свое оборудование, но риски низки, но есть определенная вероятность повреждение или потеря данных.
acejavelin

1
Если ваше оборудование поддерживает это, и система, с которой вы работаете, полностью обращается к любому хранилищу в режиме только для чтения, и система не работает на оборудовании, которое должно быть отключено с помощью какой-либо процедуры (например, некоторых плат ТВ-тюнера, модемов, ...) тогда нет проблем просто отключить питание. Такие системы ... довольно сложно найти, хотя.
Даниэль Жур


1
Старое оборудование было менее терпимым к внезапной потере питания. Но современное оборудование терпимо к внезапной потере мощности. Настольные системы, как правило, требуют упорядоченного завершения работы. Встроенные системы могут быть терпимы к внезапной потере мощности. Встроенный Linux часто использует файловые системы JFFS2 и UBIFS; «И UBI (см. Здесь ), и UBIFS терпимы к отключениям электроэнергии, и они были разработаны с учетом этого свойства». , Обратите внимание, что это файловые системы для чтения / записи.
опилки

1
@DrZoo он был (и остается) в XP, если вы запускаете его в системе без блока питания ATX. Раньше я использовал какой-то тестовый комплект со встроенным стандартным ПК XP Pro.
Крис Х

Ответы:


41

Это зависит от того, что происходит с системой в то время, когда вы решили внезапно отключить питание. Если система занята записью важных данных, и вы отключаете питание, вы можете повредить данные или повредить ОС. Происходит много вещей, которые вы на самом деле не видите. В большинстве случаев вам приходится беспокоиться о том, что программное обеспечение может сломаться, когда вы делаете полный сброс. Что касается аппаратного обеспечения, у вас не должно возникнуть никаких проблем. Стучать по дереву

Вы не хотите делать привычку обходить метод выключения и отключать питание. Это будет лишь вопросом времени, пока что-нибудь не испортится и вам не придется переустанавливать ОС.

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

Происхождение этого экрана происходит из систем Windows 9X, где сообщение отображается, когда Windows успешно завершила работу в MS-DOS, но не настроено для возврата к приглашению (COMMAND.COM) снова. В системах с надлежащей поддержкой ACPI и источником питания ATX ПК может отключиться.

В любой ситуации, когда вы собираетесь сделать полную перезагрузку, обязательно кричите « Я повелитель электричества !!!» на вашем ПК. Покажите, кто в доме хозяин.


26
Последняя строка ... к сожалению, это не то же самое чувство, когда это виртуальная машина
Burgi

14
@ Бурги " Я барон электричества !!! * " - исправлено?
CorsiKa

5
@ Бурги " Я царь битов !!! "
hBy2Py

5
Что касается аппаратного обеспечения, я понимаю, что отключение питания приведет к тому, что жесткий диск создаст «аварийный парк». Хотя это обычно предотвращает повреждение диска, жесткие диски рассчитаны на гораздо меньшее количество аварийных парков, чем обычные (управляемые), поэтому диск может изнашиваться быстрее.
Нейт Элдредж

6
В современной журнализированной файловой системе вам не придется переустанавливать ОС в обычных условиях. Но вы можете правдоподобно потерять много данных приложения, которые, как вы думали, вы сохранили на диск.
Кевин

27

Компьютеры предназначены для быстрой работы. Это может включать в себя обман. Например, когда компьютер должен записывать данные, компьютеры могут хранить данные в ОЗУ, а не записывать их на жесткий диск. Это сделано потому, что оперативная память намного быстрее.

Выключение говорит компьютеру очистить буферы, что означает прекращение хранения содержимого в ОЗУ и подготовку системы к потере электроэнергии. Если вы фактически потеряете электроэнергию, прежде чем убедитесь, что все такие данные записаны правильно, вы можете потерять данные.

Часть деталей структуры тома файловой системы обрабатывается кодом обработки операционной системы (иногда называемым драйвером файловой системы). Часто файловые системы используют таблицы. (Визуально вы можете думать об этом как о диаграммах.) Представьте, что вы пишете таблицу умножения, и она говорит:
2 4 6 8 10 12 14 1

Прежде всего, у каждого столбца есть только одна строка. Задачи умножения должны состоять из трех частей (два умноженных числа (умножение и множитель) и ответ (произведение)). Здесь все, что мы видим, это набор отдельных чисел, поэтому у нас нет даже одного полного примера продукта умножения. То, что у нас есть, бесполезно.

Во-вторых, то, что мы имеем, на самом деле хуже, чем бесполезно. Иногда единственной вещью, которая хуже, чем пропущенная информация (которая заставляет вас не прогрессировать, пока вы выясняете, какая информация вам нужна), является недостоверная информация, которой можно доверять, которая заставляет вас тратить ресурсы на бесполезное, плохое направление. В этом случае у вас есть недопустимые данные в конце: один вместо 16. (Идея здесь в том, что диаграмма перестала обновляться внезапно, до того, как все число «16» было отмечено правильно.) Если вы не позволите компьютер правильно заполняет свои графики, тогда это может вызвать путаницу. (Если компьютеру приказано обновить некоторые данные, и он должен записать на позицию номер шестнадцать ... вы не хотите, чтобы он записывал на позицию номер один!) Компьютер опирается на таблицы, весьма схожие с этой.

Другой пример - виртуальная память. Если компьютеру не хватает оперативной памяти, он может использовать место на жестком диске для отслеживания деталей. Например, может быть, у вас есть документ на пятьдесят страниц в текстовом редакторе. Компьютер отслеживает тот факт, что текстовый процессор открыт, и отслеживает первые 12 страниц, но остальные 38 страниц хранятся на жестком диске, в так называемой «виртуальной памяти». Когда вы выключаете компьютер, он проходит весь процесс завершения работы программ, что освобождает часть оперативной памяти и, в конечном итоге, использует «виртуальную память» для правильной обработки текстового процессора. Если вы просто потеряли электроэнергию, текстовый процессор перестает работать (потому что все останавливается). Затем, когда компьютер запускается, он видит, что виртуальная память содержит данные с 38 страниц документа, который был открыт в текстовом процессоре. Компьютер даже не знает, что данные использовались текстовым процессором. Выключение позволяет позаботиться о таких вещах, пока компьютер может отслеживать эти детали.

По сравнению с Windows 95, MS-DOS была более устойчивой (менее подверженной проблемам), когда дело доходило до внезапных отключений питания. (Часть этой повышенной уязвимости была вызвана способностями Windows 95 к многозадачности и обработке виртуальной памяти.) Таким образом, подверженность компьютера недопустимому завершению работы или даже если официальная процедура завершения работы вообще требуется, зависит от того, какая операционная система используется. Большинство современных операционных систем разработаны с учетом необходимости надлежащего выключения, потому что операционные системы легче проектировать с таким требованием. Нет никакой причины, по которой это должно быть, и на самом деле, некоторые операционные системы nanobsd позволяют человеку просто отключить его. Например, на странице nanobsd написано: «Все доступно только для чтения во время выполнения. Можно отключить питание».На главной странице resflash есть пункт с надписью «Власть может быть безопасно потеряна в любое время». Таким образом, нет никаких причин, по которым абсолютное завершение работы должно быть требованием, которое разработчики операционной системы предъявляют при создании дизайна операционной системы. Выключение - это просто обычное требование.


1
«Затем, когда компьютер запускается, он видит, что виртуальная память содержит данные с 38 страниц документа, который был открыт в текстовом процессоре». - это не будет заботиться, это будет относиться к ним как к мусорным данным и не будет использовать их, пока они не будут перезаписаны. (Потому что, что вы ожидаете там быть? Это никогда не будет ничего полезного)
user253751

1
«это не будет заботиться, это будет относиться к этому как к мусору» - правильно. Вот почему в моем следующем предложении (после того, которое вы цитировали) сказано: «Компьютер даже не знает, что данные использовались текстовым процессором». Это потерял след этого факта.
TOOGAM

Я имею в виду, что это не вызывает никаких проблем.
user253751

« Большинство современных операционных систем спроектированы ... легче проектировать с таким требованием ». ИМО это упрощение. Мы можем избежать отключений, но по очень дорогой цене. Нет кэширования, нет возможности уведомлять фоновые процессы (серверы, менеджеры резервного копирования, обновления). Кроме того, современное оборудование больше не используется с PIO, но с DMA вы указываете жесткому диску и сетевой карте считывать данные из ОЗУ, и они уведомляют вас, когда это будет сделано. Что, если между жестким диском пропадает питание, запись происходит из его кеша на планшеты? Пусть ОС решит, на сколько задержать выключение. Это знает лучше.
Маргарет Блум

5

Во времена MS-DOS отключение питания компьютера обычно приводило к потере любой информации, которая хранилась в ОЗУ, но не сохранялась на диске, но не влияла на информацию, хранящуюся на диске. Однако сам процесс хранения информации на диске часто делает старую информацию нечитаемой, по крайней мере, немного, до того, как новая версия станет читаемой. Потеря власти между моментом уничтожения старой версии и написания новой версии оставит ее без какой-либо версии информации. Если рассматриваемая информация представляет собой что-то вроде структуры каталогов, это может привести к недоступности больших областей диска.

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

Одной из целей выбора «выключения» является устранение возможности самопроизвольного запуска системы любых действий, которые записывают данные на диск, как раз когда пользователь собирается отключить питание. Любые действия, которые не запускаются до того, как отображается сообщение «Теперь вы можете выключить компьютер», не могут быть выполнены до тех пор, пока система не будет перезагружена, поэтому нет опасности того, что что-то произойдет, когда пользователь отключит питание.


1
Даже в дни DOS это была действительно плохая идея. Если файл был обновлен, но FAT не был обновлен, то вы получите поврежденный файл.
Деви Морган

1
@DewiMorgan: В дни DOS были доступны утилиты для кэширования с обратной записью, но каждая отдельная версия DOS, которую я помню, использовала сквозное кэширование как свое обычное поведение. Что делать в противном случае, чтобы уведомить систему, которую вы хотите закрыть?
Суперкат

3
@DewiMorgan: Я знаю, что на некоторых старых жестких дисках были утилиты для парковки головного компьютера, но они были в значительной степени устаревшими задолго до того, как Windows 95 заменила DOS.
Суперкат

1
supercat: нет, MS-DOS не делал такого кеширования, пока вы не запустили для этого программное обеспечение, такое как SmartDrv в комплекте. Как бы вы уведомили, что система должна была закрыться, это использовать SmartDrv/C. (Я полагаю, что стандартное поведение, касающееся кэширования записи, было различным в MS-DOS 5.0 и 6.22 ... Я не помню, было ли это обновление 5.0-> 6.0 или более позднее, которое внесло изменения). Если память мне не изменяет, одно из более поздних обновлений (начиная с 6 или более поздних) заставило SmartDrv автоматически сделать это перед тем, как позволить Command.Com снова показать приглашение, поэтому при отключении можно безопасно отключиться
TOOGAM

1
@ Насколько я понимаю, сквозное кэширование защищает один блок данных от повреждения во время записи. Он не защищает два разных блока (FAT и содержимое файла) от рассинхронизации, если отключается питание между записью одного и другого.
Деви Морган

4

Есть две основные причины, по которым компьютерные системы нуждаются в упорядоченном отключении:

Состояние приложения

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

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

Структура файловой системы

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

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

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

Проблем согласованности файловой системы можно избежать, не имея локальных дисков, и NFS-монтируя корневую файловую систему, но потеря кэшированных записей все еще является проблемой для этих систем. Единственные системы, которые я хочу отключить без отключения - это системы, в которых диски установлены только для чтения (в основном это встроенные системы, такие как мой музыкальный проигрыватель Empeg Car, но также и несколько дисковых терминалов для просмотра веб-страниц, которые у меня лежат). вокруг для посетителей).

TL; DR

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


-1

потому что если какой-либо файл дескриптора открыт, он может испортить важный файл и оставить операционную систему мертвой


15
Добро пожаловать в Супер пользователя. Распространенная ошибка, которую делают новые пользователи, состоит в том, чтобы ответить без деталей о том, как фактически решить проблему. Ответы должны быть подробными и включать ссылки по мере необходимости. Пожалуйста, потратьте несколько минут, чтобы отредактировать свой ответ, включив в него детали того, почему ваш ответ действителен. Если вам нужна помощь, читайте Как написать хороший ответ? ,
CharlieRB
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.