los dispositivos de E/S pueden clasificarse en dos categorías:

Anuncio
los dispositivos de E/S pueden clasificarse en dos categorías:
dispositivos de bloques y dispositivos de caracteres. Un dispositivo de bloques es uno que
almacena la información en bloques de tamaño fijo, cada uno con su propia dirección. El
tamaño de los bloques varía desde 512 bytes a 32768 bytes. La propiedad esencial de un
dispositivo de bloques es que es posible leer o escribir cada bloque independientemente de
todos los demás. Los discos son los dispositivos de bloques más comunes.
Un dispositivo
de caracteres proporciona o acepta un flujo de caracteres, sin tener en cuenta ninguna estructura
de bloque. No es un dispositivo direccionable y no cuenta con ninguna operación de
posicionamiento. Las impresoras, los interfaces de red, los ratones (para señalar en la pantalla),
las ratas (para experimentar en el laboratorio de psicología) y la mayoría de los otros
dispositivos que no son similares a los discos, pueden ser vistos como dispositivos de
caracteres.
Las unidades de E/S constan normalmente de un componente mecánico y un
componente electrónico. En muchos casos es posible separar las dos partes para tener un diseño
más modular y general. El componente electrónico se denomina controlador del dispositivo o
adaptador. En los ordenadores personales, este componente suele adoptar la forma de una
tarjeta de circuito impreso (tarjeta controladora) que puede insertarse en una ranura de
expansión. El componente mecánico es el dispositivo mismo.
La tarjeta controladora está provista usualmente de un conector en el cual puede
conectarse un cable que va al dispositivo. Muchas controladoras pueden manejar dos, cuatro o
incluso ocho dispositivos idénticos. Si la interfaz entre la controladora y el dispositivo es un
interfaz estándar, ya sea un estándar ANSI, IEEE o ISO oficial, o un estándar de facto, eso
permite que cualquier fabricante de hardware pueda manufacturar controladores o dispositivos
que se ajusten a esa interfaz. Por ejemplo, muchas compañías de hardware fabrican unidades de
disco compatibles con la interfaz IDE o SCSI.
Cada controlador tiene unos cuantos registros que le sirven para comunicarse con la
CPU. Escribiendo en estos registros, el sistema operativo puede ordenar al dispositivo que
suministre datos, acepte datos, se encienda o apague a sí mismo, o realice alguna otra acción.
Leyendo de estos registros, el sistema operativo puede averiguar en qué estado se encuentra el
dispositivo, si está preparado o no para aceptar un nuevo comando, etc.
Además de los registros de control, muchos dispositivos tienen un búfer de datos que el
sistema operativo puede leer y escribir. Por ejemplo, en muchos ordenadores la manera usual de
visualizar píxeles en la pantalla es mediante una RAM de vídeo (que es básicamente un búfer de
datos) en la que los programas o el sistema operativo pueden escribir.
Dicho lo anterior surge la pregunta de cómo se comunica la CPU con los registros de
control y los búferes de datos de los dispositivos. Existen dos alternativas. Con el primer
enfoque, a cada registro de control se le asigna un número de puerto de E/S, que es un número
entero de 8 o 16 bits. Utilizando una instrucción especial de E/S como
IN REG,PUERTO
la CPU puede leer el registro de control PUERTO y almacenar el resultado en un registro REG
de la CPU. Similarmente, con
OUT PUERTO,REG
la CPU necesita
direccionar los controladores de dispositivo para intercambiar datos con ellos. La CPU puede
solicitar datos del controlador de E/S byte a byte, pero haciéndolo así estaría desperdiciándose
mucho tiempo de CPU. Por ese motivo normalmente se utiliza un esquema diferente,
denominado acceso directo a memoria (DMA; Direct Memory Access). El sistema operativo
sólo puede utilizar DMA si el hardware dispone de un controlador de DMA, por lo que la
mayoría de los sistemas cuentan con él. A veces ese controlador está integrado en los
controladores de disco o en otros controladores, pero tal diseño significa tener un controlador de
DMA por cada dispositivo. Más comúnmente, se tiene un único controlador de DMA (por
ejemplo en la placa madre) para regular las transferencias con múltiples dispositivos, a menudo
de forma concurrente.
Descargar