Administración de I/O y Scheduling de disco

Slides:



Advertisements
Presentaciones similares
Introducción Principios del Software E/S Principios del Hardware E/S
Advertisements

Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
SISTEMAS OPERATIVOS II ADMINISTRACION DE PERIFERICOS
Procesador El sistema computador se centra en un procesador Aparece la Entrada /Salida Pero un procesador es una piedra si no se comunica con el exterior.
Arquitectura de Sistema de E/S
Planificación de Monoprocesadores
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Ordenamiento Interno y Búsqueda Binaria
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Modelo de procesos de dos estados
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Algorítmo de Mapeo Directo
Organización del Computador I Verano Programación de Operaciones de Entrada/Salida Profesora Borensztejn.
Gestión de Entrada / Salida
Elemento Lógico (Software)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración del espacio
Sistemas Operativos Procesos.
Unidad 7 Entrada/Salida
Profesor: Rodrigo Sanhueza Figueroa
Elaborado por: Guillermo Baquerizo I Término
Administración de Memoria Memoria Virtual
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
SISTEMA OPERATIVO Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar.
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Capítulo 7 Gestión de memoria.
 Hardware de E/S  Interfaz de aplicación E/S (API)  Sub-sistema de E/S en el Kernel  Transformando solicitudes de E/S en operaciones de hardware 
Gustavo Andrés Uribe Gómez
INTEGRANTES: JOHN CARRIEL GOMEZ EVELYN CASTRO FLORES ELIANA MORA SUAREZ.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Gestión de E/S y planificación de discos
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Teoría de Sistemas Operativos I/O
Introducción a los SOs.
Teoría de Sistemas Operativos Administración de Archivos.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
INTRODUCCIÓN: CARACT DE LOS DISPOSITIVOS DE ALMACENAMIENTO SECUNDARIO
Almacenamiento y discos
1. Motivación 2. Cintas magnéticas 3. Discos magnéticos 4. Discos ópticos 5. RAID.
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Estructura de los Sistemas Operativos
RAID Arreglo redundante de disco independiente
SEGURIDAD DE LOS DATOS. Cuáles son las características de un sistema de almacenamiento seguro y las técnicas de que disponemos para efectuarlo. Cómo están.
Almacenamiento y discos. Discos y almacenamiento 1.Motivación 2.Cintas magnéticas 3.Discos magnéticos 4.Discos ópticos 5.RAID.
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Redundant Array Independent Disk
Integrantes de equipo: Bryan Andrés García Alfaro Jesús Martínez Leyva.
INTERRUPCIONES – ABRAZO MORTAL
Ing. Katty Lagos Ortiz. M.Sc.
DISCOS RAID (Redundant Array of Independent Disks)
1 RAID (Redundant Array of Inexpensive Disks). RAID Una serie de sistemas para organizar varios discos como si de uno solo se tratara. Haciendo que trabajen.
Unidad de transferencia de memoria
Curso: Fundamentos de Computación
Rafael Luis Camiña Cultrera
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
[Sistemas RAID]. [Disk Arrays RAID] RAID= Redundant Array of Independent (or Inexpensive) Disks Usa combinaciones de discos para ‘obtener’ un disco con.
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Teoría de Sistemas Operativos I/O Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Sistemas de archivos. Sistemas de archivos 2 Objetivo del SdA  Ocultar al usuario los detalles relativos al almacenamiento de información en dispositivos.
Arquitectura y Ensamblaje de Computadores Semana 08 Lab.
Transcripción de la presentación:

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

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

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

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

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

Relaciones entre las técnicas

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

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

Configuraciones DMA

Configuraciones DMA

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.

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

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

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]

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

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

Parámetros (cont) Demora rotacional Tiempo de transferencia Tiempos típicos velocidad rotacional entre 3600 rpm hasta 15000 rpm. En discos con 15000 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

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 = 16 + 4*12 = 64 ms = 0.064 segundos

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

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

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

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

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

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

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

Comparación

Comparación

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

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

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)

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

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

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

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

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