Sunteți pe pagina 1din 43

GESTION DE MEMORIA

SISTEMAS OPERATIVOS

Equipo 7
Jesús Álvarez
Alexis Zapata
Josue Isturiz
Company
Juan Dominguez
LOGO Nahum Nuñez
CONTENIDO

4
CONTENIDO

7
¿ QUE ES LA GESTION DE MEMORIA ?

 Existe un adminsitrador de memoria que lleva el registro de los


espacios de memoria que son utilizados y aquellos que no.

 Asigancion de espacios de memoria de forma transparente,


eficiente y seguro , exclusiva para los procesos que la requieran.

 Esta es responsabilidad del Sistema Operativo.

 Consiste en cargar y descargar procesos en memoria principal


para que despues sean ejecutados.

 El Sistema Operativo gestiona lo que se conose como MMU


( UNIDAD DE ADMINISTRACION DE MEMORIA)
GESTION DE MEMORIA

SISTEMAS

MONOPROGRAMA MULTIPROGRAMA
Se ejecuta mas de un proceso a
No hay procesos la ves.
ejecutandose de forma
concurrente. Seguridad en coexistencia entre
programas con espacios de
No existe Gestion de memoria diferentes.
Memoria.
Procesador: se reparte equitativa
El procesador pasa mucho o eficiente el tiempo.
tiempo ocioso.
La memoria: Se reparte espacios
de memoria.
GESTION DE MEMORIA

Sea cual sea las politicas


de gestion de memoria,
se pueden destacar los
siguientes objetivos

OBJETIVOS
ESPACIO LOGICO y FISICO

Direccion Fisica

Direccion Logica
UNIDAD DE ADMINISTRACION DE MEMORIA

Sus funciones son:


COMPARTIMIENTO DE MEMORIA
PROTECION ENTRE PROCESOS
MODELO DE MEMORIA DE UN PROCESO

FASES EN LA GENERACIÓN DE UN EJECUTABLE

Los programadores desarrollan sus aplicaciones utilizando lenguajes


de alto nivel. En general, una aplicación estará compuesta por un
conjunto de módulos de código fuente que deberán ser procesados
para obtener el ejecutable de la aplicación.
MODELO DE MEMORIA DE UN PROCESO

FASES DE PROCESAMIENTO
2.Compilación:
Se genera el código máquina correspondiente a cada módulo fuente de la aplicación
asignando direcciones a los símbolos definidos en el módulo y resolviendo las referencias
a los mismos. Así, si a una variable se le asigna una determinada posición de memoria,
todas las instrucciones que hagan referencia a esa variable deben especificar dicha
dirección.

5.Montaje o enlace.
Se genera un ejecutable agrupando todos los archivos objeto y resolviendo las referencias
entre módulos, o sea, haciendo que las referencias a un determinado símbolo apunten a
la dirección asignada al mismo. Además de este tipo de referencias, pueden existir
referencias a símbolos definidos en otros archivos objeto previamente compilados
agrupados normalmente en bibliotecas. El montador, por tanto, debe generalmente incluir
en el ejecutable otros objetos extraídos de las bibliotecas correspondientes.
MODELO DE MEMORIA DE UN PROCESO

Bibliotecas de objetos:
Una biblioteca es una colección de objetos normalmente relacionados
entre sí. En el sistema existe un conjunto de bibliotecas predefinidas
que proporcionan servicios a las aplicaciones. Estos servicios incluyen
tanto los correspondientes a un determinado lenguaje de alto nivel
como los que permiten el acceso a los servicios del sistema operativo.

Bibliotecas dinámicas:
Consiste en compilar los módulos fuente de la aplicación y enlazar los
módulos objeto resultantes junto con los extraídos de las bibliotecas
correspondientes.
MODELO DE MEMORIA DE UN PROCESO

Este modo de trabajo presenta varias desventajas:


•El archivo ejecutable puede ser bastante grande ya que incluye,
además del código propio de la aplicación, todo el código de las
funciones «externas» que usa el programa.

•Todo programa en el sistema que use una determinada función de


biblioteca tendrá una copia del código de la misma.

•Cuando se estén ejecutando simultáneamente varias aplicaciones que


usan una misma función de biblioteca, existirán en memoria múltiples
copias del código de dicha función aumentando el gasto de memoria.

•La actualización de una biblioteca implica tener que volver a generar los
ejecutables que la incluyen por muy pequeño que sea el cambio que se
ha realizado sobre la misma.
MODELO DE MEMORIA DE UN PROCESO

Montaje explícito de bibliotecas dinámicas


La forma de usar las bibliotecas dinámicas se especifica en tiempo de montaje
qué bibliotecas se deben usar y se pospone la carga y el montaje hasta el tiempo
de ejecución.
Formato del ejecutable
Como parte final del proceso de compilación y montaje, se genera un archivo
ejecutable que contiene el código máquina del programa.
MODELO DE MEMORIA DE UN PROCESO

