Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 1
Tenemos un ordenador con memoria virtual con paginación. Las direcciones virtuales
son de 32 bits y las páginas son de 4 Kbytes. La memoria física del ordenador tiene 16
Mbytes (cada posición es de 1 byte).
a. ¿En cuántos marcos de página se divide la memoria física?
b. ¿Cuántos bits de la dirección virtual se utilizan para identificar la página?
c. ¿Cuántos bits son necesarios para direccionar un marco de página?
d. Supón que tenemos una tabla de página de un sólo nivel: ¿Cuántas entradas tiene
la tabla de páginas?
Solución 1
a) Si el tamaño de página es 4K, el tamaño de marco también. Si hay
16M de memoria física:
b) Si una página es de 4K, hacen falta 12 bits como desplazamiento (u
offset) en la dirección virtual (dado que 212 = 4096). Por tanto, los
bits de la dirección virtual que se utilizan para identificar la
página son 32 - 12 = 20 bits.
c) Para direccionar un marco hacen falta al menos 12 bits,
considerando la memoria instalada (4096 marcos). (dado que 212 =
4096).
d) Con una TP de un nivel, el número de entradas es el número de
páginas de memoria virtual: 220=1M de entradas.
Página 1
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 2
Dado el siguiente código que ejecuta tres veces la función itera de forma iterativa.
Se pide:
a. Dibujar el mapa de memoria del programa en ejecución cuando la función itera
ha sido invocada por tercera vez (se verifica que b=0).
int Binit=3;
int e[2048];
int itera(int *a, int b)
{
int *d;
int resul;
d=(int)malloc(1024,sizeof(int));
b=b-1;
if(b>0)
resul=itera(a, b);
else resul=0;
resul=resul+1;
return(resul);
}
void main(void)
{
int a[1024];
int b;
b=Binit;
resul=itera(a,b);
}
Solución 2
Página 2
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
• Imagen de memoria
• Código
Binit= 3 • Datos con Valor Inic.
• e[0]=?
• e[2047]=? • Dato sin Valor Inic.
• Malloc
• d[0-1023]
• Malloc
• d[0-1023]
• Malloc
• d[0-1023]
• Zona libre
• retorno f • Bloque de
• a=&a, b=2 • activación
• resul = ? • de itera
• retorno f • Bloque de
• a=&a, b=2 • activación • Pila
• resul = ? • de itera
• retorno f • Bloque de
• a=&a, b=3 • activación
• resul = ? • de itera
• retorno main
• Bloque de
• a[0-1023] b
• activación
• argc
• de main
• argv
• Entorno
Página 3
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 3
En el sistema operativo anterior, el gestor de memoria debe permitirnos que sea posible
ejecutar concurrentemente los 5 procesos anteriores. Disponemos para ello de un
espacio de disco de 131072 bytes (128K) y una memoria física de 32768 bytes (32K).
Sabemos que nuestros procesos al ser ejecutados tienen los siguientes parámetros:
proceso código pila datos
A 4096 2000 2048
B 16384 8200 8192
C 2048 1000 1024
D 16384 8200 8192
E 16384 8200 8192
Los datos indican el tamaño en bytes de cada uno de los segmentos que forman parte de
la imagen del proceso. Sabiendo que una página no puede contener partes de dos
segmentos diferentes (pila, código o datos), hemos de determinar el tamaño de página
que debería utilizar nuestro sistema y se barajan dos opciones: páginas de 4096 bytes
(4K) o páginas de 512 bytes (1/2K).
Se pide:
1. ¿Cuál sería la opción más apropiada, 4096 bytes o 512 bytes?. Justifica
totalmente la respuesta mostrando todos los cálculos que has necesitado para
llegar a dicha conclusión.
2. ¿Cuál es el formato de cada entrada de la Tabla de Páginas con el tamaño de
página elegido? Justifica el tamaño de los campos con direcciones. ¿Cuántas
entradas hay en la tabla de páginas (filas)?. Puedes añadir los bits que consideres
necesarios para el buen funcionamiento del sistema indicando para que van a ser
utilizados.
NOTA: si no has sabido contestar la pregunta 1 elige cualquiera de las dos opciones,
indícala expresamente y responde con ese dato a esta pregunta.
3. ¿Cuántas Tablas de Páginas habrá en este sistema?
Solución 3
1. NP = número de páginas que necesito
proceso código NP4096 NP512 pila NP4096 NP512 datos NP4096 NP512
A 4096 1 8 2000 1 4 2048 1 4
B 16384 4 32 8200 3 17 8192 2 16
C 2048 1 4 1000 1 2 1024 1 2
D 16384 4 32 8200 3 17 8192 2 16
Página 4
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
E 16384 4 32 8200 3 17 8192 2 16
Con páginas de 4096 bytes necesitamos para poder ejecutar los 5 procesos cargar en
memoria:
1+4+1+4+4+1+3+1+3+3+1+2+1+2+2 = 33 páginas
Puesto que el sistema tiene un espacio de direcciones de 131072, el número de páginas
posibles sería:
131072 / 4096 = 217 / 212 = 25 = 32 páginas.
Para poder ejecutar los procesos necesitamos 33 páginas al menos, y solo tenemos capacidad
para 32.
Con páginas de 512 bytes necesitamos para poder ejecutar los 5 procesos cargar en memoria:
8+32+4+32+32+4+17+2+17+17+4+16+2+16+16 = 219 páginas
Puesto que el sistema tiene un espacio de direcciones de 131072, el número de páginas
posibles sería:
131072 / 512 = 217 / 29 = 28 = 256 páginas.
Para poder ejecutar los procesos necesitamos 219 páginas al menos, y disponemos de 256
luego si es posible ejecutar estos procesos.
Elegiremos pues páginas de 512 bytes.
2.
El número de marcos de que disponemos en el sistema es:
32768 / 512 = 215 / 29 = 26 necesitamos 6 bits para hacer referencia al marco de página.
marco de página P/A R M RO ...
6 bits 1 bit 1 bit 1 bit 1 bit 1 bit
Cada proceso tiene su propia tabla de páginas, luego el número de entradas en la tabla de
páginas dependerá de cual de los procesos (A, B, C, D o E) sea al que nos referimos. Para el
proceso A, necesitaremos 16 entradas, tantas como páginas forman parte del proceso.
3. Serían al menos 5 tablas de página, una para cada proceso.
Ejercicio 4
Atendiendo al siguiente código:
Página 5
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
float a; float b=2;
void f1(int c) {
float i;
int j;
b = i+ 5;
.......
f2(j)
return;
}
void f2(int w) {
static f = 2;
a=a+w+f;
.......
return;
}
main (int argc, char **argv) {
int *p;
char *q;
p = (int *) malloc (512)
A
f1(b);
B
q=mmap (fichero)
C .......
free (p)
.......
free (q)
....
exit (0)
}
Indica cómo evolucionan las regiones o segmentos de memoria del programa cuando se
lanza su ejecución, y en los puntos del código indicados con flechas rellenando las
siguientes figuras.
Indica así mismo el contenido de cada segmento.
Página 6
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Inicio de la A B C
ejecución
Solución 4
Inicio de la ejecución:
o Código,
o Datos con valor inicial (b=2, f=2),
o Datos sin valor inicial (a=?),
o Pila (var. Entorno, argc, argv, retorno main, p=?, q=?)
A:
o Código,
o Datos con valor inicial (b=2, f=2),
o Datos sin valor inicial (a=?),
o Pila (var. Entorno, argc, argv, retorno main, q=?)
o Heap(p)
B:
o Código,
o Datos con valor inicial (b=2, f=2),
o Datos sin valor inicial (a=?),
Página 7
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
o Pila (var. Entorno, argc, argv, retorno main, q=?,
o Bloque de activación de f1(i,j,c,retorno f1),
o Bloque de activación de f2 (w,retorno f2)
o Heap(p)
C:
o Código,
o Datos con valor inicial (b=2, f=2),
o Datos sin valor inicial (a=?),
o Pila (var. Entorno, argc, argv, retorno main) ,
o Heap(p)
o Proyeccion de fichero (q)
Ejercicio 5
En un sistema de gestión de memoria, el sistema operativo ocupa 10 K y dispone de una
memoria libre de 30 K, en la que se introducen los siguientes trabajos:
TRABAJOS TAMAÑO T. DE ESTANCIA
EN MEMORIA
TI 4K 0,3 seg.
T2 2K 0,1 seg.
T3 7K 0,5 seg.
T4 15 K 0,4 seg.
T5 8K 0,8 seg.
T6 12 K 0,2 seg.
a) Si la memoria tiene 3 particiones fijas de 4K, 10K y 16K, y se utiliza un
planificador FCFS con cola única y asignación de la partición según el criterio del
disponible que mejor se adapte. Representar los estados de dicha memoria, indicando el
tiempo de retorno medio y la fragmentación en cada estado.
Repetirlo con la asignación de la partición según el criterio de sólo la que mejor se
adapte.
b) Si la gestión de memoria se realiza mediante el uso de particiones variables,
indicar cómo quedaría la Tabla de Descripción de las Particiones (PDT), al introducir
todos los trabajos.
Representar los diversos estados por los que pasa la memoria, calculando en cada caso
la fragmentación y el tiempo medio de retorno.
Solución
Página 8
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
a)
TRABAJOS TAMAÑO T. DE ESTANCIA
EN MEMORIA
TI 4K 0,3 seg.
T2 2K 0,1 seg.
T3 7K 0,5 seg.
T4 15 K 0,4 seg.
T5 8K 0,8 seg.
T6 12 K 0,2 seg.
0 0,1 0,2 0,3 0,4 0,5
0,6
T1 T1 T1
4 K FI=0 FI=0 FI=0 FE=4 FE=4 FE=4
T2 T5 T5 T5 T5 T5
10 K
FI=8 FI=2 FI=2 FI=2 FI=2 FI=2
T3 T3 T3 T3 T3 T4
16 K
FI=9 FI=9 FI=9 FI=9 FI=9 FI=1
0,6 0,7 0,8 0,9 1,0 1,1
1,2
4 K FE=4 FE=4 FE=4 FE=4 FE=4 FE=4
T5 T5 T5
10 K
FI=2 FI=2 FI=2 FE=10 FE=10 FE=10
T4 T4 T4 T6 T6
16 K
FI=1 FI=1 FI=1 FI=4 FI=4 FE=16
Página 9
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TIEMPOS DE RETORNO T. RETORNO MEDIO = 3,8/6 = 0,63
TRABAJOS ENTRADAS SALIDAS TOTALES
T1 0 0,3 0,3
T2 0 0,1 0,1
T3 0 0,5 0,5
T4 0 0,9 0,9
T5 0 0,9 0,9
T6 0 1,1 1,1
TOTAL = 3,8
0 0,1 0,2 0,3 0,4 0,5
0,6
T1 T1 T1 T2
4 K FI=0 FI=0 FI=0 FI=2 FE=4 FE=4
T3 T3 T3 T3 T3 T5
10 K
FI=3 FI=3 FI=3 FI=3 FI=3 FI=2
T4 T4 T4 T4 T6 T6
16 K
FI=1 FI=1 FI=1 FI=1 FI=4 FI=4
0,6 0,7 0,8 0,9 1,0 1,1
1,2
4K FE=4 FE=4 FE=4 FE=4 FE=4 FE=4
T5 T5 T5 T5 T5 T5
10 K
FI=2 FI=2 FI=2 FI=2 FI=2 FI=2
16 K
FE=16 FE=16 FE=16 FE=16 FE=16 FE=16
Página
10
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
1,2 1,3 1,4 1,5 1,6 1,7
1,8
4K FE=4
T5
10 K
FI=2
16 K
FE=16
TIEMPOS DE RETORNO RETORNO MEDIO = 3,5/6 = 0,58
TRABAJOS ENTRADAS SALIDAS TOTALES
T1 0 0,3 0,3
T2 0 0,4 0,4
T3 0 0,5 0,5
T4 0 0,4 0,4
T5 0 1,3 1,3
T6 0 0,6 0,6
Página
11
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TOTAL = 3,5
b) 0 0,1 0,2 0,3 0,4 0,5
0,6
T1 T1 T1 T6
FI=0 FI=0 FI=0
FE=6 FE=6
T2 FI=0 FE=2 FE=2
FI=0
T3 T3 T3 T3 T3
FI=0 FI=0 FI=0 FI=0 FI=0
FE=1
T4 T4 T4 T4 T5
T5
FI=0 FI=0 FI=0 FI=0 FI=0 FI=0
FE=2 FE=2 FE=2 FE=2 FE=9
FE=9
0,6 0,7 0,8 0,9 1,0 1,1
1,2
T6
FI=0 FE=13 FE=13 FE=13 FE=13
FE=13
FE=1
T5 T5 T5 T5 T5
T5
FI=0 FI=0 FI=0 FI=0 FI=0
FI=0
FE=9 FE=9 FE=9 FE=9 FE=9
FE=9
TABLA DE DESCRIPCIÓN DE PARTICIONES TIEMPOS DE RETORNO
Nº PARTICIÓN BASE TAMAÑO ESTADO TRAB ENT SAL TOT
0 0 12 K ASIGNADA T1 0 0,3 0,3
1 13 8 K ASIGNADA T2 0 0,1 0,1
T3 0 0,5 0,5
T4 0 0,4 0,4
T5 0 1,2 1,2
T6 0 0,7 0,7
Página
12
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TOTAL 3,2
TIEMPO DE RETORNO MEDIO=
3 ,2
=0 ,53
6
Página
13
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 6
Un sistema gestiona su memoria mediante el método de particiones variables.
Suponiendo que la Tabla de Descripción de Particiones (PDT), en un momento
determinado, tiene el siguiente contenido:
PARTICIÓNES BASE TAMAÑO ESTADO
0 0 40 K ASIGNADA
1 56 30 K ASIGNADA
2 100 12 K ASIGNADA
3 117 30 K ASIGNADA
Suponiendo que en el sistema existen 170K de memoria total, indicar donde se ubicaría
un programa P1 de 13K y posteriormente otro P2 de 5K utilizando de forma separada
las tres estrategias posibles.
Solución
TABLA DESCRIPCIÓN PARTICIONES TABLA FRAGMENTOS
DISPONIBLES
Nº PARTICIÓN BASE TAMAÑO ESTADO DIRECCIÓN ESPACIO
LIBRE
0 0 40 K ASIGNADA 40 K 16 K
A
1 56 30 K ASIGNADA 86 K 14 K
B
2 100 12 K ASIGNADA 112 K 5 K
C
3 117 30 K ASIGNADA 147 K 23 K
D
PRIMER AJUSTE MEJOR AJUSTE PEOR AJUSTE
P1 A P1 B P1 D
P2 B P2 C P2 A
Página
14
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 7
En la gestión de memoria con particiones variables se llama combinación al proceso de
fusionar huecos adyacentes, cuando estos quedan libres, para formar un hueco mayor.
Supongamos un sistema con particiones variables que no permita la combinación, es
decir, que cuando se saca un trabajo de la memoria, la partición donde se encontraba
dicho trabajo, no puede ser unida a otras particiones contiguas, para formar una
partición mayor.
Con el supuesto anterior, si tenemos una memoria que dispone inicialmente de 50 Kb
libres para programas, dibujar los estados por los que pasa dicha memoria para contener
los siguientes trabajos, calculando en cada caso las fragmentaciones:
TRABAJOS TAMAÑO TIEMPO
T1 22 K 1,2 seg.
T2 9K 2,3 seg.
T3 12 K 1,0 seg.
T4 10 K 1,3 seg.
T5 6K 2,2 seg.
T6 4K 3,0 seg.
T7 15 K 1,1 seg.
T8 3K 2,0 seg.
Los trabajos se gestionan, utilizando un algoritmo SJF, que es un algoritmo, que asigna
mayor prioridad a los trabajos que están menos tiempo en memoria.
Los trabajos entran en memoria según la estrategia del mejor ajuste.
¿Cuál es el tiempo medio de retorno o estancia?
Solución
TRABAJOS TAMAÑO TIEMPO
T1 22 K 1,2 seg.
T2 9K 2,3 seg.
T3 12 K 1,0 seg.
T4 10 K 1,3 seg.
T5 6K 2,2 seg.
T6 4K 3,0 seg.
T7 15 K 1,1 seg.
T8 3K 2,0 seg.
Página
15
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
0 1 1,1 1,2 2,3 3,1
3,3
1K 1K 1K 1K 1K 1K
T1 22 K T1 22 K T1 22 K 13 K 13 K
13 K
T2 9K T2 9K T2
9K
2K 2K 2K 2K
T7 15 K T7 15 K T6 4K T6 4K T6
4K T6 4K
T5 6K T5 6K T5 6K
T5 6K
T8 3K T8 3K T8 3K
3K
T3 12 K 2K 2K 2K 2K 2K
T4 10 K T4 10 K T4 10 K 10 K
10 K
FE=1K FE=3K FE=5K FE=18K FE=28K
FE=31K
3,3 3,5 4,1
1K 1K
13 K 13 K
T2 9K 9K
2K 2K
T6 4K T6 4K
6K 6K
3K 3K
2K 2K
10 K 10 K
FE=37 FE=46K
TIEMPOS DE RETORNO T. MEDIO RETORNO = 19,6/8 = 2,45
Página
16
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TRABAJOS ENTRADAS SALIDAS TOTALES
T1 0 1,2 1,2
T2 0 3,5 3,5
T3 0 1 1
T4 0 2,3 2,3
T5 0 3,3 3,3
T6 0 4,1 4,1
T7 0 1,1 1,1
T8 0 3,1 3,1
TOTAL = 19,6
Ejercicio 8
En un sistema multiprogramado, se dispone de una memoria de 100 Kb para programas
y asigna memoria con un sistema de particiones variables, siguiendo el criterio de mejor
ajuste.
La cola de trabajos se gestiona por prioridades, teniendo en cuenta, que la mayor
prioridad corresponde al menor numero y esta formada por los siguientes trabajos:
TRABAJO T. PRIORIDA TAMAÑO T. LLEGADA
S MEMORIA D
T1 0,2 msg. 1 10 K 0,3 msg.
T2 0,4 msg. 2 50 K 0,1 msg.
T3 0,1 msg. 1 70 K 0,2 msg.
T4 0,8 msg. 2 20 K 0,3 msg.
T5 0,7 msg. 3 80 k 0,1 msg.
T6 1,1 msg. 1 20 K 0,3 msg.
Teniendo en cuenta estos datos:
a) Especificar los estados por los que pasa la memoria.
b) Representar las tablas de fragmentos disponibles.
c) Indicar estado de la cola de espera antes y después de que sufra modificaciones.
d) Calcular el tiempo medio de retorno de los trabajos.
Solución
LLEGADAS TRABAJOS PRIORIDAD TAMAÑO [Link]
0,1msg. T2 2 50 KB 0,4 msg.
0,1 msg. T5 3 80 KB 0,1 msg.
0,2 msg. T3 1 70 KB 0,1 msg.
0,3 msg T1 1 10 KB 0,2 msg.
0,3 msg. T6 1 20 KB 1,1 msg.
0,3 msg. T4 2 20 KB 0,8 msg.
Página
17
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
0,1 0,2 0,3 0,4 0,5 1
100 K
T4 20 K T4 20 K T4 20 K
T6 20 K T6 20 K T6 20 K
50 K 50 K
T1 10 K T1 10 K
50 K
T2 50 K T2 50 K T2 50 K T2 50 K
60 K
0 K
100K 50K 50K 0 K 0 K 60K
1 1,1 1,2 1,3 1,4 1,5
T4 20 K 20 K 20 K 20 K 30 K
T6 20 K T6 20 K T6 20 K T6 20 K
T3 70 K
60 K 60 K 60 K 60 K
20 K 20 K 20 K
Página
18
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
60 K 60 K 60 K 60 K 100 K 100
K
1,5 1,6 1,7 1,8 1,9 2
20 K 20 K 20 K 20 K 20 K
T5 80 K T5 80 K T5 80 K T5 80 K T5 80 K
20 K 20 K 20 K 20 K 20
K
100 K
2 2,1 2,2
20 K 20 K
T5 80 K T5 80 K
20 K 20 K
100 K
TIEMPO DE RETORNO T. MEDIO RET = 5,9/6 =
0,98
Página
19
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TRAB. ENT. SAL. TOT
T1 0,3 0,5 0,2
T2 0,1 0,5 0,4
T3 0,2 1,5 1,3
T4 0,3 1,1 0,8
T5 0,1 2,2 2,1
T6 0,3 1,4 1,1 TOTAL = 5,9
ESTADO DE COLA DE ESPERA ANTES Y DESPUES DE MODIFICACIONES
INSTANTE C. DE ESPERA C. DE ESPERA TRABAJOS TRABAJO
TIEMPO ANTES CARGA DESPUES CARGA MEMORIA TERMINADO
0,1 T2,T5 T5 T2
0,2 T5,T3 T3,T5 T2
0,3 T3,T1,T6 T3,T5 T2,T1
T4,T5 T4,T6
0,5 T3,T5 T3,T5 T4,T6 T1,T2
1,1 T3,T5 T3,T5 T6 T4
1,4 T3,T5 T5 T3 T6
1,5 T5 T5 T3
2,2 T5
Ejercicio 9
Disponemos de una memoria de 150 Kb para introducir programas, que se gestiona
mediante particiones variables con compactación automática y gestionando la entrada
de trabajos en memoria mediante prioridades.
La estrategia que se utiliza, es la del mejor ajuste y la compactación se realiza, cuando
el tiempo que se tarda en realizarla, es menor que el tiempo que ha de esperar el trabajo
siguiente, para entrar en la memoria sin hacer compactación.
El sistema consume 0,1 msg en mover 1 Kb de una posición a otra de la memoria y
todos los trabajos se suponen que en el instante 0 msg se encuentran presentes en la cola
de espera.
Las prioridades de los trabajos son mayores si tienen asociado un numero mayor.
Página
20
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
TRABAJOS TAMAÑO T. EN PRIORIDAD
MEMORIA
T1 90 K 8 3
T2 60 K 5 4
T3 80 K 2 1
T4 40 K 10 5
T5 40 K 6 2
T6 100 K 2 6
Se desea resolver los siguientes puntos:
a) Representar los estados por los que pasa la memoria, especificando el momento
en que se realiza la compactación.
b) Especifique para cada uno de los estados las áreas, de fragmentos disponibles.
c) Indicar el estado de la cola de espera, antes y después de que sufra
modificaciones.
d) Calcular el tiempo medio de retorno de los trabajos.
Solución
TRABAJOS TAMAÑO T. MEMORIA PRIORIDAD
T1 90 KB 8 seg. 3
T2 60 KB 5 seg. 4
T3 80 KB 2 seg. 1
T4 40 KB 10 seg. 5
T5 40 KB 6 seg. 2
T6 100 KB 2 seg. 6
Página
21
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
0 1 2 6 11
14
150K
T2 60 K 20 K
30 K 30 K COMPACTACIÓN
T4 40
K
T5 40 K T5 40 K
40*0,1 = 4 sg T1 90 K T1 90
K
T3 80 K T3 80 K
NO SE REALIZA
0K
30K 30K
20K
150K 150K 0K
80K
90K
14 18 20 25
150
COMPACTACIÓN 10 K
T6 100 K
40*0,1 = 4 sg. 110 K
SI SE REALIZA
T4 40 K T4 40 K
0 K
20K 110K 110K 150K
90
Página
22
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
CALCULO DEL TIEMPO DE RETORNO MEDIO
TRABAJOS ENTRADA SALIDA T. RETORNO
T1 6 seg. 14 seg. 8 seg.
T2 6 seg. 11 seg. 5 seg.
T3 0 seg. 2 seg. 2 seg.
T4 11 seg. 25 seg. 14 seg.
T5 0 seg. 6 seg. 6 seg.
T6 18 seg. 20 seg. 2 seg.
TOTAL 37 sg.
TIEMPO DE RETORNO MEDIO = sg.
ESTADO DE COLA DE ESPERA ANTES Y DESPUES DE MODIFICACIONES
INSTANTE C. DE ESPERA C. DE ESPERA TRABAJOS TRABAJO
TIEMPO ANTES CARGA DESPUES CARGA MEMORIA TERMINADO
0 T3,T5,T1, T1,T2,T4,T6 T3,T5
T2,T4,T6
2 COMPACTACIÓN T1,T2,T4,T6 T5 T3
6 T1,T2,T4,T6 T4,T6 T1,T2 T5
11 T4,T6 T6 T1,T4 T2
14 T6 COMPACTACIÓN T4 T1
18 T6 T4,T6
20 T4 T6
25 T4
Página
23
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
Ejercicio 10
En el sistema operativo anterior, el gestor de memoria debe permitirnos que sea posible
ejecutar concurrentemente los 5 procesos anteriores. Disponemos para ello de un
espacio de disco de 131072 bytes (128K) y una memoria física de 32768 bytes (32K).
Sabemos que nuestros procesos al ser ejecutados tienen los siguientes parámetros:
proceso código pila datos
A 4096 2000 2048
B 16384 8200 8192
C 2048 1000 1024
D 16384 8200 8192
E 16384 8200 8192
Los datos indican el tamaño en bytes de cada uno de los segmentos que forman parte de
la imagen del proceso. Sabiendo que una página no puede contener partes de dos
segmentos diferentes (pila, código o datos), hemos de determinar el tamaño de página
que debería utilizar nuestro sistema y se barajan dos opciones: páginas de 4096 bytes
(4K) o páginas de 512 bytes (1/2K).
Se pide:
1. ¿Cuál sería la opción más apropiada, 4096 bytes o 512 bytes?. Justifica
totalmente la respuesta mostrando todos los cálculos que has necesitado para
llegar a dicha conclusión.
2. ¿Cuál es el formato de cada entrada de la Tabla de Páginas con el tamaño de
página elegido? Justifica el tamaño de los campos con direcciones. ¿Cuántas
entradas hay en la tabla de páginas (filas)?. Puedes añadir los bits que consideres
necesarios para el buen funcionamiento del sistema indicando para que van a ser
utilizados.
NOTA: si no has sabido contestar la pregunta 1 elige cualquiera de las dos opciones,
indícala expresamente y responde con ese dato a esta pregunta.
3. ¿Cuántas Tablas de Páginas habrá en este sistema?
Solución
SOLUCIÓN
1. NP = número de páginas que necesito
Página
24
Departamento de Informática
Grado en Ingeniería Informática
Sistemas Operativos
Ejercicios de memoria
proceso código NP4096 NP512 pila NP4096 NP512 datos NP4096 NP512
A 4096 1 8 2000 1 4 2048 1 4
B 16384 4 32 8200 3 17 8192 2 16
C 2048 1 4 1000 1 2 1024 1 2
D 16384 4 32 8200 3 17 8192 2 16
E 16384 4 32 8200 3 17 8192 2 16
Con páginas de 4096 bytes necesitamos para poder ejecutar los 5 procesos cargar en
memoria:
1+4+1+4+4+1+3+1+3+3+1+2+1+2+2 = 33 páginas
Puesto que el sistema tiene un espacio de direcciones de 131072, el número de páginas
posibles sería:
131072 / 4096 = 217 / 212 = 25 = 32 páginas.
Para poder ejecutar los procesos necesitamos 33 páginas al menos, y solo tenemos capacidad
para 32.
Con páginas de 512 bytes necesitamos para poder ejecutar los 5 procesos cargar en
memoria:
8+32+4+32+32+4+17+2+17+17+4+16+2+16+16 = 219 páginas
Puesto que el sistema tiene un espacio de direcciones de 131072, el número de páginas
posibles sería:
131072 / 512 = 217 / 29 = 28 = 256 páginas.
Para poder ejecutar los procesos necesitamos 219 páginas al menos, y disponemos de 256
luego si es posible ejecutar estos procesos.
Elegiremos pues páginas de 512 bytes.
2.
El número de marcos de que disponemos en el sistema es:
32768 / 512 = 215 / 29 = 26 necesitamos 6 bits para hacer referencia al marco de página.
marco de página P/A R M RO ...
6 bits 1 bit 1 bit 1 bit 1 bit 1 bit
Cada proceso tiene su propia tabla de páginas, luego el número de entradas en la tabla de
páginas dependerá de cual de los procesos (A, B, C, D o E) sea al que nos referimos. Para el
proceso A, necesitaremos 16 entradas, tantas como páginas forman parte del proceso.
3. Serían al menos 5 tablas de página, una para cada proceso.
Página
25