SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
UNIVERSIDAD POLITÉCNICA TRRITORIAL DE LARA
PROGRAMA NACIONAL DE FORMACIÓN EN INFORMÁTICA
GESTION DE MEMORÍA
Prof. Pura Castillo
CONTENIDOS
 Organización de la Memoria :
 Organización del almacenamiento,
 Administración, Jerarquía, Particiones,
 Fragmentación, Condensación,
 Compactación,
 Estrategias de colocación
 Administración de Memoria Virtual
 Espacio de direcciones lógicas vs. físicas,.
 Paginación, Segmentación,
 Paginación por Demanda.
 Fallo de Página,
 Segmentación Paginada y Paginación Segmentada
Propósito del capítulo
El propósito de esta capitulo es conocer la manera en que los sistemas operativos
administran la memoria. Estudiaremos varios esquemas de administración de memoria, que
van desde los sencillos hasta los más avanzados.
La memoria es un recurso importante que debe administrarse con cuidado. El sistema de
memoria virtual de los actuales computadores surgió para liberar al programador de una
serie de tareas relacionadas con el uso que los programas debían realizar con la memoria.
La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de
memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la
memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de
memoria.
Sistemas
Operativos
Gestión
de
Memoria
Objetivos
 Al finalizar el estudio de este tema, el estudiante deberá estar en capacidad de:
 Explicar el concepto de administración de memoria básica.
 Explicar los procesos de intercambio.
 Explicar el concepto de memoria virtual.
 Comprender los algoritmos de reemplazo de páginas.
 Comprender el modelado de algoritmos de reemplazo de páginas.
 Comprender aspectos de diseño de los sistemas con paginación.
 Comprender aspectos de implementación.
 Explicar el concepto de segmentación
INTRODUCCIÓN
La memoria se puede definir como los circuitos que permiten almacenar y recuperar la
información. La unidad de almacenamiento es el bit (binary element) aunque normalmente la
consideramos estructurada en bytes (8 bits) Aunque el byte es la unidad de
direccionamiento, solemos hablar de palabras. Palabra se refiere a la longitud de los
registros del microprocesador. Así hablamos de microprocesadores de 16 bits, de 32 bits.
Por razones históricas a veces se denomina palabra a 16 bits (2 bytes) y doble palabra a 32
bits. La memoria principal puede ser considerada como un arreglo lineal de localidades de
almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada
una dirección que la identifica.
Una de las funciones básicas que debe implementar un SO es la Administración de la
Memoria para tener un control sobre los lugares donde están almacenados los procesos y
datos que actualmente se están utilizando. La administración de memoria se refiere a los
distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la
memoria, organizando los procesos y programas que se ejecutan de manera tal que se
aproveche de la mejor manera posible el espacio disponible.
Sistemas
Operativos
Gestión
de
Memoria
Organización de la Memoria: La memoria real o principal es en donde son ejecutados los
programas y procesos de una computadora y es el espacio real que existe en memoria para
que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a
la información contenida en ella es de más rápido acceso.
Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la
memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico
tamaño al espacio de memoria real posible.
Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es
aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de
direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será
mayor que el de la memoria real).
Los términos “memoria” y “almacenamiento” se consideran equivalentes. Los programas y
datos deben estar en el almacenamiento principal para:
Poderlos ejecutar.
Referenciarlos directamente.
Evolución de las organizaciones de memoria
Sistemas
Operativos
Gestión
de
Memoria
Sistema Multiprogramación de Memoria Real
Multiprogramación de Partición Fija .
Los sistemas de un solo usuario desperdician gran cantidad de recursos
computacionales debido a que: Cuando ocurre una petición de e/s la CPU normalmente
no puede continuar el proceso hasta que concluya la operación de entrada/salida
requerida.
Los periféricos de e/s frenan la ejecución de los procesos ya que comparativamente la
CPU es varios órdenes de magnitud más rápida que los dispositivos de E/S.
Multiprogramación de Partición Variable
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar
el espacio disponible de memoria. Mediante un algoritmo de administración de memoria
las particiones variables varia de forma dinámica durante el uso de la máquina, Evitando
desperdicio de memoria. No hay límites fijos de memoria, es decir que la partición de un
trabajo es su propio tamaño.
Administración de Almacenamiento
El sistema operativo proporciona una lista lógica y uniforme del sistema de
almacenamiento de la información. El sistema operativo abstrae las propiedades
físicas de los dispositivos de almacenamiento y define una unidad de
almacenamiento lógico, el archivo.
Jerarquía de la Memoria
El tiempo de acceso es el tiempo necesario para realizar una operación de
lectura/escritura, es decir, el tiempo que transcurre desde el instante en que se pone
la dirección en el bus de direcciones hasta que el dato ha sido almacenado en
memoria o puesto a disposición de la CPU.
5
Sistemas
Operativos
Gestión
de
Memoria
Interesa que el acceso sea lo más rápido posible, pero además interesa tener la
mayor capacidad sin incurrir en un costo excesivo. Por tanto se usan las memorias
más rápidas y caras para donde los accesos son más frecuentes, Surge así lo que
se llama jerarquía de la memoria y que se establece en base a los tiempo de acceso
y capacidad disponible.
.
1. Registros del microprocesador
2. Memoria cache
3. Memoria principal
4. Unidades de disco
5. Unidades de cinta u ópticas
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser
referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario. Un nivel adicional es el “cache” o memoria
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para
administrar el movimiento de programas y datos entre niveles De alta velocidad, que posee
las siguientes características:
Es más rápida y costosa que la memoria principal.
Impone al sistema un nivel más de traspaso:
Los programas son traspasados de la memoria principal al cache antes de su ejecución.
Los programas en la memoria cache ejecutan mucho más rápido que en la memoria
principal.
Estrategias de Administración de Memoria
Sistemas
Operativos
Gestión
de
Memoria
Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal.
Se dividen en las siguientes categorías:
Estrategias de búsqueda:
Estrategias de búsqueda por demanda.
Estrategias de búsqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
Partición de la Memoria
Desde la perspectiva del sistema operativo, cada uno de los espacios asignados a
un proceso es una partición. Cuando el sistema operativo inicia, toda la memoria
disponible es vista como un sólo bloque, y conforme se van ejecutando procesos,
este bloque va siendo subdividido para satisfacer sus requisitos.
Al cargar un programa el sistema operativo calcula cuánta memoria va a requerir a lo
largo de su vida prevista. Esto incluye el espacio requerido para la asignación
dinámica de memoria con la familia de funciones malloc y free.
Partición Estática: en la mayoría de los esquemas de gestión de memoria, el sistema
operativo ocupa una parte fija de la memoria principal y que el resto de la memoria está
disponible para ser usado por varios procesos. El esquema más sencillo de gestión de la
memoria disponible es dividir en regiones con límites fijos-
El particionamiento fijo consiste en la asignación estática de la memoria particionada, que es
una forma de hacer posible la multiprogramación, dividiendo la memoria física disponible en
varias particiones, cada una de las cuales puede ser asignada a diferentes procesos.
 Partición Dinámica: aquí las particiones son variables en número y longitud.
