You are on page 1of 33

UNIVERSIDAD DE CARTAGENA SISTEMA OPERATIVO TEMA

GESTIN DE LOS DISPOSITIVOS. ESQUEMAS DE CONEXIN Y MANEJO DE DISPOSITIVOS. INTERRUPCIONES Y ENCUESTA.

PRESENTADO POR:

LUIS F. ZAPATA MEDRANO UBEIMAR NAVARRO HERRERA

TUTOR: DAVID CASTRO

VII SEMESTRE DE INGENIERIA DE SISTEMAS CARTAGENA DE INDIAS D. T y H. C Marzo 19 2013

Objetivos del tema

Identificar los las principales caracterstica de los dispositivos Comprender cmo funciona los dispositivo en un sistema operativo Conocer las caractersticas de los dispositivos de estrada y salida Identificar los tipos de interrupcin

INTRODUCCIN

El presente trabajo nos permite conocer y afianzar conocimiento con respecto a las principales funciones que tiene el sistema operativo que es el control de todos los dispositivos de e / s de la computadora, entre sus funciones principales tenemos enviar comandos a los dispositivos, detectar las interrupciones, controlar los errores, proporcionar una interfaz entre los dispositivos y el resto del sistema. En los Manejo de dispositivos de entrada y salidas se usan para proporcionar almacenamiento no voltil de datos y memoria. Su funcin primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la CPU. Tambin se dice que las interrupciones juegan un papel fundamental, en especial en la operacin de dispositivos E/S, ya que les permite enviar estas peticiones a la CPU. Sin ellas el sistema debera chequear constantemente los dispositivos para comprobar su actividad, pero las interrupciones permiten que los dispositivos puedan permanecer en silencio hasta el momento que requieren atencin del procesador.

ACTIVIDAD 2

GESTIN DE LOS DISPOSITIVOS. Cuando hablamos de dispositivo nos estamos referirnos a cualquier elemento del

computador que no sea el procesador o la memoria. Habitualmente los dispositivos se encargan de la entrada/salida, aunque la gestin de dispositivos hay que entenderla en sentido amplio, incluyendo los dispositivos de almacenamiento secundario y los de comunicaciones, e incluso la gestin del tiempo y de la energa. Esta heterogeneidad hace que el tratamiento de los dispositivos por el sistema operativo sea difcilmente generalizable para un estudio sistemtico. DISPOSITIVO

En computacin , los dispositivos de entrada y salida o E/S, es la comunicacin entre un sistema de procesamiento de informacin (tal como un ordenador) y el mundo exterior, posiblemente un humano u otro sistema de procesamiento de informacin. Los dispositivos de E/S son utilizados por una persona (u otro sistema) para comunicarse con un ordenador. Por ejemplo, un teclado o un ratn puede ser un dispositivo de entrada para un ordenador, mientras que los monitores y impresoras se consideran los dispositivos de salida para un ordenador. Dispositivos para la comunicacin entre computadoras, tales como mdems y tarjetas de red , por lo general sirven para entrada y salida.

Caractersticas de los dispositivos Los dispositivos se caracterizan por su heterogeneidad, lo que introduce complejidad en el sistema operativo. Algunas de las caractersticas en las que los dispositivos pueden diferir son las siguientes:

Unidad de transferencia. Unos dispositivos utilizan el byte como unidad de transferencia (dispositivos de caracteres, como el teclado o el ratn). Otros transfieren y/o almacenan la informacin en bloques (dispositivos de bloques, como discos y cintas magnticas). Velocidad. Los rangos en los que se mueven los dispositivos son muy amplios. Los discos y los dispositivos de comunicacin transfieren millones de caracteres por segundo y pueden hacerlo a velocidad constante, mientras que con el teclado se transfieren a lo sumo unos cuantos caracteres por segundo, con un periodo concreto impredecible. Representacin de los datos. Incluso un mismo dispositivo puede utilizar diferentes codificaciones configurables en la instalacin, como es el caso del teclado y el monitor. Protocolos de comunicacin. La comunicacin entre el dispositivo y la CPU se realiza de acuerdo a un determinado protocolo que depende del dispositivo y del bus de comunicacin. Operaciones. Hay dispositivos de entrada, de salida y de entrada/salida. Adems, algunos dispositivos requieren operaciones especficas (por ejemplo, posicionar el cabezal de lectura/escritura en los discos). Errores. Las condiciones de error varan con la naturaleza del dispositivo. Por ejemplo, en la impresora hay que tratar la falta de papel como una situacin de error especfica, mientras que en un disco puede haber errores en el posicionamiento del cabezal. Para proporcionar una forma homognea de direccionar los dispositivos, a nivel hardware stos se conectan al sistema mediante controladores. El sistema operativo ya no trata con el dispositivo en s mismo, sino con una interfaz que lo representa mediante un conjunto de direcciones o registros del controlador, que se pueden direccionar en el espacio de

direcciones de memoria o constituir un espacio de direcciones independientes. El sistema se comunica con el controlador mediante operaciones de lectura/escritura sobre los registros de datos, estado y control, permitiendo tanto la transferencia de informacin como el diagnstico y configuracin del dispositivo. Estas operaciones las realizan las funciones de ms bajo nivel del ncleo del sistema operativo, y son dependientes del hardware.

