Nada
1) Suponiendo que a todas las variables y rutinas (incluido el programa principal) se les asigna memoria alineada con comienzo de página, que laspáginas son de 1024 bytes (char) y que un entero sin signo (unsigned int) ocupa 4 bytes. ¿Cómo quedará la memoria de cada uno de los procesadores al final de la ejecución si el mejor algoritmo fue eltercero, se usa invalidación al escribir y no hay necesidad de reemplazar páginas por escasez de memoria? Haga explícitas las suposiciones que estime oportunas.
a) ¿En qué variaría el resultado sise usa actualización al escribir?
b) ¿Cuál sería más eficiente: actualización al escribir o invalidación al escribir? Justifíquelo.
c) ¿Hay compartición falsa? Justifíquelo y, si la hubiera,diga como evitarla.
2) En cierto sistema de memoria global compartida paginado y persistente se desea ordenar un archivo conteniendo un vector de 230 flotantes de 64 bits cada uno. Disponemos paraello de 8 computadoras de 230 bytes de memoria libres cada uno (hay algo más de memoria donde caben justo el sistema operativo y nuestro programa). El tamaño de página es de 212 bytes.
Para acelerarel cálculo, se decide usar los ocho procesadores. Inicialmente un proceso proyecta el archivo en memoria virtual, obteniendo su dirección virtual de comienzo1, alineada al comienzo de una página.Seguidamente lanza 7 procesos adicionales, uno en cada procesador restante, pasándoles a cada uno de ellos la dirección de un octavo del vector, para que ordene esa parte in situ, usando el algoritmo dela burbuja2. El mismo se encarga de la porción restante y espera que los demás terminen.
Finalmente este proceso se encarga de mezclar (merge) las 8 porciones ordenadas. Para ello barre desde elprincipio al final las 8 porciones, eligiendo siempre el más pequeño de los examinados y escribiéndolo en el archivo del resultado, que también habrá sido proyectado en memoria virtual.
1La...
Regístrate para leer el documento completo.