Changes between Version 28 and Version 29 of AS6-TME-B6


Ignore:
Timestamp:
Mar 29, 2022, 1:42:16 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v28 v29  
    151151{{{#!protected ------------------------------------------------------------------
    152152'''
    153  * Oui, les piles peuvent déborder, il n'y a aucun mécanisme pour se protéger. Un mécanisme possible serait de lever des exceptions ''accès mémoire interdit'' lorsqu'on sortirait d'une pile, mais il n'y en a pas.
     153 * Oui, les piles peuvent déborder, il n'y a aucun mécanisme pour se protéger.
     154 * Un mécanisme possible serait de lever des exceptions ''accès mémoire interdit'' lorsqu'on sortirait d'une pile, mais il n'y en a pas.
     155 * C'est un problème, parce que déborder une pile, c'est écraser des données. Le plus grave, c'est que la perte de donnée due à l'écrasement peut ne pas être visible avant plusieurs dizaines de millions de cycles et le debug devient particulièrement difficile.
     156 * Pour traiter ce problème, kO6 écrit au début et à la fin des piles, des nombres magiques qui ne devront jamais être écrasés si les piles est correctement utilisées. Ces sont des sentinelles.
     157 * kO6 peut regarder périodiquement (par exemple à chaque commutation) que la pile n'a débordée, si les sentinelles sont toujours là.
     158 * Avec ce mécanisme, on ne peut pas détecter précisément quand le problème arrive mais on a une fourchette temporelle d'un tick d'horloge, c'est déjà pas mal.
    154159'''
    155160}}}