MANEJO DE MEMORIA

MANEJO DE MEMORIA:


Es un dispositivo de hardware conformado por un conjunto de circuitos integrados, responsable de los accesos a los manejos de memoria por parte de la unidad de procedimiento central (CPU).

entre las funciones de este dispositivo se encuentran la traducción de las direcciones lógicas (virtuales) a traducciones físicas (reales), la protección de la memorial, la protección del cache, en arquitecturas mas simples, (especialmente en estructuras de 8BITS, Back switching. cuando la CPU intenta acceder a una dirección de memoria lógica, la MMU realiza la búsqueda de la memoria de cache especial llamada BUFFER de traducción adelantada, que mantiene la pagina de tabla usada hace menos tiempo, en esta memoria se mantienen entradas de la tabla de paginas PTE, donde se pueden rescatar las direcciones físicas correspondientes a algunas entradas lógicas de forma directa.

HARDWARE
Compaginación del almacenamiento:
• Acelera el acceso al almacenamiento primario.
• Cualquiera de las localidades de un banco de almacenamiento primario, está siendo accedida, ninguna otra referencia puede estar en curso.
• coloca localidades de memoria adyacentes en diferentes bancos de almacenamiento, para permitir varias referencias al mismo tiempo.
Utilización del “buffer”:
• Un “buffer” es un área de almacenamiento primario destinada a contener datos durante transferencias de e / s.
• Cuando concluye la transferencia los datos pueden ser accedidos por el procesador.
• Esquema de “entradas de buffer simple”:
• El canal deposita datos en el buffer.
• El procesador procesa estos datos.
• El canal deposita nuevos datos, etc.
• No puede haber simultaneidad entre operaciones de colocar datos en el buffer y procesarlos.
• Esquema de “entradas de buffer doble”:
• Permite la sobre posición de operaciones de e / s con el procesamiento
• Mientras el canal deposita datos en un buffer el procesador puede estar procesando los datos del otro buffer.
• Cuando el procesador concluye el proceso de los datos del primer buffer, puede continuar
Manejo de la memoria
Subdividir la memoria para acomodar varios procesos
La memoria necesita ser asignada eficientemente para tener la mayor cantidad de procesos posibles en memoria
Requisitos para el manejo de la memoria
• Relocalización
 el programador no sabe en qué parte de la memoria se cargará el programa cuando se ejecute
 mientras se ejecuta el programa, puede salir a disco y regresar a memoria principal en una posición diferente
 las referencias a memoria deben traducirse en el código a la dirección de memoria física
• Protección
 los procesos no deben poder referenciar posiciones de memoria en otro proceso sin permiso
 es imposible checar direcciones en programas ya que el programa podría moverse en memoria
 deben checarse durante la ejecución
• Compartición
 permitir que varios procesos accesen la misma porción de memoria
 mejor permitir a cada proceso (persona) accesar la misma copia del programa en vez de que tengan su propia copia separada
Organización lógica
 los programas están escritos en módulos
 diferentes grados de protección dados a diferentes módulos (solo lectura, solo ejecución)
 compartir módulos
Organización física
• la memoria disponible para un programa mas sus datos puede ser insuficiente
• overlaying permite que varios módulos sean asignados a la misma región de memoria
• la memoria secundaria es más barata, de mayor capacidad, y permanente
Particiones fijas
• Partición a la memoria disponible en regiones con límites fijos
• Particiones de tamaño igual
 cualquier proceso cuyo tamaño sea menor o igual al de la partición puede cargarse en una partición disponible
 si todas las particiones están llenas, el SO puede sacar un proceso fuera de una partición
 un programa puede no caber en una partición. El programador debe diseñar el programa con overlays
Particiones fijas
El uso de la memoria principal es ineficiente.
Cualquier programa, no importa que tan pequeño sea, ocupa una partición completa. A esto se le llama fragmentación interna.