Pourquoi les systèmes d'exploitation ont-ils la possibilité de s'arrêter? [dupliquer]

10

Écran d'arrêt de Windows 98
(source: ytimg.com )

Je veux savoir pourquoi les systèmes d'exploitation nous obligent à arrêter en utilisant une option. Pourquoi ne puis-je pas simplement éteindre avec un interrupteur mécanique?

Vais-je endommager le matériel ou corrompre mes données si j'arrête constamment un ordinateur sans utiliser l'option OS?

Pour clarifier: je veux utiliser un Intel Compute Stick comme lecteur multimédia connecté à un projecteur, il sera donc contrôlé par un interrupteur électrique. L'ordinateur aura uniquement la vidéo en cours d'exécution et ne sera pas installé de programmes. L'ordinateur n'aura pas accès à Internet.

IAmJulianAcosta
la source
30
Que vous ont appris vos recherches? Une recherche rapide sur Google pour "pourquoi dois-je éteindre mon ordinateur au lieu de couper l'alimentation" trouvera de nombreuses réponses ... Et oui, vous pouvez endommager votre matériel, mais les risques sont faibles, mais il y a certainement une chance de corrompre ou perdre des données.
acejavelin
1
Si votre matériel le prend en charge et que le système avec lequel vous travaillez accède complètement à n'importe quel stockage en mode lecture seule et que le système ne fonctionne pas, vous devez arrêter certaines procédures (par exemple, certaines cartes tuner TV, modems, ...) , alors il n'y a aucun problème à couper l'alimentation. De tels systèmes sont cependant assez difficiles à trouver.
Daniel Jour
1
Le matériel plus ancien était moins tolérant aux coupures de courant soudaines. Mais le matériel moderne tolère une perte de puissance soudaine. Les systèmes de bureau nécessitent généralement un arrêt ordonné. Les systèmes intégrés peuvent tolérer une perte de puissance soudaine. Linux embarqué utilise souvent les systèmes de fichiers JFFS2 et UBIFS; "UBI (voir ici ) et UBIFS sont tolérants aux coupures de courant, et ils ont été conçus avec cette propriété à l'esprit." . Notez qu'il s'agit de systèmes de fichiers en lecture / écriture.
sciure
1
@DrZoo, il était (est toujours) identique sous XP si vous l'exécutiez sur un système sans alimentation ATX. J'avais l'habitude d'utiliser un kit de test avec un PC XP standard standard intégré.
Chris H

Réponses:

41

Cela dépend de ce qui se passe avec le système au moment où vous avez choisi de couper soudainement l'alimentation. Si le système est occupé à écrire des données importantes et que vous coupez l'alimentation, vous risquez d'endommager les données ou de corrompre le système d'exploitation. Il se passe beaucoup de choses que vous ne voyez pas vraiment. Vous devez surtout vous inquiéter de la rupture d'un logiciel lors d'une réinitialisation matérielle. En ce qui concerne le matériel, vous ne devriez rencontrer aucun problème. Touchons du bois

Vous ne voulez pas prendre l'habitude de contourner la méthode d'arrêt et de couper l'alimentation. Ce ne serait qu'une question de temps jusqu'à ce que quelque chose devienne corrompu et vous oblige à réinstaller le système d'exploitation.

Dans certains cas, une réinitialisation matérielle est le seul choix dont vous disposez. Si votre ordinateur se bloque et que vous n'arrivez pas à faire quoi que ce soit, quelle autre option existe-t-il?

L'origine de cet écran provient des systèmes Windows 9X, où le message s'affiche lorsque Windows s'est correctement arrêté sur MS-DOS mais n'est pas configuré pour revenir à l'invite (COMMAND.COM). Sur les systèmes avec prise en charge ACPI appropriée et alimentation ATX, le PC peut s'éteindre à la place.

Dans toute situation où vous allez effectuer une réinitialisation matérielle, assurez-vous de crier " Je suis le seigneur de l'électricité !!! sur votre PC. Montrez-lui qui est le patron.

DrZoo
la source
26
La dernière ligne ... malheureusement, il n'a pas le même sentiment quand il s'agit d'une machine virtuelle
Burgi
14
@Burgi " Je suis le baron de l'électricité !!! * " - fixe?
corsiKa
5
@Burgi " Je suis le roi des bits !!! "
hBy2Py
5
En ce qui concerne le matériel, je crois comprendre que le fait de couper l'alimentation fera qu'un disque dur fera un "parc d'urgence". Bien que cela empêche normalement le lecteur d'être endommagé, les disques durs sont conçus pour un nombre beaucoup plus petit de parcs d'urgence que de parcs ordinaires (commandés), de sorte que le lecteur peut s'user plus rapidement.
Nate Eldredge
6
Sur un système de fichiers journalisé moderne, vous n'aurez pas à réinstaller le système d'exploitation dans des circonstances normales. Mais vous pourriez vraisemblablement perdre de nombreuses données d'application que vous pensiez avoir enregistrées sur le disque.
Kevin
27

