gestor de memoria

Click here to load reader

Upload: duante

Post on 29-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Gestor de memoria. Servicios de gestión de memoria. El gestor de memoria realiza funciones internas. Por eso, ofrece pocos servicios directos para las aplicaciones. Básicamente están relacionados con la proyección de archivos: POSIX Proyectar un archivo: mmap - PowerPoint PPT Presentation

TRANSCRIPT

Gestor de memoria

Gestor de memoriaEl gestor de memoria realiza funciones internas. Por eso, ofrece pocos servicios directos para las aplicaciones. Bsicamente estn relacionados con la proyeccin de archivos:

POSIXProyectar un archivo: mmapDesproyectar un archivo: munmap

Win32Proyectar un archivo: 2 pasos:Crear proyeccin: CreateFileMappingRealizar proyeccin: MapViewOfFileDesproyectar un archivo: UnmapViewOfFile

Servicios de gestin de memoriaFundamentos de Computadores II2En sistemas con multiproceso, el S.O. debe repartir los recursos entre los procesos existentes:Reparto de procesador: Gestin de procesosReparto de memoria: Gestin de memoria

Objetivos del Gestor de MemoriaEspacios lgicos independientesProteccin entre procesosComparticin de Memoria (procesos ligeros)Soporte a las regiones del procesoMaximizar el grado de multiprogramacinMapas de memoria de un tamao adecuado (normalmente grandes)1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II3En sistemas con multiproceso, el S.O. debe repartir los recursos entre los procesos existentes:Reparto de procesador: Gestin de procesosReparto de memoria: Gestin de memoria

Objetivos del Gestor de MemoriaEspacios lgicos independientesProteccin entre procesosComparticin de Memoria (procesos ligeros)Soporte a las regiones del procesoMaximizar el grado de multiprogramacinMapas de memoria de un tamao adecuado (normalmente grandes)1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II4Espacios lgicos independientesA priori no se conoce la posicin de memoria que ocupar un programa cuando vaya a ejecutarse (estado de ocupacin de la memoria)Cdigo en ejecutable genera referencias entre 0 y NEjemplo: Programa que copia un vector

Vector destino a partir de direccin 2000Tamao del vector en direccin 1500Vector origen a partir de direccin 10001. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II5Reubicacin Hardware: la MMU (memory management unit) se encarga de la traduccinProceso:Programa se carga en memoria sin modificarEl S.O. almacena por cada proceso su funcin de traduccinEl S.O. especifica a la MMU qu funcin aplicar para cada proceso

1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II6Reubicacin software: traduccin de direcciones durante carga del programa. Esta solucin se usa en sistemas sin el hardware especfico de traduccin (MMU).Proceso: El programa se carga con las direcciones ya traducidasSe genera un cdigo diferente del programa ejecutableDesventajas:No asegura proteccin (no se verifica cada direccin a usar, sino que se usan las direcciones generadas tras el proceso de carga)No permite mover programa en tiempo de ejecucin (suponer que es necesaria la reubicacin del espacio asignado al proceso, por necesitar ms espacio.....)

1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II7Proteccin entre procesosLa proteccin es diferente segn sea un sistema Mono o Multi programado:Sistema MonoProgramado: La intrusin se dar solamente entre el programa y el S.O.Sistema MultiProgramado: La intrusin puede venir tanto de otros procesos como de otros usuarios adems del riesgo del sistema Monoprogramado.AccionesLa traduccin de direcciones debe crear espacios disjuntosEs necesario validar todas las direcciones que genera el programaLa deteccin de alguna intrusin debe realizarla el hardware del procesador (MMU), ya que hay que realizarla en tiempo de ejecucinEl tratamiento de alguna intrusin lo hace el SOEn sistemas con mapa de E/S y memoria comn:Traduccin permite impedir que los procesos accedan directamente a dispositivos de E/S1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II8Comparticin de Memoria (procesos ligeros)La comparticin de memoria entre procesos da soporte a la creacin de procesos ligeros y est controlado por el S.O. Acciones:Las direcciones lgicas de 2 o ms procesos se correspondern con una misma direccin fsica. La memoria asignada a cada proceso no puede ser ya contigua.La funcin de traduccin en estos casos se va haciendo ms compleja.Ventajas:Procesos ejecutando mismo programa comparten su cdioMecanismo de comunicacin entre procesos muy rpido

1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II9 Soporte de las regiones del procesoEl mapa de memoria de un proceso no es homogneo, ya que las regiones contienen diferentes tipos de informacin (cdigo, datos y pila normalmente) y poseen diferentes caractersticasAcciones:Hacer mapa de memoria dinmico:Regiones cambian de tamao (p.ej. pila)Se crean y destruyen regiones (el sistema de memoria debe controlar qu regiones estn presentes, as como su tamao)Existen zonas sin asignar (huecos, con carcter dinmico)Detectar accesos no permitidos a una regin ( de slo lectura por ej)Detectar accesos a huecosEvitar reservar espacio para huecosGuardar y gestionar una tabla de regiones para cada proceso1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II10El reparto de memoria debe ser tal que maximize el grado de multiprogramacin para evitar el desperdicio de memoriaMemoria desperdiciadaRestos (huecos) inutilizables (fragmentacin)Tablas requeridas por gestor de memoriaAccionesCrear bloques de asignacin de menor tamaoGestionar las tablas de asignacin ms eficientementeSe opta por la paginacinUso de memoria virtual para aumentar grado de multiprogramacin

