Transcript Memoria

Capítulo 3
Gestión de Memoria
3.1 Gestión básica de memoria
3.2 Intercambio (swapping)
3.3 Memoria virtual
3.4 Algoritmos de sustitución de páginas
3.5 Modelando algoritmos de sustitución de páginas
3.6 Cuestiones de diseño en sistemas paginados
3.7 Cuestiones de implementación
3.8 Segmentación
1
Introducción (1)
• Idealmente, los programadores quieren memoria
– mucha, rápida, no volátil, barata
• Historia
– 1980’s: MDS (64k), monousuario, CP/M, overlays
– 1980’s: VAX (4Mb), multiusuario (docenas)
– 2000’s: Windows, 64Mb (normal 512 Mb)
• Jerarquía de memorias
– Caché: poca, rápida, cara
– RAM: Mb, velocidad y precio medios
– Disco: Gb, lenta y barata
• Es un problema de costes
2
Introducción (2)
• Trabajos del gestor de memoria
– Qué memoria está libre/ocupada
– Asignación/liberación de memoria a procesos
– Intercambio RAM-disco
• Clases de gestores de memoria
– Con intercambio
• Swapping y paginación
– Sin intercambio
3
Gestión básica de memoria (1)
Monoprogramación sin intercambio ni paginación
• Solo un programa en memoria (junto con el SO)
• Se carga y se queda ahí hasta que acaba (CP/M)
BIOS
(Basic Input
Ouput System)
MSDOS
minis
palmTop, empotrados
4
Gestión básica de memoria (2)
Multiprogramación con particiones fijas
5
Gestión básica de memoria (3)
Multiprogramación con particiones fijas
Planificación: queda libre una partición, ¿qué trabajo cargar?
– El primero en la cola que quepa
• Fragmentación interna
– El más grande de la cola que quepa
• Se perjudica a los pequeños (y debe ser al revés)
– Disponer de una partición pequeña
– No retrasar un trabajo más de k veces
– OS/360, MFT (Multiprogramming with a Fixed number of
Task)
6
Gestión básica de memoria (4)
Modelo de multiprogramación
Grado de multiprogramación
La utilización de CPU es función del nº. de procesos en memoria
7
Gestión básica de memoria (5)
Modelo de multiprogramación
- Los procesos son independientes
- n: grado de multiprogramación
- p: fracción de tiempo que un proceso está esperando una I/O
- Utilización de la CPU = 1 – pn
- Los procesos no son independientes: 1 sola CPU-> los otros en preparados
(esperando).
Aproximación válida. Ejemplo:
32Mb memoria,
el SO ocupa 16Mb
cada proceso de usuario 4Mb => n = 4; si p=0.8, CPU = 60%
Si compramos 16Mb => n = 8; si p=0.8, CPU = 83%; ganancia: 38%
Si compramos otros 16Mb CPU=93%; ganancia: 12%
(La sección 4.1.4 no entra para el examen)
8
Gestión básica de memoria (6)
Reubicación y protección
Reubicación: ¿dónde reside un programa? estática, dinámica
Las direcciones de un programa suelen ser relativas a su dirección de comienzo.
PERO ... al montar un programa no se sabe dónde se va a ejecutar.
SOLUCIONES
 Modificación de direcciones durante la carga (estático)
 Registro de Reubicación (o registro base)