MAPA DE MEMORIA DE UN PROCESO


El mapa de memoria de un proceso no es algo homogéneo sino que
está formado por distintas regiones o segmentos. Una región tiene
asociada una determinada información. Ese conjunto de información
relacionada puede llamarse Objeto de Memoria. La asociación de una
región de un proceso con un objeto de memoria permite al proceso
tener acceso a la información contenida en el objeto.

Cada región es una zona contigua que está caracterizada por la


dirección dentro del mapa del proceso donde comienza y por su
tamaño.
MODELO DE MEMORIA DE UN PROCESO

PROPIEDADES Y CARACTERÍSTICAS ESPECÍFICAS DE CADA REGIÓN O


SEGMENTO:
•Soporte de la región. El objeto de memoria asociado a la región. En él está
almacenado el contenido inicial de la región. Se presentan normalmente dos
posibilidades:
•Soporte en archivo.
•Sin soporte

• Tipo de uso compartido:


•Privada.
•Compartida.

•Protección. Tipo de acceso permitido. Típicamente se distinguen tres tipos:


•Lectura.
•Ejecución.
•Escritura.

•Tamaño fijo o variable. En el caso de regiones de tamaño variable, se suele


distinguir si la región crece hacia direcciones de memoria menores o mayores.
MODELO DE MEMORIA DE UN PROCESO

• Código (o texto). Se trata de una región compartida de lectura/ejecución. Es de


tamaño fijo (el indicado en la cabecera del ejecutable).

• Datos con valor inicial. Se trata de una región privada ya que cada proceso que
ejecuta un determinado programa necesita una copia propia de las variables
del mismo.

• Datos sin valor inicial. Se trata de una región privada de lectura/escritura y de


tamaño fijo (el indicado en la cabecera del ejecutable). En muchos sistemas se
le da un valor inicial de cero a toda la región por motivos de confidencialidad.

• Pila. Esta región es privada y de lectura/escritura. Servirá de soporte para


almacenar los registros de activación de las llamadas a funciones (las variables
locales, parámetros, dirección de retorno, etc.). Se trata, por tanto, de una
región de tamaño variable que crecerá cuando se produzcan llamadas a
funciones y decrecerá cuando se retorne de las mismas.
MODELO DE MEMORIA DE UN PROCESO
MODELO DE MEMORIA DE UN PROCESO

Operaciones sobre regiones


•Crear una región dentro del mapa de un proceso asociándola un objeto de
memoria. El sistema operativo crea una nueva región vinculada al objeto en el
lugar correspondiente del mapa asignándola los recursos necesarios y
estableciendo las características y propiedades de la misma (tipo de soporte,
carácter privado o compartido, tipo de protección y tamaño fijo o variable).

•Eliminar una región del mapa de un proceso. Esta operación libera todos los
recursos vinculados a la región que se elimina.

•Cambiar el tamaño de una región. El tamaño de la región puede cambiar ya


sea por una petición explícita del programa, como ocurre con la región del heap,
o de forma implícita, como sucede cuando se produce una expansión de la pila.
MODELO DE MEMORIA DE UN PROCESO

• Duplicar una región del mapa de un proceso en el mapa de otro. Dada una
región asociada a un determinado objeto de memoria, esta operación crea
una nueva región vinculada a un objeto de memoria que es una copia del
anterior. Por tanto, las modificaciones que se realizan en una región no
afectan a la otra.
PARTICIONES FIJAS

“Consisteen dividir la memoria libre


en Varias partes de igual tamaño o
de diferentes Tamaños”

El uso de memoria principal


es extremadamente
ineficiente. (fragmentación
interna)
PARTICIONES FIJAS

 Estas particiones permanecen fijas tanto


en espacio como en el numero de
particiones.

El principal problema de este tipo de


particiones son las Fragmentaciones, que
no es mas que las partes de la memoria
no pueden usarse.
PARTICIONES FIJAS

 Existen dos tipos de Fragmentaciones:


Fragmentación interna
Desaprovechamiento de la memoria.
Fragmentación externa
Un proceso solicita mayor espacio de
memoria.
 Otro problema de particiones fijas es a la de
que determinado proceso solicite un área de
memoria mas grande.
PARTICIONES FIJAS

Técnicas Básicas
Utilizar una sola
cola:
Cuando una
partición queda libre
se le asigna al 1ero
de la cola.

No existe una


buena gestión de
memoria
PARTICIONES FIJAS

Técnicas Básicas
Utilizar varias
colas:
Se utiliza una cola
para cada partición.

Cuando llega un
proceso es
examinado y
enviado a la
particion mas
apropiada
PARTICIÓN DINÁMICA

“Este método consiste en particiones de memoria de tamaños variable, o


sea, a cada proceso se le asigna la cantidad de memoria que necesita.”

Cuando llega un proceso a memoria se le


asigna la memoria que necesita: se crea una
partición.

El SO mantiene información sobre las