Les ordinateurs sont conçus pour être rapides. Cela peut inclure la tricherie. Par exemple, lorsqu'un ordinateur est censé écrire des données, les ordinateurs peuvent stocker des données dans la RAM au lieu de les écrire sur un disque dur. Cela est dû au fait que la RAM est beaucoup plus rapide.

L'arrêt indique à l'ordinateur de vider les tampons, ce qui signifie d'arrêter de stocker des éléments dans la RAM et de préparer le système à perdre de l'énergie électrique. Si vous perdez réellement de l'énergie électrique avant de vous assurer que toutes ces données sont correctement écrites, vous risquez de perdre des données.

Une partie des détails de la structure du volume du système de fichiers est gérée par le code de gestion du système de fichiers du système d'exploitation (parfois appelé pilote du système de fichiers). Souvent, les systèmes de fichiers utilisent des tables. (Visuellement, vous pouvez penser à ceux-ci comme des graphiques.) Imaginez que vous écriviez une table de multiplication, et cela disait:
2 4 6 8 10 12 14 1

Tout d'abord, chaque colonne ne comporte qu'une seule ligne. Les problèmes de multiplication sont censés avoir trois parties (deux nombres qui sont multipliés (le multiplicande et le multiplicateur) et une réponse (le produit)). Ici, tout ce que nous voyons est un tas de nombres uniques, nous n'avons donc même pas un exemple complet d'un produit de multiplication. Ce que nous avons est inutile.

Deuxièmement, ce que nous avons est pire qu'inutile. Parfois, la seule chose pire que de manquer d'informations (vous empêchant de progresser pendant que vous déterminez les informations dont vous avez besoin) est une information trompeuse de confiance qui vous oblige à dépenser des ressources pour procéder dans une mauvaise direction inutile. Dans ce cas, vous avez des données invalides vers la fin: une au lieu d'un 16. (L'idée ici est que le graphique a cessé d'être mis à jour soudainement, avant que le nombre entier "16" ne soit correctement noté.) Si vous ne laissez pas l'ordinateur remplit correctement ses tableaux, ce qui peut créer de la confusion. (Si l'ordinateur est invité à mettre à jour certaines données et qu'il doit écrire à la position numéro seize ... vous ne voulez pas qu'il écrive à la position numéro un!) L'ordinateur s'appuie sur des tables de nature assez similaire à cela.

Un autre exemple est la mémoire virtuelle. Si un ordinateur manque de RAM, il peut utiliser de l'espace sur un disque dur pour garder une trace des détails. Par exemple, vous avez peut-être un document de cinquante pages dans un traitement de texte. L'ordinateur garde trace du fait que le traitement de texte est ouvert et garde la trace des 12 premières pages, mais les 38 pages restantes sont stockées sur le disque dur, dans ce qu'on appelle la "mémoire virtuelle". Lorsque vous arrêtez, l'ordinateur passera par tout le processus d'arrêt des programmes, ce qui libérera de la RAM et utilisera éventuellement la «mémoire virtuelle» pour gérer correctement le traitement de texte. Si vous avez simplement perdu de l'énergie électrique, le traitement de texte s'arrête (car tout s'arrête). Ensuite, lorsque l'ordinateur démarre, il voit que la mémoire virtuelle contient les données des 38 pages du document qui a été ouvert dans un traitement de texte. L'ordinateur ne sait même pas que les données étaient utilisées par un traitement de texte. L'arrêt permet de prendre en charge de telles choses pendant que l'ordinateur est en mesure de garder une trace de ces détails.

Par rapport à Windows 95, MS-DOS était plus résistant (moins sujet aux problèmes) en cas de coupures de courant soudaines. (Une partie de cette vulnérabilité accrue est due aux capacités de Windows 95 à effectuer plusieurs tâches et à gérer la mémoire virtuelle.) Ainsi, la vulnérabilité de l'ordinateur à des arrêts non valides, ou même si une procédure d'arrêt officielle est requise, est basée sur le système d'exploitation utilisé. La plupart des systèmes d'exploitation modernes sont conçus pour reposer sur la nécessité d'un arrêt approprié, car les systèmes d'exploitation sont plus faciles à concevoir avec une telle exigence. Il n'y a aucune raison que ce soit le cas, et en fait, certains systèmes d'exploitation nanobsd permettent à une personne de simplement l'éteindre. À titre d'exemple, une page sur nanobsd dit "Tout est en lecture seule au moment de l'exécution - Il est sûr de débrancher la prise d'alimentation."La page d'accueil de resflash a une puce qui dit: "L'énergie peut être perdue en toute sécurité à tout moment." Il n'y a donc aucune raison pour que les arrêts absolus soient une exigence que les concepteurs de systèmes d'exploitation imposent lorsqu'ils créent la conception d'un système d'exploitation. L'arrêt est simplement une exigence assez courante.

