Sunteți pe pagina 1din 10

Capas del Software de E/S

Por lo general, el software de E/S se organiza en cuatro capas, como se muestra


en la gráfica. Cada capa tiene una función bien definida que realizar, y una
interfaz bien definida para los niveles adyacentes. La funcionalidad y las
interfaces difieren de un sistema a otro, por lo que el análisis que veremos a
continuación, que examina todas las capas empezando desde el inferior, no es
específico de una sola máquina.
Manejadores de Interrupciones

Aunque la E/S programada es útil algunas veces, para la mayor parte de las operaciones de E/S las
interrupciones son un hecho incómodo de la vida y no se pueden evitar. Deben ocultarse en la
profundidad de las entrañas del sistema operativo, de manera que éste sepa lo menos posible de
ellas. La mejor manera de ocultarlas es hacer que el controlador que inicia una operación de E/S
se bloquee hasta que se haya completado la E/S y ocurra la interrupción. El controlador se puede
bloquear a sí mismo realizando una llamada a down en un semáforo, una llamada a wait en una
variable de condición, una llamada a receive en un mensaje o algo similar, por ejemplo. Cuando
ocurre la interrupción, el procedimiento de interrupciones hace todo lo necesario para poder
manejarla. Después puede desbloquear el controlador que la inició. En algunos casos sólo
completará up en un semáforo. En otros casos realizará una llamada a signal en una variable de
condición en un monitor. En otros más enviará un mensaje al controlador bloqueado. En todos los
casos, el efecto neto de la interrupción será que un controlador que estaba bloqueado podrá
ejecutarse ahora. Este modelo funciona mejor si los controladores están estructurados como
procesos del kernel, con sus propios estados, pilas y contadores del programa. Desde luego que en
realidad esto no es tan simple. Procesar una interrupción no es cuestión de sólo tomar la
interrupción, llamar a up en algún semáforo y después ejecutar una instrucción IRET para regresar
de la interrupción al proceso anterior. Hay mucho más trabajo involucrado para el sistema
operativo.
Controladores (o Drivers) de Dispositivos

Cada controlador tiene ciertos registros de dispositivos que se utilizan para darle comandos o
ciertos registros de dispositivos que se utilizan para leer su estado, o ambos. El número de registros
de dispositivos y la naturaleza de los comandos varían radicalmente de un dispositivo a otro. Por
ejemplo, un driver de ratón tiene que aceptar información del ratón que le indica qué tanto se ha
desplazado y cuáles botones están oprimidos en un momento dado. Por el contrario, un driver de
disco tal vez tenga que saber todo acerca de los sectores, pistas, cilindros, cabezas, movimiento
del brazo, los propulsores del motor, los tiempos de asentamiento de las cabezas y todos los demás
mecanismos para hacer que el disco funcione en forma apropiada. Obviamente, estos drivers serán
muy distintos. Como consecuencia, cada dispositivo de E/S conectado a una computadora necesita
cierto código específico para controlarlo. Este código, conocido como driver, es escrito por el
fabricante del dispositivo y se incluye junto con el mismo. Como cada sistema operativo necesita
sus propios drivers, los fabricantes de dispositivos por lo común los proporcionan para varios
sistemas operativos populares. Cada driver maneja un tipo de dispositivo o, a lo más, una clase de
dispositivos estrechamente relacionados. Por ejemplo, un driver de disco SCSI puede manejar por
lo general varios discos SCSI de distintos tamaños y velocidades, y tal vez un CD-ROM SCSI
también.
Software de Sistema Operativo independiente del dispositivo

Aunque parte del software de E/S es específico para cada dispositivo, otras partes de éste son
independientes de los dispositivos. El límite exacto entre los controladores y el software
independiente del dispositivo depende del sistema (y del dispositivo), debido a que ciertas
funciones que podrían realizarse de una manera independiente al dispositivo pueden realizarse en
los controladores, por eficiencia u otras razones. Las siguientes funciones se realizan comúnmente
en el software independiente del dispositivo:

 Interfaz uniforme para controladores de dispositivos


 Uso de búfer
 Reporte de errores
 Asignar y liberar dispositivos dedicados
 Proporcionar un tamaño de bloque independiente del dispositivo
