Document

Anuncio
Ejercicio de gestión de memoria.
Puntuación: 2.5 puntos sobre 10
Tiempo estimado de realización: 30 minutos.
En un experimento realizado con el sistema operativo Minix, la memoria se encuentra en el
estado que seguidamente se describe.
1. La memoria disponible para procesos empieza en la dirección (dato decimal) 24576.
2. La memoria disponible para procesos termina en la dirección (dato decimal) 1048575
(el primer byte de memoria tiene la dirección 0).
3. En el instante t = 0 del experimento, existen en memoria un conjunto de procesos que
ocupan en la misma espacios según se detalla seguidamente (tal y como se registra en la
tabla de descriptores del gestor de memoria de Minix).
4. Cada “click” de memoria tiene un tamaño de 4 KBytes (4096 bytes).
Proceso A
Código
Datos
Pila
Dirección virtual
0
0
5
Dirección física
6
6
11
Longitud
0
4
2
Proceso B
Código
Datos
Pila
Dirección virtual
0
0
4
Dirección física
40
41
45
Longitud
1
3
1
Proceso C
Código
Datos
Pila
Dirección virtual
0
0
10
Dirección física
80
80
90
Longitud
0
5
2
Proceso D
Código
Datos
Pila
Dirección virtual
0
0
8
Dirección física
40
92
100
Longitud
1
3
1
Proceso E
Código
Datos
Pila
Dirección virtual
0
0
24
Dirección física
136
136
160
Longitud
0
20
4
Se pide que responda a las siguientes cuestiones:
1. Indique una posible configuración del array “hole”, en el instante t = 0, relativa a los
huecos disponibles de memoria según se deduce de la situación planteada.
2. En el instante t = 10 desaparece el proceso C. Indique cuál es la información que
contendrá el array “hole”, relativa a los huecos disponibles, después de efectuarse este
cambio.
3. En el instante t = 20 desaparece el proceso D. Indique cuál es la información que
contendrá el array “hole”, relativa a los huecos disponibles, después de efectuarse este
cambio.
4. En el instante t = 30 se crea un proceso con las mismas necesidades de espacio que tenía
el proceso D. ¿Qué ubicación en la memoria le asignará el sistema?
Nota 1. Para cada uno de los casos planteado utilice flechas para indicar a quien señalan los
punteros h_next, hole_head y free_slots.
Nota 2. En la primera configuración quedará un elemento del array “hole” sin utilizar.
Considere que dicho elemento es el único sin utilizar del mencionado array. Haga que el puntero
“free_slots” le señale. Dicha cadena (la que comienza en “free slots”) es posible que deba
modificarse en los escenarios posteriores (t = 10, t = 20, t = 30).
Nota 3. Si un elemento del array “hole” es el último de una cadena, deberá asignarse el valor
NIL_HOLE a su puntero h_next.
Descargar