1 / 45

Entrada Salida

Entrada Salida. Sebastián Sánchez Prieto. El problema. Los procesos hacen un uso extensivo de E/S Cada dispositivo de E/S tiene su propia idiosincrasia Los dispositivos necesitan ayuda del núcleo Diferentes velocidades. disco. disco. Monitor. Procesador. disco. Caché. disco.

Download Presentation

Entrada Salida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Entrada Salida Sebastián Sánchez Prieto

  2. El problema • Los procesos hacen un uso extensivo de E/S • Cada dispositivo de E/S tiene su propia idiosincrasia • Los dispositivos necesitan ayuda del núcleo • Diferentes velocidades

  3. disco disco Monitor Procesador disco Caché disco Tarjeta gráfica Puente memoria/ controlador Memoria Controladora SCSI Bus PCI Teclado disco disco disco disco Bus de expansión Puerto paralelo Puerto serie Hardware de E/S Controladora de disco IDE Interfaz del bus de expansión

  4. Placas madre • Es la principal placa de circuito en el PC e incluye; • Procesador • Memoria • Ranuras de expansión • Buses • BIOS (Basic Input/Output System) • Realiza el power-on self test (POST) • CMOS RAM • Almacena parámetros de configuración: tipo y cantidad de discos, cantidad de memoria, DRAM timings, valor del RTC • Es actualizable • Susceptible de ser modificada por los virus

  5. Buses • Se utilizan para llevar a cabo la interconexión de diferentes elementos • Cada bus queda caracterizado por su velocidad máxima de transferencia y el ancho del mismo • Los buses más rápidos conectan la CPU con la cache L1 • El “bus de sistema” conecta la CPU con la cache L2 y la memoria dinámica (DRAM) • Bus de sistema (64 bits de ancho) • 66 MHz hasta principios del 98 • 100 MHz en el Pentium II

  6. DIB • Dual Independent Bus • Usado a partir del Pentium II • Se sustituye el bus de sistema por: • El backside bus: CPU - L2 • El frontside bus: CPU - Memoria/periféricos

  7. Bus ISA • Industry Standard Architecture (1982) • Bus de 8 bits a la friolera de 4,77 MHz • Posteriormente con el PC/AT (286) paso a ser de 16 bits y 6 y 8 MHz • Capaz de transferir 16 MBps (teóricos) • Debido a la multiplexación de direcciones y datos se queda en 8 MBps • En la práctica 5 MBps, suficiente para la mayoría de los periféricos • Problemas con: gráficos, discos y tarjetas de red

  8. MCA y EISA bus • Micro Channel Architecture (IBM) • Extended ISA (básicamente Compaq y otros) • Ambos de 32 bits • El primero a 10 MHz y el segundo a 8MHz • Capaces de transferir hasta 20 MBps • El primero era propietario • El segundo era compatible con ISA • Ninguno prosperó

  9. Local bus • Necesidad de acelerar los gráficos • Razón: aparecen las IGU o GUI (Windows) • En 1990 VESA (Video Electronics Standard Association) establece el estándar • Es un bus que extiende el bus de sistema del 486 y esa es su mayor desventaja • Al estar muy acoplado con la CPU si colocamos más de dos ranuras VESA la CPU se ve afectada • VESA recomienda sólo 2 ranuras a 33 MHz • Como el bus VESA va a la misma velocidad del micro, ¿qué pasa si el micro va más rápido?

  10. PCI bus • Peripheral Component Interconnect (Intel) • La especificación PCI Local Bus Revision 2.0 es de 1993 • PCI está separado del bus de sistema, pero tiene acceso a la memoria • Se utiliza un puente (se permiten varios) • PCI está limitado a 5 conectores • Soporta PnP • Tarjetas de 5 y 3,3 V

  11. PCI bus • Inicialmente PCI iba a 33 MHz • PCI 2.1 a 66 MHz (266 MBps) • Soporta 32 y 64 bits • Hasta 524 MBps • Permite interrupciones compartidas

  12. PCI-X bus • Definido por IBM, Compaq y HP (1999) • Utilizado por periféricos de gran ancho de banda: • Ethernet Gigabit • Ultra3 SCSI • Gráficos de alto rendimiento • PCI-X aumenta la velocidad del bus y el número de slots de alta velocidad • PCI permite slots de 33 MHz y uno a 66 MHz • PCI-X soporta un slot a 133 MHz de 64 bits

  13. Puerto AGP • Accelerated Graphics Port (Intel) • AGP opera a la velocidad del frontside bus (66 MHz) • Utilizado para gráficos 3D

  14. Nuevas tecnologías • La conexión de dispositivos externos está muy limitada: • Puerto serie: 115,2 Kbps • Puertos paralelo: 500 Kbps • ¿Qué se puede hacer con periféricos rápidos? • No hay posibilidad de conectar varios dispositivos al mismo puerto • El número de interrupciones está limitado (16 líneas IRQ)

  15. USB • Universal Serial Bus (definido por un consorcio en 1995) • Se pueden conectar hasta 127 dispositivos utilizando “Daisy-chaining” o utilizando un hub USB • A cada hub USB se pueden conectar 7 dispositivos entre los que se puede colocar otro hub USB y así sucesivamente • USB es capaz de proporcionar una alimentación de 5 V para pequeños dispositivos • La velocidad de transferencia es de hasta 12 Mbit/s • Para dispositivos lentos puede transferir a 1,5 Mbit/s

  16. USB • Distancia máxima entre dispositivos: 5 m • Soporta modo isócrono: se puede reservar ancho de banda para ciertos dispositivos • Puede distribuir hasta 500 mA por cada puerto

  17. IEEE 1394 (Firewire) • Similar a USB pero más rápido • La interfaz tiene dos niveles: • Backplane bus: dentro del ordenador (12,5 - 25 y 50 Mbit/s) • Interfaz punto a punto (100 - 200 y 400 Mbit/s) • Un puente conecta ambas interfaces • La nueva especificación pretende llegar a 800 Mbit/s y 1,6 Gbit/s • Conectores tipo Nintendo

  18. IEEE 1394 (Firewire) • Longitud máxima: 4,5 m • Lleva 6 cables • La alimentación entre 8 y 40 V dc • Hasta 1,5 A • Permite transmisión asíncrona e isócrona • La transmisión isócrona hace al bus Firewire adecuado para aplicaciones con restricciones de tiempo real • Soporta hasta 63 canales isócronos

  19. IEEE 1394 (Firewire) • Niveles IEEE 1394 • Dirección: 64 bits (10 red - 6 nodo y 48 dirección de memoria)

  20. IEEE 1394 (Firewire) • Ejemplo de interconexión

  21. USB 2.0 • Propuesto por Compaq, HP, Intel, Lucent, Microsoft, NEC y Philips • Un rendimiento entre 30 y 40 veces el de USB • Surge como respuesta a Firewire • Compatible con USB estándar • Velocidad 360-400 Mbit/s

  22. Interfaz con los controladores • Instrucciones específicas de E/S • Espacio de E/S proyectado en memoria • Interrupciones • Muestreo (polling) • Acceso directo a memoria (ADM)

  23. 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 • Problema: • Necesidad de buffers en los controladores • Solución: p.e. intercalado en los discos

  24. 1 El manejador (driver)Inicia la operación de lectura Bus CPU/memoria Bus PCI Controladora IDE disco disco disco disco Acceso directo a memoria 4 ADM Transfiere los bytes al buffer Incrementa el puntero de memoria y decrementa N CPU 5 Si N==0 se interrumpe a la CPU caché ADM buffer Memoria 2 El controlador inicia la transferencia 3 Cada byte va al controlador ADM

  25. Programación de la E/S • Objetivos: • Ocultar el HW a los niveles superiores • Presentar una interfaz uniforme de acceso • Independencia de dispositivo • sort < entrada > salida • Manejo de errores • Manejo de distintos tipos de dispositivos (compartibles y dedicados)

  26. 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 • Programas de usuario • Manejadores de interrupciones • Las interrupciones se deben ocultar • El núcleo se debe encargar de ellas

  27. Manejadores de dispositivos • Contienen el código dependiente del dispositivo • Cada manejador mantiene su cola de solicitudes Dispositivo: unidad de disco 1 Estado: libre Dispositivo: unidad de disco 2 Estado: ocupado Operación: lectura Archivo: datos.txt Operación: escritura Archivo: bal.mp3 Dispositivo: impresora Estado: ocupada Archivo: trp.ps Dispositivo: teclado Estado: libre Dispositivo: disco SCSI Estado: libre ...

  28. 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

  29. 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); • Sistema de spooling: • Así se evita que los usuarios monopolicen el uso de los dispositivos de E/S • P.e. el sistema de impresión

  30. spooler Programa Programa Programa Driver de impresora Driver de impresora Spooling

  31. Esquema global Respuesta de E/S Petición de E/S Procesos de usuario Llamada de E/S; formateo de E/S; spooling SW independiente de dispositivo 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 Hardware Realización de la E/S

  32. Ejemplo: discos • Coordenadas: • Pista, cabeza, sector (x, y, z) • Tiempos de acceso: • T. posicionamiento • T. latencia • T. transferencia • ¿Optimización?

  33. Particiones en el PC MBR Código de arranque Tabla de particiones Sector de boot Sector de boot Sector de boot Sector de boot Partición lógica 1 Partición lógica 4 Partición activa Partición 4 (extendida) Partición 3 MBR Partición 2 Partición 1

  34. 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

  35. 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ónextendida” • 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 se representa como /dev/hda1, /dev/hda2, etc.

  36. Planificación FCFS • Es la forma más sencilla de planificar • FCFS es aceptable con carga ligera

  37. Sortest Seek Time First • Problemas: • Posible inanición de solicitudes • Se discrimina a las pistas externas

  38. SCAN (algoritmo del ascensor) • Una variante del SCAN es el C-SCAN el cual proporciona un tiempo de espera más uniforme

  39. Posibles errores en los discos • 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

  40. Manejador de disco • Función: Leer y escribir datos del disco • Procedimientos básicos: • Inicializar el DMA • Arrancar el motor (en el caso de disquetes) • Mover las cabezas al lugar adecuado • Leer o escribir los datos • Detener el motor (en los disquetes)

  41. Relojes • Funciones: • Mantener la fecha y la hora • Impedir que un proceso se adueñe del procesador • Hardware asociado al reloj:

  42. Tipos de relojes • Reloj programable: • Modos de funcionamiento: • Modo “un pulso” • Modo de onda cuadrada • Reloj en tiempo real • Almacena el valor del tiempo actual • El hardware del reloj genera interrupciones regularmente • El resto lo hace el manejador

  43. Funciones asociadas • Evitar que los procesos monopolicen la CPU • Contabilidad del uso del procesador • 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: PonAlarma, PonerTiempo, ObtenerTiempo, Tick

  44. Terminales • Tipos de terminales • Con interfaz RS-232 • Con interfaz por memoria • Teclados • El manejador recibe las pulsaciones del teclado y se las pasa al proceso correspondiente • Modo orientado a caracteres (raw mode) • Modo orientado a líneas (cooked mode)

  45. Programación de la salida • Varía de los terminales RS-232 a los proyectados en memoria • Problemas: scrolling, ctrl g, cursor • Funciones ofrecidas: • Leer caracteres del terminal • Escribir caracteres al terminal • ioctl • Cancelar una petición • Activación: por interrupción (núcleo)

More Related