TOOGAM
la source
1
"Ensuite, lorsque l'ordinateur démarre, il voit que la mémoire virtuelle contient les données des 38 pages du document qui a été ouvert dans un traitement de texte." - il s'en moquera, il traitera cela comme des données d'ordures et ne l'utilisera pas jusqu'à ce qu'il soit écrasé. (Parce que vous attendez-vous à être là? Ça ne sera jamais utile)
user253751
1
"il s'en fout, il traitera cela comme des ordures" - à droite. C'est pourquoi ma toute prochaine phrase (après celle que vous avez citée) disait: "L'ordinateur ne sait même pas que les données étaient utilisées par un traitement de texte." Il a perdu la trace de ce fait.
TOOGAM
Ce que je veux dire, c'est que cela ne pose aucun problème.
user253751
" La plupart des systèmes d'exploitation modernes sont conçus ... plus faciles à concevoir avec une telle exigence ". OMI, c'est une simplification excessive. Nous pouvons éviter les arrêts, mais à un coût très élevé. Aucune mise en cache, aucun moyen pour les processus d'arrière-plan (serveurs, gestionnaires de sauvegarde, mises à jour) d'être notifiés. De plus, le matériel moderne n'est plus utilisé avec PIO mais avec DMA , vous dites au disque dur et à la carte réseau de lire les données de la RAM et ils vous avertissent lorsque vous avez terminé. Que se passe-t-il si le courant se perd entre le disque dur écrit depuis son cache vers ses plaques? Laissez le système d'exploitation décider combien de retarder l'arrêt. Il sait mieux.
Margaret Bloom
5

À l'époque de MS-DOS, la mise hors tension de l'ordinateur provoquait généralement la perte de toute information contenue dans la RAM mais non stockée sur le disque, mais n'affectait pas les informations stockées sur le disque. Le fait de stocker des informations sur le disque, cependant, rendra souvent les anciennes informations illisibles au moins légèrement avant que la nouvelle version ne soit lisible. Une perte de puissance entre le moment où l'ancienne version est détruite et la nouvelle version écrite en laisserait une sans aucune version des informations. Si les informations en question ressemblent à une structure de répertoires, cela pourrait rendre de grandes zones du disque essentiellement inaccessibles.

Si l'on utilise un logiciel qui écrit des informations sur le disque uniquement lorsque cela est explicitement demandé, à condition que l'on ne coupe pas l'alimentation immédiatement après avoir demandé au système d'écrire sur le disque, il ne faut pas accidentellement obstruer toute information sur le disque. Cependant, les systèmes modernes ont souvent une ou plusieurs tâches qui peuvent commencer à écrire des informations sur le disque à des moments auxquels l'utilisateur ne s'attend pas nécessairement. Si le système commençait à écrire des informations juste avant que l'utilisateur ne coupe l'alimentation, cela pourrait entraîner une corruption du disque et une perte de données.

Une partie du but de la sélection de «arrêt» est d'éliminer la possibilité que le système démarre spontanément toutes les actions qui écrivent des données sur le disque juste au moment où l'utilisateur est sur le point de couper l'alimentation. Toutes les actions qui ne sont pas déclenchées avant le message "Vous pouvez maintenant arrêter votre ordinateur" ne peuvent être déclenchées qu'après le redémarrage du système, il n'y a donc aucun danger que quelque chose se produise au moment où l'utilisateur débranche la prise.

