Administración de la Memoria
La parte del sistema operativo que administra la memoria se llama
administrador de la memoria.
Se le llama administración de memoria
a los diversos métodos y operaciones destinados a obtener la máxima utilidad y
provecho de una memoria informática, en pos del buen uso y funcionamiento del
sistema en su totalidad.
Para ello existen diferentes esquemas de administración de memoria desde los más simples hasta los más elaborados entre los cuales se ubican:
Para ello existen diferentes esquemas de administración de memoria desde los más simples hasta los más elaborados entre los cuales se ubican:
· Administración de la memoria sin intercambio o
paginación.
Los sistemas de administración de memoria se pueden clasificar en dos
tipos. Los que desplazan los procesos de la memoria principal al disco
y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.
· Mono-programación sin intercambio o
paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada
instante, el usuario carga toda la memoria con un programa, esto implica que
cada proceso debe contener controladores de dispositivo para cada uno de los
dispositivos E/S que utilice.
· Multiprogramación y uso de la
memoria.
La multiprogramación facilita la programación de una aplicación al
dividirla en dos o más procesos. La mayoría de los procesos tardan cierto
tiempo en la espera de datos de dispositivos E/S.
Un modelo para el uso y aprovechamiento de la CPU es el modelo
probabilístico dado por la fórmula:
Uso de la CPU = 1 - pn
· Multiprogramación con particiones
fijas
El objetivo en todo esto es tener más de un proceso en memoria a la vez,
solución posible sería dividir la memoria en n partes al inicio de una sesión
de uso de la máquina, pero aún así se obtiene el desperdicio de particiones
grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas
también.
Las tareas que van llegando se forman hasta que una partición adecuada está
disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta
hasta terminar.
· Intercambio
En un sistema por lotes la organización de la memoria en particiones fijas
es adecuado pero en un ambiente multiusuario la situación es distinta con el
tiempo compartido, ya que existen más usuarios de los que puede albergar la
memoria, por lo que es conveniente albergar el exceso de los procesos en
disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a
la memoria principal. Al traslado de procesos de disco a memoria y viceversa se
le llama intercambio.
· Multiprogramación con particiones
variables.
Mediante un algoritmo de administración de memoria las particiones
variables varían de forma dinámica durante el uso de la máquina, evitando
desperdicio de memoria
Otros métodos de administración de memoria que tenemos son:
La administración de memoria con mapa de bits
La memoria se divide en unidades de asignación, a cada asignación le
corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla
para llevar un registro de las palabras de la memoria en una cantidad fija de
memoria.
La administración de memoria con listas ligadas
Otra forma de mantener un registro en memoria es mediante una lista ligada
donde cada entrada de la lista específica un hueco o un proceso.
La administración de memoria con el sistema de los asociados
Basado en el sistema binario o utiliza para las direcciones.
· Memoria Virtual
El método diseñado por Fotheringham en 1961 se conoce como Memoria
Virtual, la idea es que el tamaño combinado de la pila, programa y datos
puede exceder la memoria física disponible para ello. El S.O. mantiene en
memoria aquellas partes del programa que se deben permanecer en memoria y el
resto lo deja en disco, las partes entre el disco y la memoria se intercambian
de modo que se vayan necesitando.
· Paginación
El espacio de direcciones de cada proceso se divide en bloques de tamaño
uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier
para página marco disponible en memoria. Cuando las tablas de páginas son muy
grandes se puede utilizar un esquema de paginación de varios niveles para que
las páginas se paginen a sí mismas.
Existen distintos niveles de paginación y a su vez distintos modelos de
computadoras han trabajado con ellas.
Paginación de nivel 1: PDP-11
Paginación de 2 niveles: la VAX
Paginación de 3 niveles: la SPARC
Paginación de 4 niveles: la 68030
Memoria asociativa
En los algoritmos de paginación las tablas de páginas se mantienen en la
memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme
en el rendimiento.
· Algoritmos de reemplazo de páginas.
Cuando ocurre un fallo de página el sistema operativo debe elegir una
página para retirarla de la memoria y hacer un espacio para la página por
recuperar. Si la página por eliminar fue modificada mientras estaba en memoria,
debe escribirla en el disco para mantener actualizada la copia del disco, si
por el contrario la página no ha sido modificada la copia del disco ya está
actualizada por lo que no es necesario volver a escribir, la página por leer
sólo escribe encima de la página por retirar.
Aunque es posible elegir una página al azar para el reemplazo relacionado
con un fallo de página, el rendimiento del sistema es mucho mejor si se elige
una página de poco uso.
· Algoritmo de reemplazo de páginas
optimo
Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la
práctica.
Al momento de ocurrir un fallo de página cierto conjunto de páginas se
encuentran en la memoria, en la siguiente instrucción se hará referencia a una
de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada
página puede ejecutarse con el número de instrucciones ejecutadas antes de la
primera referencia a esa página, el algoritmo dice que se elimine la página con
la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que
otra la eliminación de la primera retrasa el fallo de página lo más posible, el
único problema de este algoritmo es que es irrealizable. Al momento del fallo
de página el S.O. no tiene forma de saber a qué página se hace referencia.
· Algoritmo de página de uso no muy reciente.
En un fallo de página, el sistema operativo inspecciona todas las páginas y
las divide en cuatro categorías según los valores actuales de los bits R y M
Clase 0: No se ha hecho referencia ni ha sido modificada
Clase 1: No se ha hecho referencia pero ha sido modificada
Clase 2: Se ha hecho referencia pero no ha sido modificada
Clase 3: Se ha hecho referencia y ha sido modificada
El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una
página modificada sin referencias al menos por lo general un intervalo de
reloj, este algoritmo es fácil de comprender, de implantación eficiente y con
un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.
· Algoritmo de reemplazo "
primero en entrar, primero en salir FIFO"
El sistema operativo tiene una lista de todas las páginas que se encuentran
en memoria, siendo la primera página la más antigua y la última la más
reciente, en un fallo de página, se elimina la primera página y se añade la
nueva al final de la lista.
· Algoritmo de reemplazo de páginas de la segunda oportunidad
Una modificación simple del FIFO que evita deshacerse de una página de uso
frecuente inspecciona el bit R de la página más antigua, busca una página
antigua sin referencias durante el anterior intervalo de tiempo.
· Algoritmo de reemplazo de páginas
del reloj
Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las
páginas en una lista circular con la forma de un reloj, una manecilla apunta
hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a
la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la
nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1
la manecilla avanza una posición y el bit se limpia, esto continua hasta
encontrar una página con R=0.
· Segmentación
La memoria virtual que hemos analizado hasta ahora es unidimensional,
puesto que cada segmento constituye un espacio independiente de direcciones,
los distintos segmentos pueden crecer o reducirse en forma independiente sin
afectar a los demás.
Una memoria segmentada tiene otras ventajas como hacer más sencilla la
administración de las estructuras de datos que crecen o se reducen, si cada
procedimiento ocupa un segmento independiente con la posición inicial cero el
ligado independiente de los procesos compilados es mucho más sencillo.
Bit que se activa si se hace referencia a la página en cuestión
Bit que se activa si se modifica la página.
Integrantes:
Noelia Villarroel.
Carlos Arce.
Jhon Aguirre.
- CUESTIONARIO
- GESTION DE MEMORIA
INTEGRANTES:
NOELIA
VILLARROEL
CARLOS ARCE
JHON AGUIRRE
1 ¿Qué parte del sistema operativo se
encarga de llevar un registro de las partes de memoria que se utilizan?
a)
Registro de memoria
b)
Administrador de memoria
c)
Procesador de memoria
2 El tiempo de acceso es el tiempo
necesario para realizar una operación de escritura/lectura, desde que se pone la dirección en bus hasta la
CPU.
a)
VERDADERO
b)
FALSO
3 La jerarquía de memoria está establecida
en :
a)
Tipos y capacidad
b)
Costo y velocidad
c)
Capacidad y velocidad
4 ¿Durante el procesamiento de un programa,
nos interesa que el compilador genere direcciones definitivas?
a)
Verdadero
b)
Falso
5 ¿Qué tipo de asignación se usa durante la
compilación o carga del programa?
a)
Dinámica
b)
Estática
6 ¿Qué es la unidad de manejo de memoria?
a)
Una única unidad que gestiona
la jerarquía de procesos
b)
Un dispositivo que gestiona la
memoria y sus procesos
c)
Un dispositivo que traduce
direcciones virtuales a físicas
7 En algoritmos de ajuste.¿ Cual se adecua
a la lógica, ”ubicar el proceso en el espacio más pequeño”.?
a)
Primer ajuste
b)
Mejor ajuste
c)
Peor ajuste
8 ¿Que es la paginación?
a)
Es un tipo de programa para el hardware
b)
Es un sistema de gestión de
memoria que consiste dividir
Memoria y procesos
c)
Todas las anteriores
d)
Ninguno
e)
Es un sistema de memoria remota
que consiste en sublevar
la memoria con procesos
9 ¿En que nos beneficia la paginación?
a)
En la separación de los
procesos de un computadora
b)
En el entendimiento de la
memoria con los procesos
c)
En que pueden asignarse a los
marcos libres de la memoria principal
d)
Todas las anteriores
e)
Solo a y b
f)
Ninguna
10 ¿En cuántas partes se divide la
dirección lógica generada?
a)
2
b)
8
c)
4
d)
6
e)
1
11 ¿El tamaño de la página y del marco está
definido por?
a)
Software
b)
Hardware
c)
CPU
d)
Procesador
e)
Ninguno
12 ¿La paginación es una forma de?
a)
Localización
b)
Proceso
c)
Hardware
d)
Software
e)
Todos los mencionados
13 ¿La protección de la memoria depende de
una serie de bits en cada marco de la página?
VERDADERO
FALSO
14 Los bits se conservan en la tabla de páginas
y permite definir si una página es: lectura,
ejecución o actualización… ¿esta teoría pertenece a?
a)
Paginación
b)
Hardware
c)
Protección
d)
Ninguna
e)
Todas las anteriores
15 ¿El uso compartido es aquello que
permite compartir un código de paginación que tiene importancia en un entorno
de tiempo?
VERDADERO
FALSO
16 ¿Los compiladores, sistemas de ventana,
sistemas de base de datos son de uso compartido?
VERDADERO
FALSO
17 ¿Que es la segmentación?
a)
Es un proceso de datos que se
divide en segmentos
b)
Es un compilador semi automático
c)
La base del segmentador
principal
d)
El desplasador de un procesador
e)
Ninguna
18 la tabla de segmentación contiene:
a)
Implementación y hardware
b)
Dirección
c)
Segmento
d)
Dirección de segmento y Limite
del segmento
19 el compartimiento consiste en:
a)
Que una porción del programa
que se ejecuta por diversos motivos y razones en los cuales interviene el
usuario.
b)
Que cada proceso tiene una
tabla de segmentos incorporada en el
c)
Que cada instrucción mandada al CPU sea
compartida mediante el usuario
d)
Ninguna
20 ¿qué es la segmentación con página?
………………………………………………………………………….
VÍDEO DE REFERENCIA:
https://www.youtube.com/watch?v=U9So0sPC-f4
No hay comentarios:
Publicar un comentario