Sistemas operativos modernos

que un consumidor los obtenga del lugar donde el productor los escribió. No obstante, desde el punto de vista del sistema operativo, dar a cada CPU su propio sistema operativo es una so­ lución de lo más primitiva. Vale la pena mencionar en forma explícita cuatro aspectos de este diseño que tal vez no sean obvios. Primero, cuando un proceso emite una llamada al sistema, ésta se atrapa y maneja en su propia CPU utilizando las estructuras de datos de las tablas de ese sistema operativo. Segundo, debido a que cada sistema operativo tiene sus propias tablas, también tiene su pro­ pio conjunto de procesos que calendariza por su cuenta. No se comparten procesos. Si un usuario inicia sesión en la CPU l, todos sus procesos se ejecutarán en la CPU l. Por consiguiente, puede suceder que la CPU 1 esté inactiva mientras la CPU 2 está saturada de trabajo. Tercero, no se comparten páginas. Puede suceder que la CPU l tenga páginas de sobra mien­ tras que la CPU 2 está paginando en forma continua. La CPU 2 no tiene manera de pedir presta­ das algunas páginas a la CPU l porque la asignación de memoria es fija. Cuarto, y lo peor de todo, si el sistema operativo mantiene un caché de búfer de bloques de disco usados recientemente, cada sistema operativo lo hará con independencia de los demás. Así, puede suceder que cierto bloque de disco esté presente y modificado en varios cachés de búfer al mismo fiempo, lo cual producirá resultados inconsistentes. La única forma de evitar este problema es eliminar los cachés de búfer. Eso no es difícil, pero merma el desempeño de manera considerable. Multiprocesadores amo-esclavo Por lo anterior, este modelo ya casi no se usa, aunque se usó en los inicios de los multiproce­ sadores, cuando la meta era trasladar sistemas operativos existentes a algún multiprocesador nuevo en el menor tiempo posible. Un segundo modelo se muestra en la figura 8 - 8 . Aquí hay una copia del sistema operativo y de sus tablas en la CPU 1, pero no en las demás. Todas las llamadas al sistema se redirigen a la CPU l, donde se procesan. Esta CPU también podría eje­ cutar procesos de usuario si le sobra tiempo. Este modelo se conoce como amo-esclavo por­ que el procesador l es el amo y todos los demás son sus esclavos. CPU 1 CPU 2 CPU 3 CPU 4 Memoria E/S \ Bus Figura 8-8. Modelo de multiprocesador amo-esclavo. El modelo amo-esclavo resuelve casi todos los problemas del primer modelo. Hay una sola estructura de datos (por ejemplo, una lista o un conjunto de listas con prioridades) que lleva el

RkJQdWJsaXNoZXIy MjI4NDcx