Manejo de dispositivos de entrada y
salida: Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento
no volátil de datos y memoria. Su función primordial es abastecer de datos y
almacenamiento a los programas que se ejecutan en la UCP. Según 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)
Los dispositivos de comunicaciones. Permiten
conectar a la computadora con otras computadoras a través de una red. Los dos
tipos de dispositivos más importantes de esta clase son los módem, para comunicación
vía red telefónica, 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 visión lógica 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 visión lógica se ofrece a los usuarios un
mecanismo de abstracción que oculta todos los detalles relacionados con los
dispositivos físicos, 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 fácil 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 físico sin que sea necesario
remodelar el sistema de E/S del sistema operativo.
• Permitir la conexión de dispositivos nuevos de
E/S, solventando de forma automática su instalación usando mecanismos del tipo
plug&play.
Conexión de un dispositivo de E/S a una
computadora En la siguiente figura se muestra el esquema general de conexión de
periféricos a una computadora. En el modelo de un periférico se distinguen dos
elementos:
• Periféricos o dispositivos de E/S. Elementos
que se conectan a la unidad central de proceso a través de las unidades de
entrada/salida. Son el componente mecánico que se conecta a la computadora.
• Controladores de dispositivos o unidades de
E/S. Se encargan de hacer la transferencia de información entre la memoria
principal y los periféricos. Son el componente electrónico a través del cual se
conecta el dispositivo de E/S. Tienen una conexión al bus de la computadora y
otra para el dispositivo (generalmente mediante cables internos o externos).
Para empezar una operación de E/S, la UCP tiene que escribir sobre
los registros anteriores los datos de la operación a través de una dirección de
E/S o de memoria asignada únicamente al controlador. Según 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 clásico en las
arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su
controlador se le asigna un puerto de E/S, una interrupción hardware y un
vector de interrupción. Para efectuar una operación de E/S la UCP ejecuta operaciones por o
portout con la dirección de puerto del dispositivo y con parámetros para
indicar qué registro se quiere manipular. Todas las operaciones de
entrada/salida (pantalla gráfica, impresoras, ratón, discos, etc.) se realizan
usando esas dos instrucciones de lenguaje máquina con los parámetros 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, típico de las arquitecturas de Motorola, asigna a cada dispositivo de
E/S un rango de direcciones de memoria a través de las cuales se escribe sobre
los registros del controlador. En este modelo no hay instrucciones específicas
de E/S, sino que las operaciones se llevan a cabo mediante instrucciones
máquina 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
física para asignar las direcciones de E/S.
Los dispositivos de almacenamiento secundario y
terciario manejan la información en unidades de tamaño 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 demás. Los dispositivos de bloque
lo son porque el hardware fuerza la existencia de accesos de un tamaño
determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1
KB, siendo un sector la unidad mínima de transferencia que el controlador del
disco puede manejar. Los dispositivos de caracteres, como los terminales,
impresoras, tarjetas de red, módems, etcétera, no almacenan información en
bloques de tamaño fijo. Gestionan flujos de caracteres de forma lineal y sin
ningún 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 carácter 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 línea serie también es un
dispositivo de caracteres. Su controlador se limita a enviar al periférico 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 inglés, driver) es un programa informático que
permite al sistema operativo interactuar con un periférico, haciendo una
abstracción del hardware y proporcionando una interfaz -posiblemente
estandarizada- para usarlo. Se puede esquematizar como un manual de
instrucciones que le indica cómo debe controlar y comunicarse con un
dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se
podría usar el hardware.
Existen tantos tipos de controladores como tipos
de periféricos, y es frecuente encontrar más 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 página web
del fabricante), se pueden encontrar también los proporcionados por el sistema
operativo, o también versiones no oficiales hechas por terceros. Estos
controladores pueden ser genéricos (válidos para más de un modelo del mismo
periférico) o específicos para cada modelo. También 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 también 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 cooperación con ellos, cosa que facilita el desarrollo.
Si no la hay, el procedimiento necesita de ingeniería inversa y otros métodos
difíciles 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 múltiples 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 años ha existido un esfuerzo importante de
estandarización de los dispositivos, lo que permite usar un mismo controlador
para dispositivos de distintos fabricantes. Un buen ejemplo lo constituyen los
dispositivos SCSI (Srna Il? Computer Svstern interftice), cuyos controladores
ofrecen una interfaz común 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
misión es convertir los datos del formato interno del dispositivo a uno externo
que se ofrezca a través de una interfaz de programación bien definida. Los
controladores de dispositivo se suelen agrupar en alguna de las siguientes
categorías o clases:
• Adaptadores de audio (tarjetas de sonido).
• Dispositivos de comunicación (infrarrojos,
módems, etc).
• Dispositivos de visualización; pantallas
(displays).
• Teclados.
• Ratón (“mouse” y otros señaladores gráficos).
• Dispositivos multimedia.
• Dispositivos de Red.
• Impresoras.
No hay comentarios:
Publicar un comentario