La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Administración de I/O y Scheduling de disco

Presentaciones similares


Presentación del tema: "Administración de I/O y Scheduling de disco"— Transcripción de la presentación:

1 Administración de I/O y Scheduling de disco
Capítulo 11

2 Categorías de dispositivos de I/O
Leíbles por humanos Usados para comunicación con el usuario Impresoras, teclados, terminales, etc Leíbles por máquinas Usados para comunicación con equipos electrónicos Discos, floppies, sensores, etc De comunicación Usados para comunicación con dispositivos remotos Modems, tarjeta de red, etc

3 Diferencias entre dispositivos de I/O
Tasa de transferencia de datos Puede existir varios órdenes de magnitud de diferencia

4 Diferencias (cont) Aplicación Un disco usado para almacenar los archivos de los usuarios requiere del sistemas de archivos Un disco usado para almacenar páginas de memoria virtual y realizar swap-in y swap-out requiere hardware y software apropiado Complejidad de control Unidad de transferencia flujo de caracteres o bloques Representación de datos; esquemas de codificación Condiciones de error La diversidad de dispositivos de I/O y sus diferencias hacen difícil la tarea de proveer una solución uniforme y consistente

5 Tres formas básicas de realizar I/O
I/O Programado El procesador emite el comando de I/O, en favor de un proceso, al módulo de de I/O luego el proceso espera (busy waiting) hasta que la operación de I/O termine I/O basado en interrupciones El procesador emite el comando de I/O al igual que I/O programado Luego el procesador continua ejecutando instrucciones del mismo u otro proceso Cuando la operación de I/O termina, el módulo de I/O envía una interrupción al procesador para que éste avise al proceso Acceso Directo a Memoria (DMA) El procesador instruye al módulo de DMA que transfiera uno o más bloques de datos El módulo de DMA controla completamente la transferencia de datos entre el dispositivo de I/O y la memoria principal, sin intervención del procesador Finalmente, el módulo DMA interrumpe al procesador cuando la transferencia está lista

6 Relaciones entre las técnicas

7 Evolución de la función de I/O
Procesador controla directamente al dispositivo Controlador o módulo de I/O Procesador usa I/O programado sin interrupciones Procesador no maneja los detalles de los dispositivos externos Controlador o módulo I/O con interrupciones Procesador no necesita esperar en busy-waiting hasta que la operación termine DMA Se transfieren bloques de datos entre dispositivo y memoria sin involucrar al procesador El procesador se involucra sólo al principio y al final de la trasnferencia Módulo I/O es un procesador separado (I/O channel) Ejecuta instrucciones en memoria principal Permite manejar una secuencia de operaciones de I/O sin la intervención del procesador Procesador I/O (I/O processor) Módulo I/O tiene memoria local y es en realidad un computador

8 DMA Procesador delega las operaciones de I/O al módulo de DMA
Módulo DMA transfiere bloques de datos directamente desde o hacia la memoria principal Cuando la transferencia termina, envía una interrupción al procesador

9 Configuraciones DMA

10 Configuraciones DMA

11 Buffering de I/O Considere el siguiente escenario
Un proceso requiere leer un bloque de datos y almacenarlos en su espacio de direcciones (por ejemplo, un arreglo) ¿Qué pasa si el SO decide suspender el proceso mientras se realiza la operación de lectura? Es necesario que ciertas páginas permanezcan lock incluso si el proceso es suspendido Note que también seria posible que ocurriera deadlock I/O buffering consiste en realizar lectura de datos anticipadamente y realizar operaciones de escritura no inmediatamente después del requerimiento mismo.

12 Tipos de dispositivos de I/O
Orientado al bloque Información es almacenada en bloques de tamaño fijo La transferencia es de un bloque a la vez Orientado al flujo (Stream) Transfiere información como un flujo de bytes Usado por impresoras, terminales, puertos de comunicación, etc

13 Buffer simple T: tiempo para leer un bloque
SO asigna un buffer en memoria principal (un área de memoria) para un requerimiento de I/O Buffering orientado al bloque Transferencia se realiza a un buffer del sistema Luego, el bloque es movido al espacio de direcciones del proceso Otro bloque es leído inmediatamente en el buffer del sistema; read ahead Note que el proceso puede suspenderse o bloquearse porque la transferencia se hace en memoria del sistema y no espacio del usuario El SO administra los buffers asignados a los procesos T: tiempo para leer un bloque C: tiempo de cómputo entre lecturas M: tiempo para mover datos desde memoria del sistema a memoria usuario T+C versus max{C,T} + M

