Conceptos sobre Buffer y Caché

0
3890

Cuando nos referimos a informática, existe una amplía terminología con respecto a dispositivos y sus funciones en diversas tecnologías y capacidades; con frecuencia el público no conocedor del tema, se ve envuelto en un lenguaje que muchas veces no comprende.

En este artículo les explicaré el significado de las palabras Buffer y Caché y sus diferencias ya que en muchas ocasiones se suele confundir estos términos. Cuando vamos a ver las especificaciones de una computadora y observamos la capacidad de un procesador, o las tecnologías incorporadas en un disco duro, es común que escuchar el término caché, e.g. que el disco duro poseé 16 MB de caché. En general, el comprador no entiende qué beneficios trae tener “x” cantidad de memoria caché.

[blockquote class=»{classname}»]La memoria caché es un espacio utilizado para almacenar datos que el sistema predice que va ser utilizado en un futuro próximo.[/blockquote]

Es decir, que el sistema almacena en un espacio de rápido acceso cierta información que el cree que va ser solicitada en un futuro cercano, haciendo que el tiempo de respuesta del ordenador sea mucho mas rápido, ya que no es necesario indagar en toda la información para encontrar los datos solicitados, sino que gracias a la predicción de que cierta información va ser pedida en un futuro próximo el sistema la guardó en el caché y la utilizó. Esto lo podemos comprender mejor con un ejemplo de la vida real.

Imaginemos un profesor de música que brinda un servicio telefónico donde las personas llaman para preguntarle con qué tipo de instrumento se puede comenzar a aprender música, cuáles son los instrumentos más caros, cómo se clasifican estos, etc. El profesor de música cuenta con una especie de catálogo de instrumentos, con qué están hechos, cuánto cuestan, y demás. Sin embargo después de cierto tiempo se percata que hay una serie de preguntas que no pueden faltar en el día y para ser más eficiente, el profesor se crea un cuaderno de apuntes con la respuesta a las preguntas más frecuentes. El mismo concepto se utiliza cuando se refiere a memoria caché. Es decir, un caché sirve para acelerar el acceso a la información, y por eso, mientras más grande es el caché, mejor el rendimiento, ya que más cosas se pueden almacenar en este caché «por si acaso» se necesitan.

También es importante conocer el concepto de caché miss, o fallo de caché. Básicamente es un error en la predicción, y la información solicitada no se encuentra en la memoria caché. Esto en vez de acelerar los procesos, los vuelve más lentos, ya que el sistema además de perder tiempo buscando en el caché y no encontrar la información debe hacer una búsqueda en toda la información almacenada en el disco duro, hasta encontrar la solicitada. Existe toda una ciencia para diseñar un buen algoritmo para saber qué información almacenar en la memoria caché y evitar los fallos, ya que la predicción de qué información que va ser solicitada en un ordenador es un trabajo mucho más difícil que nuestro ejemplo debido a que se debe tomar en cuenta otros parámetros. Por otro lado tenemos el buffer, este término es más visto cuando utilizamos programas de grabación de CD, pero también es aplicado a varias áreas de la informática.

Veamos otro ejemplo de la vida real, para comprender el concepto de buffer; Imaginemos un restaurante italiano, cierta cantidad de personas llega al lugar para pedir su plata favorito y cada cierto tiempo tiene que preparar la orden para luego entregarla. Sin embargo, existe una hora en la cual el número de personas que llega a su restaurante es muy elevado y ya no le es suficiente el tiempo que invierte en preparar la orden, esto conlleva a que los clientes se desesperen por esperar la orden. Esto le lleva pensar al dueño del local que es necesario tener a esa hora donde la gente llega más de lo habitual, los platos más solicitados para que cuando lleguen las personas, éstas pueden tener su orden lista en un tiempo no prolongado.

Esto es básicamente el principio de Buffer, un Buffer no es nada más que tener preventivamente algo listo, para cuando lo necesite, tenerlo listo y no haya que buscarlo o hacerlo en el momento que se lo pidan, un ejemplo que se aplica en la mayoría de las personas es cuando vemos un vídeo en youtube, ya que primero se empieza a pre-descargar el vídeo, pero sin reproducirlo para así tener suficiente parte del mismo descargado para cuando empiece a reproducirlo ya tener»por adelantado» buena parte del vídeo. Usualmente dicen que el vídeo ha sido puesto en caché, pero en realidad lo correcto es decir que ha sido puesto en un Buffer.

Entonces, [blockquote class=»{classname}»]El objetivo principal de un Buffer es tratar de garantizar que siempre habrá un flujo constante de datos.[/blockquote] Es decir, en vez de obtener los datos sólo en el momento que se solicite, que estos ya estén disponibles antes de pedirlos. Y aquí también podemos ver la diferencia entre el buffer y el caché, el caché esta diseñado para intentar de predecir cuáles son los datos que van a ser solicitados en un futuro próximo, mientras que el buffer por otro lado está diseñado de manera más sencilla para adelantarse y comenzar a cargar una información antes de la petición, pero el mismo trabaja con datos continuos (como una imagen, o un vídeo en específico) mientas que el caché trabaja con datos aleatorios (distintos tipos de instrumentos).

5 2 votes
Article Rating
Suscríbete
Notify of
guest

0 Comments
newest
oldest most voted
Inline Feedbacks
View all comments