Sistemas operativos modernos
aproximadamente 1.76%, cifra que por lo generai es aceptable (aunque tiene que ser memoria de alta velocidad, lo cual incrementa su costo). Incluso con líneas de caché de 32 bytes, el gasto adi cional sería sólo de 4%; con líneas de caché de 128 bytes, sería de menos de 1%. Una limitación obvia de este diseño es que una línea sólo puede estar en caché en un no do. Para poder tener en caché las líneas de múltiples nodos necesitaríamos alguna forma de lo calizarlas todas, por ejemplo, para cancelar su validez o actualizarlas durante una operación de escritura. Hay varias opciones en cuanto a mantener líneas en caché en varios nodos al mismo tiempo, pero su descripción rebasa el alcance del presente libro. 8.1.2 Tipos de sistemas operativos para multiprocesador Pasemos ahora del hardware de multiprocesador al software y, en particular, a los sistemas ope rativos de multiprocesador. Pueden usarse varias organizaciones. A continuación estudiaremos tres de ellas. Cada CPU tiene su propio sistema operativo La forma más sencilla de organizar un sistema operativo de multiprocesador consiste en dividir en forma estática la memoria en tantas particiones como procesadores haya y proporcionar a ca da CPU su propia memoria privada y su propia copia privada del sistema operativo. En efecto, los n procesadores operarán como n computadoras independientes. Una optimización obvia sería permitir a todas las CPUs compartir el código del sistema operativo y hacer copias privadas úni camente de los datos, como se muestra en la figura 8-7. CPU 1 Tiene SO privado CPU 2 Tiene SO privado . CPU 3 Tiene SO privado CPU 4 Tiene SO privado Memoria 1 Datos 2 Datos 3 Datos 4 Datos C ódiooSO E/S \ Bus Figura 8-7. División de la memoria dei multiprocesador entre cuatro CPUs que comparten una sola copia del código del sistema operativo. Los cuadros mar cados como Datos son los datos privados del sistema operativo para cada CPU. Este esquema es mejor aún que tener n computadoras individuales porque permite a todas las máquinas compartir un conjunto de discos y otros dispositivos de E/S, así como compartir de manera flexible la memoria. Por ejemplo, si cierto día es necesario ejecutar un programa inusitadamente grande, podría asignarse a una de las CPUs una porción extragrande de memo ria durante la ejecución de ese programa. Además, los procesos pueden comunicarse entre sí de manera eficiente al permitir que un productor, por ejemplo, escriba datos en la memoria y
RkJQdWJsaXNoZXIy MjI4NDcx