Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo:
Veremos como varios procesos pueden compartir la
memoria en un sistema multi-programado, desde el
enfoque de "mquina desnuda" hasta los sistemas
paginados o segmentados.
Qu es la memoria - Definiciones
La
Gestor de memoria
Tratar de repartir de forma eficiente la memoria
para introducir tantos procesos como sea posible.
Varios procesos podrn ejecutarse de forma
concurrente teniendo en cuenta que:
La memoria desaprovechada debe de ser la
menor posible.
Evitando fragmentacin.
Memoria ocupada por varias copias de un
mismo objeto.
Gestor de Memoria
Memoria ocupada por las estructuras de datos
necesarias para la operacin del gestor de
memoria.
No debe de perjudicar al rendimiento, debiendo
minimizar:
Complejidad de los procesos en el tiempo.
Procesos suplementarios (tiempos) de acceso
a memoria.
Fragmentacin
Memoria que queda desperdiciada al efectuar el
reemplazo de los procesos. Quedan huecos entre
dos o ms procesos de manera no contigua y cada
hueco no es capaz de soportar ningn proceso de
la lista de espera.
Fragmentacin
Dos tipos
Interna, se debe a la diferencia de tamao entre
la particin de memoria y el objeto residente
dentro de ella.
Fragmentacin
externa,
se
debe
al
desaprovechamiento
de
memoria
entre
particiones.
Reubicacin
Reubicacin:
El programador no conoce qu otros programas
residirn en la memoria en el momento de la
ejecucin.
Mientras se est ejecutando el programa,
puede que se descargue en el disco y que
vuelva a la memoria principal, pero en una
ubicacin distinta a la anterior (reubicacin).
Se deben traducir las referencias a la memoria
encontradas en el cdigo del programa a las
direcciones fsicas reales.
Reubicacin
Hay que distinguir entre:
Direcciones virtuales (programador), La traduccin de las
direcciones virtuales a reales es implementada por una
Unidad de Manejo de Memoria (MMU). El sistema
operativo es el responsable de decidir qu partes de la
memoria del programa es mantenida en memoria fsica.
Direcciones Fsicas
Reubicacin esttica
Reubicacin
Reubicacin dinmica
El paso de direccin virtual a real, se realiza en
tiempo de ejecucin.
Se necesita HW adicional (MMU)
Todas las direcciones son relativas a una
posicin fija.
Los programas se pueden mover en tiempo de
ejecucin.
Direcciones
Mtodos:
Registros base y lmite
Bits de proteccin en memoria (IBM 360)
Derechos de acceso en tablas de traduccin
Mquina desnuda
Memoria
Usuario
CPU
Direccin>Lmite
No
Tamao
Estado
0K
100K
Ocupado
100K
300K
Libre
Proceso i
400K
100K
Ocupado
Proceso j
500K
250K
Ocupado
Proceso k
750K
150K
Ocupado
900K
100K
Libre
Sistema Operativo
100K
400K
500K
750K
900K
1000K
Segmentacin de memoria
Segmentacin:
La segmentacin es una tcnica que asigna
segmentos contiguos de memoria para las reas
de memoria de un proceso.
De esta forma, logra acomodarse ms a la visin
de la memoria por parte del usuario.
Un proceso se compone de una seccin de cdigo,
una pila (stack), un espacio para la memoria
dinmica (heap), la tabla de smbolos, etc.
Cada componente se agrupa en un segmento del
tamao necesario.
Segmentacin
Cada uno de los segmentos tiene una longitud
variable que est definida por el tamao de ese
componente del programa.
Segmentacin
Segmentacin
Es un esquema de gestin de memoria con varias
ventajas:
Los bloques de un proceso pueden estar situados
en reas de memoria contiguas
Suministra reubicacin dinmica
Proteccin y uso compartido
Segmentacin
Ejemplo: computadores de la familia 80X86 de
INTEL
Pensando en la reubicacin, cada segmento empieza
en la direccin virtual cero
Las direcciones lgicas, en estos sistemas tienen dos
componentes:
Nmero del segmento
Desplazamiento dentro del segmento
Los segmentos pueden tener tamaos diferentes
Segmentacin
Se utiliza en modelos avanzados de S.O.
Ya existan muestras de uso de segmentacin
desde Unix y DOS.
Tabla de segmentos
Qu
Tabla de segmentos
Problema: se necesitan dos referencias por cada
acceso
Solucin:
Memoria cache
Utilizar registros internos dentro de la CPU
(Intel)
Segmentacin
Proteccin basada en los registros base y lmite
Se pueden establecer distintos derechos de acceso
(rwx) a cada mdulo del proceso
Estos derechos suelen guardarse en la TDS
Segmentacin
Comparticin de cdigo:
Puede realizarse a nivel de segmento (cdigo o
datos).
Segmentacin - Comparticin
Segmentacin
Ventajas
Elimina de fragmentacin interna
Crecimiento dinmico de los segmentos
Proteccin y uso compartido
Enlace y carga dinmicos
Inconvenientes
Necesita compactacin de memoria
Tamao mximo fijo para un segmento (tpico 64
K)
Necesita HW adicional
Compactacin y condensacin de
memoria
Compactacin:
Intenta solucionar la fragmentacin externa
Consiste en desplazar posiciones ocupadas
para que estn juntas en memoria
Solo es posible si hay reubicacin dinmica
Compactacin
Condensacin de memoria
Se une dos segmentos de memoria para generar
un segmento de mayor tamao.
Minimiza la fragmentacin interna al unirla a un
segmento externo.
Costo menor que compactacin.
Condensacin de memoria
Sistema
Operativo
Sistema
Operativo
Otros Procesos
Sistema
Operativo
Otros Procesos
Hueco 2K
Hueco 2K
Otros Procesos
Sale Proceso A
Proceso A 5K
Otros Procesos
Hueco 7K
Proceso A 5K
Otros Procesos
Otros Procesos
Paginacin de memoria
La unidad bsica de transferencia es la pgina.
Corresponde a una zona de memoria contigua de
un determinado tamao fijo.
Es siempre una potencia de 2 (4KB es un
estndar)
La memoria de cada proceso es considerada en
pginas.
La memoria del sistema se divide de la misma
forma y se denomina marcos de pgina
Paginacin
La asignacin de memoria no es contigua
La direccin virtual consta de un nmero de pgina
virtual y un desplazamiento
La traduccin de direcciones se lleva a cabo con la
ayuda de la tabla del mapa de pginas (TMP). La
TMP se construye en tiempo de carga del proceso en
memoria
Paginacin
Una direccin virtual en un sistema paginado es un
par ordenado (p,d)
En el que p: Es el nmero de pgina de
almacenamiento en la que reside el elemento al
que se hace referencia y
d: Es el desplazamiento dentro de la pgina P
donde se localiza ese elemento.
Un proceso solo puede ejecutarse si su pgina
activa est en memoria o almacenamiento primario
Paginacin
Paginacin - Consideraciones
Si se solicitan s posiciones de memoria el n de
pginas=[s/p] donde p es el tamao de la pgina en
posiciones de memoria