Différence entre Buffering et Caching dans les systèmes d'exploitation

Par : TutorialsGrey, le 09 Mars 2022

Introduction

La plupart des gens confondent les termes Buffering qui signifie "mise en mémoire tampon" et Caching qui signifie "mise en cache". Bien que ces deux termes retiennent temporairement les données, ils sont différents l'un de l'autre. La mise en mémoire tampon est essentiellement utilisée pour adapter la vitesse de transmission entre l'émetteur et le récepteur.

D'autre part, le cache accélère la vitesse d'accès aux données utilisées de manière répétée. Ils partagent également d'autres différences qui seront abordées dans la suite de cet article.

 

Objectif

Montrer la différence qu'il y a entre la mise en mémoire tampon (Buffering) et la mise en cache (Caching)

 

Prérequis

Aucune connaissance particulière n'est requise pour comprendre cet article.

 

 

Le cours

Qu'est-ce que la mise en mémoire tampon ou Buffering ?

Le tampon ou Buffer est une zone de la mémoire principale (RAM) qui stocke temporairement les données lorsqu'elles sont transférées entre deux dispositifs, ou entre un dispositif et une application. La mise en mémoire tampon permet d'adapter la vitesse entre l'émetteur et le récepteur du flux de données.

Si la vitesse de transmission de l'émetteur est plus lente que celle du récepteur, un tampon est créé dans la mémoire principale du récepteur et accumule les octets reçus de l'émetteur. Lorsque tous les octets de données sont arrivés, il fournit des données au récepteur pour qu'il les utilise.

La mise en mémoire tampon est également utile lorsque l'émetteur et le récepteur ont des tailles de transfert de données différentes. Dans les réseaux informatiques, les tampons sont utilisés pour la fragmentation et le réassemblage des données. Du côté de l'émetteur, les données volumineuses sont fragmentées en petits paquets qui sont envoyés sur le réseau. Du côté du récepteur, une mémoire tampon est créée pour collecter tous les paquets de données et les réassembler pour créer à nouveau de grandes données.

La mise en mémoire tampon prend également en charge la sémantique de copie pour une application d'entrée/sortie. La sémantique de copie peut être expliquée à l'aide d'un exemple. Supposons qu'une application dispose d'un tampon de données à écrire sur le disque dur. Pour cela, l'application appelle la commande système write(). Supposons maintenant que l'application modifie les données du tampon avant le retour de l'appel système. Dans ce cas, la sémantique de copie fournit la version des données, au moment de l'appel système.

Les tampons sont implémentés dans trois capacités.

  • Capacité zéro : Ici, la taille maximale de la mémoire tampon est zéro. Elle ne peut contenir aucune donnée, l'expéditeur doit donc être bloqué jusqu'à ce que le récepteur reçoive les données.
  • Capacité limitée : Ici, la taille de la mémoire tampon est finie. Au maximum, l'expéditeur peut envoyer n blocs de données. Si la mémoire tampon est pleine, l'expéditeur est bloqué jusqu'à ce que de l'espace soit disponible en mémoire.
  • Capacité illimitée : ici, la mémoire tampon est potentiellement infinie. Un nombre quelconque de blocs de données peut être envoyé. L'émetteur n'est jamais bloqué.

 

 

Qu'est-ce que la mise en cache ou Caching ?

Le cache est une mémoire implémentée dans le processeur qui stocke la copie des données originales. L'idée derrière la mise en cache est que les blocs de disque récemment accédés doivent être stockés dans la mémoire cache de sorte que lorsque l'utilisateur a de nouveau besoin d'accéder aux mêmes blocs de disque, il peut être traité localement par la mémoire cache en évitant le trafic réseau.

La taille du cache est limitée car il ne contient que les données récemment utilisées. Lorsque vous modifiez le fichier cache, vous pouvez également voir cette modification dans le fichier original. Si les données dont vous avez besoin ne se trouvent pas dans la mémoire cache, elles sont copiées de la source vers la mémoire cache pour être disponibles à l'utilisateur lors de sa prochaine demande.

Les données en mémoire cache peuvent également être conservées sur le disque au lieu de la mémoire vive (RAM), ce qui présente l'avantage que le cache sur disque est fiable. En cas de panne du système, les données mises en cache sont toujours disponibles sur le disque. Mais les données seraient perdues dans une mémoire volatile comme la RAM. Mais l'avantage de stocker les données en cache dans la RAM est qu'elles sont accessibles rapidement.

 

Principales différences entre la mise en mémoire tampon ou Buffering et la mise en cache ou Caching dans les systèmes d'exploitation

  • La principale différence entre la mémoire tampon et le cache est que la mémoire tampon est utilisée pour faire face aux différences de vitesse entre l'émetteur et le récepteur du flux de données, tandis que le cache est une mémoire qui stocke les données afin d'accélérer la vitesse d'accès à ces données utilisées de manière répétée.
  • La mémoire tampon contient toujours les données originales à envoyer au récepteur. En revanche, le cache contient la copie des données originales.
  • Le tampon est toujours implémenté dans la mémoire principale (RAM), mais le cache peut être mis en œuvre dans la RAM ainsi que sur le disque.

 

Tableau comparatif entre Buffering et Caching

Critères de comparaison Buffering Caching
Fonction La mise en mémoire tampon permet d'adapter la vitesse entre l'émetteur et le récepteur du flux de données. La mise en cache permet d'accélérer la vitesse d'accès aux données utilisées de manière répétée par l'utilisateur.
Stockage La mémoire tampon stocke la copie originale des données. Le cache stocke la copie des données originales.
Emplacement La mémoire tampon est une zone de la mémoire principale (RAM). Le cache est implémenté sur le processeur ; il peut également être implémenté sur la RAM et le disque.

 

 

Conclusin

La mise en mémoire tampon et la mise en cache permettent toutes deux de stocker temporairement les données, mais elles sont utilisées à des fins différentes. La mémoire tampon permet d'accélérer la vitesse de communication entre deux appareils, tandis que le cache accélère l'accès aux données qui sont consultées de manière régulière.