La función básica del software independiente del dispositivo es realizar las funciones de E/S que
son comunes para todos los dispositivos y proveer una interfaz uniforme para el software a nivel
de usuario.

Software de E/S de capa de usuario

Aunque la mayor parte del software de E/S está dentro del sistema operativo, una pequeña porción
de éste consiste en bibliotecas vinculadas entre sí con programas de usuario, e incluso programas
enteros que se ejecutan desde el exterior del kernel. Las llamadas al sistema, incluyendo las
llamadas al sistema de E/S, se realizan comúnmente mediante procedimientos de biblioteca.

En especial, el formato de la entrada y la salida se lleva a cabo mediante procedimientos de


biblioteca. No todo el software de E/S de bajo nivel consiste en procedimientos de biblioteca.

Otra categoría importante es el sistema de colas. El uso de colas (spooling) es una manera de lidiar
con los dispositivos de E/S dedicados en un sistema de multiprogramación. Considere un
dispositivo común que utiliza colas: una impresora. Aunque sería técnicamente sencillo dejar que
cualquier proceso de usuario abriera el archivo de caracteres especial para la impresora, suponga
que un proceso lo abriera y no hiciera nada durante horas. Ningún otro proceso podría imprimir
nada. En vez de ello, lo que se hace es crear un proceso especial, conocido como demonio, y un
directorio especial llamado directorio de cola de impresión. Para imprimir un archivo, un proceso
genera primero todo el archivo que va a imprimir y lo coloca en el directorio de la cola de
impresión. Es responsabilidad del demonio, que es el único proceso que tiene permiso para usar el
archivo especial de la impresora, imprimir los archivos en el directorio. Al proteger el archivo
especial contra el uso directo por parte de los usuarios, se elimina el problema de que alguien lo
mantenga abierto por un tiempo innecesariamente extenso.
DISCOS
Ahora vamos a estudiar algunos dispositivos de E/S reales. Empezaremos con los discos, que en
concepto son simples, pero muy importantes. Después examinaremos los relojes, los teclados y
las pantallas.

Hardware de disco
Los discos son de varios tipos. Los más comunes son los discos magnéticos (discos duros y flexibles). Se
caracterizan por el hecho de que las operaciones de lectura y escritura son igual de rápidas, lo que los
hace ideales como memoria secundaria (como paginación o sistemas de archivos, por ejemplo). Algunas
veces se utilizan arreglos de estos discos para ofrecer un almacenamiento altamente confiable. Para la
distribución de programas, datos y películas, son también importantes varios tipos de discos ópticos (CD-
ROMs, CD-grabable y DVD). En las siguientes secciones describiremos primero el hardware y luego el
software para estos dispositivos.

Discos magnéticos
Los discos magnéticos se organizan en cilindros, cada uno de los cuales contiene tantas pistas
como cabezas apiladas en forma vertical. Las pistas se dividen en sectores. El número de
sectores alrededor de la circunferencia es por lo general de 8 a 32 en los discos flexibles, y hasta
varios cientos en los discos duros. El número de cabezas varía entre 1 y 16. Los discos antiguos
tienen pocos componentes electrónicos y sólo producen un flujo de bits serial simple. En estos
discos el controlador realiza la mayor parte del trabajo. En otros discos, en especial los discos
IDE(Electrónica de Unidad Integrada) y SATA (ATA Serial), la unidad de disco contiene un
microcontrolador que realiza un trabajo considerable y permite al controlador real emitir un
conjunto de comandos de nivel superior. Amenudo el controlador coloca las pistas en caché,
reasigna los bloques defectuosos y mucho más.

RAID

El rendimiento de la CPU ha crecido en forma exponencial durante la década pasada, y se


duplica aproximadamente cada 18 meses. No pasa lo mismo con el rendimiento del disco. En la
década de 1970, los tiempos de búsqueda promedio en los discos de minicomputadoras eran de
50 a 100 mseg; ahora están ligeramente por debajo de 10 mseg. En la mayoría de las industrias
técnicas (por ejemplo, automóviles o aviación), un factor del 5 a 10 en cuanto a la mejora del
rendimiento en dos décadas serían grandes noticias (imagine autos de 300 millas por galón), pero
en la industria de las computadoras es una vergüenza. Por ende, la brecha entre el rendimiento de
la CPU y el rendimiento del disco se ha vuelto mucho mayor con el tiempo.
CD-ROMs

