Quelle est la principale différence entre le cache tampon et le cache de pages? Pourquoi étaient-ils des entités distinctes dans les noyaux plus anciens? Pourquoi ont-ils fusionné plus tard?


Réponse 1:

Robert Love

  • Tous les systèmes de fichiers ne sont pas sauvegardés sur disque. Certains sont soutenus par la mémoire ou fonctionnent sur un réseau. La séparation du cache de pages entre les éléments qui pointent vers le cache de tampon et les éléments traités en mode natif est un peu inélégante.

Réponse 2:

Dans l'implémentation Unix d'origine, le cache de tampon était utilisé pour stocker les E / S de système de fichiers effectuées via des appels système en lecture / écriture et le cache de page était utilisé pour mettre en cache les pages de fichiers mappés avec mmap MAP_FILE entre autres. Le problème avec cette implémentation est que le système d'exploitation doit vider les pages mises en cache dans le cache tampon lorsqu'un processus modifie les pages mises en cache pour les mêmes fichiers à l'aide de mmap (MAP_FILE ...) et vice versa. Cela a eu pour résultat que le cache de pages et le cache de tampon sont unis en tant que cache de pages.