Está en la página 1de 10

UNIVERSIDAD PRIVADA ANTENOR ORREGO

FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE COMPUTACION Y SISTEMAS

“SISTEMA DE GESTION DE MEMORIA”

 INTEGRANTES

 CURSO:
SISTEMAS OPERATIVOS.

 CICLO
VI
 DOCENTE

TRUJILLO – PERU
2017

GESTIÓN DE LA MEMORIA
1. LA MEMORIA
En el siguiente informe se hablará el funcionamiento y mecánica de la memoria
en general además como el S.O controla su uso y asignación de espacio para
las aplicaciones.
Primero, ¿Qué es la memoria?: La memoria dentro de un computador, es el
dispositivo que se encarga de almacenar la información de forma volátil
(temporal) y no volátil (hasta cuando el usuario lo desee) en donde se guarda en
bloques.
La memoria se divide en gran número de piezas pequeñas llamadas células(kb).
Memoria es principalmente de tres tipos:
 Memoria caché
 Memoria principal/memoria principal
 Memoria secundaria

1. Estructura interna de una memoria tipo NAND

La funcionalidad de una memoria en general es sencilla, como se ve la imagen


anterior tiene un canal donde llega la información (en forma de bits) donde esto
son almacenado en una celda que va retener ese bit. Para su borrado está
basado en una descarga selecta en una de las celdas.
Visto su funcionalidad y arquitectura, nos damos cuenta de que es un
componente vital para que las aplicaciones que se ejecute puedan alojar la
información que genere para su funcionamiento. Pero el problema está hay el
riesgo donde las aplicaciones puede usar espacios de más o hacer operaciones
no deseada.
Para ello, los S.O tiene una funcionalidad básica que es la “Gestión de la
memoria” que se encarga de manejar el uso de la memoria y su asignación.

2. GESTION DE MEMORIA
2.1. Definición

La gestión de memoria o administración de memoria es el acto de


gestionar la memoria de un dispositivo informático. El proceso
de asignación de memoria a los programas que la solicitan.1 La
gestión de la memoria principal de una computadora es una tarea de
suma importancia para el funcionamiento de la misma.

2.2. Objetivos
Los objetivos del Sistema de gestión de memoria son la siguiente:
- Asignar un espacio lógico propia a cada proceso.
- Dar protección entre procesos.
- Permitir que los procesos compartan memoria.
- Maximizar el rendimiento del sistema
- Dar soporte a las distintas regiones del proceso
- Hacer uso sea eficiente de la memoria
Entre los problemas que debe solucionar la gestión de memoria se
encuentran:
Reubicación:
La memoria esta compartida por varios procesos, por lo que es necesario
asignar un espacio físico especifico por cada programa. Ahora, para que
el programa acceda a ese espacio, es necesario que se conozca la
dirección de dicho espacio.
Protección:
Es vital que cada programa tenga un espacio asignado propia en donde
no le puedan quitarlo o este proceso invada al espacio de otro proceso.
La protección garantiza que el sistema y los programas funcionan de
forma regular y estable.
Compartición:
Algunas veces, algunos programas necesitan compartir un espacio común
con otros procesos de tal manera el espacio sea más eficiente. Por lo que
el sistema gestión de datos debe conceder permiso cuando un programa
o usuario quiera acceder algún espacio de la memoria de otro proceso .
Organización lógica:
Normalmente en un sistema informático la memoria principal está
organizada de forma lineal como una secuencia de posiciones de
memoria. Del mismo modo la memoria secundaria se puede ver como una
secuencia de bloques. Esta organización física no se corresponde con la
visión del programador que estructura su programa en diferentes
módulos. El sistema gestor de memoria debe permitir organizar
lógicamente partes de la memoria para acercarse a la visión del
programador. La técnica que más fácilmente satisface esta necesidad es
la segmentación.
Organización física:
Físicamente la memoria está organizada en dos espacios claramente
diferenciados:
- Memoria principal: rápida, volátil y escasa
- Memoria secundaria: lenta, persistente y abundante

