sesion 2 - gestion de entrada-salida

Upload: pedro-alonzo

Post on 19-Oct-2015

11 views

Category:

Documents


0 download

TRANSCRIPT

  • Tema 6

    Gestin de Entrada/Salida

    Sistemas Operativos

    Tema 6 Gesti on de Entrada/Salida p.1/66

  • ndice1. Arquitectura del sistema de E/S (Tanenbaum [C5.1.1, C5.2 y C5.3])2. Discos (Tanenbaum [C5.4.1, C5.4.3 y C5.4.4])3. Relojes (Tanenbaum [C5.5])4. Terminales (Tanenbaum [C5.6 y C5.7])5. E/S en Linux (Tanenbaum [C10.5.1, C10.5.3 y C10.5.4])6. E/S en Windows 2000 (Tanenbaum [C11.6.1, C11.6.3 y C11.6.4])

    Tema 6 Gesti on de Entrada/Salida p.2/66

  • 1. Arquitectura del sistema de E/S

    ndice1.1 Objetivos del software de E/S1.2 Dispositivos de bloques y de caracteres1.3 Estructura y componentes del sistema de E/S1.4 Manejadores de interrupciones1.5 Manejadores de dispositivos1.6 Software de E/S independiente del dispositivo1.7 Software de E/S en el espacio de usuario

    Tema 6 Gesti on de Entrada/Salida p.3/66

  • 1.1 Objetivos del software de E/S1. Independencia de dispositivo

    Se debe poder acceder a los dispositivos de E/S sin tener queespecificar previamente de qu tipo de dispositivo se trataComo en los disp. de bloques: disquetes, discos duros, cdromsEl SO debe resolver los problemas causados por usar diferentesdispositivos, que requieren rdenes distintas para manejarlos

    2. Nombres uniformes para los dispositivosEl nombre de un fichero o dispositivo debe ser simplemente unacadena o un entero, y no depender del dispositivo

    3. Manejo de erroresDeben manejarse tan cerca del hardware como sea posibleSubsanar todos los errores posiblesComunicando los no subsanables a los procesos de usuario

    Tema 6 Gesti on de Entrada/Salida p.4/66

  • 1.1 Objetivos del software de E/S (ii)4. Conversin de transferencias asncronas (controladas por inte-

    rrupciones) en sncronas (por bloqueo)Casi toda E/S fsica es asncrona: la CPU inicia la transferencia yrealiza otra tarea hasta que llega una interrupcinSin embargo, es ms sencillo escribir los programas si lasoperaciones de E/S son bloqueantesEl SO ha de hacer que las operaciones que son controladas porinterrupciones parezcan bloqueantes para el programador

    5. Comparticin de recursosDebe permitir la comparticin de ciertos dispositivos (como losdiscos)Pero al mismo tiempo debe garantizar el uso exclusivo de otros(como las impresoras)

    6. Uso de buffersDebe proporcionar almacenamiento temporal en memoria paraevitar prdida de datos (teclado) o acelerar dispositivos (discos)

    Tema 6 Gesti on de Entrada/Salida p.5/66

  • 1.2 Dispositivos de bloques y de caracteres

    Dispositivos de bloquesAlmacenan informacin en bloques de tamao fijo, cada uno con supropia direccinEs posible leer o escribir cada bloque con independencia de todoslos dems

    Dispositivos de caracteresSuministra o acepta un flujo de caracteres sin estructurarlos enbloquesNo es direccionable ni tiene una operacin de desplazamiento

    Otros, sin embargo, no son direccionables por bloques y tampocoaceptan un flujo de caracteres

    RelojesPantallas mapeadas a memoria

    La divisin es muy til:Sist. Ficheros disp. bloques manejador disp. fsico

    Tema 6 Gesti on de Entrada/Salida p.6/66

  • 1.3 Estructura y componentes del software de E/S

    El SW de E/S suele estar organizado en 4 capas, cada una con unafuncin bien definida y una interfaz clara con las capas adyacentes1. Manejadores de interrupciones2. Manejadores de dispositivos3. Software de E/S independiente del dispositivo (SID)4. Software de E/S en el espacio de usuario

    Solicitudde E/S

    CapaRespuestade E/S Funciones de E/S

    Hace llamadas de E/S; da formato a la E/S; spooling

    Dar nombres, proteccin, bloqueos, uso de buffers, asignaciones

    Inicializa los registros del dispositivo; comprueba el estado

    Derpierta al manejador al terminar la E/S

    Realiza la operacin de E/S

    Procesos de usuario

    Software independientedel dispositivo

    Manejadores dedispositivo

    Manejadores deinterrupciones

    Hardware

    Tema 6 Gesti on de Entrada/Salida p.7/66

  • 1.4 Manejadores de interrupcionesSe deben ocultar al mximo en el S.O.El proceso que solicita la operacin se bloquea hastaque termina la E/SCuando se presenta una interrupcin el manejador deinterrupciones hace lo propio para manejarla. Despusavisa al manejador que le solicit esa operacin de E/SEl manejador despierta al proceso y prosigue suejecucinAs, el efecto real es que el proceso que antes estababloqueado ahora ya puede ejecutarse

    Tema 6 Gesti on de Entrada/Salida p.8/66

  • 1.5 Manejadores de dispositivosCdigo que depende de los dispositivos, que sirve paracontrolarlosCada manejador habla con la controladora de un tipo determinado dedispositivos, o de una clase de dispositivosForma parte del ncleo del SO, necesita ejecutarse en modo ncleopara acceder a los registros de la controladora del dispositivoTareas del manejador del dispositivo:

    Trata las solicitudes abstractas del SID y se encarga de que se satisfaganindicando a la controladora qu hay que hacer y leyendo la respuesta de la mismaVerifica la ejecucin de la operacin, corrigiendo posibles erroresInicializa el dispositivo, comprueba si est encendido (p.e. el motor de unadisquetera), si est conectado, o si est ocupado

    Al solicitar la orden a realizar, el manejador puede ser que tenga queesperar (bloquendose hasta que se produzca una interrupcin) o que la operacintermine sin retraso (el manejador no se bloquea)Ha de ser reentrante durante su ejecucin, debe considerar laposibilidad de que se le invoque otra vez antes de terminar

    Tema 6 Gesti on de Entrada/Salida p.9/66

  • 1.6 Software de E/S independiente de dispositivo

    Hay software que no depende directamente del dispositivo

    Dependiente versus independiente: dnde est la frontera?Algunas funciones que podran efectuarse con independencia del dispositivo enrealidad se ejecutan en el manejador por eficiencia o por otros motivos

    Funciones:1. Interfaz uniforme del software a nivel de usuario2. Asociacin de nombres simblicos de los dispositivos y el

    manejador correcto: /dev/tty0 nodo-i especial (id. tipo y dispositivo)3. Interfaz uniforme para manejadores de dispositivo4. Proteccin de dispositivos evitar que usuarios no autorizados

    accedan al dispositivo5. Tamao de bloque independiente del dispositivo

    Agrupar o dividir sectores para conseguir un tamao nico de bloque lgicoLas capas superiores pueden trabajar con dispositivos abstractos

    Tema 6 Gesti on de Entrada/Salida p.10/66

  • 1.6 Software de E/S independiente de dispositivo (ii)

    Funciones (contina...)6. Uso de buffers para almacenamiento temporal de los datos

    Homogeneizan velocidades, se pueden recibir los datos de manera msrpida que la velocidad que pueden salir

    7. Asignacin de espacio en los dispositivos de bloquesRealizar la gestin de la lista ligada o mapa de bits para administrar el espaciolibre es independiente del dispositivo

    8. Arbitrio entre dispositivos de uso exclusivoExaminar las solicitudes de uso de dispositivos y aceptarlas o rechazarlas,segn el dispositivo est disponible o no

    9. Informe de erroresLos errores no resueltos por los manejadores debern ser tratados por el SID,que intentar solucionarlos, y si no puede, deber informar de los mismos

    Tema 6 Gesti on de Entrada/Salida p.11/66

  • 1.7 Software de E/S en espacio de usuario

    Procedimientos de bibliotecaLa mayora del software de E/S est en el ncleoSin embargo, tambin hay procedimientos de biblioteca que seejecutan en modo usuario y que se encargan de realizar lasllamadas al sistema (ej. read, printf, etc.)Normalmente preparan el entorno adecuado y a continuacinrealizan la llamada al sistema

    Sistema de spoolingLos dispositivos de uso exclusivo no se pueden dejar a cargode programas de usuario (problema: monopolizacin)El sistema de spooling es una forma de manejar dispositivosdedicados en un sistema con multipogramacinHay un demonio y un directorio de spoolingEl demonio verifica peridicamente el directorio para saber si haytrabajos pendientesLas impresoras se manejan de esta manera

    Tema 6 Gesti on de Entrada/Salida p.12/66

  • ndice2. Discos

    2.1 Hardware para discos. Estructura fsica2.2 Planificacin de los movimientos del brazo del

    disco2.3 Manejo de errores2.4 Discos en RAM2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID

    Tema 6 Gesti on de Entrada/Salida p.13/66

  • 2.1 HardwareSerie de platos que giran sobre uneje (10.000rpm)Conjunto de cabezas, una por cadasuperficie del discoCabezas conectadas a un brazomvil. Determinan qu pistasconforman un cilindroCada cilindro tiene tantas pistascomo cabezas hayaLas pistas se dividen en sectores

    Las unidades son los sectores (bloques fsicos) de 512, 1024, 2048bytes, . . .Cada sector se identifica como: cilindro, cabeza, sector

    Tema 6 Gesti on de Entrada/Salida p.14/66

  • 2.2 Planificacin de los movimientos del brazo del disco

    El tiempo de leer o escribir un sectordel disco est determinado por cuatrofactores:1. Mover el brazo hasta el cilindro

    tiempo de bsqueda2. Activar la cabeza adecuada, que

    supone un tiempo despreciable3. Esperar a que el sector pase ante

    la cabeza tiempo de latencia4. Leer o escribir el sector tiempo

    de transmisinEl ms costoso es el tiempo de bsqueda el objetivo es, portanto, reducir el tiempo medio de bsquedaEsto tiene que ser logrado por el manejador del dispositivo

    Tema 6 Gesti on de Entrada/Salida p.15/66

  • 2.2 Planificacin de los movimientos del brazo del disco (ii)

    Planificacin FCFS (First come, first served)El manejador acepta solicitudes y las ejecuta en el orden dellegada. No realiza ningn tipo de optimizacinProblema: tiempos promedio bastante largos

    Tema 6 Gesti on de Entrada/Salida p.16/66

  • 2.2 Planificacin de los movimientos del brazo del disco (iii)

    Planificacin SSF (Shortest Seek First)Es demasiado local el brazo tender a permanecer en unazona del disco, olvidando las solicitudes de los extremosEstn en conflicto las metas de reducir al mnimo el tiempo derespuesta y de ser equitativo

    Tema 6 Gesti on de Entrada/Salida p.17/66

  • 2.2 Planificacin de los movimientos del brazo del disco (iv)

    Planificacin SCAN o del ascensorSiempre avanza en un sentido y resuelve las solicitudes de esesentido; y cuando no queden ms, avanza en el otro sentidoSe necesita un bit que indique direccin actualTiene cota mxima de cilindros recorridos (2 * no de cilindros)

    Tema 6 Gesti on de Entrada/Salida p.18/66

  • 2.2 Planificacin de los movimientos del brazo del disco (v)

    Planificacin C-SCAN (Circular)Igual que la anterior, pero considera al disco como circular. (Alterminar las solicitudes pendientes en un sentido, el brazo vuelve al extremoinicial, y empieza de nuevo a resolver las peticiones en el mismo sentido)Por qu? Al volver, habr menos solicitudes en ese lado

    Tema 6 Gesti on de Entrada/Salida p.19/66

  • 2.2 Planificacin de los movimientos del brazo del disco (vi)

    Qu algoritmo elegir?La planificacin SSF es bastante habitual. Por qu?Los algoritmos SCAN y C-SCAN son apropiados para sistemascon gran uso del disco. Por qu?Ninguno es ptimo. El rendimiento depende de la cantidad y eltipo de las solicitudesImportante la organizacin fsica del Sistema de FicherosPor ejemplo, en UNIX se podran poner juntos bloques dedirectorios y nodos-i (lo que hace FFS)Todos los algoritmos suponen que tbusqueda > tlatenciaSi cambia la tecnologa Nuevos algoritmos

    Algunos discos poseen una pequea cach:El controlador, al leer un sector, lee una pista completa (o casi) y locoloca en la cach, por si le solicitan sectores de la mismaNo confundir con la cach del sistema operativo

    Tema 6 Gesti on de Entrada/Salida p.20/66

  • 2.3 Manejo de erroresTipos de errores

    Error de programacinSolicitar sector/pista inexistenteEl controlador verifica los parmetros indicados e informa si son o no vlidosEl manejador aborta la solicitud que produjo error

    Error temporal o permanente de CRCPolvo o rotura fsica del sectorSi el error persiste se puede marcar como defectuosoUn controlador inteligente puede ocultarlo al manejador (gestionando de losbloques defectuosos)

    Error de bsquedaError mecnico del brazo del disco (servo-motor)El controlador comprueba si el cilindro activo es el solicitado, para controlar unposible errorO lo soluciona el controlador, o informa del problema al manejador, quenormalmente enviar un recalibrate

    Error del controladorFallo en el hardware? Reset Arreglado?

    Tema 6 Gesti on de Entrada/Salida p.21/66

  • 2.4 Discos en RAMSe usa parte de la memoria principal para almacenar los bloquesacceso instantneo (no existe retraso rotacional ni bsquedas)El disco RAM se divide en n bloques del mismo tamao que losbloques de los discos reales, salvo que estn en memoriaL/E se calcula la posicin del bloque en RAM y se accede a l

    Programasde usuario

    DiscoRAM Bloque 1 del disco RAM

    Memoria Principal (RAM)

    Las lecturas y escrituras del bloque 0del disco RAM usan esta memoria

    Sistemaoperativo

    .

    .

    .

    Tema 6 Gesti on de Entrada/Salida p.22/66

  • 2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID

    RAID, Reduntant Array of Inexpensive (Independet) DisksCombinar varios discos en un array de discos, capaces dealcanzar un rendimiento superior a un slo disco grande y caro...Se pretende que varios discos modestos se comporten como unnico disco profesional de alto rendimientoLos sistemas RAID se pueden implementar tanto por hardware(mediante un controlador especial) como por software (en el SO)Tienen la propiedad de que los datos se distribuyen entre lasunidades de disco, para poder operar en paraleloHay distintas organizaciones, siendo las ms usadas lasconfiguraciones RAID 0, RAID1 y RAID 5, y algunascombinaciones de stas (como RAID10 = RAID0 sobre RAIDs1).

    Tema 6 Gesti on de Entrada/Salida p.23/66

  • 2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (ii)

    RAID 0El disco virtual nico simulado por el RAID se considera divididoen franjas de k sectores cada una

    Franja 0: sectores 0 a k 1. Franja 1: sectores de k a 2k 1Las escrituras de franjas consecutivas se reparten entre losdiscos de manera circular grabacin por franjasLas lecturas de franjas consecutivas, cada una del discocorrespondienteSe consigue E/S paralela sin que el software se entere de elloFunciona de manera ptima si las solicitudes son grandes (cuantoms grandes, mejor)Tiene un peor funcionamiento cuando las lecturas son sector porsector los resultados son correctos pero no se consigueparalelismo, por lo que no mejora el desempeoNo hay redundancia de datos

    Tema 6 Gesti on de Entrada/Salida p.24/66

  • 2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (iii)

    RAID 1Se duplican los discos, de forma que hay un primario y otro derespaldoAl escribir, todas las franjas se escriben dos veces (una en cadadisco) el desempeo de escritura no es mejor que con una solaunidad de discoAl leer, se pueden usar cualquiera de las copias, distribuyendo lacarga entre los discos el desempeo de lectura puede ser dosveces mejorTiene una buena tolerancia a fallos si una unidad no funciona,se usa la otra copiaPara realizar la recuperacin instalar el nuevo disco y copiaren l todo el contenido del otro

    Tema 6 Gesti on de Entrada/Salida p.25/66

  • 2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (iv)

    RAID 4Trabaja, de nuevo, con franjas de sectoresEn una de las unidades de disco se calcula la paridad de lasotras franjasProtege contra la prdida de una unidad de discoTiene desempeo bajo para actualizaciones pequeas lamodificacin de un sector supone el clculo de paridad (o leer lasotras franjas para recalcular, o con los datos antiguos y la paridad antiguarecalcular la nueva)La unidad de disco que guarda la paridad se convierte en uncuello de botella

    RAID 5Idem a RAID 4, pero distribuye la franja de paridad de manerauniforme entre todas las unidades

    Tema 6 Gesti on de Entrada/Salida p.26/66

  • 2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (v)

    P16-19 Strip 16 Strip 17 Strip 18

    Strip 12 P12-15 Strip 13 Strip 14

    (a)

    (b)

    (c)

    (d)

    (e)

    (f)

    RAID level 0

    Strip 8

    Strip 4

    Strip 0

    Strip 9

    Strip 5

    Strip 1

    Strip 10

    Strip 6

    Strip 2

    RAID level 2

    Strip 11

    Strip 7

    Strip 3

    Strip 8

    Strip 4

    Strip 0

    Strip 9

    Strip 5

    Strip 1

    Strip 10

    Strip 6

    Strip 2

    Strip 11

    Strip 7

    Strip 3

    Strip 8

    Strip 4

    Strip 0

    Strip 9

    Strip 5

    Strip 1

    Strip 10

    Strip 6

    Strip 2

    Strip 11

    Strip 7

    Strip 3

    Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6

    RAIDlevel 1

    Bit 7

    Bit 1 Bit 2 Bit 3 Bit 4

    Strip 8

    Strip 4

    Strip 0

    Strip 9

    Strip 5

    Strip 1

    Strip 10

    Strip 6

    Strip 2

    Strip 11

    Strip 7

    Strip 3

    Strip 8

    Strip 4

    Strip 0

    Strip 9

    Strip 5

    Strip 1

    P8-11

    Strip 6

    Strip 2

    Strip 10

    P4-7

    Strip 3

    Strip 19

    Strip 15

    RAID level 3

    RAID level 4

    RAID level 5

    Parity

    P8-11

    P4-7

    P0-3

    Strip 11

    Strip 7

    P0-3

    Tema 6 Gesti on de Entrada/Salida p.27/66

  • ndice3. Relojes

    3.1 Hardware para relojes3.2 Software para relojes

    Tema 6 Gesti on de Entrada/Salida p.28/66

  • 3.1 Hardware para relojesDos tipos de relojes:

    Conectados a una lnea de alimentacin elctrica de 110 a 220volts. y causan una interrupcin en cada ciclo de voltaje, a 50 o60Hz. Son poco comunesRelojes programables, formados por tres componentes: unoscilador de cristal de cuarzo, un contador y un registro.Generan una seal peridica de gran precisin

    Oscilador de cristal

    El contador se decrementa en cada pulso

    El registro se utiliza para cargar el contador

    Tema 6 Gesti on de Entrada/Salida p.29/66

  • 3.1 Hardware para relojes (ii)Modos de operacin habituales en un reloj programable:

    Modo de disparo nico: al poner en marcha el reloj se copia elvalor del registro en el contador. En cada pulso el contadordisminuye. Cuando el contador llega a 0, se produce unainterrupcin, y se detiene hasta que el software lo vuelve a iniciarde forma explcitaModo de onda cuadrada: cuando el contador llega a 0 y seprovoca una interrupcin, el registro se copia de formaautomtica en el contador, y todo el proceso se repite otra vez

    Estas interrupciones peridicas se llaman tics de relojFunciones principales:

    Registran la hora del daEvitan que un proceso monopolice la CPU

    Tema 6 Gesti on de Entrada/Salida p.30/66

  • 3.2 Software para relojesEl hardware slo genera interrupciones a intervalosconocidosEl proceso se realiza en software mediante el manejadorde reloj:

    Mantiene la hora del daEvita que los procesos tengan la CPU ms de lo debidoContabiliza el uso de la CPUControla las alarmas para los procesos de usuario que lo solicitan(llamada al sistema alarm)Implementa cronmetros guardianes para el propio sistema(watchdogs)Ayuda a realizar resmenes, monitorizacin, estadsticas, . . .

    Debe realizar el proceso con rapidez (ya que se ejecutar varias vecespor segundo, en cada tic de reloj)

    Tema 6 Gesti on de Entrada/Salida p.31/66

  • 3.2 Software para relojes (ii)Controlar la hora del da

    Slo requiere incrementar un contador en cada tic de relojSe deben contar marcas desde un punto de referencia(UNIX: 0:00, 1/1/1970). Tres ejemplos:

    Contador de 64 bits que cuenta marcas: 60Hz 9.8*109aos (o 4.9*109 si hay bit de signo)Contador de 32 bits que cuenta segundos + contador auxiliarde marcas (hasta 1 seg.): 136 aos fin 2106Contador + hora inicial del sistema: cuenta tics desde elmomento es que se puso en marcha el sistema

    (a) (b) (c)

    Hora en marcas

    Horaen segundos

    Contador en marcas

    Hora de arranque delsistema en segundos

    Nmero de marcasen el segundo actual

    64 bits 32 bits 32 bits

    Tema 6 Gesti on de Entrada/Salida p.32/66

  • 3.2 Software para relojes (iii)Control del tiempo de ejecucin de procesos

    Al iniciar un proceso, el planificador asigna a un contador el valordel quantum de ese proceso en tics de relojEn cada interrupcin del reloj el contador del quantumdisminuye en 1Contador con el valor del quantum = 0 se llama al planificador

    Contabilizar el uso de CPUIniciar un segundo reloj cada vez que se inicia un proceso (msprecisa y ms costosa)

    Al parar el proceso, se determina durante cunto tiempo se ejecutAl producirse interrupciones este reloj se podra parar

    Asignar marcas al proceso actual (menos precisa por qu?)Una variable global apunta a la entrada de la tabla del proceso en ejecucinEn cada tic de reloj se incrementa la variable en 1Se contabiliza un tic entero sin tener en cuenta si el proceso lleg aconsumirlo por completo

    Tema 6 Gesti on de Entrada/Salida p.33/66

  • 3.2 Software para relojes (iv)Alarmas

    Los procesos piden al S.O. que los informe en un instante det.Soluciones:

    Reloj fsico (si hay) por cada peticinSe simulan varios relojes con una tabla y un contador de alarma siguiente

    Hora actual Sigt. seal183000 187000

    Alarma 1 Alarma 2 . . . . . . Alarma N215000 187000 . . . . . . 207500

    Se mantiene una lista enlazada ordenada por tiempos donde cada nodoguarda la diferencia con la anterior alarma

    Tiempo actual Siguiente sealCabecera

    de alarmas

    3 4 6 2 1 X

    4200 2

    Tema 6 Gesti on de Entrada/Salida p.34/66

  • 3.2 Software para relojes (v)Cronmetros guardianes (watchdogs)

    Los coloca el propio S.O.Por ejemplo: uso de la disqueteraEl mecanismo utilizado es el mismo que para las alarmassolicitadas por los usuariosAl agotarse el tiempo, se llama al procedimiento indicado

    MonitorizacinEl S.O. puede monitorizar distintos factores:

    uso de memoriauso de CPUtiempo de E/S, etc.

    Muchas estadsticas se basan en el tiempo!

    Tema 6 Gesti on de Entrada/Salida p.35/66

  • ndice4. Terminales

    4.1 Introduccin4.2 Terminales orientadas a carcter4.3 Terminales con mapa en memoria4.4 Software para la entrada4.5 Software para la salida

    Tema 6 Gesti on de Entrada/Salida p.36/66

  • Terminales

    IntroduccinMedio de comunicacin con el ordenadorEl manejador debe ocultar las diferencias entre terminalesTipos

    Terminales RS-232 (serie)Terminales con mapa en memoriaTerminales X-Window

    InterfazRS-232

    Interfazde red

    Interfaz mapeadaa memoria

    Terminales

    Terminal XOrientada acaracteresOrientada a

    bitsTTY

    "de vidrio"Terminal

    inteligente

    Tema 6 Gesti on de Entrada/Salida p.37/66

  • 4.2 Terminales orientadas a carcterHardware de terminal RS-232

    Teclado + monitor conectados por lneas serie RS-232 a 1200, 2400,. . . 115200 baudiosPor ejemplo, para comunicar a travs de una lnea telefnicaSe siguen usando en el mundo de los mainframes, p.e., en sectorescomo las aerolneas o los bancosEstas terminales operan a nivel de carcter, pero la transmisin serealiza por una lnea serie: bit a bitUtilizan una UART (Universal Asynchronous Receiver Transmitter ) paraconvertir ASCII serie

    Tarjeta deinterfazRS-232

    Ordenador

    TerminalCPU Memoria

    Lnea de recepcin

    Bus UART UARTLnea de transmisin

    Tema 6 Gesti on de Entrada/Salida p.38/66

  • 4.2 Terminales orientadas a carcter (ii)Para imprimir un carcter en la terminal:

    El manejador lo escribe en la tarjeta de la interfaz, donde se guarda en un bufferLa UART lo transmite por la lnea serie, bit a bitDebido a la lenta transmisin de velocidad, el manejador se bloquear en espera deuna interrupcin generada por la interfaz al transmitir el carcter

    TiposTerminales CRT no inteligentes (obsoletas)

    Tienen un teclado para enviar caracteres al ordenador y unapantalla para mostrar los caracteres que recibe

    Terminales CRT inteligentesSon pequeos ordenadores especializadosTienen CPU, memoria y programas complejos en EPROM o enROMSon capaces de entender ciertas secuencias de escape (cadenasde caracteres que comienzan con un carcter ESC de ASCII y que permiten borrarla pantalla, desplazar el cursor por la pantalla, etc.)

    Tema 6 Gesti on de Entrada/Salida p.39/66

  • 4.3 Terminales con mapa en memoriaTeclado + ratn + monitorUna zona de memoria llamada RAM de vdeo

    CPU Memoria

    Bus

    Tarjeta de laRAM de vdeo

    Controladorde vdeo

    Monitor

    Seal analgicade vdeo(p.e., 16 MHZ)

    Puertoserie

    Teclado

    Teclado: la comunicacin se hace por un puerto serie, paralelo o usbAl pulsar una tecla, la CPU se interrumpe y el manejador deteclado extrae el carcter leyendo en un puerto de E/SSlo proporciona el nmero de tecla, no el cdigo ASCIIEl manejador debe determinar si era minscula, mayscula, o siestaban pulsadas las teclas ALT, CTRL, etc.

    Tema 6 Gesti on de Entrada/Salida p.40/66

  • 4.3 Terminales con mapa en memoria (ii)Ratn

    Cada vez que se desplaza el ratn o se presiona o suelta unbotn, se enva un mensaje al ordenadorLa distancia mnima es aproximadamente 0.1mm (mickey)El mensaje enviado al ordenador consta de 3 elementos:

    x y y cambio en la posicin x e y desde el ltimo mensajeBotones situacin de los botones

    PantallaTarjeta de vdeo:

    RAM de vdeo: forma parte del espacio de direcciones delordenador, la CPU la direcciona igual que el resto de lamemoria. La imagen de pantalla se almacena aquControlador de vdeo: extrae bytes de la RAM de vdeo ygenera la seal de vdeo para manejar la pantalla

    Tema 6 Gesti on de Entrada/Salida p.41/66

  • 4.3 Terminales con mapa en memoria (iii)Pantalla (contina...)

    Se divide en lneas (entre 480 y 1024) y estas a su vez en puntosentre (640 y 1200) llamados pixelsPueden estar orientadas a carcter o a bits:

    Terminales orientadas a caracteres (IBM-PC): cada byterepresenta el cdigo ASCII del carcter a exhibir (o 2 bytespara tener en cuenta los atributos)Terminales orientadas a bits: cada pixel de la pantalla serepresenta de manera individual, mediante 1 bit para pantallasmonocromo o ms bits (p.e. 24 bits) para pantallas color Requieren mayor cantidad de memoria aunque permiten una completa

    flexibilidad en los tipos y tamaos de los caracteres

    Tema 6 Gesti on de Entrada/Salida p.42/66

  • 4.4 Software para la entrada

    El manejador de tecladoPasa los caracteres del teclado a los programas de usuario

    Modos de funcionamiento:Modo no interpretado (crudo):

    El manejador se limita a aceptar entradas y pasarlas a un nivelsuperior sin modificacinEl programa recibe todas las teclas: hplaola

    Modo interpretado (cocinado o cannico).Est orientado a lneasEl manejador trata ciertos caracteres especiales, se encargade la edicin de cada lnea y la entrega corregida a losprogramas de usuariosEl programa recibe la lnea corregida: hola

    Tema 6 Gesti on de Entrada/Salida p.43/66

  • 4.4 Software para la entrada (ii)El manejador de teclado

    En cualquier modo es necesariotener buffers de caracteres:

    Fondo central de buffers:cada terminal est asociadaa una estructura de datosque, entre otras cosas,contiene un puntero a unode estos buffersUn buffer para cadaterminal: que se maneja deforma directa con lasestructuras de datos de lamisma

    (a) (b)

    Estructura de datosde la terminal

    Estructura de datosde la terminal

    TerminalTerminalFondo central

    de buffers

    0 Bufferpara la

    terminal 0

    1 Bufferpara la

    terminal 1

    0123

    Tema 6 Gesti on de Entrada/Salida p.44/66

  • 4.4 Software para la entrada (iii)Eco: proceso por el cual los caracteres tecleados aparecen porpantalla

    Es complicado: un programa puede estar escribiendo en la pantalla al mismotiempo que un usuario teclea el manejador debe decidir dnde colocar lasnuevas entradas para que no se sobrescriban las salidasQu sucede si hay que mostrar ms de 80 caracteres en una pantalla con lneasde 80 caracteres? Ajustar el texto o truncar la lnea?Manejo de los tabuladores: normalmente se traduce por una secuencia deespacios

    Disparidad de dispositivos (CR CR/LF?): cada SO tiene suformato interno para representar los finales de lnea

    El manejador del teclado debe encargarse de convertir todas las distintascombinaciones de CR-LF al estndar interno del SO y hacer que el eco se realicede forma correcta

    Tema 6 Gesti on de Entrada/Salida p.45/66

  • 4.4 Software para la entrada (iv)Tiempo de proceso de CR y LF

    En ciertas terminales se tarda un poco ms en mostrar un CR o LF que una letranormal o un no, (puede ser necesario copiar un bloque de texto para desplazar elcontenido de la pantalla hacia arriba, insertar caracteres de relleno, etc.)

    Caracteres especiales: en el modo interpretado algunos caracterestienen un significado especial

    @ Elimina la lnea activaCTRL-H Retroceder un carcterDEL Interrumpir el proceso (SIGINT)CTRL-\ Provocar el vaciado de memoria (SIGQUIT)CTRL-D Fin de fichero

    Algunas veces esos caracteres deben utilizarse como datos se proporciona elcarcter de escape (\ en UNIX) para indicar que el siguiente carcter no seinterprete

    Tema 6 Gesti on de Entrada/Salida p.46/66

  • 4.5 Software para la salida

    Salida en terminales RS-232Hay buffers asociados a cada terminalLa salida se copia primero en los buffersTras copiar la salida, se enva el primer carcter y el manejadorse duerme. Cuando llega una interrupcin, se enva el siguientecarcter, . . .

    Salida en terminales con mapa en memoriaLos caracteres se colocan en la memoria de vdeoHay que tratar ciertos de forma especial (CR, LF, Ctrl-G, etc.)Se debe controlar la posicin actual en la memoria de vdeo elsiguiente carcter se coloca en esa posicin y se avanza a lasiguiente

    Tema 6 Gesti on de Entrada/Salida p.47/66

  • 4.5 Software para la salida (ii)Salida en terminales con mapa en memoria (contina. . . )

    Al procesar LF en la parte inferior de la pantalla, hay quedesplazar el contenido hacia arriba:

    La controladora posee un registro que determina la posicindentro de la memoria de vdeo donde empieza la lneasuperiorDesplazar el contenido de la pantalla actualizar el registro

    Controlar el cursor:La controladora posee un registro que determina la posicindentro de la memoria de vdeo

    Servicios del manejadorA partir de secuencias de escape: cursor arriba, desplazarpantalla, insertar un carcter o una lnea en la posicin delcursor, desplazar el contenido de la pantalla n lneas, etc.

    Tema 6 Gesti on de Entrada/Salida p.48/66

  • ndice5. E/S en Linux

    5.1 Conceptos fundamentales5.2 Implementacin de E/S en Linux

    Tema 6 Gesti on de Entrada/Salida p.49/66

  • 5.1 Conceptos fundamentalesCasi todos los dispositivos de E/S se representan como cherosespeciales

    /dev/hda1 para la primera particin del primer disco IDE/dev/lp0 para la impresora

    El acceso a estos ficheros especiales es mediante las llamadas alsistema read y write

    Para cada fichero especial hay asociado un manejador de dispositivo

    Cada manejador tiene un nmero de dispositivo principal (mayor )que sirve para identificarlo

    Si el manejador sirve a varios dispositivos, cada dispositivo tiene unnmero de dispositivo secundario (minor ) que lo identifica

    Juntos, el no principal y el secundario especifican de forma nicacada dispositivo de E/S

    Tema 6 Gesti on de Entrada/Salida p.50/66

  • 5.1 Conceptos fundamentales (ii)Dos tipos de ficheros especiales:

    Fichero especial de bloques dispositivos de bloquesFichero especial de caracteres dispositivos de caracteres

    Los dispositivos de bloquesIncluyen discos y cintasDireccionamiento directo utilizando bloquesEl manejador aisla al resto del sistema de pistas, cilindros, etc.Acceso directo (como en /dev/fd0) o a travs del S.F.Memoria cach de buffers

    Los dispositivos de caracteresTerminales, impresoras y otros que no usan la cach de buffersUtilizan tambin una pequea memoria intermedia listas-C

    Tema 6 Gesti on de Entrada/Salida p.51/66

  • 5.2 Implementacin de E/S en Linux

    La E/S en Linux se implementa como una coleccin de manejadores,uno por tipo de dispositivo, que aisla al resto del SO de laspeculiaridades del HW

    Cada manejador se divide en dos partes:La mitad superior se ejecuta en el contexto del invocador y secomunica con el resto del SOLa mitad inferior se ejecuta en el contexto del kernel e interactacon el dispositivo

    Los manejadores pueden invocar procedimientos del kernel paraasignar memoria, administrar temporizadores, controlar DMA, etc.

    Tema 6 Gesti on de Entrada/Salida p.52/66

  • 5.2 Implementacin de E/S en Linux (ii)

    Manejadores para dispositivos de bloquesObjetivo: reducir al mnimo el no de transferencias realesefectuadasPara ello, existe en memoria principal una cach de buffers(disco o bloques) entre el sistema de ficheros y los manejadoresde disco (visto en el tema 5)Cuando se necesita un bloque de disco por cualquier motivo(nodo-i, directorio o datos), primero se verifica si est en el cachde buffers. Si est se toma, evitando un acceso a discoSi el bloque no est, se lee del disco, se coloca en la cach y deall se copia a donde se necesitaSe utiliza tanto en las lecturas como en las escriturasPara las escrituras, un demonio se encarga de realizar laactualizacin en disco de los bloques modificados de formaperidica

    Tema 6 Gesti on de Entrada/Salida p.53/66

  • 5.2 Implementacin de E/S en Linux (iii)Manejadores para dispositivos de caracteres

    Sistema de buffers para caracteresSe utilizan unas estructuras de datos llamada listas C, formadaspor un bloque de hasta 64 caracteres, un contador y un punteroal siguiente bloqueSe tienen dos colas: cola directa y cola cannicaEl paso de la cola directa (flujo no interpretado de caracteres) ala cola cannica (flujo interpretado de caracteres) se activa conel retorno de carroSi el proceso quiere, puede recoger un carcter cada vez quellega uno nuevo acceso directo, no interpretado o crudo

    Tema 6 Gesti on de Entrada/Salida p.54/66

  • 5.2 Implementacin de E/S en Linux (iv)Manejadores para dispositivos de caracteres (contina...)

    Entrada de caracteres:Al llegar caracteres se colocan en la cola directaLos caracteres se pasan por un fragmento de cdigo delkernel llamado disciplina de lneas, que acta como filtro,aceptando caracteres en modo no interpretado, procesndolosy produciendo lo que se conoce como flujo de cocinado decaracteres

    Salida:Funciona de manera similar: expandiendo tabulaciones aespacios, aadiendo caracteres de relleno, etc.Las salidas pueden pasar por la disciplina de lneas (modointerpretado) o evitarla (no interpretado)La salida en modo no interpretado es til para cuando sequiere enviar datos binarios a otros ordenadores

    Tema 6 Gesti on de Entrada/Salida p.55/66

  • 5.2 Implementacin de E/S en Linux (v)

    File system

    Buffer cache

    Disk drivers Terminal drivers

    Line disciplines

    Userspace

    Kernel

    Disk

    Reading/writing filesCooked

    interface to/dev/tty

    Raw interfaceto/dev/tty

    Tema 6 Gesti on de Entrada/Salida p.56/66

  • ndice6. E/S en Windows 2000 (Tanenbaum [C11.6.1, C11.6.3 y C11.6.4] y

    Win32 System Programming de Johnson Hart [C14])

    6.1 Conceptos fundamentales6.2 Implementacin de E/S en Windows 2000

    Tema 6 Gesti on de Entrada/Salida p.57/66

  • 6.1 Conceptos fundamentales

    El objetivo del sistema de E/S de Windows 2000 es proporcionar unmarco dentro del cual se maneje con eficiencia una amplia variedadde dispositivos de E/S y sea fcil agregar nuevos dispositivos

    El administrador de E/S es el responsable de todas las operacionesde E/S para el sistema operativo

    Es responsable de los sistemas de ficheros, del administrador decach, de los manejadores de dispositivos y de los manejadoresde los protocolos de redControla qu sistemas de ficheros estn instalados y cargadosManeja los buffers para las peticiones de E/STrabaja con el manejador de memoria virtual para proporcionarE/S de ficheros mapeados en memoria

    Tema 6 Gesti on de Entrada/Salida p.58/66

  • 6.1 Conceptos fundamentales (ii)

    El administrador de E/S colabora de forma estrecha con eladministrador de Plug and Play que detecta qu dispositivos estnconectados, asigna recursos hardware (como niveles deinterrupcin), localiza los manejadores apropiados y los carga enmemoria

    El administrador de E/S tambin est relacionado con eladministrador de consumo elctrico, encargado del encendido yapagado de los dispositivos que permiten gestionar el bajo consumo

    Tb est el administrador de cach. Este proporciona una cachcentralizada que puede ser usada por todos los componentes queestn bajo el control del administrador de E/S. En especial, la cachla usan los sistemas de ficheros y los componentes de red

    Tema 6 Gesti on de Entrada/Salida p.59/66

  • 6.1 Conceptos fundamentales (iii)

    Windows 2000 realiza un manejo de la E/S sncrona o asncrona.En la E/S asncrona un subproceso puede iniciar una operacin yluego seguir ejecutndose en paralelo con la E/S. Los subprocesoscuentan con varias formas de averiguar si ya finaliz la E/S:

    Esperar en un handle. El ncleo activa un indicador asociado a un handle cuandouna operacin sobre ese handle termina. El subproceso puede esperar en elhandle para averiguar cundo termina la operacin de E/SEsperar en un objeto evento. Permite mltiples solicitudes simultneas sobre unmismo dispositivo o fichero. El hilo crea un evento por cada solicitud de E/S querealice. A posteriori puede esperar en uno o varios eventos para averiguarcundo terminan las solicitudesE/S extendida o alertable. Hace uso de una cola conocida como Llamada aProcedimiento Asncrono. El hilo realiza una solicitud de E/S indicando quecuando finalice se invoque a una rutina que permitir el tratamiento de los datosrecibidos. Dicha rutina se almacena en la cola anteriorPuertos de finalizacin de E/S. Un puerto es un objeto al que se asocian unconjunto de handles e hilos. Al terminar una operacin de E/S sobre uno de loshandles se despierta a uno de los hilos para atenderlo

    Tema 6 Gesti on de Entrada/Salida p.60/66

  • 6.2 Implementacin de E/S en Windows 2000

    La estructura bsica del sistema de E/S en Windows est formadapor un conjunto de procedimientos independientes del dispositivo,que se encargan de ciertos aspectos de la E/S, y un conjunto demanejadores de dispositivos, que se cargan en memoria paracomunicarse con los dispositivos

    Para un funcionamiento correcto, los manejadores de dispositivodeben ajustarse al modelo de manejadores de Windows (WindowsDriver Model, WDM) que define Windows 2000

    Windows 2000 proporciona un conjunto de herramientas, llamadoDriver Development Kit (DDK), que ayuda a producir manejadoresde dispositivo que se ajustan al modelo anterior

    Tema 6 Gesti on de Entrada/Salida p.61/66

  • 6.2 Implementacin de E/S en Windows 2000 (ii)

    Los manejadores que se ajusten al modelo de manejadores deWindows debern cumplir los siguientes requisitos:1. Manejar solicitudes de E/S con un formato estndar. Las

    solicitudes de E/S tienen el formato de un paquete estandarizadollamado paquete de solicitud de E/S (IRP; I/O RequestPaquet). Los manejadores debern aceptarlos y procesarlos

    2. Estar basados en objetos, en el sentido de reconocer una listaespecfica de mtodos que puede invocar el resto del sistema,as como poder interactuar con otros objetos

    3. Permitir que se aadan o quiten dispositivos Plug-and-Playdinmicamente. Si el dispositivo se aade o quita de repente alsistema, el manejador debe estar preparado para aceptar estainformacin y actuar en concordancia

    Tema 6 Gesti on de Entrada/Salida p.62/66

  • 6.2 Implementacin de E/S en Windows 2000 (iii)

    Modelo de manejadores de Windows (contina. . . )4. Permitir la administracin de consumo elctrico, en su caso. Si

    el sistema cambia a modo de hibernacin con bajo consumo, losdispositivos capaces de efectuar el cambio debern hacerlo paraahorrar energa, as como despertar cuando se les indique

    5. Ser congurables desde el punto de vista del uso de losrecursos, e.d., no incluir valores fijos de IRQs o puertos de E/S

    6. Ser reentrantes para usarse en multiprocesadores. Elmanejador debe funcionar de forma correcta aunque est siendoejecutado al mismo tiempo por 2 o ms CPUs. Por tanto, elacceso a las estructuras de datos delicadas debe hacerse deforma restringida

    7. Ser portables entre Windows 98 y Windows 2000 (aunque hayaque recompilar el manejador en cada caso)

    Tema 6 Gesti on de Entrada/Salida p.63/66

  • 6.2 Implementacin de E/S en Windows 2000 (iii)

    El administrador de E/S convierte las peticiones que recibe en unpaquete IRP y enva dicho paquete al manejador de dispositivocorrecto para que lo proceseCuando la operacin ha terminado, el administrador de E/S recibe elIRP del manejador del dispositivo y completa la operacinCmo se localizan los manejadores a usar?

    Windows detecta de forma automtica los dispositivos e invoca aladministrador de Plug and PlayEl administrador de Plug and Play sondea el dispositivo paraaveriguar el fabricante y el nmero de modelo. Con estos datoscomprueba si tiene un manejador para ese dispositivoSi encuentra el manejador lo carga en memoriaSi no lo encuentra, pide al usuario que le indique dnde(disquete o CD-ROM) puede encontrarlo

    Tema 6 Gesti on de Entrada/Salida p.64/66

  • 6.2 Implementacin de E/S en Windows 2000 (iv)

    Entre los procedimientos que debe soportar un manejador dedispositivo estn:

    DriverEntry : asigna valores iniciales al manejador y se invocainmediatamente despus de cargarlo. Podra realizar lainicializacin de estructuras de datos del manejador, pero no secomunica con el dispositivoAddDevice: se invoca una vez por cada dispositivo que va aaadirse (lo llama el administrador de Plug and Play)A continuacin se invoca al manejador con el primer paquete IRPque establece el vector de interrupcin y asigna valores inicialesal hardwareOtros procedimientos son el de servicio de interrupcin,procedimientos para administrar temporizadores, control deDMA, etc.

    Tema 6 Gesti on de Entrada/Salida p.65/66

  • 6.2 Implementacin de E/S en Windows 2000 (v)

    Un manejador puede realizar todo el trabajo l solo, pero tambin esposible apilar manejadores.En caso de tener manejadores apilados, la solicitud podra pasar poruna serie de manejadores, cada uno de los cuales realiza una partedel trabajo:

    Un uso comn de manejadores apilados, sera para separar elmanejo del bus del dispositivo en sOtra posibilidad es tener la capacidad de insertar manejadoresltro, que aplicaran alguna transformacin a los datos como, porejemplo, comprimir o cifrar los datos

    Tema 6 Gesti on de Entrada/Salida p.66/66

    ndice1. Arquitectura del sistema de E/S1.1 Objetivos del software de E/S1.1 Objetivos del software de E/S (ii)1.2 Dispositivos de bloques y de caracteres1.3 Estructura y componentes del software de E/S1.4 Manejadores de interrupciones1.5 Manejadores de dispositivos1.6 Software de E/S independiente de dispositivo1.6 Software de E/S independiente de dispositivo (ii)1.7 Software de E/S en espacio de usuariondice2.1 Hardware2.2 Planificacin de los movimientos del brazo del disco2.2 Planificacin de los movimientos del brazo del disco (ii)2.2 Planificacin de los movimientos del brazo del disco (iii)2.2 Planificacin de los movimientos del brazo del disco (iv)2.2 Planificacin de los movimientos del brazo del disco (v)2.2 Planificacin de los movimientos del brazo del disco (vi)2.3 Manejo de errores2.4 Discos en RAM2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (ii)2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (iii)2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (iv)2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID (v)ndice3.1 Hardware para relojes3.1 Hardware para relojes (ii)3.2 Software para relojes3.2 Software para relojes (ii)3.2 Software para relojes (iii)3.2 Software para relojes (iv)3.2 Software para relojes (v)ndiceTerminales4.2 Terminales orientadas a carcter4.2 Terminales orientadas a carcter (ii)4.3 Terminales con mapa en memoria4.3 Terminales con mapa en memoria (ii)4.3 Terminales con mapa en memoria (iii)4.4 Software para la entrada4.4 Software para la entrada (ii)4.4 Software para la entrada (iii)4.4 Software para la entrada (iv)4.5 Software para la salida4.5 Software para la salida (ii)ndice5.1 Conceptos fundamentales5.1 Conceptos fundamentales (ii)5.2 Implementacin de E/S en Linux5.2 Implementacin de E/S en Linux (ii)5.2 Implementacin de E/S en Linux (iii)5.2 Implementacin de E/S en Linux (iv)5.2 Implementacin de E/S en Linux (v)ndice6.1 Conceptos fundamentales6.1 Conceptos fundamentales (ii)6.1 Conceptos fundamentales (iii)6.2 Implementacin de E/S en Windows 20006.2 Implementacin de E/S en Windows 2000 (ii)6.2 Implementacin de E/S en Windows 2000 (iii)6.2 Implementacin de E/S en Windows 2000 (iii)6.2 Implementacin de E/S en Windows 2000 (iv)6.2 Implementacin de E/S en Windows 2000 (v)