En años recientes se han empezado a utilizar los discos ópticos (en contraste a los magnéticos).
Estos discos tienen densidades de grabación mucho más altas que los discos magnéticos
convencionales. Los discos ópticos se desarrollaron en un principio para grabar programas de
televisión, pero se les puede dar un uso más estético como dispositivos de almacenamiento de
computadora. Debido a su capacidad potencialmente enorme, los discos ópticos han sido tema de
una gran cantidad de investigación y han pasado por una evolución increíblemente rápida. Los
discos ópticos de primera generación fueron inventados por el conglomerado de electrónica
holandés Philips, para contener películas. Tenían 30 centímetros de diámetro y se
comercializaron bajo el nombre LaserVision, pero no tuvieron mucha popularidad, excepto en
Japón. En 1980, Philips y Sony desarrollaron el CD (Disco Compacto), que sustituyó
rápidamente al disco de vinilo de 33 1/3 RPM que se utilizaba para música (excepto entre los
conocedores, que aún preferían el vinilo). Los detalles técnicos precisos para el CD se publicaron
en un Estándar Internacional oficial (IS 10149) conocido popularmente como el Libro rojodebido
al color de su portada (los Estándares Internacionales son emitidos por la Organización
Internacional de Estándares, que es la contraparte internacional de los grupos de estándares
nacionales como ANSI, DIN, etc. Cada uno tiene un número IS). El punto de publicar las
especificaciones de los discos y las unidades como un estándar internacional tiene como fin
permitir que los CDs de distintas compañías disqueras y los reproductores de distintos
fabricantes electrónicos puedan funcionar en conjunto. Todos los CDs tienen 120 mm de
diámetro y 1.2 mm de grosor, con un hoyo de 15 mm en medio. El CD de audio fue el primer
medio de almacenamiento digital masivo en el mercado. Se supone que deben durar 100 años.
Por favor consulte de nuevo en el 2080 para saber cómo le fue al primer lote.

CD-Grabables

En un principio, el equipo necesario para producir un CD-ROM maestro (o CD de audio, para


esa cuestión) era extremadamente costoso. Pero como siempre en la industria de las
computadoras, nada permanece costoso por mucho tiempo. Amediados de la década de 1990, los
grabadores de CDs no más grandes que un reproductor de CD eran un periférico común
disponible en la mayoría de las tiendas de computadoras. Estos dispositivos seguían siendo
distintos de los discos magnéticos, porque una vez que se escribía información en ellos no podía
borrarse. Sin embargo, rápidamente encontraron un nicho como medio de respaldo para discos
duros grandes y también permitieron que individuos o empresas que iniciaban operaciones
fabricaran sus propios CD-ROMs de distribución limitada, o crear CDs maestros para entregarlos
a plantas de duplicación de CDs comerciales de alto volumen. Estas unidades se conocen como
CD-Rs (CD-Grabables).
CD-Regrabables

Aunque las personas están acostumbradas a otros medios de escritura de sólo una vez como el
papel y la película fotográfica, hay una demanda por el CD-ROM regrabable. Una tecnología que
ahora está disponible es la del CD-RW (CD-Regrabable), que utiliza medios del mismo tamaño
que el CD-R. Sin embargo, en vez de colorante de cianina o ptalocianina, el CD-RWutiliza una
aleación de plata, indio, antimonio y telurio para la capa de grabación. Esta aleación tiene dos
estados estables: cristalino y amorfo, con distintas reflectividades. Las unidades de CD-
RWutilizan láseres con tres potencias: en la posición de alta energía, el láser funde la aleación y
la convierte del estado cristalino de alta reflectividad al estado amorfo de baja reflectividad para
representar un hoyo; en la posición de energía media, la aleación se funde y se vuelve a formar
en su estado cristalino natural para convertirse en un área lisa nuevamente; en baja energía se
detecta el estado del material (para la lectura), pero no ocurre una transición de estado. La razón
por la que el CD-RWno ha sustituido al CD-R es que los CD-RWen blanco son más costosos.
Además, para las aplicaciones que consisten en respaldar discos duros, el hecho de que una vez
escrito el CD-R no se pueda borrar accidentalmente es una gran ventaja.

