entrad y salid

Upload: ariel-renyinski

Post on 24-Feb-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Entrad y Salid

    1/16

    Administracin de procesos de entrada salida

    mediante interrupciones. Criterios.

    Prioridades. Estructura de sistemas basados en

    interrupciones

    Jos Luis CAERO

    Introduccin

    ! El sistema de entrada salida es la parte del S.O.

    encargada de la gestin de los dispositivos de E/S.

    ! Es el encargado de atender los requisitos propios de

    los dispositivos de E/S y ocuparse de que funcionen de

    forma eficiente y confiable, al mismo tiempo de ocultar

    los detalles especficos de cada uno y presentando una

    abstraccin uniforme de las operaciones genricas de

    E/S a las capas ms externas del sistema operativo y alos programas del usuario.

    ! Su planificacin deber ser cuidadosa cuando

    manipule tareas concurrente de E/S.

    Tipos de dispositivos externos de E/S

    ! De interacin con humanos: comunicacinentre el usuario y la computadora.

    !De interacin con maquinas: posibilitan comu-nicacin con elementos del equipo. (drive de

    soportes de almacenamiento masivos).

    ! De comunicacin: permiten la comunicacin

    con dispositivos remotos.

    Caracterticas de los dispositivos de E/S

    ! Existe una gran variedad de dispositivos E/S con gran

    cantidad de mtodos de operacin.

    !La velocidad de transferencia con estos dispositivos es

    mucho menos que la que se tiene con la memoria o el

    procesador.

    !Los sistemas expertos tpicamente usan formatos de

    datos y longitudes de palabra diferentes.

  • 7/25/2019 Entrad y Salid

    2/16

    Estructura Interna de un Dispositivo Externo Mdulo de E/S

    Este mdulo es el encargado del control de uno o

    ms dispositivos externos, del intercambio de

    datos entre estos dispositivos y la memoriaprincipal y/o los registros de la CPU.

    Constituyndose de esta forma en la interfaz entre

    la CPU y la memoria a travs del bus del sistema,

    y la interfaz entre uno o ms dispositivosperifricos mediante enlaces de datos especficos.

    Modelo Genrico de un Mdulo de E/S

    !Control y temporizacin: la CPU puedecomunicarse con uno o ms dispositivos externos

    en cualquier orden segn las necesidades de E/Sdel programa.

    !Comunicacin con el procesador:Decodificacin de ordenes, el mdulo de E/S acepta

    ordenes de la CPU que generalmente se envanutilizando lneas del bus de control.

    Intercambio de datos por medio del bus de datos.Informacin de estado del mdulo de E/S, necesario por

    ser los dispositivos lentos respecto de la CPU.Reconocimiento de direccin, permite que el mdulo

    reconozca la direccin para cada uno de losperifricos.

    Funciones del mdulo de E/S

  • 7/25/2019 Entrad y Salid

    3/16

    !Comunicacin con los dispositivos externospara intercambiar ordenes, informacin del estado y

    datos.

    !Almacenamiento de datos en buffers, permiteadaptar la velocidad de transferencia desde y haciala memoria principal o la CPU respecto de losdispositivos perifricos.

    !Deteccin de errores, es el responsable de detectare informar los errores a la CPU. (p.e. por efectos

    mecnicos y elctricos en el funcionamiento deldispositivo).

    Funciones del mdulo de E/S Diagrama de Bloques de un Mdulo de E/S

    Registros de datos (buffer de E /S), que le permite adaptarvelocidades de transmisin

    !Registro de ordenes:!De designacin de modo: p.e. entrada, o salida,algoritmo de chequeo de errores, etc.

    !Operacionales de E/S: gobiernan la temporizacin y elmecanismo de las transferencias reales de datos, dandoacciones como activar/desactivar, leer y escribir.

    !Registro de estado, brinda informacin hacia la CPU:preparado o no, buffer vacio o lleno, e indica erroresdetectados.

    Componentes del mdulo de E/S

    !El mdulo se conecta al resto de mquina por medio de un

    un conjunto de lneas.

    !Un modulo de E/S que se encarga de la mayora de losdetalles del procesamiento presentando a la CPU una

    interfaz de alto nivel, se le denomina canal de E/S oprocesador de E/S; mientras que un mdulo que seabastante simple y requiera un control detallado normalmentese denomina controlador de E/S o controlador de dispositivo

    Mdulo de Entrada - Salida

  • 7/25/2019 Entrad y Salid

    4/16

    Tcnicas de comunicacin de E/S

    !E/S programada: El procesador emite una orden de E/S

    de parte de un proceso a un mdulo de E/S; el procesoespera a que termine la operacin antes de seguir.!E/S dirigida por interrupciones: El procesador emite unaorden de E/S de parte de un proceso, continua la ejecucinde otras instrucciones y es interrumpido por el mdulo de

    E/S cuando este ha completado su trabajo. Durante estetiempo se consulta por el estado del mdulo de E/S,degradndose el rendimiento del sistema.!Acceso directo a memoria (DMA): se produce

    intercambio de datos entre entre la memoria principal y unmdulo de E/S sin que participe el procesador principal. Elmdulo debe ser inteligente para reemplazar al procesador,permitindolo seguir trabajando mejorando el rendimientodel sistema, al no tener tiempos ociosos del procesador.

    E/S programada

    Desde el punto de vista de las rdenes:

    Control: se utiliza para activar el perifrico e indicarleque hacer.

    Test: se utiliza para comprobar las condiciones deestado asociadas con el mdulo de E/S y susperifricos.

    Lectura: hace que el mdulo de E/S capte un dato de

    un perifrico y lo site en un buffer interno

    Escritura: hace que el mdulo de E/S tome un dato(byte o palabra) del bus de datos y posteriormente lotrasmita al perifrico

    Desde el punto de vista de las instrucciones:

    E/S programada

    Las E/S asignadas en memoria, existe un nico espaciode direcciones para las posiciones de memoria y los dispo-sitivos de E/S. En este tipo de direccionamiento se necesitauna sola lnea de lectura y una sola lnea de escritura en el

    bus

    E/S aislada, el bus puede disponer de lneas de lectura yescritura en memoria junto con lneas para ordenes de

    entrada y salida. En este caso, las lneas de rdenesespecifican si la direccin se refiere a una posicin dememoria o a un dispositivo de E/S. Puesto que el espacio

    de direcciones de E/S esta aislado del de memoria.

    E/S PROGRAMADA

  • 7/25/2019 Entrad y Salid

    5/16

  • 7/25/2019 Entrad y Salid

    6/16

    E/S dirigidas por interrupciones

    CPU

    TECLADO

    Mdulo de E/SRecibe orden

    Procede a leer dato

    Devuelveel dato

    E/S dirigidas por interrupciones

    CPU

    TECLADO

    Mdulo de E/SRecibe orden

    Procede a leer dato

    Devuelve

    el dato

    Posiciona el dato

    E/S dirigidas por interrupciones

    CPU

    TECLADO

    Mdulo de E/S

    Posiciona el dato

    Enva una interrupcin a

    travs de la lnea de control

    E/S dirigidas por interrupciones

  • 7/25/2019 Entrad y Salid

    7/16

    CPU

    TECLADO

    Mdulo de E/SCPU solicita

    el dato

    E/S dirigidas por interrupciones

    CPU

    TECLADO

    Mdulo de E/S

    Sita el

    dato en

    el bus

    de datos

    E/S dirigidas por interrupciones

    Tcnicas para identificar el mdulo de E/S que solicitainterrupcin, y asignar prioridades.

    !Mltiples lneas de interrupcin, al utilizar varias lneas, esprobable que a cada una se conecten varios mdulos de E/S, sedebe utilizar alguna de las restantes tcnicas.

    !Consulta por software, cuando la CPU detecta unainterrupcin, se produce una bifurcacin a una rutina de serviciosde interrupcin que se encarga de consultar a cada mdulo de

    E/S para determinar el mdulo que ha provocado la interrupcin,con la correspondiente consumo de tiempo.!Conexin en cadena, por hardware vectorizado. De losmdulos de E/S que proporciona, de hecho, una consultahardware.

    !Arbitraje de bus vectorizado, slo un mdulo de E/S debedisponer del control del bus antes de poder activar la lnea depeticin de interrupcin. Al detectarla la CPU responde mediantela lnea de reconocimiento de interrupcin. Despus, el mduloque solicit la interrupcin sita su vector en las lneas de datos.

    E/S mediante Acceso Directo a Memoria

    La unidad de DMA es capaz de imitar a la CPU, tomando elcontrol del sistema E/S para transferir los datos con lamemoria por el bus del Sistema, hacindose cargo la unidady no la CPU.

    El modulo DMA usa el bus slo cuando la CPU no lonecesita, o bien puede forzar a la CPU a que suspendatemporalmente su operacin, conocido como Robo de Ciclo

  • 7/25/2019 Entrad y Salid

    8/16

    E/S mediante Acceso Directo a Memoria

    CPU DMAEnva una orden

    Si se trata de una lectura o una escritura.

    La direccin del dispositivo de E/S.

    La posicin inicial de memoria.

    El nmero de palabras a leer o escribir.

    E/S mediante Acceso Directo a Memoria

    Todos los mdulos comparten el mismo bus del sistema

    Se integran las funciones de DMA y de E/S

    E/S mediante Acceso Directo a Memoria

    Todos los mdulos de E/S conectados a un mdulo de

    DMA mediante un bus de E/S

    E/S mediante Acceso Directo a Memoria

  • 7/25/2019 Entrad y Salid

    9/16

    Principios del software de E/S

    ! La idea bsica es organizar el software en capas, donde la de mas abajo

    se ocupe de ocultar las caractersticas del hardware y las de ms arribapresenten una interfase amigable con el usuario.

    ! Su funcin es establecer la vinculacin entre los distintos mdulos pararealizar la transferencia de los datos en forma controlada

    ! El Sistema Operativo (SO), controla las Operaciones de E/S ya que:

    Las interfaces del hardware requieren de un software complejopara controlarlo y usarlo.

    Los Dispositivos Perifricos son recursos compartidos.

    El SO provee una interfaz consistente, uniforme, y flexiblepara todos los dispositivos.

    Estructura de capas

    Los objetivos se logran de una forma comprensible y eficiente al

    estructurar el software en cuatro capas:

    ! Manejadores de interrupciones

    ! Manejadores de dispositivos

    ! Software de sistema operativo independiente de los dispositivos

    ! Software a nivel usuario

    Manejadores de interrupcin

    ! Las interrupciones deben ocultarse. La mejor manera de

    ocultarlas es tener todos los procesos que comienzan una

    E/S bloqueados hasta que termine y se haya producido unainterrupcin.

    ! Cuando ocurre una interrupcin, el procedimiento de la

    interrupcin hace lo que tenga que hacer para desbloquear

    el proceso que lo genero. Solamente debe generar un PAI

    (pedido de atencin de interrupcin) a la CPU, cuando se a

    completado la operacin de E/S.

    Manejadores de dispositivos

    Es un software formado por un conjunto de rutinas y

    tablas que instalados forman parte del SO

    Es un conjunto de programas que provee la interfase

    entre el SO y un determinado dispositivo perifrico.

    Sirven para ejecutar y controlar todas las operaciones de

    E/S que se realizan sobre un perifrico determinado.

  • 7/25/2019 Entrad y Salid

    10/16

    Software de E/S independiente del

    Dispositivo

    ! La diferencia que hay entre drivers y software de E/S es elsistema al que estn subordinados.

    ! La funcin bsica es hacer funciones de E/S que son

    comunes a todos los dispositivos y que proveen una

    interfase uniforme al software del nivel de usuario.

    ! Este se encarga de mapear los nombres de dispositivos

    simblicas y transformarlos en los nombres correctos del

    driver, tambin se utiliza el Buffering.

    Software de E/S del Espacio del Usuario

    ! Consiste en Bibliotecas Vinculadas

    ! Basado en dos procesos diferentes:

    Procedimientos que lo nico que hacen es darle los

    parmetros y llamar a uno rutina del S.O.

    Sistema de SPOOLING (Sist. Multiprogramado) trata de

    simular un perifrico en lnea mientras que no hay

    disponibilidad en el mismo. Crea un proceso especial

    DEAMON(Servidor de impresin). Para imprimir el

    proceso genera primero un archivo con los datos que desea

    imprimir y lo pone en el directorio de spooling. El

    Deamon que es el nico que puede imprimir, imprime los

    archivos que se encuentren el el directorio de spooling.

    Capas del Software de E/S

    (Pide una E/S)

    Verificacin de Condiciones (Flags)

    Manejo de Errores

    PAI (Pedido de Atencin de Interrupcin)

    Pedidos de E/S (Solicitudes)

    Bloqueo

    "

    #

    " Identificacin.Separacin

    Proteccin""

    "

    printf()

    Proceso del UsuarioComunicaciones de E/S

    Funciones de E/S"

    "

    Armado de Registros lgicos

    Asignacin/Desasignacin

    BIBLIOTECA de Funciones de E/S:

    (read(), write(), SVC10(),etc )

    ""

    "

    "

    "

    "

    "

    cuando se complet una E/S.

    Ejecuta la Operacin de E/S solicitada por el Usuario

    Fn de la operacin

    de E/S

    DEVICE DRIVER

    (Independiente delDispositivo)

    HANDLER del

    Dispositivo

    HANDLER deInterrupciones

    HARDWARE

    $

    %

    %

    %

    $

    $

    $

    La transferencia de datos puede resultar:

    ! Exitosa: La informacin transferida llega exitosa a su

    destino.! Falla parcial: la falla ocurre en la mitad de la

    transferencia y el bloque de destino tiene informacin

    erronea.

    ! Falla total: La falla ocurre lo suficientemente

    temprano durante la transferencia de modo que el

    bloque destino queda intacto.

    ! Interrupcin de E/S: Se produce una interrupcinvoluntaria o no para que se complete o no la operacin

    en curso.

  • 7/25/2019 Entrad y Salid

    11/16

    Proceso de inicializacin de E/S

    ! Es parte general de la E/S es parte del proceso general deinicializacin (Booteo o Cold Start) de la mquina que realiza elSO.

    ! Prepara una serie de tablas de Device Drivers.

    ! Genera 4 pasos a seguir:

    ! Reset

    ! Seleccin del modo de Operacin

    ! Inicializacin

    ! Estado listo para operar, cargandose el Registro de Estado.

    Conceptos claves en el diseo de Software

    ! Independencia de los dispositivos: Los programas deberanpoder utilizarse sin la dependencia de un perifrico para su

    ejecucin.

    ! Uniformidad de los nombres: deberan de ser una cadena o

    un entero, y no depender del dispositivo.

    ! Manipulacin de errores: Deberan tratarse tan cerca del

    hardware como sea posible. Si un controlador encuentra un

    error debera corregirlo.! Transferencia sincrnica o asincrnica

    ! Dispositivos compartibles o dedicados

    Funciones principales

    ! Definir las caracterstica Lgicas-Fsicas del dispositivo

    que controla.

    ! Inicializar los Registros y el modo de funcionamiento en

    el arranque (Booteo).

    ! Habilitar y deshabilitar el dispositivo para un dado

    proceso.

    ! Controlar los accesos segn los permisos del usuario.

    ! Bloquear y desbloquear los datos durante la transferencia.

    Tipos de Device Drivers

    Existen dos tipos de device driver:

    Block Device Driver: Los orientados a Bloques controlan losperifricos con accesos basados en una direccin de datos

    compuestos por varios caracteres, o sea que, manipulanvarios bytes en una misma operacin.

    Character Device Driver: controlan aquellos perifricos quetransmiten o reciben un solo caracter por vez en cadaoperacin.

  • 7/25/2019 Entrad y Salid

    12/16

    Software de Entrada

    La mayora de los sistemas ofrecen 2 modos

    Orientado a caracteres (RAW)

    Orientado a la lnea (COOKED)

    Software de Salida

    ! Se utiliza un Buffer de Salida asociado a cada terminal

    (Terminales RS-232-C )

    ! Se toman los caracteres uno a uno del espacio del usuario (

    Terminal de Memoria Mapeada)

    FIN

    Diseo de Sistemas Operativos

    En el diseo de SO para la administracin de E/S, hay

    que tener bien claro cuales son los Objetivo de Diseo

    y la estructura lgica de las funciones de E/S.

  • 7/25/2019 Entrad y Salid

    13/16

  • 7/25/2019 Entrad y Salid

    14/16

  • 7/25/2019 Entrad y Salid

    15/16

    Buffer Doble

    Esencialmente es lo mismo para las transferencias de salida, solo que se

    almacenaran los datos del proceso usuario en estos buffer, y luego en algnmomento el dispositivo los leer

    Permite la carga anticipada

    mientras el proceso puede

    estar leyendo el otro buffer,

    as para dos lecturas

    consecutivas del dispositivos

    de E/S, aparentar para elproceso como accesos rpidos

    a dicho dispositivo

    & PRIMITIVAS de E/S del SISTEMA OPERATIVO

    & Primitivas de E/S:& CHAR getc(); putc().& BLOCK read(); writwe().& USER control(); random(); seek();& FILE open(); close();& etc.& MAPPING de OPERACIONES de E/S:& MAPPING& S& OPERACIONES Y OPERACIONES& de ALTO S de BAJO& NIVEL C NIVEL& (abstractas) A& L& L& SW INDEPENDIENTE de Hardware + Device Driver& la CONFIGURACIN del& HW (ambiente de Ejecucin)

    Principios del Software de E/S

    Principios del Software de E/S

    MAPPING de NOMBRES de E/S:

    MAPPING

    NOMBRES DISPOSITIVOSREALES +

    ABSTRACTOS DEVICE DRIVERS

    1.Cada S.O. tiene su forma de hacer el mapping:2.Algunos requieren que el programador incorpore a los dispositivos cuandoescribe su programa.3.Otros requieren los servicios del SHELL para linkear el nombre de losdispositivos usados en el programa.4.Otros hacen la vinculacin dinmicamente a medida que los procesos enejecucin lo requieran.

    Principios del Software de E/S

    HIGH LEVEL I/O ROUTINE ARGUMENTO: NDICE al Device Switch Tableread(), putc(), etc.

    Compromiso entre eficiencia y Binding.Los programas del User no contienen llamadas directas al Driver delDispositivo ni la direccin al dispositivo

    Programa

    delUsuario CompiladorMapeaDevice

    DescriptorArgumentoAddress

    Name

    DEVICE DEVICEDESCRIPTOR DRIVER Direccin real

    del Disposit.Se reconfigura para un Modifica la DIRECCINnuevo dispositivo.

    2do. Mtodo:

    1er Mtodo:

  • 7/25/2019 Entrad y Salid

    16/16

    Buffer Circular

    Soportar una rfaga de lectura o escritura en algn dispositivo de E/S,

    dando la sensacin para el usuario que este dispositivo es mas rpido.

    Para el caso particular de la lectura

    de un dispositivo de E/S, se posee una

    serie de bferes, desde B1 hasta Bn

    donde el dispositivo va cargando

    datos en cada uno de estos siguiendo

    un orden (por ejemplo desde B1 hasta

    Bn); y el proceso usuario que hace uso

    de este dispositivo, efecta una rfaga

    de lecturas desde el ultimo buffer

    cargado por el dispositivo de E/S, y

    continua en orden inverso a la carga

    que efecta dicho dispositivo.