Dans les ordinateurs, volatile est utilisé pour décrire le contenu de la mémoire qui est perdue lorsque l`alimentation est interrompue ou désactivée. Par conséquent, la valeur de l`objet const reste identique. Remarque: les codes ci-dessus sont spécifiques au compilateur et peuvent ne pas fonctionner sur tous les compilateurs. Les technologies de mémoire volatile à venir qui espèrent remplacer ou concurrencer SRAM et DRAM incluent Z-RAM, TTRAM, A-RAM et ETA RAM. Les objets déclarés comme volatiles sont omis de l`optimisation car leurs valeurs peuvent être modifiées par le code en dehors de la portée du code actuel à tout moment. Variables globales modifiées par une routine de service d`interruption en dehors de la portée: par exemple, une variable globale peut représenter un port de données (généralement un pointeur global appelé e/s mappé en mémoire) qui sera mis à jour dynamiquement. La mémoire semi-conductrice la plus moderne est soit la RAM statique (voir SRAM), soit la RAM dynamique (voir DRAM). Le mot clé volatile est destiné à empêcher le compilateur d`appliquer toutes les optimisations sur les objets qui peuvent changer d`une manière qui ne peut pas être déterminée par le compilateur. Par conséquent, le compilateur ne fera aucune optimisation et changera la valeur de l`objet const. Voyons un exemple pour comprendre comment les compilateurs interprètent le mot clé volatile. Toutefois, les données dans la mémoire vive ne restent là que lorsque l`ordinateur est en cours d`exécution; Lorsque l`ordinateur est éteint, RAM perd ses données. Le code peut ne pas fonctionner comme prévu lorsque les interruptions sont activées et utilisées.

La question est donc simple: comment la valeur d`une variable change-t-elle de telle manière que le compilateur ne peut pas prédire. Lorsque deux threads partageant des informations via une variable globale, ils doivent être qualifiés avec volatile. En général, volatile (du latin „volatilis“ signifiant „voler“) est un adjectif utilisé pour décrire quelque chose d`instable ou changeant. Cependant, DRAM utilise un seul transistor et un condensateur par bit, ce qui lui permet d`atteindre des densités beaucoup plus élevées et, avec plus de bits sur une puce de mémoire, être beaucoup moins cher par bit. Bien que nous compilons le code avec l`option d`optimisation, la valeur de l`objet const changera, car la variable est déclarée comme volatile, ce qui signifie ne pas effectuer d`optimisation. Il existe deux types de RAM volatile: dynamique et statique. La mémoire non volatile est la mémoire de l`ordinateur qui peut conserver les informations stockées même lorsqu`elles ne sont pas alimentées. Considérez ci-dessous le code, nous changeons la valeur de l`objet const en utilisant le pointeur et nous compilons le code sans option d`optimisation.

Le compilateur peut lire la variable globale et peut les placer dans la variable temporaire du contexte de thread actuel. La mémoire ordinaire (ou RAM) de votre ordinateur est une mémoire volatile. La mémoire volatile contraste avec la mémoire non volatile, qui ne perd pas de contenu lorsque l`alimentation est perdue. Mémoire volatile a plusieurs utilisations, y compris comme stockage principal. Chaque bit dans une puce RAM statique a besoin d`une cellule de six transistors, alors que la RAM dynamique ne nécessite qu`un seul condensateur et un transistor. Les exemples de mémoire non volatile incluent la mémoire en lecture seule (voir ROM), la mémoire flash, la plupart des types de périphériques de stockage d`ordinateurs magnétiques (e. En plus d`être généralement plus rapide que les formes de stockage de masse comme un disque dur, la volatilité peut protéger les informations sensibles, car il devient indisponible sur la mise hors tension.

23/12/2018