Los
dispositivos que se conectan a un computador varían en muchas dimensiones:
transfieren un carácter o un bloque de caracteres a la vez; se puede acceder a
ellos sólo secuencialmente, o de forma aleatoria; transfieren datos sincrónica
o asincrónicamente; son dedicados o compartidos; pueden ser sólo de lectura o
de lectura y escritura. Además, los dispositivos varían mucho en cuanto a su
velocidad. En muchos sentidos, estos dispositivos también son los más lentos
de los componentes principales del computador.
A
causa de toda esta variación en los dispositivos, el sistema operativo necesita
ofrecer una gama muy amplia de funcionalidad a las aplicaciones para que ellas
puedan controlar todos los aspectos de los dispositivos. Uno de los objetivos
clave del subsistema de E / S de un sistema operativo es proporcionar la
interfaz más sencilla posible al resto del sistema. Dado que los dispositivos
son un cuello de botella del desempeño, otra clave es optimar la E/S de modo
que la concurrencia sea máxima.
Las
dos tareas principales de un computador son E/S y procesamiento. En muchos
casos, la tarea principal es la E/S, y el procesamiento es meramente incidental.
Por ejemplo, cuando navegamos en una página de Web o editamos un archivo,
nuestro interés inmediato es leer o escribir algo de información, no calcular
una respuesta.
El
papel del sistema operativo en la E/S de un computador es administrar y
controlar las operaciones de E/S y los dispositivos de E/S. Aquí reuniremos
todas las piezas para presentar una imagen completa.
Una
interrupción es un evento que altera el orden
en que el procesador ejecuta las instrucciones.
Las interrupciones se originan por lo general en dispositivos de entrada
/ salida que deben informar al procesador la necesidad
de un servicio. Como lo son las impresoras, teclados, unidades de disco,
etc.
Las interrupciones manejan prioridades, ya que algunas de ellas como el
procesamiento de una llamada asíncrona pueden esperar, mientras que otras como
la presentada por la falla de alimentación de energía eléctrica debe
dispararse inmediatamente para evitar daños en los archivos que pueden quedar
abiertos.
Cuando
ocurre una interrupción sucede lo siguiente:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Este tipo de interrupciones son
iniciadas por un proceso en ejecución que ejecuta dicha interrupción. Es una
petición generada por el usuario de un servicio particular del sistema.
Un usuario no puede entrar arbitrariamente al sistema operativo sino que
debe solicitar un servicio por medio de una SVC. Un ejemplo de este tipo de
interrupciones es:
|
|
Las interrupciones de entrada / salida
se producen cuando finaliza una operación de E/S o cuando un dispositivo para
al estado listo para ser utilizado. Unos ejemplos de este tipo de interrupciones
son:
Cuando
la impresora está lista para imprimir.
Cuando
se lee alguna unidad del disco.
|
|
Las interrupciones externas son
provocadas por diversos eventos externos al sistema de cómputo o por la pulsación
de la tecla de interrupción del teclado. Un ejemplo de este tipo de
interrupciones es:
El fallo de suministro de energía eléctrica.
|
|
Las interrupciones de reinicio se
producen o son provocadas cuando se presiona el botón de reinicio ( Reset ) de
la PC.
|
|
Este tipo de interrupciones son
causadas por una amplia clase de problemas que pueden ocurrir cuando se ejecuta
una instrucción. Unos ejemplos de este tipo de interrupciones son:
La división entre cero.
El desbordamiento de una pila.
|
|
Las interrupciones de verificación de
la máquina son ocasionadas por el mal funcionamiento del hardware. Un ejemplo
de este tipo de interrupciones es:
Cuando un dispositivo está mal conectado y por lo tanto no es reconocido por el sistema.
El
control de los dispositivos conectados al computador es una preocupación
importante de los diseñadores de sistemas operativos. Dada la amplia variación
en la función y velocidad de los dispositivos de E/S (consideremos un ratón,
un disco duro y un jukebox de CD-ROM), se requieren diversos métodos para
controlarlos. Estos métodos constituyen el subsistema de E/S del núcleo, que aísla
el resto del núcleo de la complejidad de administrar los dispositivos de E/S.
La tecnología de dispositivos de E / S exhibe dos tendencias que están en conflicto. Por un lado/ vemos una creciente estandarización de las interfaces de software y hardware. Esta tendencia nos ayuda a incorporar generaciones de dispositivos mejorados a computadores y sistemas operativos existentes. Por otro lado, vemos una variedad cada vez más amplia de dispositivos de E/S. Algunos dispositivos nuevos son tan distintos de los anteriores que es un reto incorporarlos en nuestros computadores y sistemas operativos. Este reto se enfrenta con una combinación de técnicas de hardware y software. Los elementos básicos de hardware de E/S, como puertos, buses y controladores de dispositivos, dan cabida a una amplia variedad de dispositivos de E/S. Para encapsular los detalles y peculiaridades de los diferentes dispositivos, el núcleo de un sistema operativo se estructura a modo de usar módulos controladores de dispositivos (en software) o drivers. Los drivers presentan al subsistema de E/S una interfaz de acceso a dispositivos uniforme, así como las llamadas al sistema proporcionan una interfaz estándar entre la aplicación y el sistema operativo.