Download Entrada y Salida
Document related concepts
no text concepts found
Transcript
Entrada y Salida Los problemas Los procesos hacen un uso extensivo de E/S Cuanta mayor concurrencia de E/S, mayor aprovechamiento del sistema Cada dispositivo de E/S tiene su propia idiosincrasia Funcionalidad diversa Almacenamiento (Discos) Interfaz de usuario (Teclado, ratón) Comunicaciones (Tarjetas de red, módem) Etc. Modo de acceder a ellos Diferentes grados de autonomía e inteligencia Los dispositivos necesitan ayuda del núcleo Diferentes velocidades © 1999-2006 S2P, OGP & IGT Entrada y Salida 2 1 Diferentes velocidades Velocidad de dispositivos de E/S Teclado Ratón serie Módem 56k Floppy 1.44Mb Ethernet Tarjeta de memoria SD Fast Ethernet DVD-ROM Disco duro Gigabit Ethernet Tarjeta de video 3D PCIe 1E+00 1E+01 1E+02 1E+03 1E+04 1E+05 1E+06 1E+07 1E+08 1E+09 1E+10 Velocidad de transferencia (bytes/s) © 1999-2006 S2P, OGP & IGT Entrada y Salida 3 Caso de estudio: PC compatible La plataforma PC tiene una historia de 25 años IBM PC en 1981 La “arquitectura PC” evoluciona en función de las necesidades y novedades tecnológicas Plataforma original: HW: CPU Intel 8086/8088 y otros componentes estándar SW: Principalmente por evolución de CPU y dispositivos de E/S BIOS patentada por IBM Sistema operativo DOS de Microsoft Características de E/S: Dispositivos básicos controlados por el chip i8255 o conectados directamente al bus de procesador Expansión mediante bus PC/ISA © 1999-2006 S2P, OGP & IGT Entrada y Salida 4 2 Arquitectura PC © 1999-2006 S2P, OGP & IGT Entrada y Salida 5 Buses Se utilizan para interconectar dos o más elementos del computador Buses compartidos (shared bus): ISA, PCI, SCSI, P-ATA… Buses punto a punto: PCI-Express, S-ATA, USB… Dentro de un computador existen jerarquías de diferentes buses. Los elementos que interconectan dos buses se denominan puentes (bridges) Característica principal de un bus: capacidad de transportar información. Depende sobre todo de: Su velocidad de reloj (Mhz) El número de líneas (ancho del bus) Otras características: Capacidad de compartir interrupciones Arbitraje del bus (master-slave) Según su uso: Bus de Procesador/Sistema/Front Side Bus (FSB): Conecta la CPU al resto del sistema Buses para interconexión de periféricos © 1999-2006 S2P, OGP & IGT Entrada y Salida 6 3 Evolución (i386/i486) Problemas: Desajuste entre velocidad de la CPU y de la DRAM. Saturación en el bus de sistema (acceso a memoria y E/S) Solución: Utilización de cachés y desacoplo entre bus de procesador y bus de sistema Problema: Desajuste entre velocidad de la CPU y los buses de expansión. Se necesita mejorar los buses de E/S Bus frontal de la CPU: hasta 33Mhz/32bits = 132Mb/s ISA (AT): 16 bits, 8Mhz, 2 ciclos por transferencia = 8Mb/s Solución: Buses mejorados: EISA y MCA Compartidos entre VGA, discos duros, ethernet, etc. MCA (Microchannel): Propietario de IBM, 32 bits, 10Mhz EISA (Enhanced ISA): “estándar”, 32 bits, 8 Mhz Mejoras insuficientes, caros. No se imponen. Solución: Idea “nueva”, usar el “bus local” de la CPU para aquellos dispositivos muy rápidos (VGA, IDE, Ethernet) Estándar VL-Bus (VESA Local Bus) © 1999-2006 S2P, OGP & IGT Entrada y Salida 7 Cachés y VL-Bus © 1999-2006 S2P, OGP & IGT Entrada y Salida 8 4 Buses locales VL-Bus: Ventajas Desventajas Alta velocidad: 33Mhz/32bits Sencillez en la implementación (simple duplicación del bus de sistema) Totalmente ligado al bus de sistema del i486. Imposible su uso en otras arquitecturas o en otras CPUs x86 con diferente protocolo de bus (p.e. Pentium) Carga del bus de sistema. Máximo 3 ranuras en condiciones muy estrictas; normalmente sólo 1 o 2 dispositivos. Intel introduce el bus local PCI Desacoplado del bus de sistema pero igual de rápido (inicialmente, i486) Independencia de la plataforma: Aplicable a i486, Pentium… Elemento fundamental: PCI-bridge © 1999-2006 S2P, OGP & IGT Entrada y Salida 9 PCI Local bus © 1999-2006 S2P, OGP & IGT Entrada y Salida 10 5 PCI Local Bus PCI: Peripheral Component Interconnect (1993) Implementación típica: 33Mhz, 32 bits (132Mb/s) Existen especificaciones hasta 66Mhz y 64 bits (528Mb/s) pero son infrecuentes Interrupciones compartidas Plug and Play 5 conectores Se pueden encadenar buses PCI jerárquicamente mediante PCI brigdes Variantes: Bus avanzado: PCI-X (1999) (no es PCI-Express) Periféricos de alto rendimiento (Gigabit Ethernet, SCSI) Hasta 133Mhz y 64 bits. Poco extendido PCI-X 266 (o DDR): 266Mhz Bus para portátiles: Cardbus PCI con formato PCMCIA © 1999-2006 S2P, OGP & IGT Entrada y Salida 11 North/South Bridge Limitación de la arquitectura anterior: el FSB (host bus) soporta gran tráfico Intel Pentium: Host bus de 64 bits/66Mhz Gran tráfico desde/hacia la caché L2 sobre el host bus. Idea: desacoplar la RAM del host bus Pasa por él todo el tráfico de periféricos a RAM Pasa por él todo el tráfico de CPU a la caché L2 y la RAM Independencia del tipo de RAM, ancho, velocidad, etc. DMA no interfiere en el host bus North Bridge: “Guardia de tráfico” de los datos South Bridge: Agregador de periféricos y buses varios IDE Bus ISA Buses legacy (serie, paralelo, teclado, ratón…) © 1999-2006 S2P, OGP & IGT Entrada y Salida 12 6 Arquitectura Pentium © 1999-2006 S2P, OGP & IGT Entrada y Salida 13 DIB y AGP Limitaciones de la arquitectura empleada en el Pentium: Los gráficos comienzan a requerir enormes anchos de banda: Saturación del bus PCI, que se comparte con otros periféricos rápidos (Discos, Ethernet…) El FSB se comparte para lecturas de la caché L2 y resto de tráfico (RAM, E/S…) Soluciones: AGP (Advanced Graphics Port) DIB (Dual Independent Bus) Bus punto a punto dedicado para el adaptador gráfico AGP 1X: 66Mhz, 32 bits. Basado en PCI. Modos especiales de transferencia (2x, 4x, 8x) para ciertos datos. La caché sigue conectada al FSB pero transfiere los datos a la CPU vía un bus trasero (backside bus) (Pentium II) Tónica general: “Cuantos más buses, más ancho de banda total en el sistema” © 1999-2006 S2P, OGP & IGT Entrada y Salida 14 7 North bridge y South bridge © 1999-2006 S2P, OGP & IGT Entrada y Salida 15 Tendencias posteriores Proliferación de buses: FSB, AGP, memoria, PCI, etc. Conexión entre North Bridge y South Bridge mediante buses dedicados de alta velocidad (p.e. HyperTransport). ¿Por qué? Bus PCI se satura con dispositivos de alta velocidad: Gigabit Ethernet, dispositivos ATA, etc. Entre el South Bridge y el North Bridge viaja todo el tráfico de todos los periféricos conectados al South Bridge Solución: Usar otro bus más rápido dedicado de interconexión. Bus PCI relegado a bus legacy, soportado por el South Bridge. Tendencia hacia los buses punto a punto. De shared bus a shared switch (p.e. PCI Express) Conexiones dedicadas para dispositivos de alta velocidad Tendencia hacia buses más estrechos pero de más frecuencia. Ejemplos: HyperTransport: 16 bits, 1Ghz (vs. PCI, 32 bits y 66Mhz) Serial ATA: 1 bit, 1.5Ghz (vs. Parallel-ATA, 16 bits 66Mhz) PCI Express: “lanes” de 1 bit en cada sentido, 2.5Ghz. Integración del controlador de memoria en la CPU: AMD Hammer (Athlon 64) © 1999-2006 S2P, OGP & IGT Entrada y Salida 16 8 Arquitectura actual del PC (2006) © 1999-2006 S2P, OGP & IGT Entrada y Salida 17 PCI Express Motivos para sustituir PCI Bus compartido Ancho de banda actualmente insuficiente Para aumentar prestaciones, o se aumenta el ancho del bus o se aumenta la frecuencia. Ambos plantean problemas técnicos Conectores grandes, buses muy anchos PCI Express (PCIe): Sustituto de PCI Topología punto a punto con un switch compartido, en lugar de bus compartido. Cada dispositivo tiene un “link” dedicado. © 1999-2006 S2P, OGP & IGT Entrada y Salida 18 9 PCI Express Características Enfoque: Bus serie de alta frecuencia Reducción del “pin count” y simplificación de la transmisión “La potencia de proceso es más barata que el ancho de bus” Concepto de “lane” (carril) PCIe Cada lane es capaz de transmitir una señal serie de 1 bit en ambos sentidos de cada vez (full duplex) gracias a que tiene un canal de transmisión y otro de recepción Codificación 8B/10B (10 bits por byte) Comparativamente, PCI tiene una capacidad total de aproximadamente 132Mb/s (32bits x 33Mhz) Un link se puede componer de uno o más lanes agregados. Las tránsmisiones se fragmentan y reensamblan en los extremos lane Un lane tiene una capacidad de 250 Mb/s en cada sentido Forma fácil de aumentar el ancho de banda Un link con un lane se denomina x1. PCIe soporta links x1, x2, x4, x8, x12, x16 y x32. Actualmente se usan de x1, x4, x8 y x16. Compatible con PCI El switch PCIe se encarga de traducir los accesos a memoria en las peticiones a los dispositivos correspondientes y de fragmentar/reensamblar los datos © 1999-2006 S2P, OGP & IGT Entrada y Salida 19 PCI Express © 1999-2006 S2P, OGP & IGT Entrada y Salida 20 10 Placas madre Es la principal placa de circuito en el PC e incluye; Procesador Memoria RAM Conectores de conexión de periféricos Ranuras de expansión de diversos tipos de bus: ISA, PCI, PCIe, AGP… Conectores para diversos buses de periféricos: USB, IDE, Serie… La ROM BIOS (Basic Input/Output System) Software básico del sistema Rutinas de autochequeo en el inicio (POST, Power-On Self-Test) Configuración básica de dispositivos Rutinas de apoyo para la carga del S.O. y acceso básico a periféricos (BIOS) Memoria RAM CMOS Alimentada por una pila, guarda parámetros de configuración del sistema: Dispositivo de arranque, parámetros de CPU y RAM, etc. © 1999-2006 S2P, OGP & IGT Entrada y Salida 21 Placa Madre © 1999-2006 S2P, OGP & IGT Entrada y Salida 22 11 Periféricos Diversidad de dispositivos con diferentes necesidades y problemáticas Tipo (Almacenamiento, comunicaciones, interfaz…) Dispositivos internos o externos Necesidad o no de conexión y desconexión en caliente Necesidades de ancho de banda diversas Normalmente no se conectan directamente a un bus del sistema Escasez de líneas de interrupción Complejidad Escasez de ranuras de expansión © 1999-2006 S2P, OGP & IGT Entrada y Salida 23 Periféricos Lo normal es emplear un bus específico para el periférico en cuestión, gestionado por un controlador hardware que a su vez se conecta a un bus de sistema como PCI, ISA, etc. Se definen características físicas (cable, tensiones, señales) y de protocolo (comandos, paquetes de datos, etc.) Ejemplo: Protocolo IDE/ATA Originalmente (PC/AT): Dispositivos externos Bus serie RS-232 (máximo 115Kbps). 2 puertos típicamente. Bus paralelo IEEE1284. Máximo 500Kb/s aprox. 1 puerto. Conector de teclado específico. Dispositivos internos Conexión de floppy Conexión de disco duro Resto de dispositivos conectados al bus ISA (Video, red) © 1999-2006 S2P, OGP & IGT Entrada y Salida 24 12 Periféricos internos Buses internos Típicamente para dispositivos de almacenamiento como discos duros o unidades ópticas Bus IDE/ATA (Parallel ATA, o PATA) Conexión con cable de cinta (40-80 hilos), 16bits, hasta 66Mhz (133Mb/s) Cada bus soporta hasta 2 dispositivos denominados maestro y esclavo. Bus SCSI Físicamente similar a ATA, pero el controlador hardware tiene mayor “inteligencia” Múltiples variantes SCSI, FastSCSI, UltraSCSI, UltraWide SCSI, Ultra2, Ultra160, Ultra320… hasta 320Mb/s Según versión, hasta 16 dispositivos teóricos en cada bus. Mucho más sofisticado y caro. Fibre-Channel: SCSI sobre fibra óptica © 1999-2006 S2P, OGP & IGT Entrada y Salida 25 Periféricos internos Serial ATA (SATA) Conexión punto a punto, serie, 1.5Ghz (150Mb/s efectivos) SATA/300 (SATA II) a 3.0Ghz Incorpora el requisito de soportar NQC (Native Command Queueing) NCQ: El controlador puede reordenar los comandos pendientes de atender para mejorar la eficiencia. Similar al TQC de SCSI Existe una versión con conectores externos (eSATA) Factor importante: Sencillez y comodidad de instalación © 1999-2006 S2P, OGP & IGT Entrada y Salida 26 13 Periféricos externos USB (Universal Serial Bus) Definido en 1995 por un consorcio liderado por Intel como alternativa más sencilla y barata a FireWire Diseño asimétrico: Un nodo servidor (host) y múltiples dispositivos, conectados en forma de árbol mediante concentradores (hubs) Hasta 127 dispositivos por bus, incluyendo los hubs Ofrece alimentación de 5V (hasta cierto límite) Conexión en caliente USB 1.1 (original) Dos velocidades: Low Speed (1.5Mbps) y Full Speed (12Mbps) Adecuado para periféricos de entrada (teclados, ratones) y algunos dispositivos de baja velocidad, como módems o impresoras USB 2.0 Añade Hi-Speed (480Mbps) Adecuado para dispositivos de almacenamiento (Discos duros, DVD) y aplicaciones de video, así como redes de mayor velocidad (IEEE 802.11g, 54Mbps) © 1999-2006 S2P, OGP & IGT Entrada y Salida 27 Periféricos externos El bus USB suele estar proporcionado por el South Bridge u otro controlador conectado al bus PCI En un PC actual existen conectores externos e internos (típicamente 8-10) Dos tipos de conectores, A (para hosts y hubs) y B (para periféricos) con versiones “mini” para ambos. El futuro (?): Wireless USB (WUSB) © 1999-2006 S2P, OGP & IGT Entrada y Salida 28 14 Periféricos Externos FireWire (IEEE 1394) Desarrolado por Apple (1995) como alternativa serie a SCSI Pensado para dispositivos de almacenamiento y cámaras digitales de video No necesita un host: Los periféricos conectados pueden comunicarse entre ellos directamente Hasta 63 dispositivos Más rápido (400Mbps), con mayor capacidad de alimentación (hasta 45W por puerto, 30V), mejor velocidad sostenida, más adecuado para tiempo real Permite la creación de redes, soporta varios hosts por bus En general, mayor “inteligencia” y características mucho más potentes que USB (al estar basado SCSI). Más complejo de implementar y más caro que USB Versiones de 800Mbps y hasta 3.2Gbps sobre fibra óptica © 1999-2006 S2P, OGP & IGT Entrada y Salida 29 Interfaz con los controladores La interacción con dispositivos de E/S incluye varios aspectos a estudiar Interacción con los controladores de dispositivos Instrucciones específicas de E/S Espacio de E/S proyectado en memoria Mecanismos de interrupciones Muestreo (polling) Acceso directo a memoria (ADM) © 1999-2006 S2P, OGP & IGT Entrada y Salida 30 15 Acceso directo a memoria Objetivo: solapar operaciones de CPU y E/S El ADM es un elemento básico para realizar de forma eficiente la multiprogramación Programación del ADM: Número de datos a transferir Puntero a la zona de memoria de destino Consideraciones: Necesidad de buffers en los controladores © 1999-2006 S2P, OGP & IGT Entrada y Salida 31 Acceso Directo a Memoria © 1999-2006 S2P, OGP & IGT Entrada y Salida 32 16 Gestión de la E/S El sistema operativo es el vínculo entre la aplicación de usuario y el hardware de E/S Objetivos del subsistema de E/S del S.O.: Ocultar el HW a las aplicaciones Presentar una interfaz uniforme de acceso Independencia de dispositivo sort < entrada > salida Manejo de errores Gestión de distintos tipos de dispositivos Compartibles o dedicados De modo caracter o de modo bloque De acceso secuencial o aleatorio Etc… © 1999-2006 S2P, OGP & IGT Entrada y Salida 33 Cómo alcanzar estos objetivos “Idea nueva”: estructuración en niveles Manejador de interrupciones Manejadores de dispositivos (drivers) Programas de S.O. independientes del dispositivo Software en espacio de de usuario Manejadores de interrupciones Las interrupciones se deben ocultar El núcleo se debe encargar de su atención © 1999-2006 S2P, OGP & IGT Entrada y Salida 34 17 Esquema global Respuesta de E/S Petición de E/S Procesos de usuario SW independiente de dispositivo Llamada de E/S; formateo de E/S; spooling Asignación de nombres, protección, bloqueo, buffering, asignación de dispositivos Manejadores de dispositivo Asignación de valores a los registros de dispositivo, comprobación del estado Manejadores de interrupciones Reactivación del manejador cuando se completa la E/S Realización de la E/S Hardware Entrada y Salida 35 © 1999-2006 S2P, OGP & IGT Manejadores de dispositivos Contienen el código dependiente del dispositivo Operaciones inmediatas o que requieren espera Interrupción al finalizar al E/S Un manejador puede tener capacidad de gestionar varias E/S en curso Mantiene una cola de solicitudes por cada dispositivo controlado Dispositivo: unidad de disco 1 Estado: libre Dispositivo: unidad de disco 2 Estado: ocupado Dispositivo: impresora Estado: ocupada Operación: lectura Archivo: datos.txt Operación: escritura Archivo: bal.mp3 Archivo: trp.ps Dispositivo: teclado Estado: libre © 1999-2006 S2P, OGP & IGT Entrada y Salida 36 18 E/S independiente de dispositivo La frontera de este nivel con el anterior es difusa Funciones: Ofrecer una interfaz uniforme a los procesos de usuario Asignar nombres a los dispositivos Proteger los dispositivos Ofrecer un tamaño de bloque independiente de los dispositivos Almacenar los datos temporales en las transferencias de E/S Gestionar la asignación del espacio en dispositivos de bloques Reservar y liberar dispositivos dedicados Informar de los posibles errores Un aspecto muy importante en un SS.OO. es la asignación de nombres a los archivos y dispositivos y su protección © 1999-2006 S2P, OGP & IGT Entrada y Salida 37 E/S en el espacio de usuario Procedimientos de biblioteca: Forman parte del del software de E/S en espacio de usuario. Ejemplo: printf ("Solucion = %d \n"), dato); Ejemplo: La biblioteca de funciones POSIX del S.O. Gestión de E/S por parte de procesos de sistema Ejemplo: Demonio de gestión del sistema de spooling: Recibe peticiones de uso de un recurso por parte de los procesos de usuario (p.e. una impresora) Gestiona el uso del recurso a alto nivel (p.e. una cola de impresión) Así, evita que los usuarios monopolicen el uso de los dispositivos de E/S © 1999-2006 S2P, OGP & IGT Entrada y Salida 38 19 Spooling Programa spooler Programa Programa Driver de Driver de impresora impresora © 1999-2006 S2P, OGP & IGT Entrada y Salida 39 Ejemplo: Dispositivo sencillo bajo Linux Vamos a ver a continuación un ejemplo con un dispositivo básico, en el S.O. Linux Características del dispositivo Un único puerto de E/S en la dirección 0x378 Es capaz de generar la interrupción 5 El manejador debe incluir: Funciones para tratar con el dispositivo: func_leer() y func_escribir() Estas funciones harán in() y out() al puerto entre otras cosas Se pueden especificar muchas más funciones. Depende de las necesidades y complejidad del dispositivo manejado Manejador de interrupción: maneja_int() ¿Cómo se incorpora todo esto al S.O. y cómo se pone a disposición del usuario? © 1999-2006 S2P, OGP & IGT Entrada y Salida 40 20 Manejadores en Linux En la inicialización del manejador, éste debe indicar a Linux: Qué rango de puertos de E/S necesita usar Cuáles son las funciones básicas de operación que el manejador ofrece Qué major number del sistema quiere solicitar el manejador El major number y el minor number son números que sirven para identificar a posteriori un dispositivo dentro del sistema Existe una tabla en la que cada tipo de dispositivo tiene unos números estándar Para nuestro caso usaremos el número 55 de forma arbitraria Además, si el manejador lo necesita debe registrar el manejador de interrupción para que sea ejecutado cuando ésta se genere © 1999-2006 S2P, OGP & IGT Entrada y Salida 41 Manejadores en Linux Reservar los puertos request_region( 0x378, 0, “midispositivo”); Registrar las funciones Las funciones se le indican al núcleo mediante una estructura estándar que contiene punteros a las funciones implementadas o NULL si no lo están struct file_operations misfunciones = { NULL, /* lseek */ func_leer, func_escribir, NULL, /* readdir */ NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ NULL, /* open */ NULL, /* flush */ NULL, /* release (close) */ [ ... Otras funciones ... ] }; El major number (55) se indica en el registro de las funciones register_chrdev( 55, “midispositivo”, &misfunciones); © 1999-2006 S2P, OGP & IGT Entrada y Salida 42 21 Manejadores en Linux Registrar el manejador de interrupción request_irq( 5, maneja_int, misflags, “midispositivo”, NULL); ¿Cómo puede una aplicación de usuario acceder al dispositivo? El sistema operativo tiene asociado internamente un major number Se asocia un nombre dentro del sistema de archivos a dicho major number Se genera un archivo de tipo “dispositivo” user@host$ mknod /dev/nuevodispositivo c 55 0 A partir de este momento, el “archivo” creado da acceso al dispositivo y se puede usar como cualquier otro archivo Ejemplo: La aplicación de usuario abre el archivo con open() y escribe con la llamada al sistema write() El sistema operativo vé que es un archivo de tipo “dispositivo”. Cuando se abre o se escribe sobre él, mira el major y minor number Finalmente, con el major y minor number localiza y llama a las funciones que registró el manejador (p.e. func_escribir() ) © 1999-2006 S2P, OGP & IGT Entrada y Salida 43 Ejemplo: Gestión de disco Veremos a continuación un ejemplo de los diferentes elementos del subsistema de E/S utilizando el disco rígido como ejemplo: Problemática de gestión del hardware Manejador de dispositivo Gestión lógica del espacio en el dispositivo Planificación de la E/S Gestión de errores © 1999-2006 S2P, OGP & IGT Entrada y Salida 44 22 Detalles del hardware de disco El disco viene dividido en sectores de 512 bytes Se referencian mediante cordenadas: Pista, cabeza, sector (CHS) Tiempos de acceso: T. posicionamiento T. latencia T. transferencia ¿Cómo optimizar? En los discos modernos la estructura interna del disco es transparente y los sectores se referencian mediante un índice (LBA, Logical Block Addressing) © 1999-2006 S2P, OGP & IGT Entrada y Salida 45 Manejador de disco Función: Leer y escribir sectores del disco Procedimientos básicos: Inicializar el DMA Arrancar el motor (en el caso de disquetes) Mover las cabezas al lugar adecuado (mediante un comando a la controladora de disco) Leer o escribir los datos La finalización de la operación la indicará el controlador mediante interrupción Detener el motor (en los disquetes) Las operaciones a realizar dependerán del grado de inteligencia e independencia de la controladora de disco © 1999-2006 S2P, OGP & IGT Entrada y Salida 46 23 Particiones en el PC Resuelto el acceso a un sector, es necesario organizar el espacio para su uso Organización lógica del disco en particiones MBR Código de arranque Tabla de particiones Sector de boot Sector de boot Sector de boot Sector de boot Partición activa MBR Partición 1 Partición 2 Partición lógica 1 Partición 3 © 1999-2006 S2P, OGP & IGT Partición lógica 4 Partición 4 (extendida) Entrada y Salida 47 Particiones en el PC Master Boot Record (primer sector) Bytes 1-446: código de arranque Bytes 447-510: tabla de particiones (4 entradas) Bytes 511-512: número mágico AA55 El resto de sectores pueden estar: Sin utilizar En una partición En espacio libre que puede ser asignado a nuevas particiones © 1999-2006 S2P, OGP & IGT Entrada y Salida 48 24 Particiones en el PC En el MBR sólo se puede especificar hasta 4 particiones primarias Cada entrada de la tabla de particiones incluye: Tipo de partición (Linux, NTFS, HURD, etc.) Etiqueta de “bootable” o no Posición inicial y final en el disco Con objeto de permitir un mayor número de particiones se introduce un tipo especial denominada “partición extendida” La partición extendida puede tener hasta cuatro particiones lógicas La partición extendida puede contener particiones extendidas, que contengan particiones extendidas y así sucesivamente La partición extendida puede ocupar cuarquier posición. No es necesario que sea la última En Linux cada partición en el disco duro maestro del primer canal de tipo IDE se representa como /dev/hda1, /dev/hda2, etc. © 1999-2006 S2P, OGP & IGT Entrada y Salida 49 Planificación de la E/S En ocasiones, es posible que ocurran más peticiones de E/S hacia un dispositivo de las que es posible atender Las peticiones pendientes típicamente se pondrán en una cola a la espera de ser atendidas Por ejemplo, peticiones de lectura o escritura de un sector de disco El sistema operativo debe planificar estas peticiones con el objetivo de obtener el mejor rendimiento posible © 1999-2006 S2P, OGP & IGT Entrada y Salida 50 25 Planificación de disco FCFS Es la forma más sencilla de planificar FCFS es aceptable con carga ligera © 1999-2006 S2P, OGP & IGT Entrada y Salida 51 Sortest Seek Time First Problemas: Posible inanición de solicitudes Se discrimina a las pistas externas © 1999-2006 S2P, OGP & IGT Entrada y Salida 52 26 SCAN (algoritmo del ascensor) Una variante del SCAN es el C-SCAN el cual proporciona un tiempo de espera más uniforme En la actualidad, es la propia controladora de disco hardware la que optimiza las solicitudes de disco (p.e. NCQ en Serial ATA o TCQ en SCSI) © 1999-2006 S2P, OGP & IGT Entrada y Salida 53 Posibles errores en la gestión de discos El sistema operativo debe estar preparado para tratar los errores que se puedan producir en la E/S de disco De programación (p.e. sector no existente) Transitorios (polvo en las cabezas) Permanentes (daños físicos) De búsqueda (pido leer el cilindro 6 y la cabeza se va al 7) Del controlador © 1999-2006 S2P, OGP & IGT Entrada y Salida 54 27 Ejemplo: Relojes Se emplean en un sistema con múltiples objetivos, por ejemplo: Mantener la fecha y la hora Apoyar al S.O. para impedir que un proceso se adueñe del procesador interrumpiendo periodicamente Etc. Hardware asociado al reloj: © 1999-2006 S2P, OGP & IGT Entrada y Salida 55 Tipos de relojes Reloj programable (timer): Modos de funcionamiento: Modo “un pulso” Modo de onda cuadrada Reloj en tiempo real (RTC) Almacena el valor del tiempo actual El hardware del reloj genera interrupciones regularmente El resto lo hace el manejador © 1999-2006 S2P, OGP & IGT Entrada y Salida 56 28 Funciones asociadas del S.O. Evitar que los procesos monopolicen la CPU Contabilidad del uso del procesador El reloj interrumpe cada cierto tiempo. En ese momento el S.O. toma el control y planifica si es necesario El S.O. actualiza contadores cada vez que ocurre una interrupción Avisar de eventos solicitados por el resto de los procesos Monitorización del sistema (perfiles de ejecución y estadísticas) Mantener actualizadas la fecha y la hora Llamadas soportadas por los dispositivos de tipo reloj: PonAlarma, PonerTiempo, ObtenerTiempo, Tick © 1999-2006 S2P, OGP & IGT Entrada y Salida 57 29