so_memdirecciones
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
so_memdirecciones [2020/04/01 19:02] – mariano | so_memdirecciones [2020/04/02 21:27] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
===== Espacios de direcciones lógico y físico ===== | ===== Espacios de direcciones lógico y físico ===== | ||
- | Una dirección generada por la CPU (proceso) se denomina comúnmente **dirección lógica**, mientras que una dirección vista por la unidad de memoria (es decir, la que se carga en el registro de direcciones de memoria de la memoria) se denomina comúnmente **dirección física**. | + | ((Extraido y resumido de Fundamentos de Sistemas Operativos - Silberschtaz)) |
Los métodos de reasignación en tiempo de compilación y en tiempo de carga generan direcciones lógicas y físicas idénticas. Sin embargo, el esquema de reasignación de direcciones en tiempo de ejecución hace que las direcciones lógica y física difieran. En este caso, usualmente decimos que la dirección lógica es una dirección virtual. utilizaremos los términos dirección lógica y dirección virtual de manera intercambiable. | Los métodos de reasignación en tiempo de compilación y en tiempo de carga generan direcciones lógicas y físicas idénticas. Sin embargo, el esquema de reasignación de direcciones en tiempo de ejecución hace que las direcciones lógica y física difieran. En este caso, usualmente decimos que la dirección lógica es una dirección virtual. utilizaremos los términos dirección lógica y dirección virtual de manera intercambiable. | ||
Línea 11: | Línea 11: | ||
{{ : | {{ : | ||
- | Por ejemplo, si la base se encuentra en la dirección 14000, cualquier intento del usuario de direccionar la posición de memoria cero se reubicará dinámicamente en la dirección 14000; un acceso a la ubi¬cación | + | Por ejemplo, si la base se encuentra en la dirección 14000, cualquier intento del usuario de direccionar la posición de memoria cero se reubicará dinámicamente en la dirección 14000; un acceso a la ubicación |
+ | |||
+ | El programa de usuario nunca ve las direcciones físicas reales. El programa puede crear un puntero a la ubicación 346, almacenarlo en memoria, manipularlo y compararlo con otras direcciones, | ||
+ | |||
+ | Ahora tenemos dos tipos diferentes de direcciones: | ||
+ | |||
+ | El concepto de un espacio de direcciones lógicas que se acopla a un espacio de direcciones físicas separado resulta crucial para una adecuada gestión de la memoria. | ||
+ | |||
+ | ==== Carga dinámica ==== | ||
+ | |||
+ | Hasta ahora, todo el programa y todos los datos de un proceso deben encontrase en memoria física para que ese proceso pueda ejecutarse. En consecuen¬cia, | ||
+ | |||
+ | Según este método, el programa principal se carga en la memoria y se ejecuta. Cuando una rutina necesita llamar a otra rutina, la rutina que realiza la invocación comprueba primero si la otra ya ha sido cargada, si no es así, se invoca el cargador de montaje reubicable para que cargue en memoria la rutina deseada y para que **actualice las tablas de direcciones** del programa con el fin de reflejar este cambio. Después, se pasa el control a la rutina recién cargada. | ||
+ | |||
+ | ==== Swapping ==== | ||
+ | |||
+ | Un proceso debe estar en memoria para ser ejecutado. Sin embargo, los procesos pueden ser intercambiados temporalmente, | ||
+ | |||
+ | Por ejemplo, supongamos que estamos utilizando un entorno de multiprogramación con un algoritmo de planificación de CPU basado en turnos. Cuando termina un quantum de tiempo, el gestor de memoria comienza a sacar de ésta el proceso que acaba de terminar y a cargar en el espacio de memoria liberado por otro proceso. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Mientras tanto, el planificador de la CPU asignará un quantum de tiempo a algún otro proceso que ya se encuentre en memoria. Cada vez que un proceso termine su quantum asignado, se intercambiará por otro proceso. Idealmente, el gestor de memoria puede intercambiar los procesos con la suficiente rapidez como para que haya siempre algunos procesos en memoria listos para ejecutarse, cuando el planificador de la CPU quiera asignar el procesador a otra tarea. Además, el quantum debe ser lo suficientemente grande como para que pueda realizarse una cantidad razonable de cálculos entre una operación de intercambios y la siguiente. | ||
+ | |||
+ | Los mecanismos de intercambio requieren un almacén de respaldo, que normalmente será un disco suficientemente rápido. El disco debe ser también lo suficientemente grande como para poder albergar copias de todas las imágenes de memoria para todos los usuarios, y debe proporcionar un acceso directo a estas imágenes de memoria. | ||
+ | |||
+ | El sistema mantiene una cola de procesos preparados que consistirá en todos los procesos cuyas imágenes de memoria se encuentren en el backing store o en la memoria y estén listos para ejecutarse. Cada vez que el planificador de la CPU decide ejecutar un proceso, llama al despachador, | ||
+ | |||
---- | ---- |
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
so_memdirecciones.1585767759.txt.gz · Última modificación: 2020/04/01 19:02 (editor externo)