E/s en linux

Els en linux gyjonyhj ‘IOF6pR 17, 2011 | 4 pagos EIS en Linux Uno de los objetivos principales del diseño del kernel 2. 6 fue la modificación del sistema de entrada/salida de bloques. La capa del kernel Linux encargada de manejar los dispositivos de bloques (discos duros, CDROM, es conocida con el nombre «Block 1/0 Layer». El kernel Linux tiende a clasificar los dispositivos físicos en dos grandes grupos, dispositivos de tipo carácter (char devices) y dispositivos de tipo bloque (block devices).

Los primeros, por sus caracter[sticas físicas necesitan de poca gestión por parte delkernel, básicamente son dispositivos cuyo acceso se imita a un flujo de caracteres (bytes) secuencial, uno detrás de otro. Por el contrario los dis ositivos de blo ues son sistemas más complejos, su m posible posicionarse ora Sv. ipe to View Típicamente los disp ivos sistemas de ficheros presentan en un sist rio, es decir, es n un acceso. ccedidos a través de pel primordial que ndes responsables del rendimiento global del sistema.

Por ello es necesario un subsistema completo en el kernel para la gestión de estos dispositivos. La unidad mínima accesible en un dispositivo de bloques es el SECTOR. El sector es una propiedad física del dispositivo,

Lo sentimos, pero las muestras de ensayos completos están disponibles solo para usuarios registrados

Elija un plan de membresía
no se uede acceder en unidades más pequeñas. Por Swipe to vlew next page Por otro lado el kernel Linux tiene sus preferencias y una de ellas es que la unidad mínima de acceso a un disposiWo de bloques es el BLOCK (bloque). El bloque es una abstracción de los sistemas de ficheros, un filesystem sólo puede accederse en múltlplos de un bloque.

Aunque el dispositivo se puede acceder en unidades de sector, el kernel lo considera un dispositivo de acceso por bloques El tamaño de un bloque queda limitado por tanto a un tamaño mínimo de un sector y por convención del kernel, a un tamaño áximo de una página (típicamente suelen ser de 4KBytes, 8KBytes). Si las peticiones de entrada/salida a disco se resolvieran en el orden que van llegando, el rendimiento del acceso a disco sería muy poco eficiente.

Una de las operaciones más lentas en los sistemas computadores es el posicionamiento de los cabezales de lectura/escritura sobre un bloque concreto del disco, del orden de milisegundos. Minimizar estos desplazamientos es una tarea crucial para mejorar el rendimiento del sistema. Por tanto el kernel no atiende a las peticiones de entrada/salida a disco a medida que llegan, sino que una parte especializada de la block /0 layer se encarga de gestionarlas, el subsistema denominado 1/0 Scheduler (planificador de entrada/salida).

Por tanto, el objetivo del 1/0 scheduler es la planificación de peticiones de e/ s pendientes para minimizar el tiempo gastado en mover las cabezas del disco. Se consigue pendientes para minimizar el tiempo gastado en mover las cabezas del disco. Se consigue este objetivo realizando dos operaciones principales, las operaciones sorting (ordenamiento) y merging (mezclado). El planificador de e/s mantiene una lista de peticiones de e/s pendientes ordenadas (sort) por número de bloque (posición en l disco).

Cuando una nueva petición de e/s llega, es insertada de manera ordenada en la lista. De esta forma se previene que el cabezal del disco se mueva a todo lo largo del disco caprichosamente. Si un disco duro está ocupado sirviendo una petición de e/s en una parte del disco, y una nueva petición llega en la misma zona, esa petición puede ser servida antes de moverse el cabezal a otra parte. El mergin ocurre cuando una petición de e/s emitida es adyacente a una petición ya pendiente o es la misma, las dos peticiones pueden ser mezcladas y formar una sola petición.

Esto minimiza a gestión de las peticiones, al reducir el número y además la resolución de la petición se realizará de una sola operación, sin necesidad de posicionamientos adicionales del cabezal. Los planificadores de e/s son denominados globalmente algoritmos de ascensor (elevators), pues buscan solución a un problema muy similar al desplazamiento óptimo de la cabina de un ascensor. -Linus Elevator 1/0 Scheluder: Este algoritmo proporciona merging y sorting. -Deadline 1/0 Scheluder.

Linus Elevator mantiene una única cola 3Lvf4 proporciona merging y sorting. -Deadline 1/0 Scheluder: Linus Elevator mantiene una única cola rdenada de peticiones de e/s. La petición en la cabeza de la cola, es la siguiente petición a ser servida. El algoritmoDeadline usa tres colas. -Anticipatory 1/0 Scheluder: el planificador Anticipatory se comporta exactamente igual al Deadline, implementa las tres colas anteriores (mas la dispatch queue) y expiración para las peticiones, exáctamente igual al Deadline.

El mayor cambio es la adición de una heurística de anticipación. -Complete Fair Queueing 1/0 Scheluder: El planificador CFQ fue diseñado para cargas de trabajo especializadas, pero en la práctica ha proporcionado un buen rendimiento en todo tipo de argas de trabajo. El planificador CFQ mantiene una cola por cada proceso que emite peticiones de e/s. -Noop 1/0 Scheluder: Este planificador es algo especial, su función es no hacer casi nada (no-operation).

No realiza ordenamiento de las peticiones, no se preocupa de los posicionamientos de los cabezales (seeks), pero si realiza merging. Cuando una petición llega, es recogida en otra si existen adyacentes pero mantiene la cola en orden temporal de llegada, FIFO. Está destinado a usarse en dispositivos de bloques que son verdaderamente de acceso aleatorio, sin movimientos de cabezales, como los dispositivos flash USB o PCMCIA