Sistemas
Operativos
Gestión
de
Memoria
S.O
512 K
512 K
512 K
512 K
512 K
512 K
S.O
128 K
256 K
512 K
720 K
1 Mb
1.5 Mb
Cuando se carga un proceso en la memoria principal, se le asigna
exactamente tanta memoria como necesita y no más.
Este método comienza bien, pero desembarca en una situación en la que hay un
gran número de huecos pequeños en la memoria. La memoria comienza a estar
más fragmentada y su rendimiento decae. Este fenómeno se denomina
fragmentación externa y se refiere al hecho que la memoria externa a todas las
particiones se fragmenta cada vez más.
Ejemplo
Supongamos que tenemos una partición estática de una memoria de 4Mb y un SO
de 512k, particionado en los siguientes tamaños: 128,256, 512K, 720k, 1Mb, 1.5Mb.
Por medio de un diagrama, indique como se representarían estas particiones en
memoria.
Particiones del Particiones de
mismo tamaño distinto tamaño
Fragmentación
Es un fenómeno que se manifiesta a medida que los procesos terminan su
ejecución, y el sistema operativo libera la memoria asignada a cada uno de ellos. Si
los procesos se encontraban en regiones de memoria, apartadas entre sí,
comienzan a aparecer regiones de memoria disponible, interrumpidas por regiones
de memoria usada por los procesos que aún se encuentran activos.
8
Sistemas
Operativos
Gestión
de
Memoria
Si la computadora no tiene hardware específico que permita que los procesos
resuelvan sus direcciones en tiempo de ejecución, el sistema operativo no puede
reasignar los bloques existentes, y aunque pudiera hacerlo, mover un proceso
entero en memoria puede resultar una operación costosa en tiempo de
procesamiento.
Estrategias de Colocación
Al crear un nuevo proceso, el sistema operativo tiene tres estrategias según las
cuales podría asignarle uno de los bloques disponibles:
Primer ajuste El sistema toma el primer bloque con el tamaño suficiente para
alojar el nuevo proceso. Este es el mecanismo más simple de implementar y el de
más rápida ejecución. No obstante, esta estrategia puede causar el desperdicio de
memoria, si el bloque no es exactamente del tamaño requerido.
Mejor ajuste El sistema busca entre todos los bloques disponibles cuál es el que
mejor se ajusta al tamaño requerido por el nuevo proceso.
.
El Primer ajuste y el Mejor ajuste
9
Sistemas
Operativos
Gestión
de
Memoria
Peor ajuste El sistema busca cuál es el bloque más grande disponible, y se lo
asigna al nuevo proceso. Empleando una estructura de datos como un montículo,
esta operación puede ser incluso más rápida que la de primer ajuste. Con este
mecanismo se busca que los bloques que queden después de otorgarlos a un
proceso sean tan grandes como sea posible, de cierto modo balanceando su
tamaño.
Intercambio (swapping)
.Que ocurre si la memoria está ocupada
totalmente?
Intercambiar procesos entre memoria
principal y secundaria (un
disco rápido que alberga las imágenes de
memoria de los procesos de usuario, y
suministra acceso directo a esas
imágenes).
. Aconsejable en sistemas. de tiempo compartido. Usuarios conectados al sistema
alternan periodos de trabajo e inactividad. Un proceso se sacara de memoria:
Si va a estar cierto tiempo bloqueado Necesitamos compartir CPU y memoria
El factor principal en el tiempo de intercambio es el tiempo de transferencia, que es
Proporcional a la memoria intercambiada. Se usa en UNIX, Windows, etc
10
Sistemas
Operativos
Gestión
de
Memoria
Ejemplo
Considere un sistema de intercambio en el que la memoria contiene los siguientes huecos en
orden según su posición en la memoria: 10 KB, 4 KB, 20 KB, 18 KB, 7 KB, 9 KB, 12 KB y 15
KB. Determine cuál hueco se usará si se reciben solicitudes sucesivas pidiendo:
12 KB , 10 KB, 9 KB
¿Si se usa primer ajuste? Repita el problema usando mejor ajuste, peor ajuste y siguiente
ajuste.
Primer ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 12 KB. Mejor ajuste: El
hueco de 20 KB, el hueco de 10 KB y el hueco de 9 KB. Peor ajuste: El hueco de 20 KB,
el hueco de 18 KB y el hueco de 15 KB. Siguiente ajuste: El hueco de 20 KB, el hueco de 18
KB y el hueco de 12 KB.
La fragmentación externa se produce cuando hay muchos bloques libres entre
bloques asignados a procesos.
La fragmentación interna: la memoria asignada es mayor que la usada; la
diferencia entre ambas es memoria interna a una partición que no se usa. Se
produce cuando se asigna memoria en particiones fijas.
Por ejemplo, si el sistema operativo maneja bloques de 512 bytes y un proceso
requiere sólo 768 bytes para su ejecución, el sistema le entregará dos bloques (1
024 bytes), con lo cual desperdicia 256 bytes. En el peor de los casos, con un
bloque de n bytes, un proceso podría solicitar kn + 1 bytes de memoria,
desperdiciando por fragmentación interna n 1 bytes.
Sistemas
Operativos
Gestión
de
Memoria
Compresión o Compactación de Almacenamiento
Una técnica empleada cuando la memoria está dividida en particiones de tamaño variable.
De cuando en cuando, el sistema operativo desplaza las particiones para que queden
contiguas y así toda la memoria libre este reunida en un solo bloque.
Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el
almacenamiento principal constituyan una cantidad importante de memoria:
Podría ser suficiente (el total global disponible) para alojar a procesos encolados en espera
de memoria.
Podría no ser suficiente ningún área libre individual.
La técnica de compresión de memoria implica pasar todas las áreas ocupadas del
almacenamiento a uno de los extremos de la memoria principal:
Deja un solo agujero grande de memoria libre contigua.
Esta técnica se denomina “recogida de residuos”
Principales desventajas de la compresión
Consume recursos del sistema
El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar los
tiempos de respuesta.
Implica la relocalización (reubicación) de los procesos que se encuentran en la memoria:
La información de relocalización debe ser de accesibilidad inmediata.
Una alta carga de trabajo significa mayor frecuencia de compresión que incrementa el uso de
recursos.
Sistemas
Operativos
Gestión
de
Memoria
Administración de Memoria Virtual
Gestión de memoria
El sistema de memoria virtual de los actuales computadores surgió para liberar al
programador de una serie de tareas relacionadas con el uso que los programas
debían realizar con la memoria. La memoria virtual automatiza la gestión entre los
dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes
de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie
de funciones que deben incorporarse en la gestión de memoria..
Solapamiento (overlay)
El tamaño de la memoria principal disponible en los computadores ha aumentado de
forma sostenida desde sus orígenes. Sin embargo, el tamaño de los programas ha
crecido más rápidamente, por lo que la necesidad de ejecutar programas que no
cabían en la memoria principal ha sido una constante en la historia de los
computadores. Una forma de superar esta limitación es el uso de la técnica de
solapamiento (overlay).
Esta técnica divide en módulos el programa cuyo tamaño sobrepasa la capacidad de
la memoria principal, y que reside por tanto en memoria secundaria (disco). Después
se introducen en los lugares adecuados de cada módulo, y al margen de la lógica
propia del programa, las instrucciones de E/S necesarias para cargar en memoria
principal aquellos módulos cuyas instrucciones deban ejecutarse o cuyos datos
vayan a ser referenciados en el inmediato futuro. Es decir, el propio programa se
ocupa de cargar por anticipado los módulos que van a ser referenciados.
Protección y Reubicación
Un papel importante de la gestión de memoria es la protección. Si varios programas
comparten la memoria principal debe asegurarse que ninguno de ellos pueda
modificar el espacio de memoria de los demás. Como casi todos los lenguajes
Sistemas
Operativos
Gestión
de
Memoria
permiten el uso de punteros dinámicos, los test en tiempo de compilación no son
suficientes para garantizar la protección. Esta debe mantenerla en tiempo de
ejecución el sistema de gestión de memoria (MMU).
En sistemas con multiprogramación se necesita que varios programas residan
Simultáneamente en memoria. El tiempo de CPU se va distribuyendo entre ellos de
acuerdo a una política de prioridades determinada. La ubicación en memoria de los
programas no se conoce en tiempo de compilación, por lo que no se pueden generar
direcciones absolutas. Para conseguir una asignación dinámica de memoria en
tiempo de ejecución se utilizan registros de reubicación. La dirección efectiva se
obtiene sumando a la dirección generada por el compilador el contenido del registro
de reubicación asignado al programa.
.Como aseguramos la protección? Y .Como reubicamos los procesos?
Necesitamos dos registros: el registro base y limite. En cada load y store:
Reubicación:
Direc. Fisica = Direc. Virtual + Reg. Base
Protección – comprobar que la dirección cae en el rango [base,limite).
14
Sistemas
Operativos
Gestión
de
Memoria
Registros base y límite
Paginación:
La paginación surgió de la necesidad de mantener más de un programa residente en
memoria cuando la capacidad de ésta es inferior a la suma de los tamaños de los
programas. Se trata de un mecanismo automático de solapamiento múltiple que
practica el Sistema Operativo para hacer posible la multiprogramación. El espacio de
memoria principal se divide en bloques de tamaño fijo denominados páginas. Los
programas se dividen también en páginas y residen en el disco. El Sistema
Operativo se encarga de asignar páginas físicas a los programas en ejecución
(multiprogramación). De esta forma el tiempo de CPU puede distribuirse entre los
programas residentes.
Características
 Es una manera de relocalización dinámica
 El espacio de direcciones físicas está dividido en zonas de tamaño fìjo
llamadas marcos de página
 El espacio de direcciones lógico o virtual está formado por zonas de tamaño
fijo denominadas páginas
Sistemas
Operativos
Gestión
de
Memoria
 La dirección lógica se compone de número de página y desplazamiento
dentro de la página
 Con el número de página se obtiene una entrada en una tabla de páginas, en
donde hay una dirección base de marco de página
 La dirección de memoria fisica a la que se accede se obtiene sumando el
