-
Buffer et cache
Bonjour,
Je suis en train de regarder les indicateurs que l'on peut récupérer avec les différentes commandes et je bloque sur les champs "buffers" et "cache" que l'on peut afficher avec les commandes vmstat ou free.
Le "buffer" c'est de la mémoire centrale réservé à un périphérique en mode bloc pour accélérer les opérations E/S. Et "le cache" a également la même fonction, donc quelle est la différence entre les deux? :aie:
Merci d'avance.
-
-
Merci.
Oui je vois la différence entre "buffer page" et "page cache".
Dans le premier des cas il s'agit juste d'adapter le débit de donnée transmis au périphérique en maintenant un sorte de contenant entre les deux (chargé de contenir le trop plein).
Et dans le second cas "le page cache" est une copie de la mémoire qu'est sur le périphérique, sur lequel on peut effectuer des opérations et qui devra être synchronisé de temps en temps.
Finalement avec "buffer page" on est encore dans une dynamique de transmission au fil de l'eau.
-
Correction : l'explication dont tu m'as donné le lien serait fausse. Je viens de lire un article et le buffer page sert à stocker les blocs de données les plus récemment utilisés.
Donc lorsqu'on lance une opération de lecture ou d'écriture il va d'abord chercher dans cet espace mémoire avant de faire une demande d'I/O au périphérique. Ce qui correspond à la second définition.:roll:
D'après ce que j'ai lu sur "wikipedia" cette histoire de contenant entre les mémoires et composants ça sera plutôt ce qu'on appelle de la mémoire tampon. Et dans le cas présent le buffer page serait à la fois de la mémoire tampon et de la mémoire cache.
Reste que je ne sais toujours pas à quoi correspond la mémoire cache lorsque je lance ma commande free ou vmstat. :roll:
Enfin en lisant cet article:
http://bulma.net/body.phtml?nIdNoticia=1167&nIdPage=2
J'apprends que la différence entre les deux c'est que le "cache page" sert à stocker des pages entières alors qu'une page dans le buffer page fait la taille d'un bloc de donnée du disque dur.
Le buffer page serait plus proche de l'accès physique lors de la demande d'entrée sortie alors que le "cache page" est lié à la zone de swap et l'utilisation de la mémoire virtuelle. C'est l'espace qu'est réservé à ce mécanisme en mémoire centrale.
C'est pas super clair et je comprends pas la raison de ce doublon. :?
Ça veut dire que par exemple lors d'un défaut de page, on va vouloir récupérer la page manquante qui est constitué de bloc de donnée. Si cette page a été récemment utilisé et qu'elle n'est pas dans le "cache page", certains de ces blocs pourraient se trouver dans le buffer cache?