Tipos de entrada/salida Por otra parte, y dependiendo en gran parte de las caractersticas del dispositivo, hayque distinguir tres tipos de entrada/salida, en funcin de cmo el sistema sesincroniza con el controlador: E/S programada. La sincronizacin es por encuesta, realizndose un bucle deespera activa en la consulta del registro de estado del controlador. Los sistemas operativos multiprogramados evitan este tipo de operacin. E/S por interrupciones. El controlador activa una interrupcin que permite

lacomunicacin asncrona del sistema operativo, que puede estar realizando otras tareas, con el dispositivo. Es la base que permite implementar un sistema operativo multiprogramado. E/S por DMA. Los dispositivos de bloques, que requieren una tasa de transferenciamuy elevada, utilizan el acceso directo a memoria para las operaciones deentrada/salida, bien utilizando ciclos de memoria libres (robo de ciclo), bienaduendose de los buses de memoria para transferir un bloque completo.Este tipo de entrada/salida implica la utilizacin de interrupciones para la sincronizacin con el fin de la transferencia. La evolucin del hardware ha llevado a incluir capacidad de proceso dentro deldispositivo (procesadores de E/S). El sistema operativo se comunica con elprocesador de E/S para indicarle los parmetros de la operacin a realizar y ordenarsu inicio. El procesador de E/S

ejecuta un cdigo propio que controla los detalles dela operacin. Por otra parte, lo habitual hoy en da es incluir una cierta cantidad dememoria RAM en el controlador o en el dispositivo, sobre la que el sistema operativoSistemas Operativos II Gestin de dispositivos 123realiza la transferencia. Esto ocurre por ejemplo con los discos, las impresoras y laspantallas grficas, que pueden contar con varios Mbytes de memoria. Finalmente, un dispositivo Una pila de puede estar accesible proporciona a travs la de una red, entre de la formatransparente a las aplicaciones, situacin habitual hoy en da, por ejemplo en lasimpresoras. protocolos comunicacin mquinacliente, que lanza la operacin, y el servidor remoto, que gestiona el dispositivo. Esteesquema cae fuera del mbito de la asignatura objeto de estos apuntes.

ESQUEMAS DE CONEXIN Y MANEJO DE DISPOSITIVOS. Manejo de dispositivos de entrada y salida: Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no voltil de datos y memoria. Su funcin primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la CPU. Segn su capacidad y la inmediatez con que se puede acceder a los datos almacenados en estos dispositivos, se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas) Dispositivos de comunicaciones. Permiten conectar a la computadora con otras computadoras a travs de una red. Los dos tipos de dispositivos ms importantes de esta clase son los mdem, para comunicacin va red telefnica, y las tarjetas de interfaz a la red, para conectar la computadora a una red de rea local. El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visin lgica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo (como el sistema de archivos) o incluso por el usuario. Mediante esta visin lgica se ofrece a los usuarios un mecanismo de abstraccin que oculta todos los detalles relacionados con los dispositivos fsicos, as como del funcionamiento real de los mismos. El sistema operativo debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos:

Facilitar el manejo de los dispositivos de E/S. Para ello debe ofrecer una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fcil de utilizar. Optimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones donde sea necesario. Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo fsico sin que sea necesario remodelar el sistema de E/S del sistema operativo. Permitir la conexin de dispositivos nuevos de E/S, solventando de forma automtica su instalacin usando mecanismos del tipo plug&play. Conexin de un dispositivo de E/S a una computadora En la siguiente figura se muestra el esquema general de conexin de perifricos a una computadora. En el modelo de un perifrico se distinguen dos elementos: Perifricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a travs de las unidades de entrada/salida. Son el componente mecnico que se conecta a la computadora. Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de informacin entre la memoria principal y los perifricos. Son el componente electrnico a travs del cual se conecta el dispositivo de E/S. Tienen una conexin al bus de la computadora y otra para el dispositivo (generalmente mediante cables internos o externos). Para empezar una operacin de E/S, la UCP tiene que escribir sobre los registros anteriores los datos de la operacin a travs de una direccin de E/S o de memoria asignada nicamente al controlador. Segn se haga de una u otra forma, se distingue entre dispositivos conectados por puertos o proyectados en memoria. El modelo de dispositivos por puertos es clsico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de E/S, una interrupcin hardware

y un vector de interrupcin. Para efectuar una operacin de E/S la UCP ejecuta operaciones por o portout con la direccin de puerto del dispositivo y con parmetros para indicar qu registro se quiere manipular. Todas las operaciones de entrada/salida (pantalla grfica, impresoras, ratn, discos, etc.) se realizan usando esas dos instrucciones de lenguaje mquina con los parmetros adecuados. El problema de este tipo de direccionamiento es que exige conocer las direcciones de E/S y programar las instrucciones especiales de E/S, lo que es significativamente distinto del modelo de memoria de la computadora. El otro modelo de direccionamiento de E/S es el modelo proyectado en memoria. Este modelo, tpico de las arquitecturas de Motorola, asigna a cada dispositivo de E/S un rango de direcciones de memoria a travs de las cuales se escribe sobre los registros del controlador. En este modelo no hay instrucciones especficas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones mquina de manejo de memoria, lo que permite gestionar un mapa nico de direcciones de memoria. Sin embargo, para no tener conflictos con otros accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria fsica para asignar las direcciones de E/S. Los dispositivos de almacenamiento secundario y terciario manejan la informacin en unidades de tamao fijo, denominadas bloques, por lo que a su vez se denominan dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente, lo que permite leer o escribir un bloque con independencia de los dems. Los dispositivos de bloque lo son porque el hardware fuerza la existencia de accesos de un tamao determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1 KB, siendo un sector la unidad mnima de transferencia que el controlador del disco puede manejar. Los dispositivos de caracteres, como los terminales, impresoras, tarjetas de red, mdems, etctera, no almacenan informacin en bloques de tamao fijo. Gestionan flujos de caracteres de forma lineal y sin ningn tipo de estructura de bloque. Un teclado es un buen ejemplo de estos dispositivos. Est conectado a una UART (Universal Asvnchronous Receiver/Transmiter) que recibe un carcter del teclado cada vez que se pulsa una tecla. No es posible leer un bloque de teclas de un golpe o buscar dentro del dispositivo por ninguna unidad. Un terminal por lnea serie tambin es un dispositivo de caracteres. Su