14 Buffer doble Se utilizan dos buffers de sistema
Mientras se transfiere data desde o hacia uno de los buffers, el SO transfiere datos desde o hacia el otro buffer En este caso tiempo de ejecucion es max{C, T]

15 Buffer circular Se utilizan más de dos buffers
Cada buffer es una unidad en un buffer circular Es útil cuando el proceso realiza muchas y continuas operaciones de I/O

16 Scheduling de disco Parámetros de rendimiento
Para leer o escribir, la cabeza lectora del disco debe estar posicionada en la pista deseada y al comienzo del sector apropiado Seek time (tiempo de búsqueda) Tiempo necesario para posicionar la cabeza en la pista deseada Latencia rotacional (o demora rotacional) Tiempo que demora hasta que la cabeza se posiciona en el sector deseado Tiempo de acceso suma seek time y latencia rotacional; tiempo total antes de comenzar a leer o escribir La transferencia de datos ocurre a medida que el sector se mueve debajo de la cabeza

17 Parámetros (cont) Demora rotacional Tiempo de transferencia
Tiempos típicos velocidad rotacional entre 3600 rpm hasta rpm. En discos con rpm, tenemos una revolución por 4 ms En promedio, demora rotacional será 2 ms En floppies, la demora promedio es entre 100 y 50 ms Tiempo de transferencia T = b/ (r N) b: número de bytes a transferir N: número de bytes en la pista r: velocidad rotacional, en revoluciones por segundo Tiempo total de acceso = Ts + 1/(2r) + b/(rN) Ts, seek time

18 Ejemplo comparativo Considere un disco con los siguientes parámetros
Tiempo seek promedio 4ms Velocidad rotacional 7500 rpm Sectores de 512 bytes, y 500 sectores por pista Suponga que se desea transferir 2500 sectores, es decir 1.28 Mbytes Primero suponga que el archivo ocupa todos los sectores en 5 pistas consecutivas (organización secuencial). Entonces, el tiempo para leer la primera pista Seek promedio = 4 ms Demora rotacional promedio = 4 ms Lectura de 500 sectores = 8 ms Total 16 ms Las otras pistas se leen sin seek time, es deir 4 + 8 Tiempo total = *12 = 64 ms = segundos

19 Ejemplo (cont) Ahora asuma acceso random Tiempo seek = 4 ms
Demora rotacional = 4 ms Lectura de 1 sector = ms Lectura de 2500 sectores = 2500*8.016 = segundos

20 Scheduling de disco Políticas
Tiempo seek es la razón principal del rendimiento pobre en el ejemplo anterior Recordar que para cada unidad de I/O, el SO mantiene una cola de requerimientos de I/O (de distintos procesos) En el caso de discos, estos requerimientos vienen con el número de pista(s) que se necesitan leer. Si las pistas se visitan aleatoreamente, el rendimiento será el peor Para las siguentes políticas, asumiremos la siguiente cola de disco: 55, 58, 39, 18, 90, 160, 150, 38, 184 Y la cabeza lectora está inicialmente sobre la pista 100

21 FIFO Los requerimientos se sirven en el orden de llegada (secuencialmente) Dependiendo de los requerimientos encolados, FIFO puede comportarse como una lectura random 55, 58, 39, 18, 90, 160, 150, 38, 184

22 Prioridad La meta no es optimizar uso de disco
Lecturas pequeñas podrían tener más prioridad que lecturas masivas Esto significaría un buen tiempo de respuesta a aplicaciones interactivas No es una política recomendada para sistemas de base de datos

23 Tiempo servicio más corto primero (SSTF)
Selecciona el requerimiento de disco que requiere el menor movimiento del brazo desde su posición actual Es decir, minimiza el tiempo seek Note que este algoritmo no garantiza que el tiempo promedio de seek sobre un conjunto de operaciones de I/O sea mínimo 55, 58, 39, 18, 90, 160, 150, 38, 184