zonas de memoria asignadas (tabla de
particiones) y las libres (huecos).

Es necesario tener una estrategia de


asignación de espacio y gestión de espacio
libre

¿ PROBLEMAS ?
ESQUEMA DE MEMORIA BASADO EN
ASIGNACION CONTIGUA

Proceso que consiste en asignarle a cada


proceso una zona contigua de memoria
donde se almacenara su mapa de
memoria.

El sistema operativo se encarga de


buscar un hueco en memoria de tamaño
suficiente para alojar el mapa de
memoria.
ESQUEMA DE MEMORIA BASADO EN
ASIGNACION CONTIGUA

Para la gestión de memoria se requiere la


presencia del hardware el cual posee dos
registros:
Registro limite : el procesador verifica que
cada dirección que genera el proceso no sea
mayor a el espacio asignado.
Registro base : una vez que el procesador
comprueba que no existe desborde, suma el
valor del registro, obteniendo la dirección de
memoria física resultante.
ESQUEMA DE MEMORIA BASADO EN
ASIGNACION CONTIGUA

 En cuanto a la función del SO solo tendrá que


almacenar en el Bloque de Control de Proceso
(PCB) los registros de dicho proceso.

 Mantendrá constante información sobre el estado


de la memoria identificando que partes están
libres.

 Una desventaja es que el esquema de asignación


contigua no da soporte a las regiones, no permite
compartir y tiene un mal aprovechamiento de la
memoria.
TECNICA DE INTERCAMBIO(swapping)

Esta técnica se basa en usar el disco


como respaldo de la memoria principal
cuando no caben todos los procesos
activos.

En el tiempo compartido existen mas


procesos que memoria, por lo que se
necesita guardar algunos procesos.
|TECNICA DE INTERCAMBIO(swapping)

La utilizamos cuando:


El sistema no puede manejar más procesos
que los que caben en la memoria.
Los procesos para los cuales no hay espacio
se intercambian al disco.

A través de un criterio de selección que


toma en cuenta prioridad y tamaño del
mapa, se escoge el proceso residente en
memoria y se copia en swap.
TECNICA DE INTERCAMBIO(swapping)

Dentro del swap tenemos 2


funcionalidades:
Swap in : proceso cargado en memoria.
Swap out : expulsamos un proceso finalizado.

Asignación de espacio utilizando swap:


Preasignación: al crear el proceso se reserva
el espacio suficiente para albergarlo.
Sin Preasignación: solo se reserva espacio al
expulsar el proceso.
MEMORIA VIRTUAL

“La memoria virtual es una técnica para proporcionar la


simulación de un espacio de memoria mucho mayor que la
memoria física de una máquina. Esta "ilusión" permite que los
programas se hagan sin tener en cuenta el tamaño exacto de la
memoria física.”

o Componente esencial de la mayoría de los S.O actuales.


o En un instante dado, en la memoria sólo se tienen unos pocos
fragmentos de un proceso dado, se pueden mantener más
procesos en la memoria.
o Se ahorra tiempo, porque los fragmentos que no se usan no se
cargan ni se descargan de la memoria.
o El S.O debe saber cómo gestionar este esquema.
MEMORIA VIRTUAL

La memoria virtual también simplifica la carga del


programa para su ejecución llamado reubicación, este
procedimiento permite que el mismo programa se ejecute en
cualquier posición de la memoria física.

o Demasiados intercambios de fragmentos conducen a lo que se conoce


como hiperpaginación: donde el procesador consume más tiempo
intercambiando fragmentos que ejecutando instrucciones de usuario.

o Para evitarlo el S.O intenta adivinar, en función de la historia reciente,


qué fragmentos se usarán con menor probabilidad en un futuro próximo.

o Los argumentos anteriores se basan en el principio de


cercanía o principio de localidad que afirma que las referencias a los
datos y el programa dentro de un proceso tienden a agruparse. Por lo
tanto, es válida la suposición de que, durante cortos períodos de tiempo,
se necesitarán sólo unos pocos fragmentos de un proceso.
SEGMENTACION
PAGINACION
PARTICIONES FIJAS

“Consiste en dividir la memoria libre en Varias


partes de igual tamaño o de diferentes Tamaños”

El uso de memoria principal es


extremadamente ineficiente.
(fragmentación interna)
PARTICIÓN DINÁMICA

“Este método consiste en particiones de memoria de tamaños variable, o


sea, a cada proceso se le asigna la cantidad de memoria que necesita.”

Cuando llega un proceso a memoria se le


asigna la memoria que necesita: se crea una
partición.

El SO mantiene información sobre las


zonas de memoria asignadas (tabla de
particiones) y las libres (huecos).

Es necesario tener una estrategia de


asignación de espacio y gestión de espacio
libre

¿ PROBLEMAS ?
Gestión de Memoria con Particiones Variables.
Estrategias para la Asignación de memoria.
Administración de Memoria Insuficiente
Company
LOGO

S-ar putea să vă placă și