52 votes

Comment l'ordinateur peut-il sauvegarder des données avant de tomber en panne ?

J'avais l'impression que lorsqu'un ordinateur tombe en panne, c'est que quelque chose s'est mal passé et qu'il ne peut plus fonctionner.

Je me demandais comment l'ordinateur pouvait sauvegarder des données avant de tomber en panne.

L'ordinateur est-il vraiment capable de savoir quand il va tomber en panne (et donc d'informer tous les processus) ? " Sauvegarder au plus vite parce que je suis sur le point de m'effondrer ") ?

Si ce n'est pas le cas, comment est-il possible que des programmes comme le Chrome y Microsoft Word peut offrir des services de "restauration" après que l'ordinateur soit tombé en panne ?

6voto

Breakthrough Points 33693

J'avais l'impression que lorsqu'un ordinateur tombait en panne, quelque chose quelque chose s'est mal passé et qu'il ne peut plus fonctionner.

Oui, c'est tout à fait vrai. Cependant, d'un point de vue logique, votre programme ne s'exécute pas sans restriction sur l'ordinateur. Le programme s'exécute sous le système d'exploitation !

Je me demandais comment l'ordinateur pouvait sauvegarder des choses avant qu'il ne se soit éteint. avant qu'il ne tombe en panne ? L'ordinateur est-il vraiment capable de savoir quand il va se planter (et donc d'informer tous les processus : "Sauvegardez au plus vite car je suis sur le point de me planter") ?

Dans le cas d'un BSOD ou panique du noyau, le système d'exploitation a déterminé qu'une chose vraiment dangereuse allait se produire (pointeur de mémoire invalide, écrasement d'une mémoire allouée au noyau de l'OS, accès à un matériel inexistant, etc...). Dans ce cas, le système d'exploitation demande à tous les processus d'interrompre leur exécution, sauvegarde le contenu de la mémoire vive sur le disque (puisque le système d'exploitation est également responsable de la gestion de l'allocation de la mémoire) et arrête ou redémarre l'ordinateur en toute sécurité.

Les applications individuelles se bloquent elles-mêmes lorsqu'une exception non gérée est lancée par le programme, qui se propage dans le système d'exploitation. Dans ce cas, le système d'exploitation arrête l'exécution du programme et ferme toutes les mémoires et tous les fichiers ouverts.

Dans les deux cas susmentionnés, l'exécution du programme n'est généralement pas interrompue de manière élégante. Dans ces cas, c'est aux applications individuelles de récupérer leurs propres données, puisqu'elles cessent soudainement de s'exécuter.

Si ce n'est pas le cas, comment est-il possible que des programmes comme Chrome et Microsoft Word puissent offrir des services de "restauration" après une panne de l'ordinateur ?

IIRC, ces deux applications sauvegardent périodiquement les états de l'application sur le disque afin d'éviter la perte de données si la situation susmentionnée se produit. Par exemple, Word enregistre automatiquement une copie de sauvegarde de votre document de travail toutes les quelques minutes, de sorte qu'en cas de redémarrage brutal, vous pouvez toujours récupérer vos données (à quelques minutes près) sans que vous ayez à faire quoi que ce soit.

Encore une fois, en tant que développeur, il est de votre responsabilité de vous assurer que votre application peut faire face à ces situations.

3voto

pers Points 39

Oui, le processus de restauration des données ne concerne pas seulement les pannes d'ordinateur, mais aussi les coupures de courant, les pannes de programme, les abandons sans sauvegarder, et bien d'autres choses encore.

Ce que vous avez dit est vrai, l'ordinateur ne peut pas "savoir" quand il va tomber en panne. Dans le cas de Word, il procède périodiquement à des sauvegardes automatiques afin de pouvoir restaurer ces données. Dans le cas de Chrome, il stocke probablement les informations de chaque onglet quelque part et les supprime lorsqu'il quitte avec succès, ou lorsqu'une nouvelle session différente commence ou probablement d'autres façons aussi de toute façon, de cette façon, si la session ne s'est pas terminée avec un abandon réussi, il a ces données à restaurer.

Je ne travaille (évidemment) pas pour Microsoft ou Google, mais c'est probablement ainsi que cela fonctionne (ou presque).

2voto

Paul Points 121

Un programme peut écrire un drapeau sur le disque qui dit simplement quelque chose comme "Au démarrage, si ce drapeau est activé, c'est que quelque chose s'est mal passé". Au démarrage, ce drapeau est vérifié pour voir s'il est activé. Si c'est le cas, le programme sait que quelque chose s'est mal passé.

L'indicateur fonctionne toujours, car il peut être activé dès le démarrage du programme et désactivé lorsque le programme se termine normalement. Si le programme se termine à la suite d'une erreur inattendue, comme la mise hors tension inopinée d'un ordinateur, l'indicateur sera toujours activé puisqu'il ne s'est pas terminé normalement. Le programme est alors capable de dire qu'il n'est pas sorti normalement la dernière fois qu'il a été exécuté.

2voto

user Points 28521

Comme @bamboom Il existe plusieurs types de "pannes" d'ordinateur qui doivent être traités différemment. En effet, une panne de courant est très différente, par exemple, d'une erreur de division par zéro d'un nombre entier.

De nombreux langages de programmation prenant également en charge les exceptions (passage contrôlé à un gestionnaire d'erreurs lorsque quelque chose ne va pas du tout), il est possible d'avoir un gestionnaire d'erreurs de haut niveau pour l'ensemble de l'application qui peut sauvegarder l'état de l'application (y compris tous les documents ouverts, les modifications apportées, etc. ) lorsqu'une erreur d'application non gérée se produit. L'idée est alors d'essayer de tout relire lorsque l'application est redémarrée. En fonction du type d'erreur et de la manière dont cela est mis en œuvre, cela ne fonctionne pas toujours et, bien entendu, il appartient à chaque application de faire quelque chose de significatif face à une erreur et avec les données qui en résultent, mais il peut s'agir d'une stratégie étonnamment efficace pour aider l'utilisateur à se remettre d'un crash avec une quantité minimale de travail perdu.

2voto

oleksii Points 810

J'aimerais aborder un point de bas niveau ici, car il y a une étiquette de système de fichiers.

Vous vous souvenez peut-être du système d'exploitation Windows qui utilisait le système de fichiers FAT/FAT16/FAT32. Il y avait parfois des problèmes lorsqu'un utilisateur subissait une panne de courant et que tout le système tombait en panne. Après avoir essayé de redémarrer, le système indiquait qu'un fichier était manquant et qu'il n'était pas possible de démarrer. Ce problème est dû au fait que le système FAT32 ne garde pas trace des opérations qu'il effectue de manière transactionnelle.

En revanche, le système de fichiers NTFS, plus récent, a reçu journal de son infrastructure, ce qui signifie qu'au niveau inférieur du système d'exploitation et de la couche d'accès au matériel, les informations sont conservées dans des conditions de sécurité stables grâce à l'enregistrement de toutes les actions à entreprendre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X