La re ubicación de un programa, se refiere a la capacidad de cargar y ejecutar un
programa determinado en una posición arbitraria de memoria, en contraposición a
un conjunto fijo de posiciones especificas durante la compilación de dicho
programa.
Las
instrucciones de un proceso cargado en memoria contendrán referencias a
posiciones de memoria de dos tipos.
Referencias a posición de memoria
Tipo 1. Referencias
a datos empleados en instrucciones de carga, almacenamiento y algunas
instrucciones aritmetico-logicas.
Tipo 2. Referencias
a otras instrucciones empleadas fundamentalmente en bifurcaciones de control de
flujo o en instrucciones de llamadas.
Tipos de Direcciones
Tipo 1. Una
dirección lógica o virtual es un identificador utilizado para referenciar
información dentro del espacio de direcciones de un programa y, por tanto, es
independiente de la asignación actual de datos a memoria, debiéndose realizar
una traducción a dirección física, antes de poder realizar un acceso a memoria.
Tipo 2. Una
dirección física o absoluta designa una posición real de memoria física, donde
se almacena información en tiempo de ejecución.
Tipos de Esquemas
Dependiendo
de como y cuando, tenga lugar la traduccion del
espacio de direcciones virtuales al espacio de direcciones fisicas,
en un esquema de reubicacion
determinado, pueden considerarse dos tipos de estrategias:
Tipo 1. Reubicación
estática.
Tipo 2. Reubicación
Dinámica.
Reubicacion Estatica
Implica
generalmente que la reubicación es realizada, antes o durante la carga del
proceso en memoria.
Las
constantes(valores literales), los desplazamientos relativos al PC, no dependen
de esta condición y no necesitan ser ajustados durante la reubicación.
Reubicacon Dinamica
Implica
que la correspondencia entre el espacio de direcciones virtuales y el espacio
de direcciones físicas se efectúan en tiempo de ejecución. Normalmente con
asistencia de hardware.
Cuando
el proceso en cuestión esta siendo ejecutado, todas sus referencias a memoria
son reubicadas durante la ejecución antes de acceder realmente a la memoria.
Politcas de Reemplazo
Cuando
todos los marcos de memoria principal están ocupados y es necesario traer a
memoria una nueva pagina para atender un fallo de pagina.
La
política se encarga de seleccionar la pagina a reemplazar de entre las que se
encuentren actualmente en memoria.
<
Política de Reemplazo
Algunos
de los marcos de memoria principal pueden estar bloqueados, cuando un marco se
encuentra bloqueado, la pagina cargada actualmente en el no puede ser
reemplazada.
La
mayoria
de nucleo del SO asi
como las estructuras de control son albergados en marcos bloqueados.
Política de Reloj
La forma mas simple de esta política
requiere asociar un bit adicional a cada marco, denominado bit de uso. Cuando
se cargue una pagina por primera vez, este bit se pone a 0 y cuando se hace
referencia posteriormente a la pagina el bit de uso se pone a 1. Para el
algoritmo de reemplazo de paginas, el conjunto de marcos candidatos a ser
reemplazado se considera como un buffer circular con un puntero asociado.
El alcance es local si los candidatos son de un solo proceso y global si procede de toda la memoria.
Cuando
llega el momento de reemplazar una pagina, el SO recorre el buffer buscando un
marco con el bit de uso a 0, eligiendo para reemplazar el primero que
encuentre. Cada vez que se encuentra un marco con el bit de uso a 1, se pone a
0.
No hay comentarios:
Publicar un comentario