desplazamiento a la dirección base del marco de página
Compartición
Esta función parece estar en contradicción con la anterior. Sin embargo, con
frecuencia los programas de un sistema multiprogramado deben poder compartir y
actualizar información, por ejemplo, un sistema de bases de datos. Además, no es
necesario tener varias copias de una rutina si se permite que todos los programas
accedan a una misma copia.
Memoria virtual
El sistema de memoria virtual implementa todas las funciones anteriores de forma integrada.
En un computador con memoria virtual las direcciones de los programas (generadas por la
CPU) hacen referencia a un espacio mayor que el espacio físico realmente disponible en la
memoria principal o memoria física.
Los programas operan virtualmente con un tamaño físico de memoria principal mucho mayor
que el realmente disponible. En estas máquinas hay que diferenciar, pues, entre el espacio
de direcciones virtuales generado por la CPU y el espacio de direcciones físicas o reales
existentes en memoria principal y determinado por el número de líneas del bus de
direcciones. El espacio virtual se soporta sobre un disco con la ayuda de un mecanismo de
traducción que genera la dirección física de memoria principal a partir de la virtual.
. Los bits de una Dirección Virtual se consideran divididos en dos campos, el número de
página virtual los más significativos, y el desplazamiento dentro de la página, los menos
significativos. El número de bits del campo Desplazamiento de Página lo determina el
tamaño de página (nº de bits de Desplazamiento Página = log2 tamaño de página). El
número de bits del campo número de página virtual lo determina el número de páginas
virtuales (nº de bits de Número de página virtual =
Sistemas
Operativos
Gestión
de
Memoria
log2 nº de páginas virtuales). Los bits de una Dirección Física se consideran divididos
también en dos campos, el número de página física los más significativos, y el
desplazamiento dentro de la página los menos significativos. El número de bits del campo
Desplazamiento de Página de unas direcciones físicas es el mismo que el de una Dirección
Virtual, puesto que las páginas tienen igual tamaño en memoria virtual y Memoria Física. El
número de bits del campo número de página física lo determina el número de páginas físicas
de Memoria Física (nº de bits de número de páginas físicas = log2 nº de páginas físicas).
Para traducir una Dirección Virtual en Dirección Física se busca en la correspondiente
entrada de la Tabla de Páginas. Si el bit P de esta entrada vale 1, se dice que ha ocurrido un
acierto de página, y se lee el contenido del segundo campo que en los aciertos constituye el
Número de Página Física en la memoria principal. La Dirección Física completa se obtiene
concatenando los bits de Número de Página Física con los de Desplazamiento dentro de la
Página de la Dirección Virtual. Si el bit P de la entrada de la Tabla de Página vale 0, se dice
que ha ocurrido un fallo de página, lo que significa que la página virtual donde se ubica la
Dirección Virtual que se está traduciendo, no se encuentra en Memoria Física. En este caso
el fallo de página se sirve buscado la página en el disco, ubicándola en Memoria Física y
actualizando la correspondiente entrada de la Tabla de página.
Dirección lógica
La MMU descompone las direcciones lógicas que le pasa la CPU en dos campos:
Numero de página (p) -se usa como índice para acceder a la p-esima TPE, que nos dará la
dirección de la base del marco donde se encuentra la página en memoria.
Desplazamiento de página (d) –sumado con la base de página define la dirección física que
debe utilizar la MMU para acceder a la instrucción o datos.
Sistemas
Operativos
Gestión
de
Memoria
Esquema de traducción
Un ejemplo sencillo
ivos
Gestión
de
Memoria
Sistemas
Operat
Ejemplo 1
Supongamos un sistema con direcciones de 16 bits donde 7 bits corresponden al
número de página y 9 al desplazamiento dentro de la página
• Tamaño de página será de 512 bytes
• Un proceso referencia la dirección 0x095f (0000 1001 0101 1111)
• Esta referencia es a la página 4 desplazamiento 0x15f
()
• En la entrada correspondiente a la página 4 de la tabla de páginas del
proceso nos dirá la dirección de memoria física donde está dicha página
• Supongamos que en dicha entrada nos indica que la dirección del marco de
memoria física es 0xAE00 (1010 1110 0000 0000)
• Entonces la dirección de memoria física a donde realmente se accede es
0xAF5F (1010 11111 0101 1111)
Ejemplo 2
Considere un computador de 32 bits que dispone de un sistema de memoria virtual que
emplea páginas de 16 KB y tiene instalada una memoria principal de 1 GB. Indique:
a) El formato de la dirección virtual
• Expresemos el tamaño de la página como una potencia de 2.
• 16 KB = 1024 * 16 = 16384 = 214
• Considerando que log2 (16384) = 14
• Si el sistema es de 32 bits, entonces: 32 – 14 = 18
• Por lo que:
• Cantidad de bits para id de página: 18
Cantidad de bits para el desplazamiento: 14
b) El número máximo de páginas
La cantidad de páginas viene dada por la cantidad total de direcciones virtuales
disponibles divididas entre la cantidad de direcciones de la página.
La cantidad total de direcciones en un sistema de 32 bits es de: 232
El tamaño de la página es de 16 KB que es igual a 214
Por lo que:
232 / 214 = 232-14 = 218 = 262,144 páginas.
c) El número de marcos
Los marcos son los espacios disponibles en memoria real para las páginas.
Tengo un 1 GB de memoria real. Expresado en potencia de 2 es:
1 GB = 1024 x 1024 x 1024 = 1073 741 824 bytes = 230
La cantidad de marcos es el total de memoria real, dividido entre el tamaño de la
página.
230 / 214 = 216 marcos
d) El tamaño del bloque que se transfiere entre el disco y la memoria principal.
Es igual al tamaño de la página = 16KB
Segmentación
La segmentación permite que el programador vea la memoria constituida por
múltiples espacios de direcciones o segmentos. Los segmentos tienen un tamaño
variable, dinámico.
Las direcciones virtuales estarán constituidas en este caso por un número de
segmento (NS) y un desplazamiento dentro del segmento (DP). El proceso de
traducción de dirección virtual a física es análogo al de la memoria virtual paginada,
con la diferencia que ahora tenemos una tabla de segmentos (TS) cuyas entradas
(denominadas también descriptores de segmento) contienen, además de los bits de
control y la dirección real del segmento, la longitud L del mismo, ya que los
segmentos tienen longitud variable..
Un segmento es un espacio lineal de direcciones que puede ser paginado
Sistemas
Operativos
Gestión
de
Memoria
Ventajas de la Segmentación
 Simplifica la gestión de estructuras variables de datos. Si el programador no
conoce a priori el tamaño que puede llegar a tener una estructura de datos
particular, no es necesario que lo presuponga. A la estructura de datos se le
asigna su propio segmento, y el sistema operativo lo expandirá o lo reducirá
según sea necesario.
 Permite modificar los programas y recompilarlos independientemente, sin que
sea necesario volver a enlazar y cargar el conjunto entero de programas. De
nuevo, esto se consigue utilizando varios segmentos.
 Permite que varios procesos compartan segmentos. Un programador puede
situar un programa correspondiente a una utilidad o una tabla de datos de
interés en un segmento, que puede ser direccionado por otros procesos.
 Se facilita la protección. Puesto que un segmento se construye para contener
un conjunto de programas o datos bien definido, el programador o el
administrador del sistema puede asignar privilegios de acceso de forma
adecuada.
 Trata de resolver los problemas de fragmentación externa e interna, y los
elevados tiempos de búsqueda mediante la paginación de los segmentos.
Paginación por Demanda.
La paginación sobre demanda significa que, para comenzar a ejecutar un proceso, el
sistema operativo carga solamente la porción necesaria para comenzar la ejecución
(posiblemente una página o ninguna), y que a lo largo de la ejecución, el paginador es
flojo: sólo carga a memoria las páginas cuando van a ser utilizadas. Al emplear un
paginador flojo, las páginas que no sean requeridas nunca serán siquiera cargadas a
memoria.
Sistemas
Operativos
Gestión
de
Memoria
.Las ventajas son: menos E/S. menos memoria, respuesta más rápida, más usuarios.
La estructura empleada por la MMU para implementar un paginador flojo es el siguiente: la
tabla de páginas incluirá un bit de validez, indicando para cada página del proceso si está
presente o no en memoria. Si el proceso intenta emplear una página que esté marcada como
no válida, esto causa un fallo de Página, que lleva a que el sistema operativo lo suspenda y
traiga a memoria la página solicitada para luego continuar con su ejecución: Verifica en el
PCB si esta solicitud corresponde a una página que ya ha sido asignada a este proceso. En
caso de que la referencia sea inválida, se termina el proceso.
Fallo de Página
 En una falta de página, el SO mira en la tabla que mantiene el espacio de
