Está en la página 1de 10

3.

- DISPOSITIVOS DE ENTRADA Y SALIDA



Una de las funciones principales de un S. O. es el control de todos los
dispositivos de E/S de la computadora.
Las unidades de E/S generalmente constan de:
Un componente mecnico.
El controlador del dispositivo.
El S. O. generalmente trabaja con el controlador y no con el dispositivo.
Cada controlador posee un buffer local y un conjunto de registros que utiliza
para comunicarse con la CPU.

3.1.- En que consiste sistema basado en mecanismo de
interrupciones:
Este mtodo es utilizado intensivamente en la programacin actual, y es la base
del funcionamiento de los procesadores modernos. La esencia del mtodo
consiste en que el perifrico que desea establecer comunicacin, dispone de un
canal especial llamado IRQ para solicitarla al procesador. Cuando el procesador
recibe esta seal, que se denomina peticin de interrupcin, termina la
instruccin que est en ejecucin y atiende al perifrico. Es el sistema ms
eficiente para atender a perifricos de velocidad media, o cuando hay que
atender a gran nmero de ellos.


Las interrupciones surgen de la necesidad que tienen los dispositivos perifricos
de enviar informacin al procesador.

La primera tcnica que se emple para esto fue el polling, que consista en que
el propio procesador se encargara de sondear los dispositivos perifricos cada
cierto tiempo para averiguar si tena pendiente alguna comunicacin para l.
Este mtodo presentaba el inconveniente de ser muy ineficiente, ya que el
procesador consuma constantemente tiempo y recursos en realizar estas
instrucciones de sondeo.

El mecanismo de interrupciones fue la solucin que permiti al procesador
desentenderse de esta problemtica, y delegar en el dispositivo perifrico la
responsabilidad de comunicarse con l cuando lo necesitara. El procesador, en
este caso, no sondea a ningn dispositivo, sino que queda a la espera de que
estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea
un evento, una transferencia de informacin, una condicin de error, etc.).
Una interrupcin es un mecanismo que permite ejecutar un bloque de
instrucciones interrumpiendo la ejecucin de un programa, y luego restablecer
la ejecucin del mismo sin afectarlo directamente. De este modo un programa
puede ser interrumpido temporalmente para atender alguna necesidad urgente
del computador y luego continuar su ejecucin como si nada hubiera pasado.
Las interrupciones son generadas por los controladores de dispositivos.

Para que las tareas urgentes se lleven a cabo primero, las computadoras modernas
utilizan un sistema de prioridades de interrupciones.


3.2.- Cmo se emplea en una operacin de lectura desde un
dispositivo de e/s lento?
Todos los dispositivos que deseen comunicarse con el procesador por medio de
interrupciones deben tener asignada una lnea nica capaz de avisar al CPU
cuando le requiere para realizar una operacin. Esta lnea se denomina IRQ
("Interrupt ReQuest" o peticin de interrupcin).



Las IRQ son lneas que llegan al controlador de interrupciones, un componente
de hardware dedicado a la gestin de las interrupciones, y que puede estar
integrado en el procesador principal o ser un circuito separado conectado al
mismo. El controlador de interrupciones debe ser capaz de habilitar o inhibir las
lneas de interrupcin y establecer prioridades entre las mismas. Cuando varias
lneas de peticin de interrupcin se activan a la vez, el controlador de
interrupciones utilizar estas prioridades para escoger la interrupcin sobre la
que informar al procesador principal. Tambin puede darse el caso de que una
rutina de tratamiento de interrupcin sea interrumpida para realizar otra rutina
de tratamiento de una interrupcin de mayor prioridad a la que se estaba
ejecutando; aunque hay interrupciones que no se pueden deshabilitar.

Esta lnea es activada por el controlador de interrupciones cuando tiene una
interrupcin que servir. Al activarse esta lnea, el procesador consulta los
registros del controlador de interrupciones para averiguar cul IRQ hay que
atender. A partir del nmero del IRQ busca en la tabla de vectores de
interrupcin la direccin de la rutina a la que debe llamar para atender la
peticin del dispositivo asociado a dicha IRQ.

Los controladores de interrupcin suelen hacer algo ms que comunicar el
evento al controlador de dispositivo. Cuando una interrupcin ocurre muy
frecuentemente, caso del reloj, o cuando la cantidad de informacin a
transferir es muy pequea, caso del teclado, sera muy costoso comunicar
siempre el evento al controlador de dispositivo asociado. En estos casos, el
propio controlador de interrupcin registra la ocurrencia del evento, bien
mediante el incremento de una variable global para el reloj o la acumulacin de
caracteres en un buffer del teclado. La notificacin al controlador se hace
nicamente cada cierto nmero de ocurrencias del evento, en el caso del reloj,
o activando un flag que indica que hay datos en el buffer del teclado.




