capacidad de cargar y
ejecutar un programa
determinado en una
posición arbitraria de
memoria en contraposición
Reubicación estática Implica
generalmente que la reubicación
es realizada antes o durante la
carga del proceso en memoria.
Reubicación dinámica Implica
que la correspondencia entre el
espacio de direcciones virtuales
y el espacio de direcciones
físicas se efectúa en tiempo de
ejecución.
mecanismo hardware que posibilita tanto la
reubicación dinámica como la protección.
Asignación de Memoria con particiones fijas
cualquier proceso con tamaño menor o igual al tamaño de la partición
puede cargarse en cualquier partición libre, si todas las particiones están
ocupadas el SO puede sacar un proceso de alguna de ellas y cargar otro.
Dificultades
Un programa puede
ser demasiado grande
para caber en una
partición,
El uso de la memoria
principal es
extremadamente
ineficiente,
Con particiones de distinto tamaño hay dos maneras posibles de
asignar los procesos a las particiones:
asignar cada proceso a la
partición más pequeña en la
que quepa,
Consiste en seleccionar la partición
más pequeña disponible que pueda
albergar al proceso.
Asignación de Memoria con particiones dinámicas
En este esquema las particiones van a ser variables
en número y longitud. Cuando se trae un proceso a
memoria se le asigna exactamente tanta memoria
como necesita y no más.
Maneja 3 algoritmos
El Mejor Ajuste (Best Fit): Lo que se
hace es elegir el bloque con
tamaño más parecido al solicitado.
El Primer Ajuste (First Fit): Se recorre la
memoria desde el principio y se escoge el primer
bloque disponible que sea suficientemente
grande.
El Siguiente Ajuste (Next Fit): Es
similar a El Primer Ajuste pero se
recorre la memoria desde el lugar de
la última ubicación.
Asignación de memoria con paginación simple
los trozos del proceso conocidos como páginas pueden
asignarse a los trozos libres de memoria conocidos como
marcos o marcos de página.
Dentro del programa cada dirección
lógica constará de un número de página y
un desplazamiento dentro de la página
el tamaño de página y, por tanto, el tamaño
de marco, deben ser una potencia de 2.
Consecuencias
El esquema de direccionamiento lógico es transparente
al programador, al montador y al ensamblador.
Resulta relativamente sencillo realizar una función
hardware para llevar a cabo la traducción de
direcciones dinámicas en tiempo de ejecución.
Para la traducción de direcciones
hay que dar los siguientes pasos:
Obtener el número de página a partir
de los bits de la dirección lógica.
Emplear ese número de página como índice en la tabla de
páginas del proceso para determinar el marco k en que se
alberga la página.
El comienzo de la dirección física del marco k sería k · 2m1 la dirección física de la palabra
referenciada sería este número más el desplazamiento determinado por los m bits menos
significativos de la dirección lógica
mediante la paginación simple, la memoria principal se
divide en pequeños marcos del mismo tamaño. Cada
proceso se divide en páginas del tamaño del marco. Cuando
un proceso se carga en memoria, se cargan todas sus
páginas en marcos libres y se rellena su tabla de paginás
Asignación de memoria con segmentación simple
En segmentación, un programa y sus datos asociados se dividen en un conjunto de segmentos. No se
impone que todos los segmentos de todos los programas tengan la misma longitud aunque sí existe una
longitud máxima de segmento.
Se divide en dos número de segmento y desplazamiento dentro
del segmento.
Otra consecuencia del tamaño desigual de los segmentos es que no hay una correspondencia
simple entre direcciones lógicas y direcciones físicas.
Para la traducción de direcciones hay que dar los siguientes pasos:
1. Extraer el número de segmento de los n
bits más significativos de la dirección lógica.
2. Emplear ese número de segmento como
índice en la tabla de segmentos del proceso.
4. La dirección física final será la suma de la
dirección física de comienzo de segmento
más el desplazamiento.
3. Comparar el desplazamiento expresado por
los m bits menos significativos con la longitud
del segmento.