Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 1
Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 2
Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 3
All for this textbook (6)
Written for
National University Arturo Jauretche (UNAJ

)
I3003
All documents for this subject (7)
Seller
Follow
agusmitrobeda
Content preview
5
ENTRADA/SALIDA
Además de proporcionar abstracciones como los procesos (e hilos), espacios de direcciones y ar-
chivos, un sistema operativo también controla todos los dispositivos de E/S (Entrada/Salida) de la
computadora. Debe emitir comandos para los dispositivos, captar interrupciones y manejar errores.
Adicionalmente debe proporcionar una interfaz —simple y fácil de usar— entre los dispositivos y
el resto del sistema. Hasta donde sea posible, la interfaz debe ser igual para todos los dispositivos
(independencia de dispositivos). El código de E/S representa una fracción considerable del sistema
operativo total. El tema de este capítulo es la forma en que el sistema operativo administra la E/S.
Este capítulo se organiza de la siguiente manera. Primero veremos algunos de los principios del
hardware de E/S y después analizaremos el software de E/S en general. El software de E/S se pue-
de estructurar en niveles, cada uno de los cuales tiene una tarea bien definida. Analizaremos estos
niveles para describir qué hacen y cómo trabajan en conjunto.
Después de esa introducción analizaremos detalladamente hardware y software de varios dis-
positivos de E/S: discos, relojes, teclados y pantallas. Por último, consideraremos la administración
de la energía.
5.1 PRINCIPIOS DEL HARDWARE DE E/S
Distintas personas ven el hardware de E/S de diferentes maneras. Los ingenieros eléctricos lo ven en
términos de chips, cables, fuentes de poder, motores y todos los demás componentes físicos que con-
stituyen el hardware. Los programadores ven la interfaz que se presenta al software: los comandos
329
,330 ENTRADA/SALIDA CAPÍTULO 5
que acepta el hardware, las funciones que lleva a cabo y los errores que se pueden reportar. En
este libro nos enfocaremos en la programación de los dispositivos de E/S y no en el diseño, la cons-
trucción o el mantenimiento de los mismos, por lo que nuestro interés se limitará a ver cómo se
programa el hardware, no cómo funciona por dentro. Sin embargo, la programación de muchos
dispositivos de E/S a menudo está íntimamente conectada con su operación interna. En las siguien-
tes tres secciones proveeremos un poco de historia general acerca del hardware de E/S y cómo se
relaciona con la programación. Puede considerarse como un repaso y expansión del material in-
troductorio de la sección 1.4.
5.1.1 Dispositivos de E/S
Los dispositivos de E/S se pueden dividir básicamente en dos categorías: dispositivos de bloque y
dispositivos de carácter. Un dispositivo de bloque almacena información en bloques de tamaño fi-
jo, cada uno con su propia dirección. Los tamaños de bloque comunes varían desde 512 bytes has-
ta 32,768 bytes. Todas las transferencias se realizan en unidades de uno o más bloques completos
(consecutivos). La propiedad esencial de un dispositivo de bloque es que es posible leer o escribir
cada bloque de manera independiente de los demás. Los discos duros, CD-ROMs y memorias USBs
son dispositivos de bloque comunes.
Como resultado de un análisis más detallado, se puede concluir que no está bien definido el lí-
mite entre los dispositivos que pueden direccionarse por bloques y los que no se pueden direccio-
nar así. Todos concuerdan en que un disco es un dispositivo direccionable por bloques, debido a que
no importa dónde se encuentre el brazo en un momento dado, siempre será posible buscar en otro
cilindro y después esperar a que el bloque requerido gire debajo de la cabeza. Ahora considere una
unidad de cinta utilizada para realizar respaldos de disco. Las cintas contienen una secuencia de blo-
ques. Si la unidad de cinta recibe un comando para leer el bloque N, siempre puede rebobinar la cin-
ta y avanzar hasta llegar al bloque N. Esta operación es similar a un disco realizando una búsqueda,
sólo que requiere mucho más tiempo. Además, puede o no ser posible volver a escribir un bloque
a mitad de la cinta. Aun si fuera posible utilizar las cintas como dispositivos de bloque de acceso
aleatorio, es algo que se sale de lo normal: las cintas no se utilizan de esa manera.
El otro tipo de dispositivo de E/S es el dispositivo de carácter. Un dispositivo de carácter en-
vía o acepta un flujo de caracteres, sin importar la estructura del bloque. No es direccionable y no
tiene ninguna operación de búsqueda. Las impresoras, las interfaces de red, los ratones (para seña-
lar), las ratas (para los experimentos de laboratorio de psicología) y la mayoría de los demás dispo-
sitivos que no son parecidos al disco se pueden considerar como dispositivos de carácter.
Este esquema de clasificación no es perfecto. Algunos dispositivos simplemente no se adaptan.
Por ejemplo, los relojes no son direccionables por bloques. Tampoco generan ni aceptan flujos de
caracteres. Todo lo que hacen es producir interrupciones a intervalos bien definidos. Las pantallas
por asignación de memoria tampoco se adaptan bien al modelo. Aún así, el modelo de dispositivos
de bloque y de carácter es lo bastante general como para poder utilizarlo como base para hacer que
parte del sistema operativo que lidia con los dispositivos de E/S sea independiente. Por ejemplo, el
sistema de archivos sólo se encarga de los dispositivos de bloque abstractos y deja la parte depen-
diente de los dispositivos al software de bajo nivel.
,SECCIÓN 5.1 PRINCIPIOS DEL HARDWARE DE E/S 331
Los dispositivos de E/S cubren un amplio rango de velocidades, lo cual impone una presión
considerable en el software para obtener un buen desempeño sobre muchos órdenes de magnitud en
las velocidades de transferencia de datos. La figura 5.1 muestra las velocidades de transferencia de
datos de algunos dispositivos comunes. La mayoría de estos dispositivos tienden a hacerse más rá-
pidos a medida que pasa el tiempo.
Dispositivo Velocidad de transferencia de datos
Teclado 10 bytes/seg
Ratón 100 bytes/seg
Módem de 56K 7 KB/seg
Escáner 400 KB/seg
Cámara de video digital 3.5 MB/seg
802.11g inalámbrico 6.75 MB/seg
CD-ROM de 52X 7.8 MB/seg
Fast Ethernet 12.5 MB/seg
Tarjeta Compact Flash 40 MB/seg
FireWire (IEEE 1394) 50 MB/seg
USB 2.0 60 MB/seg
Red SONET OC-12 78 MB/seg
Disco SCSI Ultra 2 80 MB/seg
Gigabit Ethernet 125 MB/seg
Unidad de disco SATA 300 MB/seg
Cinta de Ultrium 320 MB/seg
Bus PCI 528 MB/seg
Figura 5-1. Velocidades de transferencia de datos comunes de algunos dispositivos,
redes y buses.
5.1.2 Controladores de dispositivos
Por lo general, las unidades de E/S consisten en un componente mecánico y un componente elec-
trónico. A menudo es posible separar las dos porciones para proveer un diseño más modular y ge-
neral. El componente electrónico se llama controlador de dispositivo o adaptador. En las
computadoras personales, comúnmente tiene la forma de un chip en la tarjeta principal o una tarje-
ta de circuito integrado que se puede insertar en una ranura de expansión (PCI). El componente me-
cánico es el dispositivo en sí. Este arreglo se muestra en la figura 1-6.
La tarjeta controladora por lo general contiene un conector, en el que se puede conectar
un cable que conduce al dispositivo en sí. Muchos controladores pueden manejar dos, cuatro o
inclusive ocho dispositivos idénticos. Si la interfaz entre el controlador y el dispositivo es están-
dar, ya sea un estándar oficial ANSI, IEEE o ISO, o un estándar de facto, entonces las empresas
, 332 ENTRADA/SALIDA CAPÍTULO 5
pueden fabricar controladores o dispositivos que se adapten a esa interfaz. Por ejemplo, muchas
empresas fabrican unidades de disco que coinciden con la interfaz IDE, SATA, SCSI, USB o Fi-
reWire (IEEE 1394).
La interfaz entre el controlador y el dispositivo es a menudo de muy bajo nivel. Por ejemplo,
se podría dar formato a un disco con 10,000 sectores de 512 bytes por pista. Sin embargo, lo que
en realidad sale del disco es un flujo serial de bits, empezando con un preámbulo, después los 4096
bits en un sector y por último una suma de comprobación, también conocida como Código de Co-
rrección de Errores (ECC). El preámbulo se escribe cuando se da formato al disco y contiene el
cilindro y número de sector, el tamaño del sector y datos similares, así como información de sin-
cronización.
El trabajo del controlador es convertir el flujo de bits serial en un bloque de bytes y realizar
cualquier corrección de errores necesaria. Por lo general, primero se ensambla el bloque de by-
tes, bit por bit, en un búfer dentro del controlador. Después de haber verificado su suma de com-
probación y de que el bloque se haya declarado libre de errores, puede copiarse a la memoria
principal.
El controlador para un monitor también funciona como un dispositivo de bits en serie a un ni-
vel igual de bajo. Lee los bytes que contienen los caracteres a mostrar de la memoria y genera las
señales utilizadas para modular el haz del CRT para hacer que escriba en la pantalla. El controlador
también genera las señales para que el haz del CRT realice un retrazado horizontal después de ha-
ber terminado una línea de exploración, así como las señales para hacer que realice un retrazado
vertical después de haber explorado toda la pantalla. Si no fuera por el controlador del CRT, el pro-
gramador del sistema operativo tendría que programar de manera explícita la exploración análoga
del tubo. Con el controlador, el sistema operativo inicializa el controlador con unos cuantos pará-
metros, como el número de caracteres o píxeles por línea y el número de líneas por pantalla, y de-
ja que el controlador se encargue de manejar el haz. Las pantallas TFT planas funcionan de manera
diferente, pero son igualmente complicadas.
5.1.3 E/S por asignación de memoria
Cada controlador tiene unos cuantos registros que se utilizan para comunicarse con la CPU. Al es-
cribir en ellos, el sistema operativo puede hacer que el dispositivo envíe o acepte datos, se encien-
da o se apague, o realice cualquier otra acción. Al leer de estos registros, el sistema operativo puede
conocer el estado del dispositivo, si está preparado o no para aceptar un nuevo comando, y sigue
procediendo de esa manera.
Además de los registros de control, muchos dispositivos tienen un búfer de datos que el siste-
ma operativo puede leer y escribir. Por ejemplo, una manera común para que las computadoras
muestren píxeles en la pantalla es tener una RAM de video, la cual es básicamente sólo un búfer de
datos disponible para que los programas o el sistema operativo escriban en él.
De todo esto surge la cuestión acerca de cómo se comunica la CPU con los registros de con-
trol y los búferes de datos de los dispositivos. Existen dos alternativas. En el primer método, a ca-
da registro de control se le asigna un número de puerto de E/S, un entero de 8 o 16 bits. El conjunto
de todos los puertos de E/S forma el espacio de puertos de E/S y está protegido de manera que los
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller agusmitrobeda. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.49. You're not tied to anything after your purchase.