direcciones completo del proceso para decidir si:
o La referencia es invalida → aborta proceso
 La página no está en memoria, entonces:
 Obtiene un marco vacío.
 Carga la página dentro del marco.
 Pone el bit de validez a 1.
 Rearranca la instrucción.
 Si la página está en memoria pero la traducción no es válida Þ reasigna la
página.
Algoritmos de Remplazo de Páginas
Cuando se presenta un fallo de página, el sistema operativo tiene que escoger la
página que desalojará de la memoria para hacer espacio para colocar la página que
traerá del disco. Si la página a desalojar fue modificada mientras estaba en
memoria, deberá rescribirse en el disco para actualizar la copia. En cambio, si la
página no se ha modificado, no será necesario rescribirla
FIFO (First In First Out)
Se sustituye la página que lleva más tiempo residente en memoria. Utiliza una cola
FIFO y hace un uso pobre de la localidad temporal.
Sistemas
Operativos
Gestión
de
Memoria
Veamos el comportamiento en el siguiente perfil de referencias a páginas:
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2:
FIFO: 9 fallos de página
2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 5 5 5 5 3 3 3 3
3 3 3 3 2 2 2 2 2 5 5
1 1 1 4 4 4 4 4 2
F F - F F F F - F - F F
Reloj
Es una mejora de la FIFO en la que también se chequea si una página ha sido
referenciada, haciendo mejor uso de la localidad temporal. Para implementar esta
política se mantiene una cola como en la FIFO, pero circular, con un puntero a la
página candidata a ser sustituida, y un flag de uso asociado a cada página. El flag
de uso se pone a 1 cuando la página es referenciada con posterioridad a su carga
inicial en la memoria física. Al producirse un fallo de página se examina el flag de
uso de la página señalada por el puntero de la FIFO. Si está a 0 la correspondiente
página es sustituida, pero si vale 1 se borra el flag de uso (se pone a 0) y se avanza
el puntero una posición, continuando este procedimiento hasta encontrar una página
con el flag de uso a 0.
Referencias a páginas:
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2:
RELOJ: 6 fallos de página
2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 2 2 2 2 2 3
3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 3 3 3 3
F F - F F - F - F - - -
Sistemas
Operativos
Gestión
de
Memoria
LRU (Least Recently Used)
Reemplaza la página de memoria que no ha sido referenciada desde hace mucho
tiempo
7 fallos de página
2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 2 2 3 3 3 3
3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 4 2 2 2
F F - F F - F - F F - -
Optima
Se trata de la mejor política posible: sustituir la página que vaya a tardar más tiempo
en ser referenciada en el futuro (Belady). Aunque esta política tiene el mínimo
número posible de fallos de página (de aquí el nombre de política MIN), no se puede
llevar a la práctica en tiempo real, y se utiliza como una referencia teórica para medir
la eficiencia de otras políticas en entornos experimentales.
6 fallos de página
2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
F F - F F - F - F - -
Sistemas
Operativos
Gestión
de
Memoria
Ejercicios
Considera un sistema de paginación bajo demanda en el que un proceso que tiene
asignados 3 marcos de página genera la siguiente secuencia de referencias a
páginas: 2,3,1,2,4,5,2,3,1,5,6,1
Indica que accesos producirían un fallo de página cuando se utilizan las políticas de
reemplazo local FIFO y LRU. Sabemos que este proceso se va a ejecutar muy a
menudo en el sistema y nos interesa tener el mejor sistema de paginación para èl.
¿Valdría la pena aumentar el número de marcos de página asignados al proceso
hasta 4 para alguna de estas dos políticas? Indica el número de fallos de página
que se producirían en esta nueva situación para cada algoritmo.
Solución
FIFO: 10 fallos de página
2 3 1 2 4 5 2 3 1 5 6 1
2 2 2 2 4 4 4 3 3 3 6 6
3 3 3 3 5 5 5 1 1 1 1
1 1 1 1 2 2 2 5 5 5
F F F - F F F F F F F -
•
LRU: 9 fallos de página
2 3 1 2 4 5 2 3 1 5 6 1
2 2 2 2 2 2 2 2 2 5 5 5
3 3 3 4 4 4 3 3 3 6 6
1 1 1 5 5 5 1 1 1 1
F F F - F F - F F F F -
Con 4 marcos:
Sistemas
Operativos
Gestión
de
Memoria
FIFO: 9 fallos de página
3 1 2 4 5 2 3 1 5 6 1
2 2 2 2 2 5 5 5 5 5 6 6
3 3 3 3 3 2 2 2 2 2 2
1 1 1 1 1 3 3 3 3 3
4 4 4 4 1 1 1 1
F F F - F F F F F - F -
LRU: 8 fallos de página
2 3 1 2 4 5 2 3 1 5 6 1
2 2 2 2 2 2 2 2 2 2 6 6
3 3 3 3 5 5 5 5 5 5 5
1 1 1 1 1 3 3 3 3 3
4 4 4 4 1 1 1 1
F F F - F F F F - F -
Para ambas políticas se reduce el número de fallos de página al aumentar el
número de marcos a 4.
2. Considera un sistema de paginación bajo demanda en el que un proceso que
tiene asignados 4 marcos de página genera la siguiente secuencia de referencias
a pàginas:4,2,4,1,6,3,2,5,6,4,1,3,5,3
Indica que accesos producirían un fallo de página cuando se utiliza cada una de las
políticas de reemplazo local FIFO, LRU y óptima. Número de marcos a 4.
Sistemas
Operativos
Gestión
de
Memoria
Solución
FIFO: 8 fallos de página
4 2 4 1 6 3 2 5 6 4 1 3 5 3
4 4 4 4 4 3 3 3 3 3 3 3 3 3
2 2 2 2 2 2 5 5 5 5 5 5 5
1 1 1 1 1 1 4 4 4 4 4
6 6 6 6 6 6 1 1 1 1
F F - F F F - F - F F - - -
LRU: 11 fallos de página
4 2 4 1 6 3 2 5 6 4 1 3 5 3
4 4 4 4 4 4 2 2 2 2 1 1 1 1
2 2 2 2 3 3 3 3 4 4 4 4 4
1 1 1 1 5 5 5 5 3 3 3
6 6 6 6 6 6 6 6 5 5
F F - F F F F F - F F F F -
Óptimo: 7 fallos de pagina
4 2 4 1 6 3 2 5 6 4 1 3 5 3
4 4 4 4 4 4 4 4 4 4 1 1 1 1
2 2 2 2 2 2 5 5 5 5 5 5 5
1 1 1 1 1 1 1 1 3 3 3
6 6 6 6 6 6 6 6 6 6
F F - F F F F F - F F F F -
Sistemas
Operativos
Gestión
de
Memoria
Segmentación Paginada y Paginación Segmentada
La segmentación presenta una serie de propiedades ventajosas para el programador, sin
embargo, la paginación proporciona una forma más eficiente de gestionar el espacio de
memoria. Para combinar las ventajas de ambas, algunos sistemas permiten una
combinación de ambas, es decir, un sistema virtual con segmentos paginados. El
mecanismo de traducción de Direcciones virtuales a Direcciones Físicas, no es más que la
composición del mecanismo de la memoria segmentada y el de la paginada.
BIBLIOGRAFÍA
Carretero Pérez, Jesús y otros. Sistemas operativos: una visión aplicada. Primera Edición,
Editorial McGraw Hill, España, 2001.
Sistemas
Operativos
Gestión
de
Memoria

Más contenido relacionado

Similar a Gestiond memoria-pnfi

Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriapuracastillo
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriapuracastillo
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Unidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaUnidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaNubieshita Chase
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoriaBeatriz Pérez
 
Cuestionario terminado
Cuestionario terminadoCuestionario terminado
Cuestionario terminadofloresitalagu
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoriacoffeejimenez
 
Trabajo de gestión de la memoria principal.
Trabajo de gestión de la memoria principal.Trabajo de gestión de la memoria principal.
Trabajo de gestión de la memoria principal.Juliannys Requena
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptLuis619096
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administracion de memoria virtual
Administracion de memoria virtualAdministracion de memoria virtual
Administracion de memoria virtualMerly Castro
 

Similar a Gestiond memoria-pnfi (20)

Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Unidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaUnidad A Aministración de la Memoria
Unidad A Aministración de la Memoria
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoria
 
Gerarquia de memoria
Gerarquia de memoriaGerarquia de memoria
Gerarquia de memoria
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Cuestionario terminado
Cuestionario terminadoCuestionario terminado
Cuestionario terminado
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoria
 
