Dlaczego systemy operacyjne mają opcję zamknięcia? [duplikować]


10

Ekran zamykania systemu Windows 98
(źródło: ytimg.com )

Chcę wiedzieć, dlaczego systemy operacyjne wymagają od nas zamknięcia przy użyciu opcji. Dlaczego nie mogę po prostu wyłączyć zasilania za pomocą przełącznika mechanicznego?

Czy uszkodzę sprzęt lub uszkodzę dane, jeśli ciągle zamykam komputer bez korzystania z opcji systemu operacyjnego?

Wyjaśnienie: Chcę używać Intel Compute Stick jako odtwarzacza multimedialnego podłączonego do projektora, aby mógł być sterowany przełącznikiem elektrycznym. Na komputerze będzie działało tylko wideo i nie będą instalowane programy. Komputer nie będzie miał dostępu do Internetu.


30
Co powiedzieli ci twoje badania? Szybkie wyszukiwanie w Google „dlaczego muszę wyłączyć komputer zamiast ciągnąć za sobą”, znajdzie wiele odpowiedzi ... I tak, możesz uszkodzić swój sprzęt, ale ryzyko jest niskie, ale na pewno jest szansa na uszkodzenie lub utrata danych.
acejavelin

1
Jeśli Twój sprzęt to obsługuje, a system, z którym pracujesz, ma pełny dostęp do dowolnej pamięci w trybie tylko do odczytu, a system nie działa na sprzęcie, który należy wyłączyć za pomocą pewnych procedur (np. Niektóre karty tunera TV, modemy, ...) , wtedy nie ma problemu z odcięciem zasilania. Jednak takie systemy są ... raczej trudne do znalezienia.
Daniel Jour


1
Starszy sprzęt był mniej tolerancyjny na nagłą utratę zasilania. Ale nowoczesny sprzęt jest odporny na nagłą utratę zasilania. Systemy komputerowe zwykle wymagają regularnego wyłączania. Systemy wbudowane mogą tolerować nagłą utratę zasilania. Wbudowany Linux często korzysta z systemów plików JFFS2 i UBIFS; „Zarówno UBI (patrz tutaj ), jak i UBIFS są odporne na przerwy w dostawie prądu i zostały zaprojektowane z myślą o tej właściwości”. . Zauważ, że są to systemy plików do odczytu / zapisu.
trociny

1
@DrZoo było (wciąż jest) identyczne w XP, jeśli uruchomisz go w systemie bez zasilacza ATX. Kiedyś korzystałem z zestawu testowego z wbudowanym standardowym komputerem PC XP Pro.
Chris H

Odpowiedzi:


41

Zależy to od tego, co dzieje się z systemem w momencie, gdy zdecydujesz się nagle odciąć zasilanie. Jeśli system jest zajęty zapisywaniem ważnych danych i nastąpi odcięcie zasilania, możesz potencjalnie uszkodzić dane lub uszkodzić system operacyjny. Dzieje się wiele rzeczy, których tak naprawdę nie widać. Podczas twardego resetowania musisz przede wszystkim martwić się o uszkodzenie oprogramowania. Jeśli chodzi o sprzęt, nie powinieneś mieć żadnych problemów. Odpukać

Nie chcesz robić nawyku omijając metodę wyłączania i odcinając zasilanie. Byłoby tylko kwestią czasu, aż coś ulegnie uszkodzeniu i spowoduje konieczność ponownej instalacji systemu operacyjnego.

W niektórych przypadkach twardy reset jest jedynym wyborem. Jeśli komputer się blokuje i nie możesz nic zrobić, jaka jest inna opcja?

Pochodzenie tego ekranu pochodzi z systemów Windows 9X, w których komunikat jest wyświetlany, gdy system Windows pomyślnie zamknął system MS-DOS, ale nie jest skonfigurowany do powrotu do monitu (COMMAND.COM). W systemach z prawidłową obsługą ACPI i zasilaniem ATX komputer może zamiast tego zostać wyłączony.