2.3. Mecanismo
Antes de hablar sobre la mecánica del sistema gestión de la memoria, vamos
a definir algunos conceptos como:
a. Dirección física: Es una referencia de alguna posición en la memoria
física del equipo
b. MMU: Unidad de Manejo de memoria, es una parte del procesador
que se encarga del direccionamiento y control en el acceso de la
memoria.
c. Dirección lógica: Es una referencia de alguna posición de la memoria
física usada por los procesos.

2. Grafica del funcionamiento del MMU

Ahora, la forma de trabajar del sistema de gestión de memoria depende de qué


estrategia o política trabaje de las cuales son las siguiente:
1) Monitor residente o Asignación en mono programación:
Esta es la forma más primitiva en la gestión de la memoria. Consiste en
partir la memoria en dos partes: Uno para el sistema operativo (monitor) y
otra donde asigna las aplicaciones del usuario. Donde el tamaño de
asignación es estático (no es modificable). El S.O procura que la dirección
de la aplicación siempre este los límites establecidos, caso contrario, no
lo carga.
2) GRADO DE MULTIPROGRAMACIÓN
El reparto de memoria debe ser tal que maximice el grado de
multiprogramación para evitar el desperdicio de memoria
• Memoria desperdiciada
– Restos (huecos) inutilizables (fragmentación)
– Tablas requeridas por gestor de memoria
• Acciones
– Crear bloques de asignación de menor tamaño
– Gestionar las tablas de asignación más eficientemente
– Se opta por la paginación
– Uso de memoria virtual para aumentar grado de
multiprogramación

2.4. Particiones
El sistema operativo es capaz de gestionar la coexistencia de varios
programas en memoria asignando a cada uno un espacio contiguo
(partición). El particionado puede ser fijo o variable.

Como soporte hardware para protección requiere dos registros:

• registro límite inferior (base).


• registro límite superior o registro longitud.

Se requiere reubicación en tiempo de carga. El cargador puede establecer


direcciones absolutas (reubicación estática), o establecer direcciones
relativas a un registro base (reubicación dinámica).

2.4.1. Particionado Fijo

La memoria se divide en un conjunto de particiones de tamaños


preestablecidos. Este mecanismo se denomina históricamente MFT
(multiprogramación con un número fijo de tareas).

En cada partición se ubica un único programa. Las particiones pueden ser


iguales o de diferentes tamaños. En este último caso se aprovecha mejor
la memoria, al poder almacenar un programa en la partición que mejor se
ajuste a su tamaño. Dos consecuencias de este mecanismo son las
siguientes:

• El número de programas está limitado (grado fijo de


multiprogramación).
• Produce fragmentación interna en cada partición (trozo de la
partición desocupada).

Los programas se encolan para poder ser cargados en memoria. Existen


dos alternativas para esto:

(a) Una cola por cada partición. Un programa se encola en la cola que le
corresponde por su tamaño. Tiene el inconveniente de que puede dejar
fuera a un programa habiendo memoria libre para cargarlo.
(b) Cola única. Cuando un programa encuentra ocupada la partición que
corresponde a su tamaño cabe la posibilidad de asignarle una partición
libre de tamaño mayor, permitiendo incrementar el grado de
multiprogramación a costa de introducir fragmentación interna. El sistema
puede utilizar heurísticos que maximicen el grado de multiprogramación
minimizando la fragmentación, consistentes en alterar la disciplina de la
cola buscando en ella los programas que se adapten mejor a los huecos
disponibles, para minimizar la fragmentación interna.
Para la gestión del espacio libre es adecuado el mapa de bits.

2.4.2. Partición Variable

Como ya sabemos, MFT presenta problemas de fragmentación interna.


La alternativa es la partición variable de la memoria, que se denomina
MVT (multiprogramación con un número variable de tareas).

Ya es conocido que el particionado variable introduce fragmentación


externa al ir quedando huecos entre particiones a medida que finalizan
programas. En estos huecos sólo se pueden ubicar programas de menor
tamaño que el hueco, que cuando acaben dejarán un hueco aún menor,
y así sucesivamente (degradación de la memoria). La necesidad de
compactar implica reubicar dinámicamente el programa, requiriendo el
soporte adecuado para ello.