24 SCAN El brazo se mueve sólo en una dirección, satisfaciendo todos los requerimientos de acuerdo al movimiento hasta llegar a la última pista Luego, el brazo barre el disco en la otra dirección ¿Cuáles pistas se favorecen? 55, 58, 39, 18, 90, 160, 150, 38, 184

25 C-SCAN (scan circular)
Restringe el barrido sólo en una dirección, sin revertir cuando se llega al final Cuando se llega al final, el brazo retorna al principio y comienza nuevamente su barrido 55, 58, 39, 18, 90, 160, 150, 38, 184

26 Comparación

27 Comparación

28 RAID Redundant Array of Independent Disks
Un conjunto de discos físicos es visto por el SO como un sólo disco lógico Los datos se almacenan en forma distribuida en el arreglo de discos lo cual permite lectura paralela de distintos discos Además, se utiliza la capacidad redundante para almacenar información de paridad, la cual garantiza la recuperación de información en caso de falla de uno de los discos Existen 7 niveles RAID, de 0 a 6

29 RAID 0 (sin redundancia)
Los datos estan organizados en los discos en strips, los cuales se distribuyen round-robin en los discos físicos El disco lógico también está dividido en strips Suponga que tenemos n discos físicos, luego los primeros n strips se mapean consecutivamente en los n discos. Este conjunto de strips forma un stripe Provee la transferencia más alta, pero no es tolerante a fallos

30 RAID 1 (espejo) Se provee tolerancia a fallos mediante la simple replicación de los datos Cada disco físico tiene su disco espejo que replica los datos Note que cada vez que se requiere agregar un disco para aumentar la capacidad de almacenamiento, se necesita de otro disco para la duplicación Muy costoso para sistemas muy grandes (mucha información)

31 RAID 2 (redundancia mediante código de Hamming)
Típicamente, la información se distribuye al nivel de bits o bytes. Por ejemplo, 32 discos serían necesarios para un sistema cuya palabra es de 32 bits. En este caso, cada strip es de 1 bit Se usa el código detector y corrector de Hamming para calcular un código de error, el cual se almacena en discos adicionales. Cuando se lee una palabra, se calcula su código y se compara con el almacenado; si hay una diferencia de un bit, entonces se puede corregir. Si hay diferencias en más de un bit, se puede detectar RAID 2 no se usa en la práctica

32 RAID 3 (bit de paridad) Similar a RAID 2, pero utiliza un bit de paridad y no un código de error. Luego, en caso que un disco falle, se lee el disco de paridad y se regenera el dato Por ejemplo, si hay 4 discos de datos (0, 1, 2, 3), el bit de paridad se calcula Luego si falla la unidad 1, recuperamos la información sumando A cada lado de la ecuación anterior

33 RAID 4 (bloque de paridad)
En RAID 4 los strips son relativamente grandes (no bits como en RAID 2 y 3) y se usa un bloque de paridad bit a bit del mismo tamaño que los strips Además, las unidades se operan independientemente, con lo que pueden atender varias solicitudes de I/O en paralelo RAID 4 involucra un penalty cuando la solicitud es pequeña Suponga que el requerimiento de escritura es sólo para el strip en disco 1. Se puede demostrar que Donde el símbolo prima significa el strip después de la escritura. Por lo tanto, una escritura de un strip, requiere dos lecturas (en paralelo) y una escritura Si la solicitud involucra todos los strips, entonces se requiere solo una escritura en paralelo

34 RAID 5 (bloque de paridad distribuido)
La única diferencia con RAID 4, es que en RAID 5, el bloque de paridad se distribuye en todos los disco, por ejemplo en forma round-robin Note que: Los datos también están distribuidos en round-robin Aún necesitamos de un disco adicional al de la necesaria para almacenar los datos

35 RAID 6 (dual redundancy)
Se utilizan dos algoritmos de cálculo de paridad: uno calcula los bits con el algoritmo del OR exclusivo, y el otro es uno provisto por el proveedor. Luego, se mantienen dos bloques de paridad (distribuidos como en RAID 5) Esto permite que se puedan recuperar los datos aun cuando fallen dos unidades Un arreglo RAID 6 de N discos de datos requiere N+2 discos en total


Descargar ppt "Administración de I/O y Scheduling de disco"

Presentaciones similares


Anuncios Google