supercat
la source
1
Même à l'époque DOS, c'était une très mauvaise idée. Si un fichier avait été mis à jour mais que le FAT n'avait pas été mis à jour, alors vous obtiendriez un fichier corrompu.
Dewi Morgan
1
@DewiMorgan: Dans les jours DOS, il y avait des utilitaires disponibles pour la mise en cache en écriture différée, mais chaque version autonome de DOS, je me souviens de la mise en cache en écriture utilisée comme son comportement normal. Que ferait-on autrement pour informer le système que l'on voulait fermer?
supercat
3
@DewiMorgan: Je sais que certains vieux disques durs avaient des utilitaires head-park, mais ceux-ci étaient à peu près obsolètes bien avant que Windows 95 ne remplace DOS.
supercat
1
supercat: Non, MS-DOS n'a pas fait une telle mise en cache sauf si vous avez exécuté un logiciel pour le faire, comme le SmartDrv fourni. La façon dont vous aviseriez l'arrêt du système est d'utiliser SmartDrv/C. (Je crois que le comportement par défaut, en ce qui concerne la mise en cache de l'écriture, était différent entre MS-DOS 5.0 et 6.22 ... Je ne me souviens pas si c'est la mise à niveau 5.0-> 6.0 ou une mise à niveau ultérieure qui a fait le changement). Si la mémoire est bonne, l'une des mises à niveau ultérieures (à partir de 6 ou plus tard) a obligé SmartDrv à le faire automatiquement avant de laisser Command.Com afficher à nouveau l'invite, donc sûr de s'éteindre à l'invite
TOOGAM
1
@Supercat Si je comprends bien, la mise en cache en écriture directe protège un seul bloc de données contre la corruption lors d'une écriture. Il ne protège pas deux blocs différents (FAT et contenu de fichier) de la perte de synchronisation si l'alimentation est coupée entre l'écriture de l'un et l'autre.
Dewi Morgan
4

Il y a deux raisons principales pour lesquelles les systèmes informatiques ont besoin d'un arrêt ordonné:

État de l'application

De nombreuses applications ont un état qui doit être écrit dans un stockage permanent. L'exemple évident est un serveur de base de données, mais même des applications principalement en lecture telles que des serveurs Web ou NTP peuvent écrire des journaux ou des statistiques qui peuvent être inintelligibles si une écriture est interrompue.

Il peut être possible de résoudre ce problème si les applications en question ne lisent pas ou n'écrivent pas directement les fichiers, mais effectuent ces opérations via un mécanisme transactionnel tel que l'écriture dans une base de données relationnelle.

Structure du système de fichiers

Comme le système d'exploitation écrit des fichiers au nom des applications, les écritures peuvent être mises en mémoire tampon jusqu'à ce que les disques rattrapent, ce qui signifie que les écritures des applications ne se terminent pas nécessairement avant un certain temps. Les mécanismes d'économie d'énergie ont tendance à augmenter le délai ici, vous avez donc un compromis entre la consommation d'énergie et la sécurité des données.

Pendant que les données sont écrites sur le disque, il y a des points où les données du système de fichiers sont incohérentes. Les implémentations de systèmes de fichiers modernes prennent soin de minimiser les périodes, mais elles ne peuvent pas être entièrement éliminées. Par exemple, lorsqu'un bloc est extrait de la liste libre, il y a une courte fenêtre où il n'est ni alloué ni libre. Ce problème de cohérence est la raison pour laquelle, après un arrêt impur, un système d'exploitation devra effectuer une vérification du système de fichiers au prochain démarrage, pour examiner tous les blocs et s'assurer qu'ils sont correctement pris en compte.

Les systèmes de fichiers de journalisation atténuent cela dans une certaine mesure, en enregistrant les modifications prévues dans un journal avant de les exécuter. La vérification du système de fichiers peut alors s'exécuter beaucoup plus rapidement, en relisant toutes les entrées de journal complètes et en supprimant celles qui sont incomplètes.

Les problèmes de cohérence du système de fichiers peuvent être évités en ne disposant pas de disques locaux et en montant NFS sur le système de fichiers racine, mais la perte d'écritures mises en cache reste un problème pour ces systèmes. Les seuls systèmes que je suis prêt à mettre hors tension sans arrêt sont ceux qui ont les disques montés en lecture seule (principalement des systèmes intégrés tels que mon lecteur de musique Empeg Car, mais aussi quelques terminaux de navigation Web sans disque que j'ai couchés) autour pour les visiteurs).

TL; DR

Les écritures de données sur le stockage permanent doivent être terminées avant la mise hors tension. Si vous n'avez pas de stockage inscriptible, la coupure de l'alimentation présente un faible risque.

Toby Speight
la source
-1

car si un fichier descripteur est ouvert, il peut corrompre un fichier important et laisser le système d'exploitation mort

Ricardo Luna
la source
15
Bienvenue dans Super User. Une erreur courante que font les nouveaux utilisateurs est de répondre sans détails sur la manière de résoudre le problème. Les réponses doivent être détaillées et inclure des références, au besoin. Veuillez prendre quelques minutes pour modifier votre réponse afin d'inclure des détails sur la raison pour laquelle votre réponse est valide. Si vous avez besoin d'aide, lisez Comment écrire une bonne réponse? .
CharlieRB