W każdej sytuacji, w której zamierzasz wykonać twardy reset, koniecznie wykrzycz: „ Jestem panem elektryczności !!! na twoim komputerze. Pokaż, kto jest szefem.


26
Ostatnia linia ... niestety nie ma tego samego wrażenia, gdy jest to maszyna wirtualna
Burgi

14
@Burgi „ Jestem baronem elektryczności !!! * ” - naprawiono?
corsiKa

5
@Burgi „ Jestem królem bitów !!!
hBy2Py

5
Jeśli chodzi o sprzęt, rozumiem, że wyciągnięcie zasilania spowoduje, że dysk twardy wykona „awaryjne parkowanie”. Chociaż zwykle zapobiega to uszkodzeniu dysku, dyski twarde są oceniane dla znacznie mniejszej liczby parków awaryjnych niż zwykłych (dowodzonych) parków, więc dysk może się zużywać szybciej.
Nate Eldredge,

6
W nowoczesnym, kronikowanym systemie plików nie będzie potrzeby ponownej instalacji systemu operacyjnego w normalnych okolicznościach. Ale możesz prawdopodobnie stracić wiele danych aplikacji, które Twoim zdaniem zapisałeś na dysku.
Kevin,

27

Komputery są zaprojektowane tak, aby były szybkie. Może to obejmować oszukiwanie. Na przykład, gdy komputer ma zapisywać dane, komputery mogą przechowywać dane w pamięci RAM zamiast zapisywać je na dysku twardym. Odbywa się to, ponieważ pamięć RAM jest znacznie szybsza.

Wyłączenie powoduje, że komputer opróżnia bufory, co oznacza zatrzymanie przechowywania rzeczy w pamięci RAM i przygotowanie systemu do utraty energii elektrycznej. Jeśli faktycznie stracisz energię elektryczną przed upewnieniem się, że wszystkie takie dane są poprawnie zapisane, możesz utracić dane.

Część szczegółów struktury woluminu systemu plików jest obsługiwana przez kod obsługi systemu plików systemu operacyjnego (czasami nazywany sterownikiem systemu plików). Często systemy plików używają tabel. (Wizualnie możesz pomyśleć o takich jak wykresy.) Wyobraź sobie, że piszesz tabliczkę mnożenia i mówi:
2 4 6 8 10 12 14 1

