Sistemas operativos modernos
más avanzadas, y estudiaremos algunas de ellas en capítulos posteriores. Lo que hay que tener presente aquí es que el manejo de la MMU debe ser una función del sistema operativo, pues no puede confiarse en que los usuarios lo hagan de manera correcta. Dos aspectos del sistema de memoria tienen un impacto importante en el desempeño. Pri mero, los cachés ocultan la relativa lentitud de la memoria. Cuando un programa se ha estado ejecutando durante algún tiempo, el caché está lleno de las líneas de caché de ese programa, y el desempeño es bueno. Sin embargo, cuando el sistema operativo cambia de un programa a otro, el caché sigue estando lleno de las líneas del primer programa. Las que el nuevo progra ma necesita tendrán que cargarse una por una desde la memoria física. Esta operación puede mermar en forma considerable el desempeño si se efectúa con demasiada frecuencia. Segundo, al cambiar de un programa a otro, es preciso modificar los registros de la MMU. En la figura l-9b sólo hay que modificar cuatro registros, lo cual no implica un problema, pe ro en las MMUs reales es preciso volver a cargar muchos registros más, de forma explícita o di námica, según sea necesario. De cualquier modo, eso toma tiempo. La moraleja es que cambiar de un programa a otro, lo que constituye un cambio de contexto, es un asunto costoso. 1.4.3 Dispositivos de E/S La memoria no es el único recurso que debe administrar el sistema operativo; los dispositivos de E/S también interactúan intensamente con él. Como vimos en la figura 1-5, los dispositivos de E/S por lo regular constan de dos partes: una controladora y el dispositivo en sí. La controla dora es un chip o un conjunto de chips montados en una taijeta insertable, que controla física mente al dispositivo. Dicha controladora acepta comandos del sistema operativo (por ejemplo, leer datos del dispositivo) y los ejecuta. En muchos casos, el control real del dispositivo es muy complicado y detallado, por lo que corresponde la controladora presentar una interfaz más simple al sistema operativo. Por ejemplo, una controladora de disco podría aceptar un comando para leer el sector 11,206 del disco 2. La controladora tiene entonces que convertir este número de sector lineal en un sector, cilindro y ca beza. Esta conversión podría complicarse por el hecho de que los cilindros exteriores tienen más sectores que los interiores, y que algunos sectores defectuosos se han reasignado ha cia otros. Luego, la controladora tiene que determinar en cuál cilindro está el brazo y enviarle la sucesión de pulsos necesaria para desplazarlo hacia adentro o hacia afuera el número requerido de cilindros. Luego hay que esperar a que el sector correcto gire hasta colocarse debajo de la ca beza, y comenzar a leer y almacenar los bits, eliminando el preámbulo y calculando la suma de verificación. Por último, hay que ensamblar los bits leídos para formar palabras y guardarlas en la memoria. Para hacer todo este trabajo, es común que las controladoras tengan integradas pe queñas computadoras programadas para efectuarlo. El otro componente es el dispositivo en sí. Los dispositivos tienen interfaces relativamen te simples, debido a que no tienen mucha capacidad para estandarizarlos. Esto último es nece sario para que cualquier controladora de disco IDE pueda manejar cualquier disco IDE, por ejemplo. IDE son las siglas en inglés de Electrónica Integrada en la Unidad (integrated dri ve electronics) y es el tipo estándar de disco en las Pentium y algunas otras computadoras. Puesto que la interfaz real con el dispositivo está oculta tras la controladora, lo único que ve
RkJQdWJsaXNoZXIy MjI4NDcx