Tecnología y Electrónica, pregunta formulada por LucasGabrielGomez, hace 1 mes

¿Cuáles son las Técnicas de Buffering? (Sistemas Operativos)

Respuestas a la pregunta

Contestado por misunamo
1

Respuesta:

Normalmente se entiende por buffering una técnica que consiste en leer/escribir bloques de varias líneas en una sola operación de entrada/salida. Esto disminuye el tiempo total requerido para la entrada/salida, ya que leer/escribir 10 líneas toma en la práctica casi el mismo tiempo que leer/escribir una línea.

Por ejemplo si en el esquema original el tiempo de proceso estaba dominado por 10000 lecturas de una línea cada una, con buffering factor 10 el tiempo se reduciría drásticamente ya que se realizarían sólo 1000 operaciones de lectura de a 10 líneas que tomarían poco más de un décimo del tiempo sin buffering.

La técnica de buffering es un poco más compleja que lo descrito anteriormente, puesto que también se usan canales para realizar las operaciones de lectura/escritura de bloques en paralelo con el proceso del job. Los canales son procesadores especializados en el movimiento de datos entre memoria y dispositivos. Son ellos los que interactúan con las cintas con mínima intervención de la CPU. La CPU sólo necesita intervenir al final de cada operación de E/S.

 

Figure: Uso de canales para leer, grabar y procesar en paralelo

La figura gif muestra la técnica de buffering. En ella se observa que en la fase i se superponen las siguientes actividades:

Lectura del bloque .

Proceso del bloque que tiene como entrada  y salida .

Escritura del bloque de salida  

Observe que la fase i+1 sólo puede comenzar cuando todas las partes de la fase i han concluido.

El rendimiento de esta técnica depende de la naturaleza del job que se procesa.

Jobs que usan intensivamente la CPU: En este tipo de jobs el tiempo de proceso de un bloque de datos es muy superior al tiempo de lectura y escritura de un bloque. En este tipo de jobs se alcanza un 100% de utilización de la CPU.

Jobs intensivos en E/S: En este tipo de jobs el tiempo de proceso de un bloque es ínfimo y por lo tanto muy inferior a su tiempo de lectura/escritura. En este tipo de jobs el tiempo de utilización de la CPU puede ser muy bajo.

Explicación:

Otras preguntas