(permite reubicación dinámica)
6000
1345
A
Dir.
Virtual
4418
0
+
Dirección
Real
0
B
4200
747
Registro de
Reubicación
Ra = 2854
Rb = 4418
Rc = 512
5166
B
A
2854
2341
0
C
Espacio Virtual
512
C
0
Espacio Real
9
Gestión básica de memoria (7)
Reubicación y protección
Protección: acceso indiscriminado a cualquier área de memoria
tamaño del programa
dirección comienzo partición
Dirección
Virtual
¡
Registro
Límite
Registro
Base
<
+
ERROR de
direccionamiento
RAM
!
10
Intercambio (swapping) (1)
Batch
Tiempo
Compartido
Se aceptan tantos trabajos como
quepan en memoria
Suele haber más procesos de usuario
de los que caben en memoria
¡ y hay que atenderlos a todos!
• Dos aproximaciones:
– Intercambio (entre RAM y disco)
– Memoria virtual (solo una parte del programa en RAM)
11
Intercambio (swapping) (2)
PARTICIONES DE TAMAÑO VARIABLE
(el nº, tamaño y dirección varía con el tiempo)
¡ Fragmentación Externa !
COMPACTACIÓN
12
Intercambio (swapping) (3)
P.ejem: 4 bytes: 40ns. 256Mb: 2,7 s.
T4.4 (1ed) Ciertos sistemas con intercambio eliminan la fragmentación externa
mediante compactación. Suponga que una computadora con 1Mb de memoria
para usuario hace una compactación cada segundo. Si tarda 0,5 microseg
en copiar un byte y el tamaño medio de los huecos es de 0,4 el tamaño medio
de los segmentos ¿Cuál es la fracción del tiempo total de CPU que se utiliza
para la compactación?
13
Intercambio (swapping) (4)
¿Puede crecer dinámicamente la memoria de un proceso?
Para
crecimiento
B
Pila de B
En uso
Datos de B
Código de B
Para
crecimiento
A
(a)
S. O.
Para
crecimiento
Pila de A
Para
crecimiento
Datos de A
Código de A
En uso
(b)
S. O.
14
Intercambio (swapping) (5)
Gestión de memoria con mapa de bits
Se debe llevar la cuenta
de la memoria utilizada y
de los huecos libres
Mapa de Bits
Lista de Bloques Libres
Sistema Buddy
Mapa de Bits
A
0
11111000
11111111
11001111
11111000
00111111
B
8
C
16
D
E
24
32
¿Tamaño de la Unidad de Asignación?
Pequeño
 Mapa Grande
Grande
 Mapa Pequeño
 Fragmentación Interna