Aprovechamiento de memoria ptimo es irrealizable!!!!Tablas de gestin demasiado grandes1. Objetivos del sistema de gestin de memoriaMaximizar el grado de multiprogramacinFundamentos de Computadores II11Mapas de memoria de un tamao adecuado (normalmente grandes)Los procesos necesitan cada vez mapas ms grandes: aplicaciones ms novedosas, ms recursos grficos, ms carga computacional....AccionesUtilizar Memoria VirtualHacer que el usuario disponga virtualmente de una enorme cantidad de memoria fsicaOtras opciones (antigua)OverlaysPrograma dividido en fases que se ejecutan sucesivamenteEn cada momento slo hay una fase residente en memoriaCada fase realiza su labor y carga la siguienteNo es transparente: Toda la labor realizada por programador

1. Objetivos del sistema de gestin de memoriaFundamentos de Computadores II12El mapa de proceso se ubica en una zona contigua de la memoria principal. Proceso:El S.O. busca un hueco en memoria de tamao suficiente para alojar su mapa de memoria del proceso que comienza.El S.O. reserva la parte del hueco necesaria y crea en ella el mapa inicial del procesoSe establece la funcin de traduccin, de forma que las direcciones del programa se correspondan con las direcciones existentes en el hueco asignado.

Hardware requerido: Registros valla (registro base y registro lmite). Estos dos registros slo son accesibles en modo privilegiado.Los registros valla estn desocupados cuando el S.O. toma el control para acceder a todo el mapa de memoria.

3.1. Esquema HardwareEsq. de mem. basados en asignacin contiguaFundamentos de Computadores II13Registro lmite: Se comprobar que las direcciones usadas por el proceso no excedan el valor almacenado en l.Registro base: Una vez realizada la comprobacin anterior, se suma a cada direccin el valor contenido en este registro, de forma que se obtiene la direccin fsica pertinente.

LOAD R3, /1500ProcesadorMemoriaPCRegistro instruccinHard. traduccin (MMU)400021000R. lmiteR. base>8NOExcepcinProceso 4Proceso 7Proceso 3Proceso 2N2500021000205001503610200100000+SI22500Esq. de mem. basados en asignacin contiguaFundamentos de Computadores II14La tcnica de la MV se usa prcticamente en todos los SSOO modernos. Esta tcnica se basa en transferir informacin entre memoria principal y memoria secundaria (por lo que involucra varios niveles de la jerarqua de memoria)

Suele implementarse en un esquema de paginacin (es decir, la unidad de informacin intercambiada entre los diferentes niveles de la jerarqua de memoria es la pgina)

Elemento Clave: Proximidad referencial habitual de los procesos. Esta propiedad permite que un proceso puede funcionar disponiendo en memoria de una parte de su imagen de memoria (conjunto residente).

Objetivo final: conseguir que la informacin necesaria para un proceso (conjunto de trabajo) vaya ocupando la memoria principal segn se va necesitando (es decir, conjunto de trabajo === conjunto residente)5.1. IntroduccinMemoria virtualFundamentos de Computadores II15Ventajas:

Aumento del grado de multiprogramacin. Por tanto, aumento en el rendimiento del sistemaPosibilidad de ejecutar programas ms grandes que la MV disponible

El uso de la MV no implica que se acelere la ejecucin del programa (ms bien al contrario, debido a la sobrecarga asociada a los movimientos de informacin entre niveles de la jerarqua). Este mecanismo no es apropiado para sistemas de tiempo real.Memoria virtualFundamentos de Computadores II16Pgina: Zona contigua de memoria de determinado tamao. (Por motivos de eficiencia se suele trabajar siempre con tamaos potencia de 2. Ej:4 KB.)Organizacin: El mapa de memoria del proceso se considera dividido en pginas. La memoria principal se considera dividida en marcos de pgina (tamao de marco = tamao de pgina). Los marcos contendrn pginas de los procesos en ejecucinLa tabla de pginas (TP) relaciona cada pgina con el marco que la contiene. El hardware de traduccin (MMU) usa la tabla de pginas para traducir direcciones lgicas a fsicasTpicamente la MMU usa dos tablas de pginas (TP):TP del usuario: Por ejemplo, direcciones lgicas que empiezan por 0TP del sistema: Por ejemplo, direcciones lgicas que empiezan por 1. Estas slo se podrn usar en modo sistema5.2. PaginacinMemoria virtualFundamentos de Computadores II17

Con la paginacin la MMU no dispone de informacin sobre las regiones de los procesos y slo entiende de pginas. Por esta razn, el SO debe mantener una lista de las pginas que componen cada regin, lo que supone varias desventajas:Al crear una regin hay que cuidar que todas las pginas asociadas tengan la misma informacin de controlPara poder compartir una regin es preciso que las entradas de varios procesos apunten a los mismos marcosSegmentacin: es un esquema HW que intenta dar soporte directo a las regiones. En l se considera el mapa de memoria como compuesto por varios segmentos.Se puede considerar que consisten en una generalizacin de los registros valla base y lmite, pero usando un par de registros por cada segmento

5.3. SegmentacinMemoria virtualFundamentos de Computadores II19

Realidad de las computadoras La memoria RAM se sobrecarga en muchas ocasiones, aunque no lo creamos, siempre el causal de la lentitud del sistema, precisamente es por la ineficiente gestin de la memoria por parte del sistema operativo, pero esto obviamente no es algo que no pueda corregirse

Solucin

RAMRush una herramienta gratuita para Windows que permite liberar, de esta manera optimizar memoria RAM, y obtener mayor rendimiento en el sistema, lo cual siempre es favorable para todos.RAMRush es bastante compacto, si lo instalas, l se integra completamente en el sistema y te aade un icono en la bandeja del sistema, para que siempre lo tengas a la mano; para hacer que funcione, slo debes darle clic derecho y darle "Optimizar, el resto es facilsim

22