La carga de programas se gestiona mediante una única cola. La memoria


libre se representa bien con una lista de huecos, bien mediante un mapa
de bits, aunque en este caso es conveniente definir una unidad de
asignación de memoria mayor que el byte para mantener el tamaño del
mapa en unas dimensiones razonables.

La elección del hueco donde ubicar el programa puede hacerse siguiendo


las diferentes políticas de asignación, first-fit y next-fit son las más
adecuadas.

2.5. El swapping

Es un mecanismo para mover programas entre memoria principal y


secundaria, normalmente disco (dispositivo se swap). Con swapping, los
programas pueden salir/entrar de/a memoria durante su tiempo de
ejecución. Normalmente, un programa abandona la memoria para dejar
espacio a otro. El swapping modifica el grafo de transición de estados de
los procesos en un sistema multiprogramado, desdoblando los estados de
bloqueado y preparado en dentro y fuera de memoria.

La función del sistema operativo que gestiona el intercambio entre disco


y memoria se denomina intercambiador o swapper. La operación de
escribir el programa en disco se conoce como swap-out, mientras que leer
el programa de disco se denomina swap-in.

El swapping aporta las siguientes ventajas:

 Permite influir en la gestión de procesos para controlar el grado de


multiprogramación (planificación a medio plazo).
 Proporciona flexibilidad en la gestión de la memoria, permitiendo
una utilización más eficiente del espacio.

Para soportar swapping se requiere espacio para el intercambio en


almacenamiento secundario, generalmente disco. Se puede utilizar un
dispositivo específico independiente, una partición del disco, o incluso
compartir la misma del sistema de ficheros.

2.6. Paginación

Es una técnica de manejo de memoria, en la cual el espacio de memoria


se divide en secciones físicas de igual tamaño, denominadas marcos de
página. Los programas se dividen en unidades lógicas, denominadas
páginas, que tienen el mismo tamaño que los marcos de páginas. De esta
forma, se puede cargar una página de información en cualquier marco de
página.

Las páginas sirven como unidad de almacenamiento de información y de


transferencia entre memoria principal y memoria auxiliar o secundaria.
Cada marco se identifica por la dirección de marco, que está en la posición
física de la primera palabra en el marco de página.
2.7. Segmentación

Otro modo de subdividir el programa es la segmentación. En este caso, el


programa y sus datos asociados se dividen en un conjunto de segmentos.
No es necesario que todos los segmentos de todos los programas tengan
la misma longitud, aunque existe una longitud máxima de segmento.
Como en la paginación, una dirección lógica segmentada consta de dos
partes, en este caso un número de segmento y desplazamiento.

Como consecuencia del empleo de segmentos de distintos tamaños, la


segmentación resulta similar a la partición dinámica. En ausencia de un
esquema de superposición o del uso de memoria virtual, sería necesario
cargar en la memoria todos los segmentos de un programa para su
ejecución.

La diferencia, en comparación con la partición dinámica, radica en que,


con segmentación, un programa puede ocupar más de una partición y
éstas no tienen por qué estas contiguas. La segmentación elimina la
fragmentación interna, pero la partición dinámica, sufre de fragmentación
externa. Sin embargo, debido a que los procesos se dividen en un
conjunto de partes más pequeñas, la fragmentación externa será menor.

2.7.1. PAGINACIÓN SEGMENTADA

Como su propio nombre lo indica, la segmentación paginada intenta


aumentar lo mejor de los dos esquemas. La segmentación proporciona
soporte directo a las regiones del proceso y la paginación permite un mejor
aprovechamiento de la memoria y una base para construir un esquema de
memoria virtual.

Con esta técnica, un segmento está formado por un conjunto de páginas, y


por lo tanto, no tiene que estar contiguo en memoria. Esta utiliza una tabla de
segmentos, tal que cada entrada de la tabla apunta a una tabla de páginas

MODELO DE MEMORIA EN PROCESO

También podría gustarte