human
Pourquoi les ordinateurs rencontrent-ils des problèmes plus ils sont allumés, et pourquoi les éteindre et les rallumer résout-ils généralement le problème ? Éteindre et rallumer un ordinateur est généralement une solution courante, et je me suis toujours demandé pourquoi. S'il vous plaît, expliquez-moi comme si j'avais cinq ans.
gpt
Véritable professionnel de l'informatique / pseudo-informaticien ici pour répondre à cette merveilleuse question ! Voici la réponse : Pour me garder dans le travail. Blague . Je vais l'expliquer comme si vous aviez cinq ans et j'utiliserai cette image d'un gâteau que ma femme a fait comme exemple improvisé : URL_0 Les problèmes les plus courants qui sont résolus via le redémarrage concernent ce qu'on appelle la fragmentation externe. La fragmentation externe survient lorsque la mémoire libre est séparée en petits blocs et entrecoupée de mémoire allouée. C'est une faiblesse de certains algorithmes d'allocation de stockage, lorsqu'ils ne parviennent pas à ordonner efficacement la mémoire utilisée par les programmes. Le résultat est que, bien que le stockage libre soit disponible, il est effectivement inutilisable car il est divisé en morceaux qui sont trop petits individuellement pour satisfaire les exigences de l'application. Le terme "externe" fait référence au fait que le stockage inutilisable se trouve en dehors des régions allouées. Comme exemple, utilisons cake pour représenter la fragmentation externe, POUR LA SCIENCE ! Encore une fois, en utilisant l'image ci-dessus comme référence. Considérez une situation dans laquelle un programme alloue 3 blocs continus de mémoire : 0x0000 (gâteau vert), 0x1000 (gâteau rose) et 0x2000 (gâteau violet), puis libère le bloc du milieu (ou disons que vous devez servir uniquement le couche rose centrale tout en laissant le reste du gâteau intact). L'allocateur de mémoire peut utiliser ce bloc de mémoire libre pour de futures allocations, pour servir à une fille qui aime le gâteau rose par exemple. Cependant, il ne peut pas utiliser ce bloc si la mémoire à allouer est plus grande que ce bloc libre. En d'autres termes, il ne peut pas couper uniquement la partie rose du gâteau parce que la fille veut plus de gâteau rose que ce qui est disponible dans votre gâteau. Il existe également une fragmentation interne qui provoque des problèmes similaires. Au lancement d'un programme, les zones mémoire libres sont longues et contiguës. Avec le temps et l'usage, les longues régions contiguës se fragmentent en zones contiguës de plus en plus petites. Finalement, il peut devenir impossible pour le programme d'obtenir de grands blocs de mémoire contigus. Plus précisément, en raison des règles régissant l'allocation de mémoire, plus de mémoire informatique est parfois allouée que nécessaire. Par exemple , la mémoire ne peut être fournie aux programmes qu'en morceaux divisibles par 4 , 8 ou 16 , et par conséquent si un programme demande peut - être 23 octets , il obtiendra en fait un morceau de 24 sur 0x2000 ( ou dans notre délicieux exemple , la couche violette du gâteau). Lorsque cela se produit, la mémoire excédentaire (le 1 octet restant d'un gâteau violet savoureux, moelleux et délicieux au petit centre chaud du gâteau) est gaspillée. Oh , ce n'est pas tant que ça , n'est - ce pas ? Au fil du temps, cela s'additionne, et avant que vous ne vous en rendiez compte, vous n'avez distribué que 80% de votre gâteau violet, mais tout est parti d'une manière ou d'une autre ! Contrairement à d'autres types de fragmentation, la fragmentation interne est difficile à récupérer ; généralement, la meilleure façon de l'enlever consiste à modifier la conception. Par exemple , dans l' allocation de mémoire dynamique , les pools de mémoire réduisent considérablement la fragmentation interne en répartissant l' espace sur un plus grand nombre d' objets , ou selon nos termes , ils servent juste assez de gâteau rose à ceux qui veulent du gâteau rose , de sorte que tous ceux qui veulent du rose gâteau peut avoir un gâteau rose, mais seulement exactement la quantité dont ils ont besoin à un moment donné. Lorsque vous redémarrez, la RAM est complètement effacée (vous commencez avec un nouveau gâteau) et tout recommence, ce qui semble être un moyen apparemment rapide de résoudre les problèmes de performances (ou d'avoir un tout nouveau gâteau). Il y a d'autres choses qui peuvent provoquer le besoin de redémarrer, comme des programmes causant des fuites de mémoire, trop de programmes et pas assez de mémoire, et des choses de cette nature. Cependant , la fragmentation externe et interne sera presque certainement toujours le coupable n ° 1 à long terme .