DVD
El formato básico de CD/CD-ROM ha estado en uso desde 1980. La tecnología ha mejorado
desde entonces, por lo que ahora los discos ópticos de mayor capacidad son económicamente
viables y hay una gran demanda por ellos. Hollywood estaría encantado de eliminar las cintas de
video análogas a favor de los discos digitales, ya que los discos tienen una mayor calidad, son
más económicos de fabricar, duran más tiempo, ocupan menos espacio en las repisas de las
tiendas de video y no tienen que rebobinarse. Las empresas de electrónica para el consumidor
siempre están buscando un nuevo producto que tenga un gran éxito, y muchas empresas de
computadoras desean agregar características de multimedia a su software.
RELOJES

Los relojes (también conocidos como temporizadores) son esenciales para la operación de
cualquier sistema de multiprogramación, por una variedad de razones. Mantienen la hora del día
y evitan que un proceso monopolice la CPU, entre otras cosas. El software de reloj puede tomar
la forma de un software controlador de dispositivo, aun y cuando un reloj no es un dispositivo de
bloque (como un disco) ni un dispositivo de carácter (como un ratón). Nuestro análisis de los
relojes seguirá el mismo patrón que en la sección anterior: primero un vistazo al hardware del
reloj y después un vistazo a su software.

Hardware de reloj
Hay dos tipos de relojes de uso común en las computadoras, y ambos son bastante distintos de
los relojes que utilizan las personas. Los relojes más simples están enlazados a la línea de energía
de 110 o 220 voltios y producen una interrupción en cada ciclo de voltaje, a 50 o 60 Hz. Estos
relojes solían dominar el mercado, pero ahora son raros. El otro tipo de reloj se construye a partir
de tres componentes: un oscilador de cristal, un contador y un registro contenedor, como se
muestra en la figura 5-32. Cuando una pieza de cristal de cuarzo se corta en forma apropiada y se
monta bajo tensión, puede generar una señal periódica con una precisión muy grande, por lo
general en el rango de varios cientos de mega Hertz, dependiendo del cristal elegido. Mediante el
uso de componentes electrónicos, esta señal base puede multiplicarse por un pequeño entero para
obtener frecuencias de hasta 1000 MHz o incluso más. Por lo menos uno de esos circuitos se
encuentra comúnmente en cualquier computadora, el cual proporciona una señal de
sincronización para los diversos circuitos de la misma. Esta señal se alimenta al contador para
hacer que cuente en forma descendente hasta cero. Cuando el contador llega a cero, produce una
interrupción de la CPU.
Oscilador de cristal
El contador se decrementa con cada pulso
El registro contenedor se utiliza para cargar el contador
Figura 5-32. Un reloj programable. Por lo general, los relojes programables tienen varios modos
de operación. En el modo de un solo disparo, cuando se inicia el reloj copia el valor del registro
contenedor en el contador y después decrementa el contador en cada pulso del cristal. Cuando el
contador llega a cero, produce una interrupción y se detiene hasta que vuelve a ser iniciado en
forma explícita mediante el software. En el modo de onda cuadrada, después de llegar a cero y
producir la interrupción, el registro contenedor se copia automáticamente en el contador y todo el
proceso se repite de nuevo en forma indefinida. Estas interrupciones periódicas se conocen como
pulsos de reloj. La ventaja del reloj programable es que su frecuencia de interrupción se puede
controlar mediante software. Si se utiliza un cristal de 500 MHz, entonces se aplica un pulso al
contador cada 2 nseg. Con registros de 32 bits (sin signo), se pueden programar interrupciones
para que ocurran a intervalos de 2 nseg hasta 8.6 seg. Los chips de reloj programables por lo
general contienen dos o tres relojes que pueden programarse de manera independiente, y tienen
muchas otras opciones también (por ejemplo, contar en forma ascendente o descendente,
deshabilitar interrupciones, y más).

S-ar putea să vă placă și