Subido por Joven Vildozo

Carga, Montaje y Memora Virtual

Anuncio
1-131B10050 SISTEMAS OPERATIVOS
Carga, Montaje y Memora Virtual.
UNIDAD3/SEMANA6
requerirá que estos módulos sean intercambiados
a medida que la ejecución progresa.
Se malgasta el espacio interno a cada partición cuando
el bloque cargado es más pequeño, lo que se conoce
como fragmentación interna. Es decir, cualquier
proceso por pequeño que sea, ocupará una partición
completa.
Ejemplo de partición estática en una memoria de 64 MB
1. CARGA Y MONTAJE
La tarea central de cualquier sistema de gestión de memoria
es traer los programas a memoria principal para su
ejecución en el procesador. En casi todos los sistemas
multiprogramado modernos, esta tarea supone un esquema
sofisticado conocido como memoria virtual.
La memoria virtual está, a su vez, basada en el uso de una
de dos técnicas básicas; segmentación y/o paginación.
Antes de ver estás técnicas de memoria virtual, se debe
preparar el terreno considerando técnicas más simples que
no requieren el uso de memoria virtual.
Una de estas técnicas, la partición, se ha venido usando
con distintas variantes en algunos sistemas operativos
ahora obsoletos.
Ejemplo de Asignación de Memoria con Particiones
Estáticas
Las otras dos técnicas, la paginación simple y
la segmentación simple, no se usan en solitario. No
obstante, el estudio de la memoria virtual resultará más
sencillo si se consideran en primer lugar estas dos
técnicas, sin tener en cuenta la memoria virtual.
2.
TÉCNICAS
MEMORIA
DE
GESTIÓN DE
Particiones Estáticas: Con particiones estáticas surgen
dos dificultades:
Un programa puede ser demasiado grande para caber
en una partición, por lo tanto, si el programa no se
ha diseñado mediante superposición, simplemente no
se puede ejecutar. De otro modo, podrán estar en
memoria aquellos módulos del programa que se
necesiten, pero se
Particiones Dinámicas: Con particiones dinámicas surgen
las siguientes dificultades:
Producto de la entrada y salida de procesos en
la memoria, se van generando porciones cada vez
más pequeñas de la memoria sin utilizar, lo que se
conoce como fragmentación externa.
1
Para solucionar este problema se debe recurrir a
la compactación de la memoria de manera de eliminar
los espacios (huecos) entre procesos. Esto significa que
los procesos deben ser reubicados en memoria en
forma dinámica.
Ejemplo de Soporte Hardware para la Reubicación
La asignación de memoria en un esquema con particiones
dinámicas, consiste en determinar en qué hueco ubicar un
nuevo proceso. Para esto existen tres algoritmos: mejor
ajuste, primer ajuste o próximo ajuste.
Mejor ajuste: consiste en ubicar el proceso en el espacio
de memoria que más se ajuste a su tamaño.
Primer ajuste: consiste en ubicar el proceso en el primer
hueco disponible, recorriendo desde el inicio de
la memoria, cuyo tamaño sea suficiente para el proceso.
Próximo ajuste: consiste en ubicar el siguiente hueco
disponible, que sea suficientemente grande, a partir de
la última asignación de memoria.
4.
PAGINACIÓN
Asignación de páginas de procesos a marcos libres
Ejemplo de
Dinámica
Efectos
de la
3.
REQUISITO
REUBICACIÓN
Partición
DE
Cualquier mecanismo de gestión de memoria debe poder
reubicar los procesos, sin perder las referencias que se
hagan dentro de él.
Estructura de Datos en el tiempo (f)
2
3
Traducción de dirección lógica a física
en paginación
Ejemplo
:
Dirección
relativa
0000010111011110
1502
en
Resumen de las Técnicas de Gestión de
Memoria
binario
6. MEMORIA VIRTUAL
Para un aprovechamiento eficiente del procesador y de
los servicios de E/S es conveniente mantener tantos
procesos en memoria principal como sea posible.
Además, conviene liberar a los programadores de las
limitaciones de tamaño en el desarrollo de programas.
La forma de abordar ambos problemas es por medio de
la memoria virtual.
Con memoria virtual, todas las referencias a direcciones
son referencias lógicas que se traducen a direcciones
reales durante la ejecución. Esto permite a los procesos
situarse en cualquier posición de memoria principal y
cambiar de ubicación a lo largo del tiempo. La memoria
virtual permite también dividir un proceso en fragmentos.
5.
SEGMENTACIÓN
Estos fragmentos no tienen por qué estar situados de forma
contigua en la memoria principal durante la ejecución y no
es ni siquiera necesario que todos los fragmentos del
proceso estén en memoria durante la ejecución.
Otra forma de subdividir el programa es la segmentación.
En este caso el programa y sus datos son divididos en
segmentos, sin ser necesario que todos sean de igual
tamaño.
Los dos enfoques básicos de memoria virtual son
la paginación y la segmentación.
Traducción de Dirección lógica a
Física
La segmentación permite el uso de fragmentos de tamaño
variable. También es posible combinar segmentación
y paginación en un único esquema de gestión de memoria.
Un esquema de gestión de memoria virtual exige un soporte
tanto de hardware como de software. El soporte de
hardware lo proporciona el procesador. Este soporte
4
Con paginación, cada proceso se divide en páginas de
tamaño fijo y relativamente pequeño.
incluye la traducción dinámica de direcciones virtuales
a direcciones físicas y la generación de interrupciones
cuando una página o
5
segmento referenciado no están en memoria principal.
Estas interrupciones activan el software de gestión de
memoria del sistema operativo.
Una serie de cuestiones de diseño relativas a los
sistemas operativos dan soporte a la gestión de memoria
virtual:
Políticas de lectura: Las páginas de los procesos pueden
cargarse por demanda o se puede usar una política
de paginación previa; esta última agrupa las actividades
de entrada cargando varias páginas a la vez.
Políticas de ubicación: En un sistema de segmentación
pura, un segmento entrante debe encajar en un espacio
de memoria disponible.
Políticas de reemplazo: Cuando la memoria está llena,
debe tomarse la decisión de qué página o páginas serán
reemplazadas.
Gestión del conjunto residente: El sistema operativo
debe decidir cuánta memoria principal ha de asignar a
un proceso en particular cuando se carga. Puede hacerse
una asignación estática en el momento de la creación
del proceso o bien puede cambiar dinámicamente.
Políticas de vaciado: Las páginas modificadas de
un proceso pueden escribirse al disco en el momento
del reemplazo o bien puede aplicarse una política
de paginación previa; esta última agrupa las
actividades de salida escribiendo varias páginas de una
vez.
Control de carga: El control de carga determina
el número de procesos residentes que habrá en
memoria principal en un momento dado
Bibliografía
Silberschatz, abrahan, Galvin, Peter Baer y Gagne, greg.
2006. Fundamentos de Sistemas Operativos.
Madrid : McGraw-hill / Interamericana, 2006.
Sol Llaven, Daniel. 2015. Sistemas Operativos
Panorama para la Ingeniería en Computación e
informática. Mexico : Grupo Editorial Patria, 2015.
Stallings, William. 2000. Sistemas Operativos.
Madrid : Pearson Educaci{on S.A., 2000.
6
Descargar