2. Facultad de Ciencias
Informáticas
Misión Visión
Formar profesionales Ser una unidad con alto
eficientes en el campo de las prestigio académico con
Ciencias Informáticas, que eficiencia, transparencia y
con honestidad, equidad y calidad en la educación,
solidaridad, den respuesta a organizada en sus
las necesidades de la actividades, protagonista del
sociedad elevando su nivel de proceso regional y nacional.
vida.
3. REFLEXIÓN
En ocasiones tendrás que ayudar a los
demás y otras veces recibirás ayuda. Pero
entiende y aplica bien la palabra ayuda, pues
es fácil crear vicios de tanto “ayudar” o caer
en ellos de tanto recibir “ayuda”.
5. ADMINISTRACIÓN DEL
ALMACENAMIENTO
Para mejorar la Debido a que la
El propósito principal utilización de los memoria principal
de un sistema de CPU como velocidad resulta pequeña para
computo es ejecutar de respuestas a los acomodar todos los
programas, estos usuario , la datos y programas de
juntos con los datos, computadora debe manera permanente
deben estar en la mantener varios el sistema de
memoria principal procesos en la computo debe
durante la memoria. proporcionar un
ejecución. almacenamiento
secundario.
7. ADMINISTRACIÓN DE LA MEMORIA
Los algoritmos de administración de memoria varían desde:
Un enfoque A nivel de Hasta estrategias
Y segmentación
primitivo máquina de paginación
Cada enfoque tiene sus propias
ventajas y desventajas.
La selección de un método de
administración de la memoria para un
sistema específico depende de muchos
factores.
Especialmente del diseño
del hardware del sistema
MUCHOS ALGORITMOS REQUIEREN
SOPORTE DEL HARDWARE
8. ADMINISTRACIÓN DE LA MEMORIA
9.1
ANTECEDENTES
La memoria es un componente central para la operación de un sistema de cómputo
moderno, la cual consiste en un gran arreglo de palabras o bytes, cada uno con su
propia dirección. La CPU acude por instrucciones a la memoria de acuerdo con el valor
del contador de programa. Estas instrucciones pueden originar, a su vez, carga y
almacenamiento de y hacia direcciones específicas de memoria
Contador de instrucción,
índice, indirección,
direcciones literales
La unidad de memoria solo ve un flujo de
direcciones de memoria; no sabe cómo se
generan ni lo que son.
Instrucciones o Datos
Entonces, podemos ignorar cómo un programa genera una dirección de
memoria. Ya que sólo nos interesa la secuencia de direcciones de memoria
generadas por el programa que está en ejecución.
10. 9.1.1 VINCULACIÓN DE DIRECCIONES
Es un conjunto de procesos que están en el disco y esperando ser llevados a la
memoria para su ejecución.
PROCESO
PROCESO
PROCESO
PROCESO
Las direcciones pueden representarse de diferentes formas
durante estos pasos, que por lo general son simbólicas ..
11. 9.1.1 VINCULACIÓN DE DIRECCIONES
Procesamiento de pasos múltiples de un programa de usuario
Progra
ma
Si se conoce al momento de la fuente
compilación en donde residirá el
proceso en la memoria, entonces se Compilador o Tiempo de compilación
puede generar un código absoluto. ensamblador
Otros
módul Módulo
Objeto
os
objeto
Si no se conoce al momento de la
compilación en donde residirá el
proceso en la memoria, entonces el Editor de enlace
compilador debe generar un código
relocalizable Biblioteca
del Módulo
sistema
de Tiempo de carga
Carga
Si el proceso puede moverse durante
su ejecucion de un segmento de Cargador
memoria a otro, entonces la
Biblioteca
vinculacion debe ser demorada hasta del Imagen de Tiempo de ejecución
el momento de ejecución. sistema memoria binaria
(tiempo de corrida)
cargada en memoria
dinamica
mente
13. Los métodos de
vinculación de
direcciones en el
momento de la
compilación y en
el de la carga dan
por resultado un
ambiente en
donde las
direcciones
lógicas y físicas
son las mismas.
El esquema de
vinculación de
direcciones da por
resultado un
ambiente en el
que las
direcciones
lógicas y físicas
difieren.
14. El conjunto de
todas las
direcciones
lógicas generadas El conjunto de
por un programa todas las Por lo tanto, en el
es un espacio de direcciones físicas esquema de
direcciones correspondientes vinculación de
lógicas. a estas direcciones en el
direcciones tiempo de
lógicas es el ejecución, los
espacio de espacios de
direcciones direcciones
físicas. lógicas y físicas
difieren.
15. El mapeo en tiempo de ejecución de direcciones virtuales (direcciones lógicas) en direcciones
físicas es realizado por la unidad de administración de memoria(memory-management-unit,
MMU) que es un dispositivo de hardware. Realizaremos este mapeo con un esquema simple de
MMU, que es una generalización del esquema de registros base.
Como podemos observar en la figura
este método requiere un soporte de
hardware. El registro base ahora se
registro de llama registro de relocalización, el
relocalización valor en este registro se agrega a cada
14000 dirección generada por un proceso de
dirección dirección usuario en el momento en que se envía
lógica física
CPU + memoria a la memoria.
346 14346
Por ejemplo, si la base se encuentra en
14000, el intento por parte del usuario
de direccionar la localidad 0 se
MMU relocaliza dinámicamente en la
localidad 14000; un acceso a la
Relocalización dinámica empleando un registro de relocalización localidad 346 se mapea en la localidad
14346.
16. El programa de usuario nunca ve las direcciones físicas reales.
El programa puede crear un apuntador a
la localidad 346, almacenarlo en
memoria, manipularlo, compararlo con
otras direcciones (todo ello como el
número 346).
Sólo cuando este número se utiliza como
una dirección de memoria se relocaliza
con relación al registro base.
El programa de usuario maneja
direcciones lógicas.
El hardware de mapeo de memoria
convierte las direcciones lógicas en
direcciones físicas antes de ser utilizadas.
18. 9.1.3 CARGA DINÁMICA
El tamaño de un proceso está limitado por el tamaño de la memoria
física. Para conseguir una mejor utilización del espacio de memoria,
podemos emplear la carga dinámica.
Con la carga dinámica una rutina
no se carga sino hasta que sea
llamada.
Todas las rutinas se mantienen en
el disco en un formato de carga
re localizable.
El programa principal se carga en
la memoria y se ejecuta.
21. 9.1.4 ENLACE DINÁMICO Y BIBLIOTECAS COMPARTIDAS
El concepto de enlaces dinámicos es similar al de carga dinámica . En lugar de
posponer la carga es el enlace el que se pospone.
El enlace dinámico incluye un stub en la
Característica usada con bibliotecas del
imagen por cada referencia a la rutina
sistema.
de la biblioteca.
El stub es un pequeño código que indica como localizar la rutina de biblioteca
apropiada en memoria.
El stub verifica si la rutina ya se El stub se sustituye así mismo con la
encuentra en memoria. dirección de la rutina y ejecuta la rutina.
Una biblioteca puede ser reemplazada por una nueva versión, y los programas que
hacen referencia a la biblioteca usaran la nueva versión.
La información de la nueva versión se incluye tanto en el programa como en la
biblioteca.
23. 9.1.5
S
La idea de las superposiciones
U
consiste en mantener en
P
memoria solo aquellas
E
instrucciones y datos que se
(
R
O necesitan en un momento dado.
V
P
E
O
R
S
L
I
A
C
Y
I
S Cuando se necesitan otras
O
)
N instrucciones, éstas se cargan en
E el espacio que estaba ocupado
S previamente por las
instrucciones que ya no se
necesitan.
25. 9.2 INTERCAMBIO (SWAPPING)
Un proceso necesita
estar en memoria para
ser ejecutado. Sin
embargo, un proceso
puede intercambiarse
temporalmente de la
memoria a un
almacén de respaldo.
26. 9.2 INTERCAMBIO (SWAPPING)
Intercambio de dos procesos utilizando un disco como almacén de respaldo.
Sistema
Operativo
Intercambio
hacia
1 Proceso
afuera
Intercambio
2 hacia Proceso
adentro
Espacio de
usuario
Almacén de respaldo
Mientras tanto, el planificador de la CPU asignará una porción de tiempo a
algún otro proceso en memoria.
27. 9.2 INTERCAMBIO (SWAPPING)
Una variante de esta política de intercambio se emplea para los
algoritmos de planificación con base de prioridades.
Si llega un proceso de mayor prioridad y quiere servicio, el
administrador de la memoria puede intercambiar fuera de la memoria
el proceso de menor prioridad de manera que pueda cargar u ejecutar
el proceso de mayor prioridad
Cuando termine el proceso de mayor prioridad , el proceso de menor
prioridad puede ser intercambiado de regreso a la memoria y continuar.
Esta variante del intercambio también se conoce como desenrollar,
enrollar.
28. 9.2 INTERCAMBIO (SWAPPING)
• Debe quedar claro que el tiempo de conmutación de contexto
en un sistema de intercambio es de tipo bastante elevado
• Para la utilización eficiente de la CPU queremos que el tiempo de
ejecución para cada proceso sea largo con relación al tiempo de
intercambio
• El tiempo de transferencia es directamente proporcional a la
cantidad de memoria intercambiada
• Existen otras relaciones de intercambio
29. HENRY ANDRÉS MENDOZA
JAQUELINE MARIBEL INTRIAGO MACÍAS
9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
30. Asignación de memoria contigua
Con los registros de relocalización y limite, cada dirección lógica debe ser menor que el
limite; la MMU mapea dinámicamente la dirección lógica agregando el valor del registro de
relocalización y esta dirección mapeada se envía a la memoria
REGISTRO REGISTRO DE
LIMITE RELOCALIZACION
SI MEMORIA
CPU < +
Dirección
lógica Dirección
física
NO
trampa (trap);error de direccionamiento
Cuando el planificador de la CPU selecciona un proceso para su ejecución, el
despachador caga los registros de relocalización y limites con los valores correctos como
parte de la comunicación en contexto.
31. Asignación de memoria contigua
Uno de los métodos mas sencillos
es dividir la memoria en particiones
de tamaño fijo. Cada partición
puede contener un proceso. De
esta forma la multiprogramación
queda limitado por el numero de
particiones
El sistema operativo contiene una
tabla que indica que partes necesita
Cuando llega un proceso y de la
memoria,están libresun cuales lo
memoria buscamos y bloque
suficientemente grande para este
ocupadas. Inicialmente toda la
memoria esta disponible para los le
proceso, si encontramos alguno
asignamos tanta memoriaes
procesos de usuario, que como
consideradoel resto queda disponible
necesite y como hueco que es un
para satisfacer solicitudes futuras
espacio grande de memoria
disponible.
32. 9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Esto es un caso particular al del problema de asignación dinámica de
almacenamiento que consiste en como satisfacer una solicitud de
tamaño n a partir de una lista de huecos libres.
Existen varias soluciones a esto:
Se hace una búsqueda en el conjunto de huecos
para determinar cual es el mejor hueco para asignar.
Las estrategias del primer ajuste, el mejor ajuste y el peor ajuste son las
que se emplean comúnmente para seleccionar huecos libre del
conjunto de huecos disponibles.
33. 9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Primer ajuste: asigna el primer hueco que sea suficientemente grande.
La búsqueda puede comenzar ya sea al principio del conjunto de huecos o
donde termino la búsqueda previa de primer ajuste.
Mejor ajuste: asigna el hueco mas pequeño que sea suficientemente
grande. Debemos hacer la búsqueda en toda la lista o puede que la lista ya
este ordenada por su tamaño.
Peor ajuste: asigna el hueco mas grande.
Se hace la búsqueda de toda la lista.
Se ha demostrado que tanto el primer ajuste como el mejor ajuste son mejores
que el peor ajuste con respecto a su reducción de tiempo y a su utilización de
almacenamiento.
34. 9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Los algoritmos que se acaban de presentar de una fragmentación externa.
La fragmentación externa ocurre cuando existe suficiente espacio de
memoria total para satisfacer una solicitud, pero no es contigua; el
almacenamiento se fragmenta en un gran numero de huecos pequeños.
Este problema de fragmentación puede ser grave. En el peor de los casos
podría tener un bloque de memoria libre entre cada procesos.
Una solución al problema de la fragmentación es la compactación.
La meta es reorganizar los contenidos de la memoria para colocar
junta toda la memoria libre en un bloque grande.
Otra solución es permitir que el espacio de direcciones lógicas de un proceso
no sea contiguo para dejar que a un proceso se le asigne memoria física
siempre que esta este disponible
35. GEMA PATRICIA CALDERÓN PAREDES
JESÚS ALBERTO CEDEÑO NAVIA
MARÍA FERNANDA ARÉVALO PINCAY
9.4 PAGINACIÓN
9.4.1 MÉTODO BÁSICO
36. 9.4.1 MÉTODO BÁSICO
La memoria física se La memoria lógica se
descompone en: descompone en:
Su tamaño
es definido
por el
hardware.
Bloques de tamaño fijo Bloques del mismo
denominados marcos tamaño denominados
paginas
Cuando se ejecuta un proceso sus paginas se cargan desde el
almacén de respaldo en cualquier marco de memoria
disponible.
37. 9.4.1 MÉTODO BÁSICO
Cada dirección
generada por la CPU se
divide en dos partes:
Numero de pagina Desplazamiento de
(p) pagina (d)
Numero de Pagina Desplazamiento de Pagina
p d
m-n n
38. 9.4.1 MÉTODO BÁSICO
0
EJEMPLO DE PAGINACIÓN PARA UNA MEMORIA DE 32
BYTES CON PAGINAS DE 4 BYTES.
0 a 5 4 i
0 j
1 b 1 6 k
l
2 c 2 1 8 m
3 d 3 n
2 o
4 e p
5 f 12
Tabla de Paginas
6 g
7 h
16
8 i
9 j
10 k 20 a
b
11 l c
d
12 m 24 e
f
13 n g
14 o h
15 p 28
Memoria lógica Memoria física
39. 9.4.1 MÉTODO BÁSICO
Cuando utilizamos
La Paginación Pero sin embargo
un esquema de
es la forma de podemos tener
paginación, no
cierta
relocalización tenemos
fragmentación
dinámica fragmentación
interna
externa
Si los
Ya que el ultimo
requerimientos de
marco asignado
memoria de un
tal vez no este
proceso no llegan
completamente
a caer en limites
lleno.
de pagina.
40. 9.4.1 MÉTODO BÁSICO
Por ejemplo, si las paginas son de 2048
bytes, un proceso de 72.766 bytes necesita
35 paginas mas 1086 bytes. Se le asignara
36 marcos, dando por resultado una
fragmentación interna de 2048-1086-962
bytes
Si el tamaño del
Existe un trabajo
proceso es
adicional involucrado
independiente del Actualmente, las
en cada entrada de la
tamaño de la pagina, paginas tienen
tabla de paginas, y
esperemos que la típicamente un
este se reduce a
fragmentación tamaño de entre 2 y 8
medida que aumenta
interna sea un KB.
el tamaño de las
promedio de media
paginas.
pagina de proceso.
41. 9.4.1 MÉTODO BÁSICO
El sistema Operativo Esta copia se utiliza para
mantiene una copia de la traducir las direcciones
tabla de paginas para lógicas a direcciones
cada proceso. físicas
Esta define la tabla de
La copia también es
pagina del Hardware
cuando se va a asignar la
utilizada por el
CPU a un proceso despachador de la CPU
La paginación incrementa
de esta forma el tiempo de
comunicación de contexto
42. 9.4.1 MÉTODO BÁSICO
Esta información se
mantiene
generalmente en
una estructura de
datos denominada Tiene una entrada
Que marcos se tabla de marcos por cada marco
asignan, cuales físico de pagina,
marcos serán indicando si el
disponibles, cuantos ultimo esta libre o si
marcos en total hay, esta asignado y , si
etc. esta asignado, a
qué pagina de qué
proceso o procesos
Debido a que el
sistema operativo
esta
administrando la
memoria física
debe estar
consiente de :
43. 9.4.1 MÉTODO BÁSICO
El sistema Operativo Esta copia se utiliza
mantiene una copia de la para traducir las
tabla de paginas para direcciones lógicas a
cada proceso. direcciones físicas
Esta define la tabla de
La copia también es
pagina del Hardware
utilizada por el
cuando se va a asignar
despachador de la CPU
la CPU a un proceso
La paginación incrementa
de esta forma el tiempo de
comunicación de contexto
45. Estructura de la tabla de páginas
Un apuntador de la tabla de
paginas se almacena con los
demás valores de registros en el
boque de control de procesos
Soporte de hardware Protección
46. Soporte de hardware
La tabla se implementa como
un conjunto de registros La PDP-11 de DEC
dedicados, estos deberán
construirse con una lógica de
muy alta velocidad para que la
traducción de direcciones de
pagina sea eficiente. El uso de los registros para la
tabla de paginas es
En el caso de estas maquinas satisfactorio si la tabla es
el empleo de registros rápidos razonablemente pequeña(256
para implementar la tabla de entradas).
paginas no es factible, dicha
tabla se mantiene en la
memoria principal y un registro
base de tabla de paginas
apunta a ella
47. Dirección
lógica
CPU p d
Numero de Numero de Dirección F0000..0000
pagina marco Acierto de física
TLB
l d
F1111…..1111
TLB
--------------
P
--------------
Fallo de TLB Memoria
f física
--------------
--------------
Tabla de paginas
48. ANDRÉS ANTONIO DAZA ESPINALEZ
XAVIER FERNANDO CEDEÑO MOREIRA
9.4.2.2 PROTECCIÓN
49. 9.4.2.2 PROTECCIÓN
La protección de la memoria en un
ambiente de paginación se la realiza
mediante de los bits de protección.
Un bit puede definir que una página
sea de lectura y escritura o solo de Cada referencia a la memoria
lectura. pasa por una tabla de páginas
para encontrar el número de
marco correcto, al mismo
tiempo calcula la dirección
física.
Los bits de protección pueden
examinarse para verificar que no se
esté escribiendo en una página de solo
lectura, al intentar esto se genera una
trampa de hardware q se comunica
con el sistema operativo.
50. 9.4.2.2 PROTECCIÓN
Se puede crear un hardware para
proporcionar protección de solo lectura, de
lectura y escritura, o bien se podría usar bits
de protección por cada clase de acceso.
Generalmente se agrega
un bit más a cada entrada
de la tabla de páginas esto
genera un bit de validez-
invalidez
51. 9.4.2.2 PROTECCIÓN
Cuando el valor de este
bit se fija en «válido» , Si el valor del bit se fija en
indica que la página es «invalido» indica que la
legal o valida página no se encuentra en
el espacio de direcciones
lógicas del proceso
Raras veces un proceso
utiliza todo su rango de Algunos sistemas proporcionan
direcciones, de hecho hardware, bajo la forma de
muchos procesos utilizan registro de longitud de tabla, para
solo pequeña fracción del indicar el tamaño de dicha tabla de
espacio de direcciones que páginas.
tienen disponible. Este valor se compara contra cada
dirección lógica para verificar que
la dirección se encuentra en el
rango valido para el proceso. Si no
se pasa esta prueba, se ocasiona
una trampa de error al sistema
operativo.
54. 9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
La arquitectura VAX soporta paginación con
dos niveles. La VAX es una maquina de 32 bits
con un tamaño de pagina de 512 bytes.
En el cual el espacio de direcciones lógicas de
un proceso se divide en cuatro secciones
iguales, cada una de las cuales consta de 230
bytes.
Cada sección representa una parte diferente
del espacio de direcciones lógicas de un
proceso.
55. 9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
Los primeros 2 bits de orden alto de la
dirección lógica designan la sesión apropiada.
Los siguientes 21 bits presentan el numero de
pagina .
Los 9 bits finales representan un deslizamiento
en la pagina deseada.
Al dividir la tabla de paginas de
esta forma , el sistema
operativo puede dejar
particiones no utilizadas hasta
que otro proceso las necesite.
56. 9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
ES DECIR :
Que para un sistemas de 64 bits ya
no es apropiado usar este modelo en
dos niveles sino que debe
implementar mas niveles haciendo
mas trozos las tablas de pagina y así
abarcar con la arquitectura que se
maneja el sistema operativo.
58. 9.4.4. TABLA DE PÁGINAS INVERTIDA
TABLA DE PAGINA INVERTIDA
Es
Una tabla de paginación tiene una entrada por cada pagina que el proceso
esta utilizando o una ranura por cada dirección virtual independiente de la
validez de esta ultima
Sintaxis
Id-proceso , numero de pagina (hace a la referencia a la memoria, parte de
la dirección virtual )
Id-proceso , numero de pagina , se presenta en el subsistema de la memoria
59. 9.4.4. TABLA DE PÁGINAS INVERTIDA
Para poder manipular la
memoria de hiperpaginas
coger los datos o rutas
de memoria para ahorra
espacios .
La cpu de paginación
ubica la dirección de la
memoria donde se
encuentra…
Pasa primeramente por la
dirección lógica, dirección
física y por ultimo por la
memoria física
61. 9.4.5. PÁGINAS COMPARTIDAS
• Considerando un sistema que soporta 40 usuarios cada uno de los cuales
ejecuta un editor de texto.
• Si el editor de texto consta en 150k de código y 50k de espacio
para datos se necesitan 8000k para soportar a los 40 usuarios
• El código Reentrante es un código que no puede modificarse así mismo
• Por lo tanto dos o mas procesos pueden ejecutar el mismo código al mismo
tiempo
• Cada proceso tiene su propia copia de registros y almacenamiento
de datos para mantener los datos para la ejecución del proceso.
• Solo se necesita mantener en memoria física una copia del editor.
64. Un aspecto
importante es la La memoria es vista como
administración de la un conjunto de segmentos
memoria es la de tamaño variable
paginación. desordenadamente.
La segmentación es un
Subrutina pila
esquema de
administración de Tabla de
memoria. símbolos
sqrt
Un espacio de direcciones
es un conjunto de Programa
segmentos. principal
Cada segmento tiene un
nombre y longitud
Espacio de direcciones lógicas
66. 9.5.2 HARDWARE
Los usuarios ahora pueden hacer referencia a
los objetos en el programa mediante una
dirección bidimensional.
La física real sigue siendo, por supuesto, una
secuencia unidimensional de bytes.
Este mapeo es efectuado por una tabla de
segmentos. Cada entrada de segmentos tiene
una base de segmentos y un límite de segmento.
67. 9.5.2 HARDWARE
• El número de segmentos se • El desplazamiento de la
utiliza como un índice en la dirección lógica debe estar
tabla de segmentos. entre 0 y el límite de
segmento
Un número de Un desplazamiento
segmentos en dicho segmento.
• El empleo de una tabla de • De no ser así se genera una trampa al
sistema operativo.
segmentos se ilustra en una
• Si el desplazamiento es legal se agrega
dirección lógica y consta de a la base del segmento para producir la
dos partes. dirección en la memoria física de byte
deseado.
Caso
Segmento.
contario
68. 9.5.2 HARDWARE
Ejemplo
A) El sementó 2
tiene 400 bytes
de longitud y
comienza en la
localidad 4300 con
una referencia de
bytes 53 el
segmento 2 se
mapea en la
longitud
4300+53=4353
70. PROTECCIÓN Y COMPARTIMIENTO
Asociación de la protección con los segmentos
Los segmentos representan una porción del programa definida semánticamente.
Algunos segmentos son instrucciones (Lectura-Ejecución).
Y otros segmentos son datos (Lectura-Escritura).
El hardware de mapeo impide un acceso ilegal a la memoria:
Escribir en un segmento de solo lectura.
Utilizar como dato un segmento de sólo ejecución.
Al colocarse un arreglo en un propio segmento el hardware de administración de la
memoria verificará que los índices sean legales y no estén fuera del límite del
arreglo.
Así muchos errores podrán ser detectados a tiempo, para que no ocasionen un daño
serio.
71. PROTECCIÓN Y COMPARTIMIENTO
Otra ventaja de la segmentación implica la compartición de código o datos.
Editor
Límite Base
Memoria Lógica 43062
Segmento 0
0 25286 43062
Proceso P1
1 4425 68348
Datos1 Editor
Tabla de Segmentos
Segmento 1
Proceso P1 68348
Datos1
72773
Editor
Límite Base 90003
Memoria Lógica
Proceso P2 Segmento 0 0 25286 43062 Datos2
98853
1 4425 68348
Datos2
Tabla de Segmentos
Segmento 1
Proceso P2
73. FRAGMENTACIÓN
El planificador de largo plazo Similar a paginación
debe encontrar y asignar
memoria a todos los
Excepto que los segmentos
segmentos de un programa son de longitud variable
de usuario.
ESQUEMA DE PARTICIONES
La asignación de memoria es
un problema de asignación
dinámica de almacenamiento
74. La segmentación puede ocasionar una fragmentación externa si todos los
bloques de memoria libre son demasiados pequeños para acomodar a
un segmento.
EL PROCESO DEBE:
Esperar hasta que Hacer uso de la
haya disponible compactación para
más memoria crear dicho hueco.
Si el planificador de la CPU debe esperar por un proceso, debido a la
asignación de memoria
Recorrer la cola de la CPU buscando un proceso más pequeño y de
menor prioridad para su ejecución.
75. ¿Qué tan serio es el problema de fragmentación externa para un esquema de
segmentación?
En un extremo podemos
definir cada proceso fuera
un segmento Cada byte podría ser colocado
en su propio segmento y
reubicarse por separado
Se reduce al
esquema de
pariciones de
tamaño variable Elimina
completamente la
fragmentación
externa
76. KAROL ANDREA MANRIQUE VÉLIZ
JOSÉ DANIEL MENDOZA LOOR
9.6 SEGMENTACIÓN CON PAGINACIÓN
77. SEGMENTACIÓN CON PAGINACIÓN
Microprocesadores más utilizados:
• Diseñada en
MOTOROL
A 68000 espacios de
direcciones plano
INTEL • Basado en la
80x86 segmentación
PENTIU • Basado en la
M segmentación
• Mezcla de Número máximo de
INTEL segmentos: 16KB c/u 4GB
paginación y
386
segmentación Tamaño de página: 4KB
78. SEGMENTACIÓN CON PAGINACIÓN
Intel 386
El espacio de direcciones lógicas de un proceso se
divide en dos particiones.
Segunda partición
• Consta de 8K
segmentos privados
• Tabla local de • Contiene de hasta 8K
descriptores (TLD): segmentos compartidos
ubicación base y • Tabla global de
longitud de segmento. descriptores (TGD)
Primera partición
79. SEGMENTACIÓN CON PAGINACIÓN
La dirección lógica es un par (selector, desplazamiento), en
donde el selector es un número de 16 bits.
s g p
13 1 2
La máquina tiene seis registros de
segmentos, seis registros de 8
bytes de microprograma para
contener los descriptores.
80. SEGMENTACION CON PAGINACION
LA DIRECCION FISICA EN EL
386 TIENE 32 BITS DE
LONGITUD Y SE FORMA ASI
REGISTRO DE
SEGMENTO APUNTA A UNA TABLA DE PAGINAS PUEDE CONTENER
LA ENTRADA HASTA 1 MILLON DE ENTRADAS
APROPIADA EN LA LDT DEBIDO A ESTO CADA PROCESO PUEDE
O GDT NECESITAR HASTA 4 MEGABYTES DE ESPACIO
DE DIRECCIONES FISICAS
LA INFORMACION DE
LA BASE Y LIMITE DEL
SEGMENTO SE EMPLEA
PARA GENERAR UNA
DIRECCION LINEAL.
CADA SEGMENTO SE
PAGINA Y CADA PAGINA
ES DE 4 KBYTES
81. SEGMENTACION CON PAGINACION
LIMITE
VERIFICA VALIDEZ DE LA DIRECCION
VALIDA: VALOR DE DESPLAZAMIENTO
NO VALIDA: GENERA UNA FALLA DE
SE AGREGA AL VALOR DE LA BASE, QUE
MEMORIA RESULTANDO EN UNA
DA UNA DIRECCION LINEAL DE 32 BITS,
TRAMPA AL SISTEMA OPERATIVO
QUE SE TRADUCE A UNA FISICA
82. SEGMENTACION CON PAGINACION
LA SOLUCION DEL 386 PARA NO ASIGNAR LA TABLA DE PAGINAS
CONTIGUAMENTE A LA MEMORIA PRINCIPAL ES:
• USAR UN ESQUEMA DE PAGINACION CON DOS NIVELES
• UN NUMERO DE PAGINA QUE CONSTA DE 20 BITS
• UN DESPLAZAMIENTO DE PAGINA QUE CONSTA DE 12 BITS.
DEBIDO A QUE PAGINAMOS LA TABLA DE PAGINAS, EL NUMERO DE
PAGINAS SE DIVIDE A SU VEZ EN:
• UN APUNTADOR DE DIRECTORIO DE PAGINAS DE 10 BITS
• UN APUNTADOR DE TABLA DE PAGINAS DE 10 BITS
NUMERO DE PAGINA DESPLAZAMIENTO DE PAGINA
P1 P2 D
10 10 12
86. PARTE 3
ADMINISTRACIÓN DEL ALMACENAMIENTO
Ejecución de programas
Los programas deben estar
en la memoria principal
Almacenamiento
De gran capacidad
88. Los algoritmos de administración de memoria varían desde
un enfoque primitivo, a nivel de maquina, hasta estrategias
de paginación y segmentación.
La selección de un método de administración de la memoria
para un sistema especifico depende de muchos factores,
especialmente de diseños de hardware del sistema.
La memoria es un componente central para la operación de un sistema
de computo moderno.
Consiste en un gran arreglo de palabras o bytes, cada uno con su
propia dirección.
La CPU acude por instrucciones a la memoria de acuerdo con el valor
del contador de programa.
90. Vinculación De Direcciones
El procedimiento normal consiste en seleccionar uno de los procesos de la cola de
entrada y cargarlo en la memoria. A medida que el proceso se ejecuta, accede a las
instrucciones y datos de la memoria. Con el tiempo, el proceso termina y su espacio
memoria se declara como disponible.
La mayoría de los sistema permiten que su proceso de usuario reside en cualquier
parte de la memoria física.
Aunque el espacio de direcciones de la computadora comienza en 00000, la primera
dirección del proceso de usuario no necesita ser 00000.
91. La vinculación de instrucciones y datos con direcciones de
memoria puede hacerse en cualquier paso durante el recorrido
Tiempo de compilación
Si se conoce al momento de la compilación en
donde residirá el proceso en la memoria
Tiempo de carga
Si no se conoce al momento de la compilación
en donde residirá el proceso en la memoria
Tiempo de ejecución
Si el proceso puede moverse durante su ejecución
de un segmento de memoria a otro
94. Para conseguir una mejor utilización del espacio de
memoria podemos emplear la carga dinámica con
la carga dinámica una rutina no se carga sino hasta
que es llamada
Cuando una rutina necesita llamar a otra rutina , la
rutina que hace el llamado verifica primeramente si
la otra a sido cargada.
La ventaja de la carga dinámica es que la rutina no
utilizada nunca se carga. Este método es útil cuando
se necesitan grandes cantidades de código para
manejar casos que ocurren con poca frecuencia
como rutinas de error
La carga dinámica no requiere un soporte especial
del sistema operativo .
96. ENLACE DINÁMICO Y BÍBLIOTECAS COMPARTIDAS
El concepto de enlace dinámico es similar al de
carga dinámica
En lugar de posponer la carga hasta el tiempo de
ejecución, el enlace es el que se pospone. Esta se
utiliza generalmente con bibliotecas del sistema
como las bibliotecas de subrutinas de lenguaje.
Sin este servicio , todos los programas de un sistema
necesitan tener una copia de su biblioteca de
lenguaje o por lo menos las rutinas a la que hace
referencia el programa. Este requerimiento
desperdicia espacio en en disco así como memoria
principal.
97. Cuando se ejecuta
Este STUB es una este STUB verifica si
Con el enlace pequeña pieza de la rutina necesaria ya
dinámico se incluye código que indica se encuentra en
un STUB en la imagen como localizar la memoria.
por cada referencia a rutina de biblioteca Si la rutina no esta
la rutina de biblioteca apropiada residente en memoria, el
en memoria. programa la carga en
la misma.
En cualquier caso el STUB se sustituye a si mismo con la dirección de la rutina, y
ejecuta la rutina.
98.
99. Se puede cargar en memoria más de una versión de una biblioteca, y cada
programa utiliza su información de versión para decidir cual copia utilizara.
Los cambios menores retienen el mismo numero de versión, en tanto los
cambios mayores incrementan el numero de la misma.
Así solo los programas que se compilan con la nueva versión de biblioteca se
ven afectados por los cambios incompatibles incorporados en ella, los otros
programas que se enlazaron antes de que se instalara la nueva biblioteca
continuaran usando la versión anterior.
Este sistema también se conoce como BIBLIOTECAS COMPARTIDAS.
El enlace dinámico generalmente requiere ayuda del sistema operativo.
101. Mantener en Ensamblador
memoria solo de dos pasos
aquellas
instrucciones y
datos .
Overlays
Paso 1 70K
Definimos:
Paso 2 80K
Superposición A
Tabla de S. 20K
Superposición B
Rutinas C. 30K
102. Tabla de
Símbolos 20K
Rutinas
Comunes 30K
Manejador de
Superposiciones 10K
70K 80K
Paso 1 Paso 2
Superposiciones para un
ensamblador de dos pasos
103. La construcción
de
Superposiciones
implica
algoritmos de
relocalización y
enlace.
Microcomp.
Sólo Cant. Lim. No
observa requieren
más Memoria física soporte
operaciones Carecen de soporte especial.
de H.
Pueden ser
implementa
das por el
usuario.