3.3 Qu mecanismo se utilizan para determinar el tipo de
interrupcin que ocurri?


Hemos visto que, incluso en el caso de dispositivos externos o perifricos, al final las transferencias
de datos suponen siempre el paso de estos por el bus del sistema. En este sentido el bus es una
lnea a la que se conectan cierto nmero de dispositivos y todos pueden "ver" o escuchar los datos
que pasan. Adicionalmente tambin casi todos ellos pueden "escribir" o depositar datos en esta
lnea. Por supuesto este canal no es un chat en el que todos hablan cuando les parece. Las
transmisiones estn sincronizadas por el tic-tac del reloj del sistema. Adems existe siempre un
rbitro, generalmente el procesador, que acta como el director de un debate, concediendo la
palabra al dispositivo adecuado.


La organizacin y control del trfico es posible porque los dispositivos conectados al bus se
construyen de forma que, aunque estn a la escucha de los datos que circulan por l, solo
reaccionan cuando la direccin existente en ese momento en el bus de direcciones tiene un valor
concreto. Esta "direccin" puede ser un valor nico (raramente) o cualquiera dentro de un rango de
valores contiguos. En estas circunstancias, y dependiendo de la direccin y del estado de otras
lneas, el dispositivo puede escribir un dato en el bus de datos, o leer el que exista en ese
momento en el bus. En el resto de casos, el dispositivo sencillamente ignora lo que sucede en el
bus. Por ejemplo, la interfaz del teclado solo reacciona cuando el bus contiene direcciones entre
60h y 6Fh inclusive.
Cada una de estas direcciones es lo que se conoce como un puerto E/S ("I/O port") y viene a ser
como la "direccin" del dispositivo. El principio de funcionamiento es que cuando el dispositivo ve
que el dato en el bus de direcciones se refiere a l, realiza una accin determinada. Por ejemplo,
poner o leer un dato en el bus de datos. Como veremos a continuacin, cuando un dispositivo
responde a un rango de direcciones, cada direccin tiene distinto uso.
Nota: Aunque la verdadera "tarjeta de presentacin" de cualquier dispositivo es la identificacin de
su "puerto" (mediante la direccin/es correspondiente/s), es costumbre referirse a algunos
dispositivos mediante una etiqueta como indicativo del puerto en lugar de su direccin. Son los
denominados dispositivos lgicos ("Lgical devices"). Entre los ms conocidos estn los puertos
de comunicacin serie COM1 a COM4, los de impresora LPT1 a LPT3 y los de discos; A:; B:; C:;
Etc. En realidad estos identificadores deben ser traducidos internamente a nmeros de puerto,
aunque para usarlos sea ms cmodo referirse a ellos mediante sus etiquetas.
Como puede verse, referirse a un puerto E/S equivale a referirse a un dispositivo concreto y los
intercambios de informacin con los dispositivos de E/S, se realizan como en el resto de los casos
utilizando direcciones. De modo que cuando el sistema necesita dirigirse a un "puerto", utiliza una
direccin. En este sentido, el procedimiento es anlogo al utilizado para intercambios de datos
entre el procesador y la memoria o entre direcciones de memoria, aunque en este ltimo caso, el
procesador dispone de un amplio abanico de instrucciones que permiten mover y operar
directamente entre registros y direcciones de memoria, frente a solo dos (las
instrucciones IN y OUT) cuando estas operaciones se realizan entre registros y direcciones de
puertos.
Tanto si la transferencia es con una posicin de memoria como con un puerto, la forma de operar
es siempre la misma; poner el dato en el bus de datos y la direccin en el de direcciones. El
sistema sabe que se trata de una direccin de memoria o de puerto y cual es la accin esperada
(lectura o escritura) porque se dispone seales adecuadas en las patillas del procesador, que
tienen su prolongacin en el bus de control. Aunque las direcciones de perifricos son coincidentes
(en valor) con las de memoria, no hay posibilidad de confusin porque los elementos conectados al
bus (memoria y perifricos) saben cuando un dato se dirige a unas u otros por el estado de las
mencionadas lneas.

Ubicacin de los puertos para los dispositivos de E/S en PCs (parcial)