Trabajo de gestión de la memoria principal.
Trabajo de gestión de la memoria principal.Trabajo de gestión de la memoria principal.
Trabajo de gestión de la memoria principal.
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.ppt
 
Memoria en los SO
Memoria en los SOMemoria en los SO
Memoria en los SO
 
7 memoria cache
7 memoria cache7 memoria cache
7 memoria cache
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Tc2 paso3
Tc2 paso3Tc2 paso3
Tc2 paso3
 
Administracion de memoria virtual
Administracion de memoria virtualAdministracion de memoria virtual
Administracion de memoria virtual
 

Más de puracastillo

ejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfpuracastillo
 
Ejercicios Propuestos 2023
Ejercicios Propuestos 2023Ejercicios Propuestos 2023
Ejercicios Propuestos 2023puracastillo
 
mapa conceptual.pptx
mapa conceptual.pptxmapa conceptual.pptx
mapa conceptual.pptxpuracastillo
 
clase invertida.pptx
clase invertida.pptxclase invertida.pptx
clase invertida.pptxpuracastillo
 
Guia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfGuia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfpuracastillo
 
Presentación sistema operativo.pptx
Presentación sistema operativo.pptxPresentación sistema operativo.pptx
Presentación sistema operativo.pptxpuracastillo
 
Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa puracastillo
 
Ejercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfEjercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfpuracastillo
 
Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos puracastillo
 
Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021puracastillo
 
Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2puracastillo
 
Plan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativosPlan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativospuracastillo
 
Ejercicios propuestos ms
Ejercicios propuestos msEjercicios propuestos ms
Ejercicios propuestos mspuracastillo
 
Ejercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexEjercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexpuracastillo
 
Plan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionesPlan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionespuracastillo
 
Guia 2 metodo grafico
Guia 2 metodo graficoGuia 2 metodo grafico
Guia 2 metodo graficopuracastillo
 
Ejercicios propuestos metodo grafico
Ejercicios propuestos metodo graficoEjercicios propuestos metodo grafico
Ejercicios propuestos metodo graficopuracastillo
 
Entregables proyecto iii
Entregables proyecto iii Entregables proyecto iii
Entregables proyecto iii puracastillo
 
Baremos fase i y ii
Baremos fase i y iiBaremos fase i y ii
Baremos fase i y iipuracastillo
 
Estructura del informe final
Estructura del informe finalEstructura del informe final
Estructura del informe finalpuracastillo
 

Más de puracastillo (20)

ejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdf
 
Ejercicios Propuestos 2023
Ejercicios Propuestos 2023Ejercicios Propuestos 2023
Ejercicios Propuestos 2023
 
mapa conceptual.pptx
mapa conceptual.pptxmapa conceptual.pptx
mapa conceptual.pptx
 
clase invertida.pptx
clase invertida.pptxclase invertida.pptx
clase invertida.pptx
 
Guia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfGuia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdf
 
Presentación sistema operativo.pptx
Presentación sistema operativo.pptxPresentación sistema operativo.pptx
Presentación sistema operativo.pptx
 
Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa
 
Ejercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfEjercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdf
 
Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos
 
Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021
 
Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2
 
Plan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativosPlan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativos
 
Ejercicios propuestos ms
Ejercicios propuestos msEjercicios propuestos ms
Ejercicios propuestos ms
 
Ejercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexEjercicios propuestos metodo simplex
Ejercicios propuestos metodo simplex
 
Plan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionesPlan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operaciones
 
Guia 2 metodo grafico
Guia 2 metodo graficoGuia 2 metodo grafico
Guia 2 metodo grafico
 
Ejercicios propuestos metodo grafico
Ejercicios propuestos metodo graficoEjercicios propuestos metodo grafico
Ejercicios propuestos metodo grafico
 
Entregables proyecto iii
Entregables proyecto iii Entregables proyecto iii
Entregables proyecto iii
 
Baremos fase i y ii
Baremos fase i y iiBaremos fase i y ii
Baremos fase i y ii
 
Estructura del informe final
Estructura del informe finalEstructura del informe final
Estructura del informe final
 

Último

30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 

