Está en la página 1de 3

2.2.3.

Gestión de Entrada/Salida
Una tarea fundamental de los SSOO es el control de los periféricos de E/S del
ordenador.

2.2.3.1. Tipos de periféricos


Ya establecimos una primera clasificación de los dispositivos dependiendo de
cuál sea el sentido de
flujo de la información:

De entrada, que introducen en el sistema información externa, como un


teclado o un ratón.
De salida, que reciben información interna del sistema con el propósito de
proporcionársela al usua-
rio, como es el caso de un monitor o una impresora.
De entrada/salida, en que el flujo de información es bidireccional, por lo
que tanto introducen como
reciben información. Es el caso de un módem o una
tarjeta de red.

Hay otra clasificación que depende del modo de envío de los datos[1]:

Dispositivo de bloques, que es aquel que envía o recibe la información en


bloques de tamaño fijo.
Por ejemplo, los dispositivos de almacenamiento en que
se envía y recibe la información contenida
en cada sector (que típicamente es
de 512 bytes).

Dispositivo de caracteres, que es aquel que envía o recibe la información en


bytes (caracteres) indi-
viduales. Por ejemplo, el teclado.

2.2.3.2. Software relacionado


El sistema operativo tiene dedicada una parte a la gestión de los dispositivos
de E/S, para lo cual es ne-
cesario que:

El dispositivo hardware incluya un componente lógico llamado el


firmware .
El propio sistema operativo disponga de otro componente lógico que se
comunique con él denomi-
nado driver o controlador , que logra
abstraer al resto del sistema operativo y a las aplicaciones
de usuarios
de los detalles particulares del hardware.

De este modo, al necesitar un proceso la comunicación con un dispositivo


lo hace a través de órdenes
comunes a todos los dispositivos de su tipo y es
el driver el encargado de traducir estas órdenes genéri-
cas a las particulares
que necesite ese hardware específico.

En consecuencia, los controladores son específicos para un sistema operativo y


hardware específico, de
modo que dos impresoras de distinto modelo requerirán
sendos drivers para su funcionamiento[2].

Tradicionalmente, los controladores se ejecutan en modo kernel, lo cual


provoca problemas cuando fallan
ya que pueden dar al traste con todo el sistema
operativo. Cada vez es más común, sin embargo, que se
ejecuten en modo usuario.

Respecto al autor del controlador, podemos encontrar distintos tipos:

Genérico, que son los que vienen incorporados en el propio sistema operativo
y cubren un amplio
abanico de modelos y marcas, aunque pueden no explotar
todas las posibilidades de un dispositivo
concreto o mermar el rendimiento.
Oficiales, que son los desarrollados y distribuidos por el propio fabricante
del software y requieren
su instalación explícita. Por lo general, son los
que proporcionan un mejor rendimiento.
Libres, que son los desarrollados por la comunidad con la colaboración o sin
ayuda del propio fabri-
cante. Su calidad depende en gran medida de la
información que proporcione el fabricante sobre el
diseño del dispositivo.

2.2.3.3. Interrupciones
La gestión de E/S se basa en el tratamiento de peticiones de interrupción
(IRQ por sus siglas en inglés),
que son señales que un dispositivo envía al
procesador por una línea especial del bus de control para pe-
dirle que interrumpa
el proceso en ejecución y pase a ejecutar una rutina de tratamiento de la
interrup-
ción. Al recibir una interrupción, el sistema operativo actúa del
siguiente modo:

1. El proceso En ejecución se para y pasa al estado Listo.


2. Se trata la interrupción que supondrá la actualización de los datos de algún
proceso con los datos
procedentes del periférico. Como consecuencia de ello,
es posible que un proceso Bloqueado pase
a estar Listo.
3. Una vez tratada la interrupción, el proceso que decida el planificador, según
el algoritmo que use,
ocupará el procesador pasando de Listo a En
ejecución.

El bus de control de la placa base dispone de líneas específicas para las


peticiones de interrupción. Estas
líneas están numeradas y cada una de ellas
está dedicada a un tipo de interrupción diferente. Por ejem-
plo, antiguamente la
IRQ2, estaba dedicada al teclado; o las IRQ3 y 4 a los puertos serie. En
las placas
XT sólo había 8 líneas. En las placas AT se aumentaron las líneas
a 16. En los sistemas modernos que
usan el controlador APIC diseñado por
Intel, hay 24 líneas para interrupciones más ocho líneas extra de-
dicadas al
encaminamiento de interrupciones, y las interrupciones son asignadas
dinámicamente por el
propio sistema operativo.

2.2.3.4. Transferencia
Dada que la cantidad de información que se mueve entre la memoria y los
dispositivos es ingente, mu-
chos dispositivos como tarjetas gráficas, tarjetas de
sonido o dispositivos de almacenamiento, disponen
de acceso directo a la
memoria (DMA por sus siglas en inglés), de manera que la transferencia puede
lle-
varse a cabo directamente desde el dispositivo a la memoria sin pasar
previamente por el procesador.
Gracias a ello, la transferencia puede realizarse
sin sobrecargar el procesador con muchísimas
interrupciones.

Además, para paliar la diferencia de velocidad entre el procesador y los


dispositivos de E/S, se usan di-
versas técnicas:

Caching
Se almacenan datos en una memoria temporal de pequeño tamaño y acceso muy rápido
de manera
que

Cuando se necesita un dato, se comprueba antes de acudir al dispositivo si


se encuentra en la
memoria caché, de la cuál es más rápido obtenerlo.
Mientras haya espacio en la memoria caché, se almacena el dato enviado o
recibido del dispo-
sitivo de E/S, por si puede ser útil en una operación
posterior, y no se borrará de tal memoria
hasta que no sea estrictamente
necesario, porque falte memoria para almacenar otro dato.
Buffering
Esta técnica consiste en disponer áreas de almacenamiento temporal de lectura
y escritura rápidas
llamadas buffer (de entrada o de salida), que
funcionan del siguiente modo:

Cuando un proceso debe enviar datos al dispositivo de salida, envía los


datos a un buffer de sa-
lida, no al dispositivo, y continúa su ejecución,
mientras el dispositivo puede ir obteniendo la in-
formación del buffer a
su ritmo.
Cuando un dispositivo de entrada envía datos, los envía a un buffer de
entrada, incluso adelan-
tándose a la petición del sistema operativo. Esto
propicia que, si el sistema pide esos datos, los
pueda leer del buffer
que es mucho más rápido.

Notas al pie

[1] En los sistemas operativos también existen dispositivos virtuales que


pueden ser de bloques o de ca-
racteres. En este caso, nos referimos
exclusivamente a dispositivos físicos, esto es, periféricos.

[2] Sin perjuicio de que dos modelos muy, muy parecidos puedan compartir un
driver común, porque
comparten el mismo chipset.

También podría gustarte