De ce que je vois, la pagination dans ce projet:
- Gère la propreté des pages avec des permissions d'écriture (https://github.com/ExistOS-Team/ExistOS ... #L378-L410)
- Semble utiliser un algorithme d'éviction FIFO un peu simpliste (https://github.com/ExistOS-Team/ExistOS ... #L114-L126)
- N'écrit pas en Flash les pages propres (https://github.com/ExistOS-Team/ExistOS ... Mgr.c#L165)
- Peut utiliser un Flash Translation Layer (https://github.com/ExistOS-Team/ExistOS ... #L317-L333, https://github.com/ExistOS-Team/ExistOS ... t3rd/dhara) dans sa partition de swap qui nivelle les écritures, mais je ne sais pas s'il est effectivement utilisé en pratique
Ce projet semble au moins utiliser quelques techniques classiques pour limiter le trashing dans la mémoire virtuelle. Le seul moyen de vérifier si cette pagination use excessivement la Flash serait de l'instrumenter pour obtenir des statistiques d'utilisation et d'éviction (on n'est pas à l'abri de bugs ou de dégénérations en pire cas), mais a priori ça ne devrait pas labourer naïvement la Flash.
Je ne vais pas faire une analyse approfondie (de toutes manières je n'ai pas de HP 39gII pour m'amuser avec ce firmware), mais au passage je note quelques pistes potentielles d'améliorations pour optimiser tout ça (un niveau de swap intermédiaire avec compression en RAM, la gestion des pages remplies de zéros, une meilleure politique d'éviction des pages comme un LRU par exemple...).