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.