Hoja 1

Anuncio
Ampliación de Sistemas Operativos
Curso 2004 / 05
Problemas - Hoja 1
1) Sea un sistema de paginación con un tamaño de página P. Especifique cuál sería la
fórmula matemática que determina la dirección de memoria física F a partir de la dirección
virtual D, siendo la función MARCO (x) una que devuelve el número de marco almacenado
en la entrada X de la tabla de páginas.
2) ¿Es siempre el algoritmo de reemplazo LRU mejor que el FIFO? En caso afirmativo,
plantee una demostración. En caso negativo, proponga un contraejemplo.
3) ¿Cuál de las siguientes técnicas favorece la proximidad de referencias?
•
•
•
•
Un programa multiflujo.
El uso de listas.
La programación funcional.
La programación estructurada.
4) Algunas MMU no proporcionan un BIT de página accedida. Proponga una manera de
simularlo. Una pista: se pueden forzar fallos de página para detectar accesos a una página.
5) Algunas MMU no proporcionan un BIT de página modificada. Proponga una manera de
simularlo.
6) ¿Por qué una cache que se accede con direcciones virtuales puede producir incoherencias
y requiere que el sistema operativo la invalide en cada cambio de proceso y, en cambio,
una que se accede con direcciones físicas no lo requiere?
7) ¿Por qué una cache que se accede con direcciones virtuales permite que el acceso a la
TLB y a la cache se hagan en paralelo y, en cambio, una que se accede con direcciones
físicas no lo permite? ¿Por qué es conveniente que las caches que se acceden con
direcciones físicas tengan el mismo tamaño que la página?
8) La secuencia que se utiliza típicamente como ejemplo de la anomalía de Belady es la
siguiente:
123412512345
Analice cuántos fallos de página se producen al usar el algoritmo FIFO teniendo 3 marcos y
cuántos con 4 marcos. Compárelo con el algoritmo LRU. ¿Qué caracteriza a los algoritmos
de reemplazo de pila?
9) Exponga uno o más ejemplos de las siguientes situaciones:
• Fallo de página que no implica operaciones de entrada/salida.
• Fallo de página que implica sólo una operación de lectura.
• Fallo de página que implica sólo una operación de escritura.
• Fallo de página que implica una operación de lectura y una de escritura.
10) Sea un sistema de memoria virtual sin buffering de páginas. Analice la evolución de una
página en este sistema dependiendo de la región a la que pertenece. Estudie los siguientes
tipos:
•
•
•
•
•
Página de código.
Página de datos con valor inicial.
Página de datos sin valor inicial.
Página de un archivo proyectado.
Página de una zona de memoria compartida.
11) Resuelva el ejercicio anterior suponiendo que hay buffering de páginas.
12) Como se comentó en la explicación del algoritmo de reemplazo LRU en su versión global,
el tiempo que se debe usar para seleccionar la página menos recientemente usada es el
tiempo lógico de cada proceso y no el tiempo real. Modifique la implementación basada en
contadores propuesta en el texto para que tenga en cuenta esta consideración.
13) Codifique en pseudocódigo cuál sería la rutina de tratamiento de fallo de página en un
sistema con memoria virtual que no usa buffering de páginas ni preasignación de swap.
Tenga en cuenta la influencia de las distintas características de las regiones (p.ej.: si es
privada o compartida).
14) Resuelva el problema anterior para un sistema con buffering de páginas y preasignación de
swap.
15) En la descripción de la técnica COW se explicó que para implementar esta técnica
generalmente se pone la página con una protección de sólo lectura. Analice cómo sería la
rutina de tratamiento de la excepción que se produce al escribir en una página de este tipo
para implementar la técnica COW.
16) En Win32 se pueden crear múltiples heaps. Analice en qué situaciones puede ser
interesante esta característica.
17) Algunas versiones de UNIX proporcionan una llamada denominada vfork que crea un hijo
que utiliza directamente el mapa de memoria del proceso padre, el cual queda bloqueado
hasta que el hijo ejecuta un exec o termina. En este momento el padre recupera su mapa.
Analice qué ventajas y desventajas presenta el uso de este nuevo servicio frente a la
utilización del fork convencional. En este análisis suponga primero que el fork se
implementa sin usar la técnica COW para a continuación considerar que sí se utiliza.
18) ¿Por qué es necesario mantener al menos una página inválida entre la región de pila y la
región que está situada justo encima?
19) Analice qué puede ocurrir en un sistema que usa paginación por demanda si se recompila
un programa mientras se está ejecutando. Proponga soluciones a los problemas que
pueden surgir en esta situación.
20) Cuando se produce un fallo en una página que pertenece a una región compartida, se trae
a memoria secundaria la página y se actualiza la entrada de la tabla de páginas del
proceso que causó el fallo. ¿Cómo se enteran el resto de los procesos que comparten la
página de que ésta ya se encuentra en memoria?
21) El mecanismo de buffering permite recuperar una página que está en la lista de libres, ya
que todavía no se ha reutilizado el marco que la contiene. ¿Cómo se puede implementar
esta búsqueda en la lista para que se haga de forma eficiente?
22) Analice qué situaciones se pueden producir en el tratamiento de un fallo de TLB en un
sistema que tiene una gestión software de la TLB.
23) Con el uso de la técnica de proyección de archivos se produce una cierta unificación entre
el sistema de archivos y la gestión de memoria. Puesto que, como se verá en el capítulo
dedicado a los archivos, el sistema de archivos usa una cache de bloques al disco, analice
qué tipo de incoherencias pueden producirse si se accede a un archivo usando la
proyección y las primitivas convencionales del sistema de archivos.
24) Considere un espacio de direcciones lógico de 32 páginas con 1024 palabras cada una,
que se hace corresponder, con una memoria física de 8 marcos.
¿Cuántos bits tiene una dirección lógica?
¿Cuántos bits tiene una dirección física?
25) Un sistema operativo con gestión de memoria basada en segmentación paginada tiene las
siguientes características:
Tamaño de página: 4 KB
Número máximo de segmentos por proceso es 8.
Considerando que el tamaño máximo de memoria virtual direccionable son 16MB, calcular
el tamaño máximo de cada segmento expresado en número de páginas y un número de
bytes. Determinar el formato de dirección virtual expresando cada uno de los campos y su
dimensión.
26) Dadas particiones de memoria de 100K, 500K, 200K, 300K y 600K (en orden), ¿cómo se
colocarían procesos de 212K, 417K, 112K y 426K (en orden) en la memoria empleando los
algoritmos de primer ajuste, mejor ajuste y peor ajuste? ¿Qué algoritmo aprovecha la
memoria de forma más eficiente?
Descargar