3.4.- Qu es el acceso directo a memoria, DMA?
Utilizado por dispositivos de entrada y Salida de alta velocidad, capaces de
transmitir informacin a una velocidad que se acerca mucho a la de la memoria.
El Controlador del Dispositivo transfiere bloques de datos del buffer de
almacenamiento directamente a la memoria principal sin intervencin de la
CPU.
Pasos:
1.- El Procesador enva una solicitud de E/S al controlador E/S el cual enva una
solicitud al disco. El Procesador contina ejecutando instrucciones.
2.- El disco reenva los datos al controlador de E/S, los datos se colocan en la
direccin de memoria especificada por la orden DMA.
3.- El Disco enva una interrupcin al procesador para indicar que la peticin E/S
se ha Realizado.




Los sistemas anteriores tienen el inconveniente de que cualquiera que sea el procedimiento por el
que se inicia la E/S, es el procesador es el que debe atenderla. Sin embargo, hay ocasiones, en
especial cuando se trata de transferencias de datos entre perifricos rpidos y memoria (por
ejemplo discos), en que se alcanza una mayor eficacia dejando al procesador al margen del
proceso (la cuestin tiene cierta lgica pues al fin y al cabo, el asunto no va con l). Estos procesos
se conocen como acceso directo a memoria DMA ("Direct Memory Access"), y exigen dos
requisitos:
I- El procesador debe ser capaz de dejar libre el bus de datos para que otro dispositivo tome su
control, limitndose mientras tanto a esperar.
II- Otro dispositivo debe tomar el control del bus ("bus mastering"), para controlar l mismo el
proceso.
En el PC se cumplen ambas condiciones. Al tratar la arquitectura de los procesadores 8088 y
siguientes,
La placa base dispone de un chip especfico, el controlador de acceso directo a memoria
DMAC ("DMA Controller"), as como ciertas lneas dedicadas en el propio bus de control.


Utilizado para evitar E/S programada para grandes movimientos de datos
Requiere un controlador de DMA
Ignora la CPU para transferir datos directamente entre el dispositivo de E/S y la memoria
Proceso de seis pasos para realizar transferencias DMA






2.4 Interrupciones del procesador

Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las
instrucciones. La interrupcin es generada por el hardware del sistema de cmputo. Cuando ocurre
una interrupcin:

El sistema operativo toma el control (es decir, el hardware pasa el control al sistema
operativo).
El sistema operativo guarda el estado del proceso interrumpido. En muchos sistemas
esta informacin se guarda en el bloque de control de proceso interrumpido.
El sistema operativo analiza la interrupcin y transfiere el control a la rutina apropiada
para atenderla; en muchos sistemas actuales el hardware se encarga de esto
automticamente.
La rutina del manejador de interrupciones procesa la interrupcin.
Se restablece el estado del proceso interrumpido (o del siguiente proceso).
Se ejecuta el proceso interrumpido (o el siguiente proceso).




DMA se ide para liberar a la cpu de este trabajo de bajo nivel.
La cpu le proporciona al controlador:
La direccin del bloque en el disco.
La direccin en memoria adonde debe ir el bloque.
El nmero de bytes por transferir.
Luego de que el controlador ley todo el bloque del dispositivo a su buffer y de
que corrobor la suma de verificacin:
Copia el primer byte o palabra a la memoria principal.
Lo hace en la direccin especificada por medio de la direccin de memoria
de DMA.
Incrementa la direccin DMA y decrementa el contador DMA en el
nmero de bytes que acaba de transferir.
Se repite este proceso hasta que el contador se anula y por lo tanto el
controlador provoca una interrupcin.
Al iniciar su ejecucin el S. O. luego de la interrupcin provocada, no
debe copiar el bloque en la memoria, porque ya se encuentra ah


El controlador necesita un buffer interno porque una vez iniciada una
transferencia del disco:
Los bits siguen llegando del disco constantemente.
No interesa si el controlador est listo o no para recibirlos.
Si el controlador intentara escribir los datos en la memoria directamente:
o Tendra que recurrir al bus del sistema para c / u de las palabras (o
bytes) transferidas.
o El bus podra estar ocupado por otro dispositivo y el controlador
debera esperar.
o Si la siguiente palabra llegara antes de que la anterior hubiera sido
almacenada, el controlador la tendra que almacenar en alguna
parte.
Si el bloque se guarda en un buffer interno:
El bus no se necesita sino hasta que el DMA comienza.
La transferencia DMA a la memoria ya no es un aspecto crtico del
tiempo.

http://es.slideshare.net/jomapuga/interrupciones-y-llamadas-del-sistema-
25735325

También podría gustarte