Date post: | 24-Feb-2018 |
Category: |
Documents |
Upload: | ariel-renyinski |
View: | 224 times |
Download: | 0 times |
of 16
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.