Sistemaa Operativos
Etiquetas: Sistemas Operativos
Memoria asociativa
La memoria asociativa se basa en el principio de localidad que establece que la mayoría de programas tiende a referenciar un porcentaje reducido de sus páginas durante períodos relativamente largos de tiempo. Con base en este principio se equipa a los computadores de undispositivo de hardware para asociar las direcciones virtuales con las direcciones reales (físicas) sin tener que recurrir a la tabla de páginas. Este se encuentra en la MMU y consta de un número pequeño de entradas (8, 16, 32 son cantidades típicas), cada una de las cuales tiene la estructura similar a una entrada en una tabla de páginas convencional.
La memoria asociativa funciona de la siguienteforma: cuando se presenta una dirección virtual a la MMU para su traducción, se verifica primero si su número de página virtual se encuentra en la memoria asociativa, al comparar todos los registros que la componen en paralelo. Si se encuentra allí, la dirección del marco de página se selecciona de allí directamente sin ir a la tabla de páginas y se continúa con el proceso de traducción normal.
Cuandoel número de página no está en la memoria asociativa, se recurre a la tabla de páginas. Una vez localizada la entrada correspondiente, se extrae una entrada de la memoria asociativa y se reemplaza con el dato determinado en la tabla de páginas. Así, si esta página vuelve a ser referenciada, la segunda vez será encontrada con rapidez. Con esto la proporción de encuentros, es decir, la proporciónde referencias a la memoria que pueden ser satisfechas a partir de la memoria asociativa, se incrementa considerablemente, permitiendo una mayor eficiencia en el proceso de traducción de direcciones.
Manejo estático y dinámico de la memoria
Existen dos esquemas en que la memoria puede manejarse: estático y dinámico.
- El concepto de memoria estática asume que las direcciones no cambian. Estopuede ser una ilusión de memoria virtual, o puede ser la disposición física disponible. La asignación estática de memoria puede ser por medio de direcciones absolutas o por medio de direcciones relativas del apuntador de programa (PC) (para permitir la relocalización o la recursividad), pero en cualquier caso, el compilador o el ensamblador generan un conjunto de direcciones que no pueden cambiardurante la vida del programa o el proceso.
- El concepto de memoria dinámica asume que las direcciones pueden cambiar (aunque el cambio por lo general se limita a condiciones posibles predefinidas).
Los dos enfoques dinámicos más comunes son el uso de pilas de cuadros (stack frames) y el uso deapuntadores o manijas (handlers). Las pilas de cuadros se usan principalmente en los datos temporales(como variable de funciones o subrutinas o contadores de iteraciones). Las manijas o apuntadores se usan para tener una referencia de bloques de memoria dinámicamente asignados.
Carga de programas en memoria
El proceso de carga consiste en colocar un programa en memoria para que pueda ser ejecutado. Existen diferentes tipos de cargadores:
- Compile and go: (compile y ejecute). Son los utilizadospor los compiladores tipo Turbo (Pascal, C, Prolog, etc.), cuando la compilación se realiza directamente a la memoria. La idea central consiste en que a medida que se va compilando se va escribiendo directamente sobre la memoria el código ejecutable y una vez se termine el proceso, se le da el control al programa compilado para su ejecución.
- Cargadores Absolutos: Existen en sistemas en los quelos compiladores generan código absoluto (no relocalizable). De esta forma se obliga a que el programa siempre se deba carga en las mismas posiciones de memoria. Son relativamente simples pero no permiten tener multiprogramación.
- Cargadores Relocalizadores: permiten cargar el programa en cualquier sitio de la memoria. Para que esto sea posible, es necesario contar con algún mecanismo de...
Regístrate para leer el documento completo.