Przede wszystkim każda kolumna ma tylko jeden wiersz. Problemy mnożenia powinny składać się z trzech części (dwóch liczb, które są zwielokrotnione (multiplikacja i mnożnik) oraz odpowiedzi (iloczyn). Tutaj widzimy tylko kilka pojedynczych liczb, więc nie mamy nawet jednego pełnego przykładu iloczynu. To, co mamy, jest bezużyteczne.

Po drugie, to, co mamy, jest gorsze niż bezużyteczne. Czasami jedyną gorszą rzeczą niż brakujące informacje (powodujące, że nie robisz żadnych postępów, gdy zastanawiasz się, jakich informacji potrzebujesz), są zaufane wprowadzające w błąd informacje, które powodują, że wydajesz zasoby, aby iść w bezużytecznym, złym kierunku. W tym przypadku pod koniec masz nieprawidłowe dane: jeden zamiast 16. (Chodzi tutaj o to, że wykres przestał być nagle aktualizowany, zanim cała liczba „16” została zanotowana poprawnie). Jeśli nie pozwolisz komputer poprawnie wypełnia wykresy, co może powodować zamieszanie. (Jeśli komputerowi polecono zaktualizować niektóre dane i powinien zapisać do pozycji szesnastej ... nie chcesz, aby zapisywał do pozycji numer jeden!) Komputer opiera się na tabelach podobnych do tego z natury.

Innym przykładem jest pamięć wirtualna. Jeśli w komputerze zabraknie pamięci RAM, może on wykorzystać miejsce na dysku twardym do śledzenia szczegółów. Na przykład może masz 50-stronicowy dokument w edytorze tekstu. Komputer śledzi fakt, że edytor tekstu jest otwarty i śledzi pierwsze 12 stron, ale pozostałe 38 stron są przechowywane na dysku twardym, w tak zwanej „pamięci wirtualnej”. Po zamknięciu komputer przejdzie cały proces wyłączania programów, co zwolni trochę pamięci RAM i ostatecznie użyje „pamięci wirtualnej” do prawidłowej obsługi edytora tekstu. Jeśli po prostu straciłeś energię elektryczną, edytor tekstu przestaje działać (ponieważ wszystko się zatrzymuje). Następnie, gdy komputer się uruchamia, widzi, że pamięć wirtualna zawiera dane z 38 stron dokumentu otwartego w edytorze tekstu. Komputer nawet nie wie, że dane były używane przez edytor tekstu. Wyłączenie umożliwia załatwienie takich spraw, podczas gdy komputer jest w stanie śledzić te szczegóły.

W porównaniu z Windows 95, MS-DOS był bardziej odporny (mniej podatny na problemy), jeśli chodzi o nagłe przerwy w dostawie prądu. (Część tej zwiększonej podatności była spowodowana zdolnością systemu Windows 95 do wielozadaniowości i obsługi pamięci wirtualnej.) Tak więc podatność komputera na nieprawidłowe zamykanie lub nawet jeśli wymagana jest oficjalna procedura zamykania, zależy od używanego systemu operacyjnego. Większość współczesnych systemów operacyjnych zaprojektowano tak, aby wymagały odpowiedniego zamknięcia, ponieważ systemy operacyjne są łatwiejsze do zaprojektowania przy takim wymaganiu. Nie ma żadnego powodu, dla którego tak musi być, aw rzeczywistości niektóre systemy operacyjne nanobsd umożliwiają osobie wyłączenie zasilania. Na przykład na stronie nanobsd napisano: „Wszystko jest tylko do odczytu w czasie wykonywania - można bezpiecznie wyciągnąć wtyczkę”.Na stronie głównej resflash znajduje się punktor z napisem „Moc można bezpiecznie stracić w dowolnym momencie”. Nie ma więc powodu, dla którego absolutne zamykanie musi być wymogiem, który projektanci systemów operacyjnych nakładają, tworząc system operacyjny. Wyłączenie to po prostu wymóg, który jest dość powszechny.


1
„Następnie, gdy komputer uruchamia się, widzi, że pamięć wirtualna zawiera dane z 38 stron dokumentu otwartego w edytorze tekstu”. - to nie obchodzi, potraktuje to jako śmieciowe dane i nie użyje ich, dopóki nie zostanie nadpisane. (Bo czego byś tam oczekiwał? Nigdy nie będzie nic przydatnego)
user253751,

1
„to nie obchodzi, potraktuje to jak śmieci” - racja. Właśnie dlatego moje następne zdanie (po tym, które zacytowałeś) brzmiało: „Komputer nawet nie wie, że dane były używane przez edytor tekstu”. Zgubił to.
TOOGAM,

Mam na myśli to, że nie powoduje to żadnych problemów.
user253751,

Większość nowoczesnych systemów operacyjnych zaprojektowano ... łatwiej zaprojektować przy takich wymaganiach ”. IMO to nadmierne uproszczenie. Możemy uniknąć wyłączeń, ale przy bardzo drogich kosztach. Brak buforowania, brak możliwości powiadamiania procesów w tle (serwery, menedżery kopii zapasowych, aktualizacje). Również nowoczesny sprzęt nie jest już używany z PIO, ale z DMA , mówisz HDD i NIC, aby odczytały dane z pamięci RAM i powiadamiają cię, gdy skończysz. Co się stanie, jeśli dojdzie do utraty zasilania między dyskiem twardym a zapisem z pamięci podręcznej na płyty? Pozwól, aby system operacyjny zdecydował, o ile opóźnić zamknięcie. Wie lepiej.
Margaret Bloom

5

W czasach MS-DOS zabicie zasilania komputera generalnie spowodowałoby utratę wszelkich informacji, które były przechowywane w pamięci RAM, ale nie były przechowywane na dysku, ale nie wpływałyby na informacje przechowywane na dysku. Przechowywanie informacji na dysku często jednak powoduje, że stare informacje stają się nieczytelne przynajmniej nieznacznie, zanim nowa wersja będzie czytelna. Utrata mocy między zniszczeniem starej wersji a nową wersją pisemną pozostawiłaby ją bez żadnej wersji informacji. Jeśli dane informacje są czymś w rodzaju struktury katalogów, może to oznaczać, że duże obszary dysku są zasadniczo niedostępne.

Jeśli używasz oprogramowania, które zapisuje informacje na dysk tylko wtedy, gdy zostanie o to wyraźnie poproszony, to pod warunkiem, że nie zabije mocy natychmiast po poproszeniu systemu o zapisanie na dysk, nie należy przypadkowo zablokować żadnych informacji na dysku. Jednak współczesne systemy często mają jedno lub więcej zadań, które mogą zacząć zapisywać informacje na dysku w momentach, których użytkownik niekoniecznie oczekuje. Jeśli system zacznie zapisywać informacje tuż przed utratą zasilania przez użytkownika, może to spowodować uszkodzenie dysku i utratę danych.

Jednym z celów wyboru „zamykania” jest wyeliminowanie możliwości spontanicznego uruchamiania przez system jakichkolwiek działań zapisujących dane na dysk, gdy użytkownik ma zamiar zabić moc. Wszelkie działania, które nie zostaną uruchomione przed wyświetleniem komunikatu „Możesz teraz zamknąć komputer”, nie mogą zostać uruchomione, dopóki system nie zostanie zrestartowany, więc nie ma niebezpieczeństwa, że ​​coś się wydarzy, gdy użytkownik wyciągnie wtyczkę.


1
Nawet w czasach DOS był to naprawdę zły pomysł. Jeśli plik został zaktualizowany, ale FAT nie został zaktualizowany, to plik byłby uszkodzony.
Dewi Morgan

1
@DewiMorgan: W czasach DOS dostępne były narzędzia do buforowania zapisu, ale każda samodzielna wersja DOS, którą pamiętam, używała buforowania zapisu jako normalnego zachowania. Co zrobiłbyś inaczej, aby powiadomić system, który chcesz zamknąć?
supercat

3
@DewiMorgan: Wiem, że niektóre stare dyski twarde miały narzędzia typu head-park, ale były one dość przestarzałe na długo przed zastąpieniem DOS przez Windows 95.
supercat

1
supercat: Nie, MS-DOS nie zrobił takiego buforowania, chyba że uruchomiłeś do tego oprogramowanie, takie jak dołączony SmartDrv. Aby powiadomić, że system miał zostać zamknięty, należy użyć SmartDrv/C. (Uważam, że domyślne zachowanie w zakresie buforowania zapisu różniło się między MS-DOS 5.0 i 6.22 ... Nie pamiętam, czy to była aktualizacja 5.0-> 6.0 czy późniejsza aktualizacja). Jeśli pamięć dobrze mi służy, jedna z późniejszych aktualizacji (od wersji 6 lub nowszej) spowodowała, że ​​SmartDrv automatycznie to zrobił, zanim pozwolił Command.Com ponownie wyświetlić monit, więc można go bezpiecznie wyłączyć po wyświetleniu monitu
TOOGAM

1
@Supercat Jak rozumiem, buforowanie zapisu chroni pojedynczy blok danych przed uszkodzeniem podczas zapisu. Nie chroni dwóch różnych bloków (FAT i zawartości pliku) przed wypadnięciem z synchronizacji, jeśli nastąpi odcięcie zasilania między zapisywaniem jednego i drugiego.
Dewi Morgan

4

Istnieją dwa główne powody, dla których systemy komputerowe wymagają regularnego zamykania:

Stan aplikacji

Wiele aplikacji ma stan, który należy zapisać w pamięci trwałej. Oczywistym przykładem jest serwer bazy danych, ale nawet aplikacje głównie do odczytu, takie jak serwery WWW lub NTP, mogą zapisywać dzienniki lub statystyki, które mogą być niezrozumiałe w przypadku przerwania zapisu.

Można rozwiązać ten problem, jeśli aplikacje nie odczytują ani nie zapisują plików bezpośrednio, ale wykonują te operacje za pomocą mechanizmu transakcyjnego, takiego jak zapis do relacyjnej bazy danych.

Struktura systemu plików

Ponieważ system operacyjny zapisuje pliki w imieniu aplikacji, zapisy mogą być buforowane, dopóki dyski nie nadrobią zaległości, co oznacza, że ​​zapisy aplikacji niekoniecznie kończą się dopiero po pewnym czasie. Mechanizmy oszczędzania energii zwykle zwiększają opóźnienie, więc masz kompromis między zużyciem energii a bezpieczeństwem danych.

Podczas zapisywania danych na dysk istnieją dane, w których dane systemu plików są niespójne. Nowoczesne implementacje systemu plików dbają o minimalizację okresów, ale nie można ich całkowicie wyeliminować. Na przykład, gdy blok jest pobierany z wolnej listy, pojawia się krótkie okno, w którym nie jest ani przydzielony, ani wolny. Ten problem ze spójnością powoduje, że po nieczystym zamknięciu system operacyjny będzie musiał przeprowadzić kontrolę systemu plików przy następnym uruchomieniu, aby sprawdzić wszystkie bloki i upewnić się, że są prawidłowo rozliczone.

Dzienniki systemów plików łagodzą to do pewnego stopnia, rejestrując zamierzone zmiany w dzienniku przed ich faktycznym wykonaniem. Następnie kontrola systemu plików może przebiegać znacznie szybciej, poprzez odtworzenie wszystkich pełnych wpisów w dzienniku i odrzucenie niekompletnych.

Problemów ze spójnością systemu plików można uniknąć, nie posiadając dysków lokalnych i montowania głównego systemu plików przez NFS, ale utrata zapisanych w pamięci podręcznej danych jest nadal problemem dla tych systemów. Jedynymi systemami, w których jestem skłonny do twardego wyłączenia bez wyłączania, są te, w których dyski są zamontowane tylko do odczytu (głównie systemy osadzone, takie jak mój odtwarzacz muzyki Empeg Car, ale także kilka terminali do przeglądania stron internetowych bez dysku wokół dla odwiedzających).

TL; DR

Zapis danych do pamięci trwałej musi zostać zakończony przed wyłączeniem zasilania. Jeśli nie masz zapisywalnej pamięci, odłączenie zasilania jest niskie ryzyko.


-1

ponieważ jeśli jakiś plik deskryptora jest otwarty, może to uszkodzić ważny plik i pozostawić system operacyjny martwy


15
Witamy w Super User. Częstym błędem popełnianym przez nowych użytkowników jest udzielanie odpowiedzi bez szczegółowych informacji na temat sposobu rozwiązania problemu. Odpowiedzi powinny być szczegółowe i, w razie potrzeby, zawierać odniesienia. Poświęć kilka minut na edytowanie odpowiedzi, aby podać szczegóły, dlaczego odpowiedź jest ważna. Jeśli potrzebujesz pomocy, przeczytaj Jak napisać dobrą odpowiedź? .
CharlieRB,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.