controlador se limita a enviar al perifrico el flujo de caracteres que debe representar en la pantalla y a recibir del mismo los caracteres tecleados por el usuario. Un controlador de dispositivo (llamado normalmente controlador, o, en ingls, driver) es un programa informtico que permite al sistema operativo interactuar con un perifrico, haciendo una abstraccin del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica cmo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el hardware. Existen tantos tipos de controladores como tipos de perifricos, y es frecuente encontrar ms de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la pgina web del fabricante), se pueden encontrar tambin los proporcionados por el sistema operativo, o tambin versiones no oficiales hechas por terceros. Estos controladores pueden ser genricos (vlidos para ms de un modelo del mismo perifrico) o especficos para cada modelo. Tambin se distribuyen actualizaciones a nuevas versiones, que pueden dar un mejor funcionamiento. Normalmente son los fabricantes del hardware quienes escriben sus controladores, ya que conocen mejor el funcionamiento interno de cada aparato, pero tambin se encuentran controladores libres, por ejemplo en los sistemas operativos libres. En este caso, los creadores no son de la empresa fabricante, aunque a veces hay una cooperacin con ellos, cosa que facilita el desarrollo. Si no la hay, el procedimiento necesita de ingeniera inversa y otros mtodos difciles o con riesgos legales. Los controladores son muy variados, casi tanto como los dispositivos de E/S. Muchos de ellos, como los de disco, pueden controlar mltiples dispositivos. Otros, como los de canales de E/S, incluyen su propia UCP y bus para controlar la E/S por programa y evitar interrupciones en la UCP de la computadora. De cualquier forma, en los ltimos aos ha existido un esfuerzo importante de estandarizacin de los dispositivos, lo que permite usar un mismo controlador para dispositivos de distintos fabricantes. Un buen ejemplo lo constituyen los dispositivos SCSI (SrnaIl? ComputerSvsterninterftice), cuyos controladores

ofrecen una interfaz comn independientemente de que se trate de un disco, una cinta, un CD-ROM, etc. Otro buen ejemplo son los controladores IDE (In tegrated Drive Electronics), que suelen usarse para conectar los discos en todas las computadoras personales. En cualquier caso, y sea como sea el controlador, su misin es convertir los datos del formato interno del dispositivo a uno externo que se ofrezca a travs de una interfaz de programacin bien definida. Los controladores de dispositivo se suelen agrupar en alguna de las siguientes categoras o clases: Adaptadores de audio (tarjetas de sonido).

Dispositivos de comunicacin (infrarrojos, mdems, etc).

Dispositivos de visualizacin; pantallas (displays).

Teclados.

Ratn (mouse y otros sealadores grficos).

Dispositivos multimedia.

Dispositivos de Red.

Impresoras.

INTERRUPCIONES Y ENCUESTA. Interrupciones

Es una seal que se origina en un dispositivo hardware (por ejemplo, un perifrico), para indicar al procesador que algo requiere su atencin inmediata; se solicita al procesador que suspenda lo que est haciendo para atender la peticin. Hemos sealado que las interrupciones juegan un papel fundamental, en especial en la operacin de dispositivos E/S, ya que les permite enviar estas peticiones a la CPU. Sin ellas el sistema debera chequear constantemente los dispositivos para comprobar su

actividad, pero las interrupciones permiten que los dispositivos puedan permanecer en silencio hasta el momento que requieren atencin del procesador. Estas peticiones pueden ser generadas no solo por dispositivos hardware, tambin por los programas, e incluso en circunstancias especiales (errores generalmente) por el propio procesador. Bsicamente que existen tres posibles orgenes de estas peticiones: Hardware, Software, y del procesador.

Principio de funcionamiento Cuando un dispositivo reclama atencin del procesador es para que este haga algo. Este "algo" es lo que se conoce como servicio; controlador o gestor de la interrupcin, ISR ("Interruptserviceroutine"). BIOS. En cualquier caso se trata siempre de