Gestiond memoria-pnfi

  • 1. UNIVERSIDAD POLITÉCNICA TRRITORIAL DE LARA PROGRAMA NACIONAL DE FORMACIÓN EN INFORMÁTICA GESTION DE MEMORÍA Prof. Pura Castillo
  • 2. CONTENIDOS  Organización de la Memoria :  Organización del almacenamiento,  Administración, Jerarquía, Particiones,  Fragmentación, Condensación,  Compactación,  Estrategias de colocación  Administración de Memoria Virtual  Espacio de direcciones lógicas vs. físicas,.  Paginación, Segmentación,  Paginación por Demanda.  Fallo de Página,  Segmentación Paginada y Paginación Segmentada Propósito del capítulo El propósito de esta capitulo es conocer la manera en que los sistemas operativos administran la memoria. Estudiaremos varios esquemas de administración de memoria, que van desde los sencillos hasta los más avanzados. La memoria es un recurso importante que debe administrarse con cuidado. El sistema de memoria virtual de los actuales computadores surgió para liberar al programador de una serie de tareas relacionadas con el uso que los programas debían realizar con la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de memoria. Sistemas Operativos Gestión de Memoria
  • 3. Objetivos  Al finalizar el estudio de este tema, el estudiante deberá estar en capacidad de:  Explicar el concepto de administración de memoria básica.  Explicar los procesos de intercambio.  Explicar el concepto de memoria virtual.  Comprender los algoritmos de reemplazo de páginas.  Comprender el modelado de algoritmos de reemplazo de páginas.  Comprender aspectos de diseño de los sistemas con paginación.  Comprender aspectos de implementación.  Explicar el concepto de segmentación
  • 4. INTRODUCCIÓN La memoria se puede definir como los circuitos que permiten almacenar y recuperar la información. La unidad de almacenamiento es el bit (binary element) aunque normalmente la consideramos estructurada en bytes (8 bits) Aunque el byte es la unidad de direccionamiento, solemos hablar de palabras. Palabra se refiere a la longitud de los registros del microprocesador. Así hablamos de microprocesadores de 16 bits, de 32 bits. Por razones históricas a veces se denomina palabra a 16 bits (2 bytes) y doble palabra a 32 bits. La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica. Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los procesos y datos que actualmente se están utilizando. La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible. Sistemas Operativos Gestión de Memoria
  • 5. Organización de la Memoria: La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor. Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real). Los términos “memoria” y “almacenamiento” se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para: Poderlos ejecutar. Referenciarlos directamente. Evolución de las organizaciones de memoria Sistemas Operativos Gestión de Memoria
  • 6. Sistema Multiprogramación de Memoria Real Multiprogramación de Partición Fija . Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que: Cuando ocurre una petición de e/s la CPU normalmente no puede continuar el proceso hasta que concluya la operación de entrada/salida requerida. Los periféricos de e/s frenan la ejecución de los procesos ya que comparativamente la CPU es varios órdenes de magnitud más rápida que los dispositivos de E/S. Multiprogramación de Partición Variable Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria. Mediante un algoritmo de administración de memoria las particiones variables varia de forma dinámica durante el uso de la máquina, Evitando desperdicio de memoria. No hay límites fijos de memoria, es decir que la partición de un trabajo es su propio tamaño. Administración de Almacenamiento El sistema operativo proporciona una lista lógica y uniforme del sistema de almacenamiento de la información. El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el archivo. Jerarquía de la Memoria El tiempo de acceso es el tiempo necesario para realizar una operación de lectura/escritura, es decir, el tiempo que transcurre desde el instante en que se pone la dirección en el bus de direcciones hasta que el dato ha sido almacenado en memoria o puesto a disposición de la CPU. 5 Sistemas Operativos Gestión de Memoria
  • 7. Interesa que el acceso sea lo más rápido posible, pero además interesa tener la mayor capacidad sin incurrir en un costo excesivo. Por tanto se usan las memorias más rápidas y caras para donde los accesos son más frecuentes, Surge así lo que se llama jerarquía de la memoria y que se establece en base a los tiempo de acceso y capacidad disponible. . 1. Registros del microprocesador 2. Memoria cache 3. Memoria principal 4. Unidades de disco 5. Unidades de cinta u ópticas Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados. Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. Un nivel adicional es el “cache” o memoria Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles De alta velocidad, que posee las siguientes características: Es más rápida y costosa que la memoria principal. Impone al sistema un nivel más de traspaso: Los programas son traspasados de la memoria principal al cache antes de su ejecución. Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal. Estrategias de Administración de Memoria Sistemas Operativos Gestión de Memoria
  • 8. Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal. Se dividen en las siguientes categorías: Estrategias de búsqueda: Estrategias de búsqueda por demanda. Estrategias de búsqueda anticipada. Estrategias de colocación. Estrategias de reposición. Partición de la Memoria Desde la perspectiva del sistema operativo, cada uno de los espacios asignados a un proceso es una partición. Cuando el sistema operativo inicia, toda la memoria disponible es vista como un sólo bloque, y conforme se van ejecutando procesos, este bloque va siendo subdividido para satisfacer sus requisitos. Al cargar un programa el sistema operativo calcula cuánta memoria va a requerir a lo largo de su vida prevista. Esto incluye el espacio requerido para la asignación dinámica de memoria con la familia de funciones malloc y free. Partición Estática: en la mayoría de los esquemas de gestión de memoria, el sistema operativo ocupa una parte fija de la memoria principal y que el resto de la memoria está disponible para ser usado por varios procesos. El esquema más sencillo de gestión de la memoria disponible es dividir en regiones con límites fijos- El particionamiento fijo consiste en la asignación estática de la memoria particionada, que es una forma de hacer posible la multiprogramación, dividiendo la memoria física disponible en varias particiones, cada una de las cuales puede ser asignada a diferentes procesos.  Partición Dinámica: aquí las particiones son variables en número y longitud. Sistemas Operativos Gestión de Memoria
  • 9. S.O 512 K 512 K 512 K 512 K 512 K 512 K S.O 128 K 256 K 512 K 720 K 1 Mb 1.5 Mb Cuando se carga un proceso en la memoria principal, se le asigna exactamente tanta memoria como necesita y no más. Este método comienza bien, pero desembarca en una situación en la que hay un gran número de huecos pequeños en la memoria. La memoria comienza a estar más fragmentada y su rendimiento decae. Este fenómeno se denomina fragmentación externa y se refiere al hecho que la memoria externa a todas las particiones se fragmenta cada vez más. Ejemplo Supongamos que tenemos una partición estática de una memoria de 4Mb y un SO de 512k, particionado en los siguientes tamaños: 128,256, 512K, 720k, 1Mb, 1.5Mb. Por medio de un diagrama, indique como se representarían estas particiones en memoria. Particiones del Particiones de mismo tamaño distinto tamaño Fragmentación Es un fenómeno que se manifiesta a medida que los procesos terminan su ejecución, y el sistema operativo libera la memoria asignada a cada uno de ellos. Si los procesos se encontraban en regiones de memoria, apartadas entre sí, comienzan a aparecer regiones de memoria disponible, interrumpidas por regiones de memoria usada por los procesos que aún se encuentran activos. 8 Sistemas Operativos Gestión de Memoria
  • 10. Si la computadora no tiene hardware específico que permita que los procesos resuelvan sus direcciones en tiempo de ejecución, el sistema operativo no puede reasignar los bloques existentes, y aunque pudiera hacerlo, mover un proceso entero en memoria puede resultar una operación costosa en tiempo de procesamiento. Estrategias de Colocación Al crear un nuevo proceso, el sistema operativo tiene tres estrategias según las cuales podría asignarle uno de los bloques disponibles: Primer ajuste El sistema toma el primer bloque con el tamaño suficiente para alojar el nuevo proceso. Este es el mecanismo más simple de implementar y el de más rápida ejecución. No obstante, esta estrategia puede causar el desperdicio de memoria, si el bloque no es exactamente del tamaño requerido. Mejor ajuste El sistema busca entre todos los bloques disponibles cuál es el que mejor se ajusta al tamaño requerido por el nuevo proceso. . El Primer ajuste y el Mejor ajuste 9 Sistemas Operativos Gestión de Memoria
  • 11. Peor ajuste El sistema busca cuál es el bloque más grande disponible, y se lo asigna al nuevo proceso. Empleando una estructura de datos como un montículo, esta operación puede ser incluso más rápida que la de primer ajuste. Con este mecanismo se busca que los bloques que queden después de otorgarlos a un proceso sean tan grandes como sea posible, de cierto modo balanceando su tamaño. Intercambio (swapping) .Que ocurre si la memoria está ocupada totalmente? Intercambiar procesos entre memoria principal y secundaria (un disco rápido que alberga las imágenes de memoria de los procesos de usuario, y suministra acceso directo a esas imágenes). . Aconsejable en sistemas. de tiempo compartido. Usuarios conectados al sistema alternan periodos de trabajo e inactividad. Un proceso se sacara de memoria: Si va a estar cierto tiempo bloqueado Necesitamos compartir CPU y memoria El factor principal en el tiempo de intercambio es el tiempo de transferencia, que es Proporcional a la memoria intercambiada. Se usa en UNIX, Windows, etc 10 Sistemas Operativos Gestión de Memoria
  • 12. Ejemplo Considere un sistema de intercambio en el que la memoria contiene los siguientes huecos en orden según su posición en la memoria: 10 KB, 4 KB, 20 KB, 18 KB, 7 KB, 9 KB, 12 KB y 15 KB. Determine cuál hueco se usará si se reciben solicitudes sucesivas pidiendo: 12 KB , 10 KB, 9 KB ¿Si se usa primer ajuste? Repita el problema usando mejor ajuste, peor ajuste y siguiente ajuste. Primer ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 12 KB. Mejor ajuste: El hueco de 20 KB, el hueco de 10 KB y el hueco de 9 KB. Peor ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 15 KB. Siguiente ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 12 KB. La fragmentación externa se produce cuando hay muchos bloques libres entre bloques asignados a procesos. La fragmentación interna: la memoria asignada es mayor que la usada; la diferencia entre ambas es memoria interna a una partición que no se usa. Se produce cuando se asigna memoria en particiones fijas. Por ejemplo, si el sistema operativo maneja bloques de 512 bytes y un proceso requiere sólo 768 bytes para su ejecución, el sistema le entregará dos bloques (1 024 bytes), con lo cual desperdicia 256 bytes. En el peor de los casos, con un bloque de n bytes, un proceso podría solicitar kn + 1 bytes de memoria, desperdiciando por fragmentación interna n 1 bytes. Sistemas Operativos Gestión de Memoria
  • 13. Compresión o Compactación de Almacenamiento Una técnica empleada cuando la memoria está dividida en particiones de tamaño variable. De cuando en cuando, el sistema operativo desplaza las particiones para que queden contiguas y así toda la memoria libre este reunida en un solo bloque. Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria: Podría ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria. Podría no ser suficiente ningún área libre individual. La técnica de compresión de memoria implica pasar todas las áreas ocupadas del almacenamiento a uno de los extremos de la memoria principal: Deja un solo agujero grande de memoria libre contigua. Esta técnica se denomina “recogida de residuos” Principales desventajas de la compresión Consume recursos del sistema El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar los tiempos de respuesta. Implica la relocalización (reubicación) de los procesos que se encuentran en la memoria: La información de relocalización debe ser de accesibilidad inmediata. Una alta carga de trabajo significa mayor frecuencia de compresión que incrementa el uso de recursos. Sistemas Operativos Gestión de Memoria
  • 14. Administración de Memoria Virtual Gestión de memoria El sistema de memoria virtual de los actuales computadores surgió para liberar al programador de una serie de tareas relacionadas con el uso que los programas debían realizar con la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de memoria.. Solapamiento (overlay) El tamaño de la memoria principal disponible en los computadores ha aumentado de forma sostenida desde sus orígenes. Sin embargo, el tamaño de los programas ha crecido más rápidamente, por lo que la necesidad de ejecutar programas que no cabían en la memoria principal ha sido una constante en la historia de los computadores. Una forma de superar esta limitación es el uso de la técnica de solapamiento (overlay). Esta técnica divide en módulos el programa cuyo tamaño sobrepasa la capacidad de la memoria principal, y que reside por tanto en memoria secundaria (disco). Después se introducen en los lugares adecuados de cada módulo, y al margen de la lógica propia del programa, las instrucciones de E/S necesarias para cargar en memoria principal aquellos módulos cuyas instrucciones deban ejecutarse o cuyos datos vayan a ser referenciados en el inmediato futuro. Es decir, el propio programa se ocupa de cargar por anticipado los módulos que van a ser referenciados. Protección y Reubicación Un papel importante de la gestión de memoria es la protección. Si varios programas comparten la memoria principal debe asegurarse que ninguno de ellos pueda modificar el espacio de memoria de los demás. Como casi todos los lenguajes Sistemas Operativos Gestión de Memoria
  • 15. permiten el uso de punteros dinámicos, los test en tiempo de compilación no son suficientes para garantizar la protección. Esta debe mantenerla en tiempo de ejecución el sistema de gestión de memoria (MMU). En sistemas con multiprogramación se necesita que varios programas residan Simultáneamente en memoria. El tiempo de CPU se va distribuyendo entre ellos de acuerdo a una política de prioridades determinada. La ubicación en memoria de los programas no se conoce en tiempo de compilación, por lo que no se pueden generar direcciones absolutas. Para conseguir una asignación dinámica de memoria en tiempo de ejecución se utilizan registros de reubicación. La dirección efectiva se obtiene sumando a la dirección generada por el compilador el contenido del registro de reubicación asignado al programa. .Como aseguramos la protección? Y .Como reubicamos los procesos? Necesitamos dos registros: el registro base y limite. En cada load y store: Reubicación: Direc. Fisica = Direc. Virtual + Reg. Base Protección – comprobar que la dirección cae en el rango [base,limite). 14 Sistemas Operativos Gestión de Memoria
  • 16. Registros base y límite Paginación: La paginación surgió de la necesidad de mantener más de un programa residente en memoria cuando la capacidad de ésta es inferior a la suma de los tamaños de los programas. Se trata de un mecanismo automático de solapamiento múltiple que practica el Sistema Operativo para hacer posible la multiprogramación. El espacio de memoria principal se divide en bloques de tamaño fijo denominados páginas. Los programas se dividen también en páginas y residen en el disco. El Sistema Operativo se encarga de asignar páginas físicas a los programas en ejecución (multiprogramación). De esta forma el tiempo de CPU puede distribuirse entre los programas residentes. Características  Es una manera de relocalización dinámica  El espacio de direcciones físicas está dividido en zonas de tamaño fìjo llamadas marcos de página  El espacio de direcciones lógico o virtual está formado por zonas de tamaño fijo denominadas páginas Sistemas Operativos Gestión de Memoria
  • 17.  La dirección lógica se compone de número de página y desplazamiento dentro de la página  Con el número de página se obtiene una entrada en una tabla de páginas, en donde hay una dirección base de marco de página  La dirección de memoria fisica a la que se accede se obtiene sumando el desplazamiento a la dirección base del marco de página Compartición Esta función parece estar en contradicción con la anterior. Sin embargo, con frecuencia los programas de un sistema multiprogramado deben poder compartir y actualizar información, por ejemplo, un sistema de bases de datos. Además, no es necesario tener varias copias de una rutina si se permite que todos los programas accedan a una misma copia. Memoria virtual El sistema de memoria virtual implementa todas las funciones anteriores de forma integrada. En un computador con memoria virtual las direcciones de los programas (generadas por la CPU) hacen referencia a un espacio mayor que el espacio físico realmente disponible en la memoria principal o memoria física. Los programas operan virtualmente con un tamaño físico de memoria principal mucho mayor que el realmente disponible. En estas máquinas hay que diferenciar, pues, entre el espacio de direcciones virtuales generado por la CPU y el espacio de direcciones físicas o reales existentes en memoria principal y determinado por el número de líneas del bus de direcciones. El espacio virtual se soporta sobre un disco con la ayuda de un mecanismo de traducción que genera la dirección física de memoria principal a partir de la virtual. . Los bits de una Dirección Virtual se consideran divididos en dos campos, el número de página virtual los más significativos, y el desplazamiento dentro de la página, los menos significativos. El número de bits del campo Desplazamiento de Página lo determina el tamaño de página (nº de bits de Desplazamiento Página = log2 tamaño de página). El número de bits del campo número de página virtual lo determina el número de páginas virtuales (nº de bits de Número de página virtual = Sistemas Operativos Gestión de Memoria
  • 18. log2 nº de páginas virtuales). Los bits de una Dirección Física se consideran divididos también en dos campos, el número de página física los más significativos, y el desplazamiento dentro de la página los menos significativos. El número de bits del campo Desplazamiento de Página de unas direcciones físicas es el mismo que el de una Dirección Virtual, puesto que las páginas tienen igual tamaño en memoria virtual y Memoria Física. El número de bits del campo número de página física lo determina el número de páginas físicas de Memoria Física (nº de bits de número de páginas físicas = log2 nº de páginas físicas). Para traducir una Dirección Virtual en Dirección Física se busca en la correspondiente entrada de la Tabla de Páginas. Si el bit P de esta entrada vale 1, se dice que ha ocurrido un acierto de página, y se lee el contenido del segundo campo que en los aciertos constituye el Número de Página Física en la memoria principal. La Dirección Física completa se obtiene concatenando los bits de Número de Página Física con los de Desplazamiento dentro de la Página de la Dirección Virtual. Si el bit P de la entrada de la Tabla de Página vale 0, se dice que ha ocurrido un fallo de página, lo que significa que la página virtual donde se ubica la Dirección Virtual que se está traduciendo, no se encuentra en Memoria Física. En este caso el fallo de página se sirve buscado la página en el disco, ubicándola en Memoria Física y actualizando la correspondiente entrada de la Tabla de página. Dirección lógica La MMU descompone las direcciones lógicas que le pasa la CPU en dos campos: Numero de página (p) -se usa como índice para acceder a la p-esima TPE, que nos dará la dirección de la base del marco donde se encuentra la página en memoria. Desplazamiento de página (d) –sumado con la base de página define la dirección física que debe utilizar la MMU para acceder a la instrucción o datos. Sistemas Operativos Gestión de Memoria
  • 19. Esquema de traducción Un ejemplo sencillo ivos Gestión de Memoria Sistemas Operat
  • 20. Ejemplo 1 Supongamos un sistema con direcciones de 16 bits donde 7 bits corresponden al número de página y 9 al desplazamiento dentro de la página • Tamaño de página será de 512 bytes • Un proceso referencia la dirección 0x095f (0000 1001 0101 1111) • Esta referencia es a la página 4 desplazamiento 0x15f () • En la entrada correspondiente a la página 4 de la tabla de páginas del proceso nos dirá la dirección de memoria física donde está dicha página • Supongamos que en dicha entrada nos indica que la dirección del marco de memoria física es 0xAE00 (1010 1110 0000 0000) • Entonces la dirección de memoria física a donde realmente se accede es 0xAF5F (1010 11111 0101 1111) Ejemplo 2 Considere un computador de 32 bits que dispone de un sistema de memoria virtual que emplea páginas de 16 KB y tiene instalada una memoria principal de 1 GB. Indique: a) El formato de la dirección virtual • Expresemos el tamaño de la página como una potencia de 2. • 16 KB = 1024 * 16 = 16384 = 214 • Considerando que log2 (16384) = 14 • Si el sistema es de 32 bits, entonces: 32 – 14 = 18 • Por lo que: • Cantidad de bits para id de página: 18 Cantidad de bits para el desplazamiento: 14 b) El número máximo de páginas La cantidad de páginas viene dada por la cantidad total de direcciones virtuales disponibles divididas entre la cantidad de direcciones de la página. La cantidad total de direcciones en un sistema de 32 bits es de: 232 El tamaño de la página es de 16 KB que es igual a 214 Por lo que: 232 / 214 = 232-14 = 218 = 262,144 páginas.
  • 21. c) El número de marcos Los marcos son los espacios disponibles en memoria real para las páginas. Tengo un 1 GB de memoria real. Expresado en potencia de 2 es: 1 GB = 1024 x 1024 x 1024 = 1073 741 824 bytes = 230 La cantidad de marcos es el total de memoria real, dividido entre el tamaño de la página. 230 / 214 = 216 marcos d) El tamaño del bloque que se transfiere entre el disco y la memoria principal. Es igual al tamaño de la página = 16KB Segmentación La segmentación permite que el programador vea la memoria constituida por múltiples espacios de direcciones o segmentos. Los segmentos tienen un tamaño variable, dinámico. Las direcciones virtuales estarán constituidas en este caso por un número de segmento (NS) y un desplazamiento dentro del segmento (DP). El proceso de traducción de dirección virtual a física es análogo al de la memoria virtual paginada, con la diferencia que ahora tenemos una tabla de segmentos (TS) cuyas entradas (denominadas también descriptores de segmento) contienen, además de los bits de control y la dirección real del segmento, la longitud L del mismo, ya que los segmentos tienen longitud variable.. Un segmento es un espacio lineal de direcciones que puede ser paginado Sistemas Operativos Gestión de Memoria
  • 22. Ventajas de la Segmentación  Simplifica la gestión de estructuras variables de datos. Si el programador no conoce a priori el tamaño que puede llegar a tener una estructura de datos particular, no es necesario que lo presuponga. A la estructura de datos se le asigna su propio segmento, y el sistema operativo lo expandirá o lo reducirá según sea necesario.  Permite modificar los programas y recompilarlos independientemente, sin que sea necesario volver a enlazar y cargar el conjunto entero de programas. De nuevo, esto se consigue utilizando varios segmentos.  Permite que varios procesos compartan segmentos. Un programador puede situar un programa correspondiente a una utilidad o una tabla de datos de interés en un segmento, que puede ser direccionado por otros procesos.  Se facilita la protección. Puesto que un segmento se construye para contener un conjunto de programas o datos bien definido, el programador o el administrador del sistema puede asignar privilegios de acceso de forma adecuada.  Trata de resolver los problemas de fragmentación externa e interna, y los elevados tiempos de búsqueda mediante la paginación de los segmentos. Paginación por Demanda. La paginación sobre demanda significa que, para comenzar a ejecutar un proceso, el sistema operativo carga solamente la porción necesaria para comenzar la ejecución (posiblemente una página o ninguna), y que a lo largo de la ejecución, el paginador es flojo: sólo carga a memoria las páginas cuando van a ser utilizadas. Al emplear un paginador flojo, las páginas que no sean requeridas nunca serán siquiera cargadas a memoria. Sistemas Operativos Gestión de Memoria
  • 23. .Las ventajas son: menos E/S. menos memoria, respuesta más rápida, más usuarios. La estructura empleada por la MMU para implementar un paginador flojo es el siguiente: la tabla de páginas incluirá un bit de validez, indicando para cada página del proceso si está presente o no en memoria. Si el proceso intenta emplear una página que esté marcada como no válida, esto causa un fallo de Página, que lleva a que el sistema operativo lo suspenda y traiga a memoria la página solicitada para luego continuar con su ejecución: Verifica en el PCB si esta solicitud corresponde a una página que ya ha sido asignada a este proceso. En caso de que la referencia sea inválida, se termina el proceso. Fallo de Página  En una falta de página, el SO mira en la tabla que mantiene el espacio de direcciones completo del proceso para decidir si: o La referencia es invalida → aborta proceso  La página no está en memoria, entonces:  Obtiene un marco vacío.  Carga la página dentro del marco.  Pone el bit de validez a 1.  Rearranca la instrucción.  Si la página está en memoria pero la traducción no es válida Þ reasigna la página. Algoritmos de Remplazo de Páginas Cuando se presenta un fallo de página, el sistema operativo tiene que escoger la página que desalojará de la memoria para hacer espacio para colocar la página que traerá del disco. Si la página a desalojar fue modificada mientras estaba en memoria, deberá rescribirse en el disco para actualizar la copia. En cambio, si la página no se ha modificado, no será necesario rescribirla FIFO (First In First Out) Se sustituye la página que lleva más tiempo residente en memoria. Utiliza una cola FIFO y hace un uso pobre de la localidad temporal. Sistemas Operativos Gestión de Memoria
  • 24. Veamos el comportamiento en el siguiente perfil de referencias a páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2: FIFO: 9 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 5 5 5 5 3 3 3 3 3 3 3 3 2 2 2 2 2 5 5 1 1 1 4 4 4 4 4 2 F F - F F F F - F - F F Reloj Es una mejora de la FIFO en la que también se chequea si una página ha sido referenciada, haciendo mejor uso de la localidad temporal. Para implementar esta política se mantiene una cola como en la FIFO, pero circular, con un puntero a la página candidata a ser sustituida, y un flag de uso asociado a cada página. El flag de uso se pone a 1 cuando la página es referenciada con posterioridad a su carga inicial en la memoria física. Al producirse un fallo de página se examina el flag de uso de la página señalada por el puntero de la FIFO. Si está a 0 la correspondiente página es sustituida, pero si vale 1 se borra el flag de uso (se pone a 0) y se avanza el puntero una posición, continuando este procedimiento hasta encontrar una página con el flag de uso a 0. Referencias a páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2: RELOJ: 6 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 5 5 5 5 5 5 5 5 1 1 1 4 4 3 3 3 3 F F - F F - F - F - - - Sistemas Operativos Gestión de Memoria
  • 25. LRU (Least Recently Used) Reemplaza la página de memoria que no ha sido referenciada desde hace mucho tiempo 7 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 1 1 1 4 4 4 2 2 2 F F - F F - F - F F - - Optima Se trata de la mejor política posible: sustituir la página que vaya a tardar más tiempo en ser referenciada en el futuro (Belady). Aunque esta política tiene el mínimo número posible de fallos de página (de aquí el nombre de política MIN), no se puede llevar a la práctica en tiempo real, y se utiliza como una referencia teórica para medir la eficiencia de otras políticas en entornos experimentales. 6 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 4 4 4 2 2 2 3 3 3 3 3 3 3 3 3 3 3 1 5 5 5 5 5 5 5 5 F F - F F - F - F - - Sistemas Operativos Gestión de Memoria
  • 26. Ejercicios Considera un sistema de paginación bajo demanda en el que un proceso que tiene asignados 3 marcos de página genera la siguiente secuencia de referencias a páginas: 2,3,1,2,4,5,2,3,1,5,6,1 Indica que accesos producirían un fallo de página cuando se utilizan las políticas de reemplazo local FIFO y LRU. Sabemos que este proceso se va a ejecutar muy a menudo en el sistema y nos interesa tener el mejor sistema de paginación para èl. ¿Valdría la pena aumentar el número de marcos de página asignados al proceso hasta 4 para alguna de estas dos políticas? Indica el número de fallos de página que se producirían en esta nueva situación para cada algoritmo. Solución FIFO: 10 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 4 4 4 3 3 3 6 6 3 3 3 3 5 5 5 1 1 1 1 1 1 1 1 2 2 2 5 5 5 F F F - F F F F F F F - • LRU: 9 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 2 2 2 2 5 5 5 3 3 3 4 4 4 3 3 3 6 6 1 1 1 5 5 5 1 1 1 1 F F F - F F - F F F F - Con 4 marcos: Sistemas Operativos Gestión de Memoria
  • 27. FIFO: 9 fallos de página 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 5 5 5 5 5 6 6 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 3 3 3 3 3 4 4 4 4 1 1 1 1 F F F - F F F F F - F - LRU: 8 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 2 2 2 2 2 6 6 3 3 3 3 5 5 5 5 5 5 5 1 1 1 1 1 3 3 3 3 3 4 4 4 4 1 1 1 1 F F F - F F F F - F - Para ambas políticas se reduce el número de fallos de página al aumentar el número de marcos a 4. 2. Considera un sistema de paginación bajo demanda en el que un proceso que tiene asignados 4 marcos de página genera la siguiente secuencia de referencias a pàginas:4,2,4,1,6,3,2,5,6,4,1,3,5,3 Indica que accesos producirían un fallo de página cuando se utiliza cada una de las políticas de reemplazo local FIFO, LRU y óptima. Número de marcos a 4. Sistemas Operativos Gestión de Memoria
  • 28. Solución FIFO: 8 fallos de página 4 2 4 1 6 3 2 5 6 4 1 3 5 3 4 4 4 4 4 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 5 5 5 5 5 5 5 1 1 1 1 1 1 4 4 4 4 4 6 6 6 6 6 6 1 1 1 1 F F - F F F - F - F F - - - LRU: 11 fallos de página 4 2 4 1 6 3 2 5 6 4 1 3 5 3 4 4 4 4 4 4 2 2 2 2 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 4 1 1 1 1 5 5 5 5 3 3 3 6 6 6 6 6 6 6 6 5 5 F F - F F F F F - F F F F - Óptimo: 7 fallos de pagina 4 2 4 1 6 3 2 5 6 4 1 3 5 3 4 4 4 4 4 4 4 4 4 4 1 1 1 1 2 2 2 2 2 2 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 3 3 3 6 6 6 6 6 6 6 6 6 6 F F - F F F F F - F F F F - Sistemas Operativos Gestión de Memoria
  • 29. Segmentación Paginada y Paginación Segmentada La segmentación presenta una serie de propiedades ventajosas para el programador, sin embargo, la paginación proporciona una forma más eficiente de gestionar el espacio de memoria. Para combinar las ventajas de ambas, algunos sistemas permiten una combinación de ambas, es decir, un sistema virtual con segmentos paginados. El mecanismo de traducción de Direcciones virtuales a Direcciones Físicas, no es más que la composición del mecanismo de la memoria segmentada y el de la paginada.
  • 30. BIBLIOGRAFÍA Carretero Pérez, Jesús y otros. Sistemas operativos: una visión aplicada. Primera Edición, Editorial McGraw Hill, España, 2001. Sistemas Operativos Gestión de Memoria