Es caro buscar una zona libre de tamaño K.
15
Intercambio (swapping) (6)
Gestión de memoria con listas enlazadas
16
Intercambio (swapping) (7)
Gestión de memoria con listas enlazadas
T4.4 Se trata de comparar la memoria necesaria para mantener la pista de los
bloques de memoria libre utilizando un mapa de bits o una lista enlazada.
La memoria es de 128 Mb y la unidad de asignación es de n bytes. Para
El caso de la lista enlazada, suponer que la memoria consiste de una
secuencia alternada de segmentos y huecos, cada uno de 64kb. También
suponer que cada nodo en la lista necesita una dirección de memoria de
32 bits, una longitud de 16 bits y un campo (siguiente nodo) de 16 bits.
¿Cuántos bytes se necesitan para mantener el mapa de bits y cuántos para
mantener la lista enlazada? ¿Qué método es el mejor?
17
Intercambio (swapping) (8)
Gestión de memoria con listas enlazadas
Lista de Bloques Libres (ordenados por dirección: liberación)
18
Intercambio (swapping) (9)
Gestión de memoria con listas enlazadas
Lista de Bloques Libres (ordenados por dirección: asignación)
• El
primero que sirva
• siempre se comienza en la cabecera
• se generan muchos huecos pequeños al principio
• Siguiente que sirva
• lista circular; la cabecera se desplaza
• fragmentación externa: distribución uniforme
• El que mejor se adapte
• recorrer toda la lista: lento
• desperdicia más memoria
• El que peor se adapte
• no es buena idea
19
Intercambio (swapping) (10)
Gestión de memoria con listas enlazadas
Lista de Bloques Libres (ordenados por tamaño: asignación)
• Orden
creciente de tamaños
• el primero que sirva = el que mejor se adapte
• siguiente que sirva no tiene sentido
• sobrecarga: mantener la lista ordenada en:
asignación y
liberación (¿compactar con vecinos?)
• Algoritmo Quick Fit
• lista separadas por tamaño (2k, 4k, …)
• asignación rápida; liberación: compactación
• Cada nodo de la lista puede ser el propio bloque
20
Intercambio (swapping) (11)
T4.5 Considerar un sistema de intercambio en el que la memoria consiste de
Los siguientes huecos (en tamaño) en el siguiente orden en memoria: 10kb,
4kb, 20kb, 18kb, 7kb, 9kb, 12kb y 15kb ¿Qué hueco se elegirá para
Satisfacer la próxima petición de memoria:
a) 12kb
b) 10kb
c) 9kb
Para los algoritmos:
1) El primero que sirva
2) El que mejor se adapte
3) El que peor se adapte
4) El siguiente que sirva
1)
2)
3)
4)
20, 10, 18
12, 10, 9
20, 18, 15
20, 18, 9
21
Memoria Virtual (1)
No es necesario tener todo el programa en memoria RAM
•Se podrían ejecutar programas mayores que la RAM
•Se podrían tener más procesos en memoria principal
•Menos E/S por intercambio: más velocidad
Se ocupa de tener la memoria de un proceso partida en
trozos, e ir cargando en memoria principal el trozo que es
necesario para poder continuar su ejecución.
Trozos Iguales
Trozos de
tamaño variable
PAGINACIÓN
SEGMENTACIÓN
22
Memoria Virtual (2). Paginación
Posición y función de la MMU
23
Memoria Virtual (3). Paginación
La memoria virtual se divide en páginas
La memoria física en marcos de página
tamaño página = tamaño marco
Conversión:
MOV REG, 0
- Dirección 0 está en página 0
- Página 0 está en marco 2
- Dirección física es 8192
MOV REG, 8192
- Dirección 8192 está en página 2
- Página 2 está en marco 6
- Dirección física es 24576
¿ MOV REG, 32780 ?
24
Memoria Virtual (4). Paginación
32780 está en la página 8 (32768)
La página tiene X
La MMU genera un TRAP
FALTA de PÁGINA:
1.
2.
3.
4.
Elegir víctima
Escribir a disco (si hace falta)
Cargar la nueva página.
Reiniciar MOV REG, 32780
P.ejem:
1. Víctima la del marco 1.
2. ¿escribir? Indicar que página 1: X
3. Cargar página 8 en marco 1.
Indicar que página 8 en marco 1
1. Reiniciar MOV REG, 32780
Dirección física: 4108
25
Memoria Virtual (5). Paginación
26
Memoria Virtual (6). Tabla de páginas
Tabla de páginas: marco = TP (página)
•
•
Tamaño de la tabla
Velocidad de traducción
Pag. 0
Pag. 1
Pag. 2
Pag. 3
CPU
dir.
virtual
Tabla de
Páginas
Marco 0
Marco 1
...
Marco 2
...
...
...
...
...
...
...
...
...
Marco m
...
Pag. n
Memoria
Principal
Espacio de
Direcciones Virtuales
27
Memoria Virtual (7). Tabla de páginas
Tamaño de la tabla:
•
•
•
Direcciones virtuales = 32 bits (232 = 4Gb)
Si tamaño página = 4Kb (212)
Número de páginas = 232/212 = 220 = 1Mg = nº de entradas TP
•
•
•
Dirección virtual = 64 bits (264)
Si tamaño de página = 4Kb (212)
Número de páginas = 264/212 = 252=222*230=222 G =
4,5 Peta entradas = 4,5 * 1015 entradas
Cada proceso tiene su propia tabla de páginas.
El nº de entrada * tamaño (bytes) de cada entrada.
28
Memoria Virtual (8). Tabla de páginas
Tablas de página multinivel:
- Evita mantener todas las
tablas de página en memoria
Stack
Gap
Datos
4 Mb (210*212=22*220)
Texto
29
Memoria Virtual (9). Tabla de páginas
dirección virtual: 0x00403004 (4206596, 0000 0000 0100 0000 0011 0000 0000 0100)
PT1 = 0000 0000 01 (4M-8M)
Solo cargadas 4 TP
PT2 = 00 0000 0011
Offset = 0000 0000 0100
+
dir. física
1023
3
2
1
0
nº marco
12288
4Mb (4194304))
30
Memoria Virtual (10). Tabla de páginas
Estructura de una entrada:
32 bits aprox.
Número de marco en el que reside
Presente/ausente: 1 está; 0 no está.
Protección: 0 RW; 1 R
o
RWX
Modificada (bit de ensuciado): 1 sucia; 0 limpia
Referenciada: 0 cuando se carga; 1 cuando RW. Para sustitución
Caching disabled: máquinas con E/S mapeada en memoria. No usar una copia
vieja de la caché (de la página que contiene la memoria E/S)
31
Memoria Virtual (11). Tabla de páginas
T4.13 Una computadora con direcciones de 32 bits utiliza una tabla de páginas de
dos niveles. Las direcciones virtuales se dividen en un campo de 9 bits para
la tabla de nivel superior y un campo de 11 bits para la tabla de nivel secundario;
el resto es para el desplazamiento dentro de una página. ¿Cuál es el tamaño
de la página? ¿Cuántas páginas existen en el espacio virtual de
direccionamiento?
32
Memoria Virtual (12). TLB
Tabla de páginas: Velocidad de traducción
•
•
Una instrucción: 1, 2 o más referencias a memoria
Cada referencia a memoria: consulta a la TP
Soluciones:
• Todas las entradas en registros
• Muy caro (hw)
• Mucho tiempo en cambio contexto
• Toda la tabla en memoria (de todos los procesos)
• Registro RBTP (Registro Base de la Tabla de Páginas)
• Dir. Entrada = [RBTP] + (nº.pag * tamaño de la entrada)
• Cambio de contexto: recargar RBTP
• Mantener en memoria sólo la TP del proceso ejecutándose
• ¿Otras soluciones?
33
Memoria Virtual (13). TLB
Localidad referencial
TLB (Translation Lookaside Buffers) (memoria asociativa)
dentro de la MMU
(La sección “Software TLB Management” no entra para el examen)
34
Memoria Virtual (14)
T4.17 En un ordenador los procesos tienen un espacio de direccionamiento de
1024 páginas y mantienen en memoria su tabla de páginas. La sobrecarga
por lectura de una palabra desde la tabla de páginas es de 5 ns. Para reducir
esta sobrecarga, el ordenador tiene una TLB con 32 entradas (página virtual,
num. marco) que tarda 1 ns en realizar una consulta. ¿Cuál debe ser la tasa
de aciertos en dicha memoria asociativa para reducir la sobrecarga a 2 ns.?
35
Memoria Virtual (15)
Tabla invertida de páginas
Tabla de páginas: Velocidad de traducción
(Proceso, página virtual)
36
Memoria Virtual (16).
T4.21 Un ordenador con páginas de 8kB, memoria principal de 256MB y un
espacio de direccionamiento virtual de 64GB, utiliza una tabla invertida de
páginas para implementar su memoria virtual. ¿Cómo de grande debería ser la
tabla hash para asegurar que por término medio la cadena hash tiene una longitud
menor que 1? Suponga que el tamaño de la tabla hash es potencia de 2.
37
Memoria Virtual (17)
T4.12 Una máquina tiene un espacio de direcciones de 32 bits y una página de 8k.
la tabla de páginas está en hardware, con una palabra de 32 bits por cada
entrada. Al iniciar un proceso, la tabla de páginas se copia al hardware desde
la memoria, con una palabra cada 100ns. Si cada proceso se ejecuta durante
100ms (incluyendo el tiempo de carga de la tabla de páginas), ¿cuál es la
fracción del tiempo de CPU que se dedica a la carga de las tablas de páginas?
38
Algoritmos de sustitución de páginas (1)
Se produce una falta de página y no hay memoria libre:
1.
2.
3.
4.
5.
Elegir victima
Llevar victima a disco (si sucia)
En TP: victima no presente
Traer nueva página al marco donde estaba la víctima
Actualizar TP: nueva está presente y marco y demás info
¿Cómo elegir la víctima?
Algoritmos de sustitución de página
Problemas similares:
• Memoria caché
• Caché de un servidor web
39
Algoritmos de sustitución de páginas (2)
Objetivo de todos los algoritmos de sustitución:
Elegir páginas que generen el menor número de faltas de página.
En todos los algoritmos hay una constante: el nº de marcos existentes
Algoritmo Óptimo de sustitución de páginas
Quitar la página que tardará más tiempo en ser referenciada
Imposible implementar
40
Algoritmos de sustitución de páginas (3)
No utilizada recientemente (NRU: Not Recently Used)
Basado en los bits R (referenciada) y M (modificada, ensuciado)
Inicialmente todas las páginas (en TP) R=0 M=0
Cada interrupción de reloj, todas las páginas R=0
Clase 0:
Clase 1:
Clase 2:
Clase 3:
R M
0 0
0 1
1 0
1 1
no referenciada, no modificada
no referenciada, modificada
referenciada, no modificada
referenciada, modificada
Seleccionar una de la menor clase no vacía.
¿Por qué mejor eliminar de la clase 1 antes que de la clase 2?
41
Algoritmos de sustitución de páginas (4)
FIFO (First-In First-Out)
El SO mantiene una lista de todas las páginas en memoria
La primera es la más vieja; la última, la más reciente
•
•
7
cab.
cola
Eliminar la primera de la lista
Añadir la nueva a la cola de la lista
0
7
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
7
7
0
0
1
2
3
0
4
2
2
2
3
0
0
0
1
2
7
0
0
1
1
2
3
0
4
2
3
3
3
0
1
1
1
2
7
0
1
2
2
3
0
4
2
3
0
0
0
1
2
2
2
7
0
1
15 Faltas de Página
Desventaja: la página más vieja puede que sea frecuentemente accedida
42
Algoritmos de sustitución de páginas (5)
FIFO (Anomalía de Belady)
Suposición: cuantos más marcos menos faltas de página, ¡¡ PERO !!
43
Algoritmos de sustitución de páginas (6)
Segunda Oportunidad (Second Chance)
Variante del FIFO para evitar sacar una página (vieja) muy utilizada
Si es la más vieja y no ha sido referenciada (R=0), es la víctima
Si es la más vieja y ha sido referenciada (R=1) entonces:
- R=0
- poner al final de la cola (como si fuese la más nueva)
- Mirar la siguiente página en la lista
44
Algoritmos de sustitución de páginas (7)
Segunda oportunidad (Reloj)
Segunda oportunidad mueve páginas al final de la lista:
Si todas tienen R=1, las mueve todas (al final es FIFO)
Mejora mantener una lista circular (en forma de reloj)
45
Algoritmos de sustitución de páginas (8)
Menos recientemente utilizada (LRU: Least Recently Used)
Supone que las páginas utilizadas recientemente, se utilizarán de nuevo
Víctima: la página que lleva más tiempo sin ser referenciada
Hay que mantener una lista de todas las páginas en memoria
Cabeza: más recientemente utilizada
Cola: menos recientemente utilizada
Problemas:
• ¡¡actualizar la lista en cada referencia a memoria!!
• Sobrecarga en buscar una página, eliminarla, moverla a la cabeza
Implementaciones
– Por hardware
– Por software
46
Algoritmos de sustitución de páginas (9)
Menos recientemente utilizada (LRU)
Hardware (1): Contador por cada entrada en la TP
En HW hay un contador C especial
C se incrementa después de ejecutar cada instrucción
Después de cada referencia a memoria, se almacena C en la entrada
correspondiente
Se elige como victima la que tenga el contador más pequeño
Problemas eficiencia:
-
Almacenar el contador en cada referencia a memoria
Buscar en la TP el contador más pequeño
Hardware (2): matriz NxN (N = nº marcos que existen)
Se referencia el marco k:
1. Fila k a 1’s
2. Columna k a 0`s
La fila con menor valor binario es la menos recientemente utilizada
47
Algoritmos de sustitución de páginas (10)
Menos recientemente utilizada (LRU)
0
1
2
3
1
0
3
2
2
3
48
Algoritmos de sustitución de páginas (11)
Menos recientemente utilizada (LRU)
Software (1): Mantener una pila con las páginas en memoria
Cuando se referencia una página, a la cima
La página del fondo de la pila es la menos recientemente usada
Problemas eficiencia: actualizar la pila en cada referencia a
memoria
7
0
7
cima
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
7
7
0
1
2
2
3
0
4
2
2
0
3
3
1
2
0
1
7
0
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
12 Faltas de Página. Con FIFO 15
49
Algoritmos de sustitución de páginas (12)
Menos recientemente utilizada (LRU)
Software (2): aging
Cada página con un contador inicialmente a 0
Cada interrupción de reloj mirar el contador de cada página
-
-
Desplazar un bit a la derecha cada contador
Sumar a la izquierda el bit R
La víctima es la página con menor contador
Problemas:
-
No se distingue qué página fue la última referenciada en un mismo
intervalo de reloj
Los contadores tienen un número finito de bits
50
Algoritmos de sustitución de páginas (13)
Menos recientemente utilizada (LRU)
Software (2): aging
51
Algoritmos de sustitución de páginas (14)
Resumen de los algoritmos de sustitución
Optimo: No implementable
No utilizada recientemente: fácil implementar, pero los hay mejores
FIFO: puede expulsar páginas importantes
Segunda oportunidad: mejora sobre FIFO
Segunda oportunidad (reloj): más eficiente que el anterior
LRU: excelente, pero difícil de implementar
Aging: buena aproximación a LRU
(Las secciones 4.4.8 y 4.4.9 no entra para el examen)
52
Algoritmos de sustitución de páginas (15)
T4.29 Un ordenador tiene cuatro marcos de página. El tiempo de carga, el
tiempo del último acceso y los bits R y M para cada página son los que
aparecen a continuación.
Página
0
1
2
3
(a)
(b)
(c)
(d)
cargada
126
230
120
160
última referencia
280
265
270
285
R
1
0
0
1
M
0
0
0
1
¿Qué pagina es reemplazada por NRU?
¿Qué pagina es reemplazada por FIFO?
¿Qué pagina es reemplazada por LRU?
¿Qué pagina es reemplazada por segunda oportunidad?
53
Cuestiones de diseño en sistemas paginados (1)
Conjunto de Trabajo y Trasiego
Los programas exhiben localidad en sus referencias
Conjunto de Trabajo:
El conjunto de páginas que actualmente está usando un proceso
Trasiego (Thrashing)
Un proceso causa faltas de página cada pocas instrucciones
Solución: mantener en memoria el conjunto de trabajo
Problema: ¿Qué páginas forman el conjunto de trabajo?
W (k,t): tamaño del conjunto de trabajo
- en el instante t
- tomando las k últimas referencias
54
Cuestiones de diseño en sistemas paginados (2)
Conjunto de Trabajo y Trasiego
k
Debe determinarse el valor de k para obtener w(k,t)
W(k,t) indica el conjunto de marcos que necesita un proceso en t
55
Cuestiones de diseño en sistemas paginados (3)
Política de asignación local vs. global
Local: asignación de memoria constante
Global: asignación de memoria variable
56
Cuestiones de diseño en sistemas paginados (4)
Política de asignación local vs. global
La global da mejores resultados si cambia el tamaño conjunto de trabajo
¿Cuánta memoria se asigna a cada proceso?
Algoritmo PFF (Page Fault Frequency)
indica cuándo incrementar/decrementar el tamaño del conjunto de trabajo
no indica qué página reemplazar frente a una falta de página
57
Cuestiones de diseño en sistemas paginados (5)
Control de carga
• A pesar de todo, el sistema puede entrar en trasiego
• PPF indica
– Algún proceso necesita más memoria
– Pero no que un proceso necesita menos
• Solución :
Reducir el número de procesos que compiten por memoria
– Sacar uno o más a disco y repartir sus páginas
– Reconsiderar el grado de multiprogramación
58
Cuestiones de diseño en sistemas paginados (6)
Tamaño de la página
Deben considerarse varios factores en competencia.
No existe ningún óptimo global
Si el tamaño de un programa no
llena un número exacto de páginas
Programa:
26.000 bytes
Tamaño de página: 4.096 bytes
¡
Queda espacio sin utilizar
en la última de ellas
Necesita 7 páginas
Ocupa 6 páginas completas: 6x4.096 = 24.576
De la última página ocupa: 26.000-24.576 = 1.424
Desaprovecha:
!
4.096-1.424 = 2.672
Fragmentación
Interna
Para un tamaño de página t,
por término medio, se desaprovecha t/2 por programa
Interesan páginas pequeñas
59
Cuestiones de diseño en sistemas paginados (7)
Tamaño de la página
PERO
Páginas pequeñas
Muchas páginas
Tabla de Páginas grande
Hw. más caro, máquina más cara
Más tiempo de transferencia desde memoria
secundaria
60
Cuestiones de diseño en sistemas paginados (8)
Tamaño de la página
Si solo consideramos la fragmentación interna y la tabla de páginas:
s, tamaño del programa (bytes)
p, tamaño de la página (bytes)
e, tamaño de cada entrada a la TP (bytes)
Desperdicio = se/p + p/2
Primera derivada con respecto a p e igualando a 0:
-se/p2 + ½ = 0;
p  2se
s = 1Mb,
p = 4kb
e = 8 bytes
(Las secciones 4.6.4, 4.6.5, 4.6.6 y 4.6.7 no entra para el examen)
61
Cuestiones de diseño en sistemas paginados (9)
T4.31 Un ordenador proporciona a cada proceso 65536 bytes de espacio virtual
De direccionamiento, dividido en páginas de 4KB. Un programa particular tiene un
segmento de texto de tamaño 32768 bytes, un tamaño de datos de 16386 bytes
y un tamaño de pila de 15870 bytes ¿Cabe este programa en el espacio de
direccionamiento? Si el tamaño de la página fuese de 512 bytes ¿cabría?
Recuerde que una página no debe contener partes de dos segmentos distintos.
62