entrada salida sebastián sánchez prieto. introducción a los ssoo 2 1999-2003 s2p, ogp & igt...
TRANSCRIPT
Entrada Salida
Sebastián Sánchez Prieto
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
SCSI bus
fast eth
disco duro
ethernet
impresora laser
modem
ratón
teclado
0,00 0,01 0,10 1,00 10,00 100,00 1000,00 10000,00 100000,00
1999-2003 S2P, OGP & IGT Introducción a los SSOO 3
Hardware de E/S
Bus PCI
disco
disco
disco
disco
Monitor
Tarjeta gráfica Controladora SCSI
Procesador
Puente memoria/controlador
Caché
Memoria
disco disco
Controladora de disco IDE
disco discoBus de expansión
Interfaz del bus de expansión Teclado
Puerto paralelo Puerto serie
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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ó
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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?
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 13
Puerto AGP
Accelerated Graphics Port (Intel) AGP opera a la velocidad del frontside bus (66 MHz) Utilizado para gráficos 3D
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 19
IEEE 1394 (Firewire)
Niveles IEEE 1394
Dirección: 64 bits (10 red - 6 nodo y 48 dirección de memoria)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 20
IEEE 1394 (Firewire)
Ejemplo de interconexión
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 24
Acceso directo a memoria
disco disco disco disco
CPU
caché
Bus CPU/memoriaADM Memoria buffer
Bus PCI
Controladora IDE
1 El manejador (driver)Inicia la operación de lectura
4 ADMTransfiere los bytes al bufferIncrementa el puntero de memoriay decrementa N
2 El controlador inicia la transferencia3 Cada byte va al controlador ADM
5 Si N==0 se interrumpe a la CPU
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 27
Manejadores de dispositivos
Contienen el código dependiente del dispositivo Cada manejador mantiene su cola de solicitudes
Dispositivo: unidad de disco 1Estado: libre
Dispositivo: unidad de disco 2Estado: ocupado
Operación: lecturaArchivo: datos.txt
Dispositivo: impresoraEstado: ocupada
Archivo: trp.ps
Operación: escrituraArchivo: bal.mp3
Dispositivo: tecladoEstado: libre
Dispositivo: disco SCSIEstado: libre
...
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 30
Spooling
Programa
Programa
Programa
Driver deimpresora
spooler
Driver de impresora
1999-2003 S2P, OGP & IGT Introducción a los SSOO 31
Esquema global
Procesos de usuario
SW independiente de dispositivo
Manejadores de dispositivo
Manejadores de interrupciones
Hardware
Petición de E/SRespuesta de E/S
Llamada de E/S; formateo de E/S; spooling
Asignación de nombres, protección, bloqueo,buffering, asignación de dispositivos
Asignación de valores a los registros dedispositivo, comprobación del estado
Reactivación del manejador cuando se completa la E/S
Realización de la E/S
1999-2003 S2P, OGP & IGT Introducción a los SSOO 32
Ejemplo: discos
Coordenadas: Pista, cabeza, sector (x, y, z)
Tiempos de acceso: T. posicionamiento T. latencia T. transferencia
¿Optimización?
1999-2003 S2P, OGP & IGT Introducción a los SSOO 33
Particiones en el PC
MBR
Sector de boot
Partición 1
Sector de boot Sector de boot Sector de boot
Partición 2 Partición 3 Partición 4 (extendida)
MBR
Partición lógica 1 Partición lógica 4Partición activa
Tabla de particiones
Código de arranque
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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ó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 se representa como /dev/hda1,
/dev/hda2, etc.
1999-2003 S2P, OGP & IGT Introducción a los SSOO 36
Planificación FCFS
Es la forma más sencilla de planificar FCFS es aceptable con carga ligera
1999-2003 S2P, OGP & IGT Introducción a los SSOO 37
Sortest Seek Time First
Problemas: Posible inanición de solicitudes Se discrimina a las pistas externas
1999-2003 S2P, OGP & IGT Introducción a los SSOO 38
SCAN (algoritmo del ascensor)
Una variante del SCAN es el C-SCAN el cual proporciona un tiempo de espera más uniforme
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 41
Relojes
Funciones: Mantener la fecha y la hora Impedir que un proceso se adueñe del procesador Hardware asociado al reloj:
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)
1999-2003 S2P, OGP & IGT Introducción a los SSOO 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)