Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción........................................................................................................................................ 1
Implementación de la entrada/salida en Linux ................................................................................. 2
Implementación de la entrada/salida en Windows Vista ................................................................. 4
Implementación de la entrada/salida en Symbian ........................................................................... 7
Conclusión ........................................................................................................................................... 8
Referencias bibliográficas .................................................................................................................. 8
Introducción
Las computadoras hoy en día son herramientas con las que interactuamos
diariamente de diversas formas, estas reciben información del exterior que los
usuarios a través de dispositivos de entrada, estas también pueden compartir
información con el usuario a través de los dispositivos de salida y cada sistema
operativo los implementa por medio de drivers para controlar dichos dispositivos.
La CPU y la memoria no son los únicos recursos que el sistema operativo debe
administrar. Los dispositivos de E/S también interactúan mucho con el sistema
operativo. Los dispositivos de E/S generalmente constan de dos partes: Un
dispositivo controlador y el dispositivo en sí.
El dispositivo controlador es un chip o conjunto de chips que controla físicamente
el dispositivo. En muchos casos, el control del dispositivo es muy complicado y
detallado, por lo que el trabajo del chip o los chips del dispositivo controlador es
presentar una interfaz más simple al sistema operativo.
La otra pieza es el dispositivo en sí. Los dispositivos tienen interfaces bastante
simples, debido a que no pueden hacer mucho y también para estandarizarlas.
Esto último es necesario de manera que cualquier dispositivo controlador de
disco IDE pueda manejar cualquier disco IDE, por ejemplo. IDE significa
Electrónica de unidades integradas y es el tipo estándar de disco en muchas
computadoras.
Como cada tipo de dispositivo controlador es distinto, se requiere software
diferente para controlar cada uno de ellos. El software que se comunica con un
dispositivo controlador, que le proporciona comandos y acepta respuestas, se
conoce como driver (controlador).
1
Implementación de la entrada/salida en Linux
Cada fila se refiere a un solo dispositivo de E/S (es decir, un solo driver). Las
columnas representan las funciones que deben aceptar todos los drivers de
caracteres. Existen varias funciones más. Cuando se realiza una operación en un
archivo especial de caracteres, el sistema indexa en la tabla de hash de
dispositivos de caracteres para seleccionar la estructura apropiada, y después
llama a la función correspondiente para realizar el trabajo. Así, cada una de las
operaciones de archivos contiene un apuntador a una función contenida en el driver
correspondiente.
2
El conjunto de funciones del kernel que se pueden llamar se define en un
documento conocido como Interfaz de driver-kernel.
El sistema de E/S se divide en dos componentes principales: el manejo de los
archivos especiales de bloques y el de los archivos especiales de caracteres.
El objetivo de la parte del sistema que realiza operaciones de E/S en archivos
especiales de bloques (por ejemplo, los discos) es minimizar el número de
transferencias que se deben realizar.
Para lograr este objetivo, los sistemas Linux tienen una caché entre los drivers de
disco y el sistema de archivos.
Las versiones más recientes de Linux tienen una caché unificada. Un nivel de
bloques genérico mantiene unidos estos componentes, realiza las traducciones
necesarias entre sectores de disco, bloques, búferes y páginas de datos, y permite
realizar operaciones en ellos.
La caché es una tabla en el kernel para contener miles de los bloques de uso más
reciente.
Cuando se requiere un bloque del disco para cualquier propósito (nodo-i, directorio
o datos), primero se realiza una comprobación para ver si está en la caché. De ser
así, se toma de ahí y se evita un acceso al disco, con lo cual se obtienen grandes
mejoras en el rendimiento del sistema.
3
Implementación de la entrada/salida en Windows Vista
4
Para iniciar las operaciones de E/S, el administrador de E/S llama a una API
IoCallDriver del ejecutivo, con apuntadores al objeto de dispositivo superior y al
IRP que representa la petición de E/S. Esta rutina busca el objeto de driver asociado
con el objeto de dispositivo. Por lo general, los tipos de operaciones que se
especifican en el IRP corresponden a las llamadas al sistema del administrador de
E/S antes descritas, como CREATE, READ y CLOSE.
Una vez que un driver termina de procesar la petición representada por el IRP,
tiene tres opciones. Puede llamar a IoCallDriver otra vez para pasarle el IRP y el
siguiente objeto dispositivo en la pila de dispositivos. Puede declarar la petición de
E/S como completa y regresar al proceso que lo llamó. O puede poner en cola el
IRP de manera interna y regresar al proceso que lo llamó, habiendo declarado que
la petición de E/S sigue pendiente. Este último caso produce una operación de E/S
asíncrona, por lo menos si todos los drivers por encima en la pila están de acuerdo
y regresan a los procesos que los llamaron.
Durante la compleción, cada nivel de la pila de dispositivos se visita en orden
inverso, y se hace una llamada a la rutina de compleción asignada a cada driver en
turno. En cada nivel, el driver puede seguir completando la petición, o puede decidir
que aún hay más trabajo por hacer y dejar pendiente la petición, para lo cual
suspende la compleción de E/S en ese momento.
Un driver en Windows Vista puede hacer todo el trabajo por sí solo.
5
Un uso común para los drivers apilados es para separar la administración del bus
del trabajo funcional de controlar el dispositivo. La administración en el bus PCI es
bastante complicada debido a los diversos tipos de modos y transacciones del bus.
Al separar este trabajo de la parte específica del dispositivo, los escritores de
drivers ya no tienen que aprender a controlar el bus. Sólo tienen que usar el driver
de bus estándar en su pila. De manera similar, los drivers USB y SCSI tienen una
parte específica del dispositivo y una parte genérica, en donde Windows suministra
los drivers comunes para la parte genérica.
Los drivers de dispositivos en modo de kernel son un problema grave para la
confiabilidad y estabilidad de Windows. La mayoría de las fallas del kernel en
Windows se deben a errores en los drivers de dispositivos. Como los drivers de
dispositivos en modo de kernel comparten el mismo espacio de direcciones con los
niveles del kernel y del ejecutivo, los errores en los drivers pueden corromper las
estructuras de datos del sistema, o peor aún. Algunos de estos errores se deben
al asombroso gran número de drivers de dispositivos que existen para Windows, o
a los drivers que desarrollan programadores de sistemas menos experimentados.
Los errores también se deben a la gran cantidad de detalle implicado en la
escritura de un driver correcto para Windows.
El modelo de E/S es poderoso y flexible, pero en esencia todas las operaciones de
E/S son asíncronas, por lo que pueden abundar las condiciones de competencia.
El administrador de energía se encarga de manejar el uso de la energía en todo el
sistema.
6
Implementación de la entrada/salida en Symbian
7
Conclusión
Referencias bibliográficas