Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA:
PROYECTO DE GESTION DE MEMORIA
CUSCO – PERU
Julio 2017
Contenido
Introducción .................................................................................................................................. 4
1.1. Identificación del Problema ................................................................................................... 5
1.1.1. Descripción del problema ............................................................................................... 5
Partición dinámica ................................................................................................................. 5
Paginación por demanda....................................................................................................... 5
Hiperpaginación-Control de carga ........................................................................................ 5
Políticas de reemplazo .......................................................................................................... 5
Gestión del espacio de swap ................................................................................................. 5
Segmentación paginada ....................................................................................................... 5
Protección y compartición .................................................................................................... 5
Políticas de asignación de marcos de página ........................................................................ 5
1.1.2. Formulación interrogativa del problema ........................................................................ 6
1.1.2.1. Formulación interrogativa del problema general .................................................... 6
1.1.2.2. Formulación interrogativa de los problemas específicos......................................... 6
1.2. Limitaciones de la Investigación............................................................................................. 6
1.2.1. Entorno............................................................................................................................ 6
1.2.2. Limitaciones .................................................................................................................... 6
1.3. Objetivo de la investigación ................................................................................................... 6
1.3.1. Objetivo General ............................................................................................................. 6
1.3.2. Objetivos Específicos ....................................................................................................... 6
1.4 Hipótesis .................................................................................................................................. 7
1.4.1. Hipótesis general ............................................................................................................. 7
1.5 Metodología de la tesis ........................................................................................................... 7
1.5.1. Tipo de Investigación....................................................................................................... 7
1.5.2. Hipótesis general ............................................................................................................. 7
1.5.2. Método de investigación................................................................................................. 7
Marco Teórico ............................................................................................................................... 7
1.6. Aspectos generales................................................................................................................. 7
1.6.1. Gestión de memoria........................................................................................................ 7
1.6.1.1. Objetivos de la gestión de memoria ............................................................................ 7
Implementación de algoritmos de solución .................................................................................. 9
Partición Dinámica .................................................................................................................... 9
VENTAJAS Y DESVENTAJAS DE LA PARTICION DINAMICA: .................................................... 9
Implementación en Java para Android................................................................................. 9
Paginación por Demanda .......................................................................................................... 9
Ventajas ............................................................................................................................... 10
Desventajas ......................................................................................................................... 10
Implementación en Java para Android............................................................................... 10
Hiperpaginación ...................................................................................................................... 10
Implementación en Java para Android............................................................................... 10
Políticas de Reemplazo............................................................................................................ 11
Algoritmo Óptimo ............................................................................................................... 11
Algoritmo FIFO .................................................................................................................... 13
Algoritmo LIFO..................................................................................................................... 15
Gestión del espacio de swap ............................................................................................... 17
Segmentación paginada ..................................................................................................... 18
Protección y compartición .................................................................................................. 18
Políticas de asignación de marcos de página ...................................................................... 19
Introducción
Partición dinámica
Se produce cuando la partición dinámica se desemboca en una situación en la que hay
un gran número de huecos pequeños de memoria. Conforme pasa el tiempo, la
memoria comienza a estar fragmentada y su rendimiento decae. Este fenómeno se
denomina fragmentación externa.
Hiperpaginación-Control de carga
Se produce cuando el número de marcos de página que se ha asignado al proceso no
es suficiente para almacenar las páginas referenciadas activamente por el mismo. La
hiperpaginación es una situación de alta paginación producto de que el conjunto
residente de los procesos es de tamaño reducido.
Políticas de reemplazo
Existen para satisfacer el fallo de página (Cuando un proceso necesita acceder a una
página que no está en memoria principal) de un proceso.
Segmentación paginada
La segmentación paginada es una combinación de segmentación y paginación
la consecuencia de no utilizar esta técnica es básicamente la pérdida de la
optimización de los problemas individuales de ambos.
Protección y compartición
La segmentación se presta a la implementación de políticas de protección y
compartición ya que al no aplicarlas estas políticas suelen surgir errores Puesto que
cada entrada de la tabla de segmentos incluye la longitud, además de la
dirección base, un programa no podrá acceder por descuido a una posición de
memoria principal más allá de los límites de un segmento.
1.2.2. Limitaciones
Conocimiento con el entorno de desarrollo en Android (Android Studio)
Conocimiento en programación Android
1.4 Hipótesis
1.4.1. Hipótesis general
Mediante el presente informe demostraremos de una manera mas sencilla y practica
el comportamiento del sistema operativo frente a la gestión de memoria
Marco Teórico
Se refiere a la tarea de subdivisión, y posterior asignación, del recurso memoria que realiza un
sistema operativo con respecto a cada proceso que lleva a cabo este de forma trasparente,
segura y eficiente. De forma que el rendimiento de la computadora, con respecto a los
procesos que lleve a cabo, sea óptimo.
• Soporte de las regiones del proceso: Se refiere al control que el sistema operativo debe
tener con respecto a las regiones que conforman un espacio lógico asignado a un proceso, con
respecto a su tamaño, seguridad, accesos, etc. Esto debido a que los espacios lógicos de un
proceso por lo general poseen un comportamiento dinámico por lo que es recomendable que
el sistema operativo sepa cuando asignar o liberar la memoria física que ocupan las regiones
que conforman estos.
• Mapas de memoria muy grandes para los procesos: Se refiere a que el sistema
operativo busca proporcionar a los procesos espacios lógicos considerablemente más grandes
que la memoria física disponible en el sistema, debido a que esto permite a los programadores
obtener beneficios del avance tecnológico
Implementación de algoritmos de solución
Partición Dinámica
Con esta partición, las particiones son variables en número y longitud, esto quiere decir que
cuando se carga un proceso a memorial principal se le asigna el espacio que necesita en
memoria y no más. Esta partición comienza siendo muy buena pero en el trascurso de uso deja
un gran número de huecos pequeños en la memoria lo cual se le denomina fragmentación
externa.
DESVENTAJAS
El uso de la memoria es muy ineficiente, se generan muchos huecos entre las
particiones, cada vez más pequeñas, se genera la fragmentación externa. (Lo cual se
puede solucionar con el método de la compactación)
Cada cierto tiempo se debe compactar los segmentos libres, para que estén contiguos.
El compactado toma tiempo y recursos.
Desventajas
La paginación por demanda puede llevarnos a las siguientes situaciones:
Debido a la sobre-asignación podemos quedarnos sin frames libres para agregar
nuevas páginas, si esto sucede debemos recurrir a un reemplazo.
Cada fallo de página requiere cargar a memoria una página a leer, si ocurren muchos
fallos de página el rendimiento empeora notablemente.
Las páginas que son sacadas de los frames por intercambio pueden volver a ser
llamadas, lo que ocasiona que se lea en múltiples ocasiones la misma información.
A[i,j] := 0;
A:
Arreglo[128,128] = {1,…,128};
For(int i=0;i<128;i++){
For(int i=0;i<128;i++){
Arreglo[I,j] = 0;
Observe que la matriz está almacenada por filas. Es decir, la matriz se almacena como A[1,1] ,
A[1,2] , ..., A[2,1] , A[2,2] , ...., A[128,128] . Para páginas de 128 palabras, cada fila ocupa una
página. De esta manera, el código anterior asigna ceros a una palabra de cada página, luego
otra palabra en cada página, etc. Si el sistema operativo asigna 128 marcos al programa,
entonces ocasiona 128 x 128 = 16384 fallos de página. Si cambiamos el código a se asignan
ceros a todas las palabras de una página antes de comenzar con la siguiente, reduciendo a 128
el número de fallos de página.
Políticas de Reemplazo
Algoritmo Óptimo
Este algoritmo tiene como finalidad retirar la página que vaya a ser referenciada más tarde,
por ejemplo si hay una página A que será usada dentro de 10000 instrucciones, y una página B
que será usada dentro de 2800 instrucciones, se debería eliminar de la memoria la página A.
Como se puede deducir, para esto el sistema operativo debería ver en cuánto tiempo será
usada cada página en memoria y elegir la que está más distante. El problema de este método
es que necesita conocimiento del futuro, por lo que es imposible su implementación. Es un
algoritmo teórico. Se utiliza a los efectos comparativos con los algoritmos factibles de ser
implementados para ver cuál se aproxima más a éste.
display();
found = false;
}
System.out.println("Numero de fallas = " + faults);
System.out.println("Tasa de fallas = " + (faults * 1.0 / n));
}
Algoritmo FIFO
En este método, el sistema operativo sólo tiene que guardar en orden las páginas que fueron
cargadas, de modo que al necesitar hacer espacio pueda fácilmente elegir la primera página
cargada. Se usa una cola, al cargar una página nueva se ingresa en el último lugar. Aunque las
colas FIFO son simples e intuitivas, no se comportan de manera aceptable en la aplicación
práctica, por lo que es raro su uso en su forma simple. Uno de los problemas que presentan es
la llamada Anomalía FIFO o Anomalía de Belady. Belady encontró ejemplos en los que un
sistema con un número de marcos de páginas igual a tres tenía menos fallos de páginas que un
sistema con cuatro marcos de páginas. El problema consiste en que podemos quitar de
memoria una página de memoria muy usada, sólo porque es la más antigua.
int i, j, k = 0;
reset();
show();
if (page[i] == frames[j]) {
found = true;
}
if (found == false) {
frames[k] = page[i];
if (k == f - 1) {
k = 0;
} else {
k++;
faults++;
display();
found = false;
void display() {
int i;
if (frames[i] == -1) {
System.out.print(" ");
} else {
}
}
System.out.print("\n");
count++;
void show() {
int i;
if(i==n-1){
System.out.print(page[i]+"}");
}else{
System.out.print(page[i]+",");
System.out.print("\n\n");
Algoritmo LIFO
En informática, el término LIFO se utiliza en estructuras de datos y teoría de colas. Guarda
analogía con una pila de platos, en la que los platos van poniéndose uno sobre el otro, y si se
quiere sacar uno, se saca primero el último que se ha puesto.
return valores;
}
}
Gestión del espacio de swap
El espacio de memoria de intercambio o Swap es lo que se conoce como memoria virtual. La
diferencia entre la memoria real y la virtual es que está última utiliza espacio en la unidad de
almacenamiento en lugar de un módulo de memoria. Cuando la memoria real se agota, el
sistema copia parte del contenido de esta directamente en este espacio de memoria de
intercambio a fin de poder realizar otras tareas.
Utilizar memoria virtual tiene como ventaja el proporcionar la memoria adicional necesaria
cuando la memoria real se ha agotado y se tiene que continuar un proceso. Como
consecuencia de utilizar espacio en la unidad de almacenamiento como memoria es que es
considerablemente más lenta.
Más de 1 GB RAM Misma cantidad del total de memoria RAM, más 2 GB.
Independientemente de la cantidad de memoria RAM disponible, el sistema podrá trabajar
normalmente con de 4 a 8 GB de memoria de intercambio, salvo que una aplicación o
programa en particular lo requiera. Los programas de instalación de la mayoría de las
distribuciones asignan hasta 4 GB si se realiza una instalación predeterminada sin personalizar
aún en sistemas con mucha memoria RAM.
Segmentación paginada
Se refiere a, como su nombre lo indica, la integración de la paginación y de la segmentación,
mediante la división de procesos en segmentos, y la división de dichos segmentos en páginas,
esta técnica requiere dos registros para hacer posible la traducción de direcciones lógicas a
direcciones físicas, el primero vendría a ser la tabla de segmentos (una por cada proceso) y el
segundo vendría a ser la tabla de páginas (una por cada segmento). Cabe destacar que esta
técnica ofrece más funciones que la paginación, pero que requiere de un Hardware más
complejo.
Protección y compartición
La segmentación se presta a la implementación de políticas de protección y compartición ya
que al no aplicarlas estas políticas suelen surgir errores Puesto que cada entrada de la tabla de
segmentos incluye la longitud, además de la dirección base, un programa no podrá acceder
por descuido a una posición de memoria principal más allá de los límites de un segmento.
Protección: Se refiere a la protección que brinda un sistema operativo con respecto a la
ejecución de procesos, en el caso de un proceso con mono programación, simplemente tiene
que evitar que un proceso que esté ejecutándose afecte el correcto funcionamiento del
sistema operativo en sí, en el caso de un sistema operativo con multiprogramación el además
de proteger su funcionamiento de un proceso en ejecución, también debe asegurarse de
proteger el funcionamiento de los procesos entre sí, lo cual por lo general se logra apoyándose
en el hardware, para así validar las direcciones que genera un programa al ser ejecutado.
Compartimiento de memoria: Se refiere a que las direcciones lógicas de dos o más procesos
diferentes compartan la misma dirección física, siendo esto posible solo si el espacio lógico de
los procesos no es contiguo, sin embargo esto genera algunos problemas como por ejemplo
que una dirección de la zona compartida deba contener una dirección diferente de la misma
zona.
Políticas de asignación de marcos de página
Se trata de la asignación del número de marcos de página va a ocupar un proceso. Estas se
clasifican en dos categorías:
Asignación fija: Con esta estrategia se le asigna un número estático de marcos de
página a todos los procesos, por lo general esta lleva asociada una estrategia de
reemplazo global. La desventaja de esta alternativa es que la división de memoria no
satisface las necesidades dinámicas de un proceso con respecto a su tamaño.
Asignación dinámica: Con esta estrategia el número de marcos de página asignados a
cada proceso puede cambiar con respecto a las necesidades del mismo en un
determinado instante de tiempo. Esta estrategia puede tener asociada ambas
estrategias de reemplazo, con el reemplazo local el conjunto residente del proceso
aumenta o disminuye con respecto a sus necesidades, con el reemplazo global los
procesos compiten por el uso de la memoria, quitándose páginas entre sí.