ejecutar un programa situado en algn lugar de la memoria RAM o en la ROMOcurre que las direcciones de inicio de estos programas, que se conocen como vectores de interrupcin, se copian en una tabla de 1024 Bytes que se carga al principio de la memoria de usuario (direcciones 0000h a 0400h) durante el proceso de inicio del sistema ,razn por la cual estas rutinas se conocen tambin como servicios del BIOS. La citada tabla se denomina tabla de vectores de interrupcin IDT ("Interrupt

DescriptionTable") y en sus 1024 bytes pueden almacenarse 256 vectores de 4 bytes. Es decir, los vectores de interrupcin son punteros de 32 bits, numerados de 0 a 255, que sealan las direcciones donde comienza la rutina que atiende la interrupcin [3]. Como veremos a continuacin, el diseo del PC solo permite 16 interrupciones distintas, por lo que puede parecer extrao que se hayan previsto 256 vectores para atenderlas. La razn es que adems de los servicios del BIOS propiamente dichos, se cargan las direcciones de inicio de otras rutinas del Sistema Operativo, los denominados servicios del Sistema ( Servicios del Sistema). Incluso es posible cargar direcciones para rutinas especficas de usuario.

Al disear el 8088, Intel estableci un reparto de estos vectores, reservando los 5 primeros para uso interno del procesador (precisamente para atender las excepciones ). A continuacin estableci otros 27 de uso reservado, aunque no desvel ningn uso especfico para algunos de ellos. A partir de aqu, los vectores 32 a 255 estaban disponibles. El esquema resultante se muestra en la tabla adjunta. Vector Dec. 0 1 2 3 4 Hex 0 1 2 3 4 Uso Error: Divisin por cero Excepciones para depuracin (ejecucin paso a paso) Interrupcin no enmascarable Punto de ruptura interrupcin (Instruccin INT) Desbordamiento ("Overflow"). Utilizado cuando un clculo aritmtico se desborda. Instruccin INTO 5 6 7 8 9 10 11 12 13 14 15 16 5 6 7 8 9 A B C D E F 1A (reservado) Cdigo de instruccin no vlido Coprocesador no disponible Fallo doble (reservado -Rutina de atencin del Teclado-) TSS no vlido Segmento no disponible Excepcin de pila Proteccin general Fallo de pgina (reservado) Error de coprocesador

17-31

1B-1F (reservado) Disponibles para interrupciones enmascarables

32-255 20-FF

Aunque tericamente las interrupciones 0 a 31 estaban restringidas, IBM y Microsoft utilizaron algunas de ellas sin respetar las indicaciones de Intel. En concreto, IBM y Microsoft utilizaron algunas para los servicios BIOS. Es significativo que, a pesar de haber sufrido ampliaciones, la especificacin inicial se mantiene para las 31 interrupciones iniciales. Lo que hace posible que pueda cargarse un Sistema PC-DOS 1.0 en una mquina Pentium. El "modus operandi" es como sigue: Cuando se recibe la peticin de interrupcin, el procesador termina la instruccin que est ejecutando; guarda el contenido de los registros; deshabilita el sistema de interrupciones; ejecuta el "servicio", y vuelve a su punto de ejecucin. El servicio suele terminar con una instruccin IRET ("InterruptReturn") que restituye el contenido de los registros y vuelve a habilitar el sistema de interrupciones. En cierto sentido, el proceso es similar al que ocurre cuando aparece la invocacin de una funcin en el cdigo de un programa. En el prrafo anterior hemos indicado someramente el proceso cuando "se recibe" una peticin, pero cabe una cuestin: Como se recibe la peticin?. Hemos adelantado que estas peticiones pueden ser generadas desde el software o incluso por el procesador, lo que nos conduce a que en realidad las nicas que deben recibirse (desde el exterior) son las que denominadas interrupciones hardware (que se originan en dispositivos externos al procesador). Antes de describir brevemente el camino hasta que la solicitud es recibida por la UCP, permitidme adelantar que para su gestin existen tres tipos de elementos de soporte:

Ciertas lneas especficas (IRQ's) en el bus de control El controlador de interrupciones (PIC). Un procesador especfico que realiza cierta elaboracin previa de las peticiones antes de entregar la seal a la CPU. Ciertas patillas especficas en el procesador.

El resumen del proceso es como sigue: Un perifrico, tarjeta o dispositivo necesita atencin; a tal efecto pone en tensin baja una de las lneas IRQ del bus de control (que le haba sido asignada). La seal es recogida por el PIC, que la procesa, la clasifica, y enva una seal a una de las patillas del procesador. A continuacin el procesador se da por notificado y pregunta que tipo de excepcin debe atender. Como respuesta, PIC asigna un nmero de servicio (0-256) en forma de un octeto que es colocado en el bus de datos, con lo que estamos en el punto inicial del proceso. Para la asignacin del nmero de servicio a partir de una de las 16 solicitudes de las IRQ, el PIC realiza un cierto proceso ("InterruptHandlingRoutine") a partir de los datos de programacin iniciales y del estado actual del propio sistema de interrupciones. Por ejemplo, puede estar procesndose el servicio de una interrupcin, pero la rutina esta suspendida momentneamente porque se ha solicitado otra interrupcin de prioridad ms alta, o tal vez se recibe otra interrupcin del mismo perifrico antes de haber atendido la anterior, Etc.

Lneas de peticin de interrupcin El bus de control dispone de lneas especficas para el sistema de interrupciones ( H2). En el PC XT existen 8, numeradas del 0 al 7, aunque las dos primeras estn asignadas al temporizador y al teclado, con lo que solo quedaban 6 lneas para otros dispositivos, que aparecen como tales en el bus de control (IRQ2- IRQ7). A partir del modelo AT se aadieron otras 8 lneas, numeradas del 8 al 15, mediante un segundo procesador PIC , aunque la tecnologa empleada exigi colgarlo de la lnea IRQ2, de forma que esta lnea se dedica a atender las interrupciones del segundo controlador a travs de la lnea 9 de este ltimo, y la lnea 8 se dedic al reloj de tiempo real, un dispositivo que no exista en los modelos XT. Aunque internamente se manejan 16 lneas, no todas tienen contacto en los zcalos del bus externo; Son las marcadas con asterisco (*) en la tabla que sigue . La razn de esta ausencia en los zcalos de conexin es que son de asignacin fija, y nadie ms que ciertos dispositivos instalado en la propia placa tiene que utilizarlas. En concreto la la lnea NMI est asignada al mecanismo de control de paridad de la memoria;

lnea 0 est asignada al cronmetro del sistema ( H2) y la lnea 1 al chip que controla el teclado (dispositivos que pueden requerir atencin urgente por parte del procesador). Es costumbre denominar IRQx a las que tienen prolongacin en el bus. Tericamente las restantes lneas podran ser asignadas a cualquier nuevo dispositivo, pero en la prctica algunas estn reservadas al a dispositivos serie estndar. Por ejemplo, IRQ3 est casi siempre asignado puerto COM2 y IRQ4 a

COM1; IRQ6 al controlador estndar de disquetes y IRQ7 al puerto de impresora LPT1. La tabla 1 muestra las asignaciones clsicas para el XT y el AT. Tabla Nombre Int (hex) XT: Descripcin NMI 0 1 --08 09 Paridad* Temporizador* Teclado* AT: Descripcin Paridad* Temporizador* Teclado* Interrupciones 8 a 15 (PIC#2) Puerto

IRQ2

0A

Reservado

IRQ3

0B

Puertos

serie COM2/COM4 serie COM2/COM4 Puertos Puerto

IRQ4

0C

serie COM1/COM3 serie COM1/COM3 Impresora secundaria LPT2 Disquete

IRQ5

0D

Disco duro

IRQ6 IRQ7

0E 0F

Disquete

Impresora primaria Impresora primaria

LPT1 8 9 IRQ10 IRQ11 IRQ12 13 70 71 72 73 74 75 No aplicable No aplicable No aplicable No aplicable No aplicable No aplicable

LPT1 [8] Reloj de tiempo real* Redirigido a IRQ2* no asignado no asignado Ratn PS2 Coprocesador 80287* Contr. disco IDE primario Contr. disco IDE secundario

IRQ14

76

No aplicable

IRQ15

77

No aplicable

Cuando se instala un dispositivo E/S que puede necesitar atencin del procesador, debe asignrsele una IRQ adecuada. Dicho en otras palabras, cuando requiera atencin debe enviar una seal en la lnea IRQ especificada. Inicialmente esta asignacin se efectuaba de forma manual, por medio de puentes ("Jumpers") en la placa o dispositivo, pero actualmente esta seleccin puede hacerse por software. Los dispositivos son de enchufar y usar PnP ("Plug and play" ).

3.1 A continuacin se nuestra la distribucin de lneas IRQ en un ordenador tpico (AT), bajo Windows-98SE [7]. Los usuarios de Windows 98 pueden comprobar la asignacin de IRQ's a los diversos dispositivos del sistema mediante el programa msinfo032.exe. Generalmente en C:\Archivos de programa\Archivos comunes\Microsoft Shared\MSINFO

IRQ Utilizacin 0 1 2 3 4 5 6 7 8 9 10 11 11 11 11 11 11 11 11 11 11 11 12 13 14 15 Cronmetro del sistema Teclado estndar de 101/102 teclas o MS Natural Keyboard Controlador programable de interrupciones Puerto de infrarrojos rpidos ThinkPad de IBM Puerto de comunicaciones (COM1) CrystalSoundFusion(tm) GameDevice Controlador estndar de disquetes Puerto de impresora (LPT1) Sistema CMOS/reloj en tiempo real (libre) (libre) Marcador IRQ para manejo de PCI Marcador IRQ para manejo de PCI Marcador IRQ para manejo de PCI Marcador IRQ para manejo de PCI Controlador universal de host Intel 82371AB/EB PCI a USB CrystalSoundFusion(tm) PCI Audio Accelerator LucentWin Modem Intel(R) PRO/100 SP Mobile Combo Adapter Texas Instruments PCI-1450 CardBusController Texas Instruments PCI-1450 CardBusController RAGE MOBILITY-M AGP (English) Puerto de mouse compatible con PS/2 Procesador de datos numricos Controlador estndar para disco duro Bus Mastering IDE Controlador estndar para disco duro Bus Mastering IDE

Interrupciones en el ordenador anterior bajo Linux: Los usuarios de Linux pueden consultar las interrupciones utilizadas en el sistema en el fichero /proc/interrupts mediante el comando cat /proc/interrupts. Tambin mediante la utilidad dmesg en la forma dmesg | grep -i irq

IRQ Utilizacin CPU0 0: 1: 2: 8: 9: 11: 12: 14: 15: NMI: LOC: ERR: MIS: 3407670 7149 0 2 1461 2508 74331 90666 50966 0 0 0 0 XT-PIC timer XT-PIC keyboard XT-PIC cascade XT-PIC rtc XT-PIC acpi XT-PIC usb-uhci, Texas Instruments PCI1450, Texas XT-PIC PS/2 Mouse XT-PIC ide0 XT-PIC ide1

Instruments PCI1450 (#2), CS46XX

Controlador PIC Las peticiones hardware de interrupcin del PC son manejadas por un chip, conocido como PIC#1 ("ProgrammableInterruptController"). Originariamente era un 8259A, que puede manejar 8 peticiones (IRQ0/IRQ7), pero pronto se hizo evidente que eran un nmero excesivamente corto, por lo que en 1984 IBM aadi un segundo controlador PIC#2 en el modelo AT, que poda manejar las peticiones IRQ8 a IRQ15, aunque las interrupciones utilizables resultantes no fuesen de 16 como cabra suponer, por las razones apuntadas en el prrafo anterior. Nivel de prioridad El PIC dispone de 16 niveles de prioridad, numerados del 0 al 15, de forma que los de nmero ms bajo se atienden antes que los de nmero ms alto. La asignacin a cada nivel es como sigue:

Nivel Asign. Nivel Asign. Nivel Asign. Nivel Asign. 0 4 8 12 NMI IRQ9 1 5 IRQ0 2 IRQ1 3 IRQ8 IRQ12 IRQ3 IRQ7

IRQ10 6 IRQ14 10 IRQ5 14

IRQ11 7 IRQ15 11 IRQ6 15

IRQ13 9 IRQ4 13

Como puede verse, la prioridad ms alta se asigna a las interrupciones no enmascarables (NMI), a las que nos referimos ms adelante. A continuacin se atienden IRQ0 e IRQ1; asignadas como hemos visto al cronmetro del sistema y al teclado (el cronmetro no puede ser interrumpido por nadie porque perdera la hora). Despus se atienden las peticiones IRQ8 a IRQ15 del controlador esclavo, que hereda la prioridad de IRQ2 de la que est colgado (en realidad no existe IRQ2). A continuacin se atienden las IRQ3 a IRQ7 de PIC#1. Las peticiones de prioridad ms baja son las del controlador estndar de disquetes (IRQ6) y las del puerto de impresora LPT1 (IRQ7). Fsicamente, el 8259A es un chip de 28 patillas, 8 de las cuales conectan con las lneas IRQ0-IRQ7; ocho para el bus de datos (D0-D7), una entrada INTA , ("InterruptAcknowledge") y una salida INTR ("InterruptRequest"). Aparte de otras

auxiliares, como tensin de alimentacin y masa. Como veremos a continuacin

cuando el 8259A recibe una seal IRQ, activa la seal INTR que es recibida por el procesador. Cuando este responde con un INTA, pone en el bus de datos un byte en el rango 0/256, que es identificado a su vez por el procesador como un nmero de interrupcin. Desde el punto de vista lgico, PIC #1 responde a las direcciones 020h-021h, mientras que PIC#2 lo hace en 0A0h-0A1h. Cada PIC dispone de tres registros de 1 byte; IRR, ISR e IMR, que en conjunto gobiernan las decisiones del dispositivo:

Registro de solicitud de interrupcin IRR ("InterruptRequestRegister"). Cada bit de este registro controla el estado de una lnea IRQ. Cuando se detecta una peticin en una de estas lneas, el bit correspondiente del IRR es pueto a 1. Registro de interrupciones activas ISR ("In ServiceRegister"). Cada bit indica si ya existe una interrupcin activada en la lnea correspondiente. Registro de mscara de interrupciones IMR ("InterruptMaskRegister"). Tambin aqu cada bit corresponde a una lnea IRQ, e indica si esta permitida un interrupcin de ese nivel en ese momento. El PIC es un dispositivo complejo que realiza varias tareas; a continuacin se muestra un resumen de ellas:

Puesto que existen muchos dispositivos que pueden solicitar interrupciones, es responsabilidad del PIC priorizarlas segn el esquema indicado en el punto anterior, cuando existen varias IRQ's simultneas [5]. Despus de enviar una solicitud de interrupcin y el procesador contesta que est listo para atenderla, debe enviar un nmero de interrupcin (nmero de vector). Mantiene un registro de que se est procesando una interrupcin. Cuando esto sucede, no enva ms peticiones del mismo dispositivo al procesador hasta que este le responde con una seal EOI ("End Of Interrupt"), indicando que la rutina de servicio precedente ha terminado, o puede aceptar otra interrupcin. Puede enmascarar de forma selectiva cualquiera de las 8 IRQ's que tiene conectadas (como se ver ms adelante, es la nica forma de enmascarar las interrupciones no enmascarables).

El 8259A tiene distintos modos de operacin, uno de los cuales es el utilizado por los diseadores del PC; esta seleccin se realiza va software en los momentos iniciales. Tambin se decide en este momento que nmero de interrupcin deber devolver el PIC en respuesta a las seales recibidas en las lneas IRQ. Puntos importantes a destacar es que, como se ha sealado, se trata de un dispositivo programable; que esta programacin es realizada por el BIOS en la fase de inicio, y que el PIC es una parte fundamental del mecanismo de excepciones hardware.

Patillas del procesador Otro elemento que interviene en el mecanismo de excepciones son ciertas patillas del procesador. Todos los miembros de la saga 8088 disponen de dos patillas, designadas INTR y NMI, para este servicio especfico (H3.2.1). Sirven respectivamente

para atender las interrupciones enmascarables y no enmascarables (nos referimos a ellas inmediatamente). A su vez, el procesador utiliza ciertas seales en algunas de sus patillas para generar un ciclo INTA ("InterruptAcknowledge"), que sirve para notificar al PIC que ha recibido la interrupcin.

Tipos de interrupcin Atendiendo a su origen, en el PC existen tres tipos de interrupciones: Interrupciones hardware; interrupciones software, y excepciones del procesador. Interrupciones hardware ocurren cuando un dispositivo necesita atencin del procesador y genera una seal elctrica en la lnea IRQ que tiene asignada. Esta seal es recogida y procesada por el controlador de excepciones PICantes de ser enviada al procesador, lo que puede realizarse de dos formas, segn el tipo de interrupcin sea enmascarable o no enmascarable.

Interrupciones software Los procesadores Intel de la gama x86 y compatibles, disponen de una instruccin INT que permite generar por software cualquiera de los 256 tipos de interrupcin anteriormente descritos ). El proceso seguido es exactamente el mismo que si se recibe una interrupcin hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupcin, y no se requiere ningn ciclo INTA. Por ejemplo, en lenguaje ensamblador, la instruccin INT 21 invoca la interrupcin 33d (21h), que en MS-DOS es la llamada a los servicios del Sistema. Este tipo de interrupciones son de prioridad ms alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupcin hardware mientras que se ejecuta una software, esta ltima tiene prioridad.

Este tipo de interrupciones son utilizadas tanto por el Sistema Operativo como por los programas de usuario que pueden instalar las suyas particulares (hemos sealado , que algunas de las 255 posiciones de la tabla de vectores de interrupcin estn desocupadas). Precisamente, aquellas posiciones de la IDT que sealan a posiciones dentro de la ROM-BIOS (por encima de la direccin F0000h H5.1) se refieren a interrupciones relacionadas con servicios de la BIOS, mientras que las situadas en la zona de memoria convencional, se refieren a interrupciones instaladas por el Sistema o los programas de aplicacin.

Excepciones del procesador Durante el funcionamiento del procesador pueden ocurrir circunstancias

excepcionales; es usual citar como ejemplo el caso de una divisin por cero. En estos casos, el procesador genera una excepcin, que es tratada como si fuese una interrupcin software, con la diferencia de que el nmero de interrupcin asociado depende del tipo de excepcin. En el caso de la divisin por cero el nmero asociado es cero. Este era el nico tipo de excepcin de procesador prevista en el 8088, pero en los modelos sucesivos de la saga x86 y Pentium esta posibilidad fue amplindose paulatinamente.

Orden de prioridad Las interrupciones tienen un orden de prioridad, de forma que si ocurren dos de forma simultnea es atendida la de prioridad ms alta. El orden en que se atienden es el siguiente: 1. Excepciones del procesador. 2. Interrupciones software. 3. Interrupciones hardware no enmascarables. 4. Interrupciones hardware enmascarables.

Evolucin El estndar PnP El sistema de interrupciones es una excepcin en lo que a evolucin se refiere. A partir de la introduccin del segundo controlador 8259A en 1.984, el diseo ha permanecido invariable. La razn es que su modificacin supondra un cambio demasiado drstico en la arquitectura del PC, con un parque de millones de sistemas y perifricos instalados con millones de programas y Sistemas Operativos funcionando que no podran ser trasladados "tal cual" a las nuevas mquinas [6]. Puede decirse que desde su nacimiento, el PC arrastraba ciertas carencias congnitas, que podan resumirse en escasez de Lneas de acceso directo a memoria DMA's ( H2.3); lneas de interrupciones IRQ's; direcciones de puertos, y memoria convencional ( H5.1). El resultado era que la configuracin de los primeros sistemas era una pesadilla para los instaladores, que deban configurar manualmente los dispositivos instalados poniendo y quitando los fastidiosos "Jumpers" [1]. A pesar de todo, muchas veces el resultado era que sencillamente no poda instalarse el nuevo dispositivo porque los canales DMA o lneas IRQ que podan seleccionarse estaban ya ocupadas por otros. Como consecuencia de tales deficiencias, en una conferencia sobre hardware para Windows celebrada en marzo de 1.993, Microsoft e Intel propusieron un nuevo estndar que intentaba simplificar el problema. Conocido como Plug and Play(PnP), enchufar y usar (precisamente el "sueo" de los instaladores en la poca), que se basa en varias premisas. La principal, que los dispositivos fueran configurables por software mediante un programa especial de "Set-up". Adems tanto el hardware como el software (controladores de dispositivos cargados por el Sistema), deberan ser reconfigurables dinmicamente para adaptarse a los cambios de configuracin. Por ejemplo, insertar o retirar un dispositivo PC-Card de un bus PCMCIA [2].

Compartir IRQs La especificacin PnP antes comentada, aunque simplificaba las cosas, en realidad no resolva el problema de fondo: la escasez de ciertos recursos, principalmente lneas de interrupcin. Por lo que al desarrollar la interfaz PCI ( 6.4), Intel incluy la posibilidad de que estos dispositivos pudieran compartir la misma IRQ. A continuacin se muestra la distribucin de IRQs en un sistema Linux dotado de bus PCI, tal como se obtiene con el comando dmesg sealado anteriormente. (se han resaltado las sentencias interesantes) : PCI: Using IRQ router PIIX [8086/7110] at 00:02.0 PCI: Found IRQ 11 fordevice 00:03.0 PCI: Sharing IRQ 11 with 00:03.1 PCI: Sharing IRQ 11 with 01:00.0 Serial driver version 5.05c (2001-07-08) with HUB-6 MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI enabled PIIX4: not 100% nativemode: willprobeirqslater ide0 at 0x1f0-0x1f7,0x3f6 onirq 14 ide1 at 0x170-0x177,0x376 onirq 15 PCI: Found IRQ 11 fordevice 00:02.2 usb-uhci.c: USB UHCI at I/O 0x1060, IRQ 11 PCI: Found IRQ 11 fordevice 00:03.0 PCI: Sharing IRQ 11 with 00:03.1 PCI: Sharing IRQ 11 with 01:00.0 PCI: Found IRQ 11 fordevice 00:03.1 PCI: Sharing IRQ 11 with 00:03.0 PCI: Sharing IRQ 11 with 01:00.0 Yenta IRQ list 0698, PCI irq11 Yenta IRQ list 0698, PCI irq11 eth0: AboCom FE2000VX (RealTek RTL8139) at 0xd0afa000, 00:4f:62:01:5c:7a, IRQ 11 eth1: Xircom: port 0x300, irq 3, hwaddr 00:10:A4:01:FF:F1

ttyS03 at port 0x02e8 (irq = 3) is a 16550A PCI: Found IRQ 5 fordevice 00:07.0 Puede apreciarse que los dispositivos PCI comparten las IRQ11 e IRQ5. Como es habitual, las controladoras IDE primaria y secundaria, identificadas aqu como ide0 e ide1, utilizan IRQ14 e IRQ15. Los dispositivos identificados como eth0 yeth1 son sendas tarjetas de red. ttyS03 es un puerto serie cuya UART es una 16550A ( 2.5.11). porttil que dispone de este tipo de bahas). Conflictos de hardware y IRQ Yenta se refiere al tipo de controladora de conexin de los dispositivos PCMCIA (se trata de un equipo

Cuando tiene un problema que cree que est relacionado con la configuracin del hardware de su mquina, lo primero que debe hacer es identificarlo. Es decir, debe tratar de eliminar todas las variables posibles, generalmente abriendo la mquina y quitando, uno por uno, todos los elementos que pudieran causar un conflicto, o aislndolos por medio de un software (que est instalado en su sistema operativo), hasta encontrar el componente que provoc el conflicto.

Interrupciones en Windows La descripcin anterior corresponde a lo que ocurre en el hardware, o lo que es lo mismo, en una aplicacin trabajando en modo real (H5.1); es la descripcin clsica del mecanismo de interrupciones de una aplicacin bajo MS-DOS. Hemos sealado que en los sistemas Windows, cada aplicacin corre en una mquina virtual MV ( 0.2), de modo que est ms alejada del hardware que las aplicaciones que se ejecutan en modo real. En este caso, las aplicaciones interactan con dispositivos virtuales VDs ("Virtual devices") a travs de controladores virtuales de dispositivos VxDs. En concreto, el controlador PIC es virtualizado por el VPICD ("Virtual PIC Device"); este Esta simulacin

es un controlador virtual proporcionado de forma estndar por Windows que emula las funciones del autntico controlador programable de interrupciones. implica reflejar las interrupciones en las mquinas virtuales y simular E/S, por ejemplo, reconocer cuando una MV emite un final de interrupcin EOI ("End of interrupt"). Lo mismo que ocurre en modo real, durante la inicializacin del controlador virtual VPICD, se establece un manejador de excepciones por defecto para cada peticin de interrupcin (IRQ). Estos manejadores determinan que mquina virtual ser afectada y con que interrupcin. Tambin arbitran los posibles conflictos cuando diversas mquinas virtuales intentan desenmascarar la misma interrupcin. Cualquier interrupcin no enmascarada cuando se inicia Windows es considerada una interrupcin global. Este tipo de interrupciones sern reflejadas en la mquina virtual que est en ejecucin en ese momento (a su vez la MV puede enmascarar o no enmascarar esta IRQ). Si una MV desenmascara una IRQ que fue enmascarada cuando se inici Windows, es declarada propietaria de dicha interrupcin, y la IRQ ser reflejada exclusivamente en su mquina propietaria (si alguna otra MV intenta desenmascarar dicha interrupcin, Windows terminar la segunda MV, y puede sealar la necesidad de reiniciar el sistema).

Si algn otro VxD virtualiza una peticin IRQ, es su responsabilidad determinar que MV debe recibir las interrupciones y arbitrar los posibles conflictos. Adems, el controlador por virtual por defecto VPICD dejar de proporcionar soporte para dicha IRQ.

CONCLUSIN Podemos concluir que este tema juega un papel muy importante tanto para identificar los problemas o evaluar las soluciones en los dispositivo de entrada y de salida Se dice que los dispositivos se caracterizan por su variedad, lo que introduce complejidad en el sistema operativo. Las interrupciones son papel fundamental y especial en la operacin de

dispositivos E/S, ya que les permite enviar estas peticiones a la CPU. Sin ellas el sistema debera chequear constantemente los dispositivos para comprobar su actividad, pero las interrupciones permiten que los dispositivos puedan permanecer en silencio hasta el momento que requieren atencin del procesador. Cuando hay un problema con la configuracin del hardware lo primero que debe hacer es identificarlo.es decir, debe tratar de eliminar todas las variables posibles, generalmente abriendo la mquina y quitando, uno por uno, todos los elementos que pudieran causar un conflicto, o aislndolos por medio de un software que est instalado en su sistema operativo, hasta encontrar el componente que provoc el conflicto. Es de vital importancia para nuestra vida profesional venidera, que manejemos estos conceptos con facilidad, as mismo el que los usemos de la manera apropiada, siempre en pro de buscar soluciones a los problemas que se nos puedan presentar.

Bibliografa

http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap5.pdf http://www.zator.com/Hardware/H2_4.htm http://es.kioskea.net/contents/repar/irq.php3 http://es.wikipedia.org/wiki/Interrupci%C3%B3n http://www.monografias.com/trabajos37/memoria-e-interrupcion/memoria-einterrupcion.shtml

You might also like