Memoria virtual

40
Profesor Nelson Sandoval ARQUICTETURA DE COMPUTADORES OSCAR DANIEL CHAMORRO AMOROCHO

Transcript of Memoria virtual

Page 1: Memoria virtual

Profesor NelsonSandoval

ARQUICTETURA DE COMPUTADORES

OSCAR DANIEL CHAMORRO AMOROCHO

Page 2: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentación

MEMORIA REAL O PRINCIPAL

MEMORIA VIRTUAL

Gestión de Memoria

Page 3: Memoria virtual

La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado.      Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.       La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.     

Page 4: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Objetivos de la Gestión de Memoria

Ofrecer a cada proceso un espacio lógico propio.

Proporcionar protección entre los procesos.

Permitir que los procesos compartan memoria.

Maximizar el rendimiento del sistema

Page 5: Memoria virtual

GESTOR DE MEMORIA

Es la parte del sistema operativo que gestiona la jerarquía de memoria

Asignación de Memoria Principal a los procesos que la solicitan

Localización de espacios libres, y ocupados

Aprovechamiento máximo de dicha memoria

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 6: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Al realizar un estudio de los diversos mecanismos y políticas relacionadas con la gestión de memoria, vale la pena tener en mente los requisitos que se intentan satisfacer.

Hay 5 requisitos:

Reubicación Protección Compartición

Organización Lógica Organización Física

Gestión de Memoria

Page 7: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Protección: En un sistema con multiprogramación es necesario proteger al sistema operativo y a los otros procesos de posibles accesos que se puedan realizar a sus espacios de direcciones.

Gestión de Memoria

interrumpido

interferencia

Page 8: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentación

Reubicación: En un sistema multiprogramado la memoria se encuentra compartida por varios procesos, por lo tanto, los procesos deben ser cargados y descargados de memoria.

Gestión de Memoria

Enviado adisco

cargado

Page 9: Memoria virtual

Compartición: En ciertas situaciones, bajo la supervisión y control del sistema operativo, puede ser provechoso que los procesos puedan compartir memoria.

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

acceden Copia programa

Page 10: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentacion

JULIO 2008 SISTEMAS OPERATIVOS

Organización Lógica: Tanto la memoria principal como la secundaria presentan una organización física similar, como un espacio de direcciones lineal y unidimensional. CORRESPONDENCIA

Organización Física: Debe ser parte de la gestión de memoria, la organización del flujo de información entre la memoria principal y la memoria secundaria.

Gestión de Memoria

ELM

Page 11: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Direcciones físicas Son aquellas que referencian alguna posición en la memoria física

Direcciones lógicas son las direcciones utilizadas por los procesos

Page 12: Memoria virtual
Page 13: Memoria virtual

• Asignación de Espacio Contiguo• La memoria principal se encuentra dividida en dos

partes: – SO residente (kernel), normalmente en posiciones

bajas de la memoria – Zona para los procesos de usuario, normalmente

en posiciones altas de la memoria • La zona para procesos de usuarios se encuentra

dividida a su vez en varias particiones que se asignarán a los procesos – Particionamiento Estático: las particiones se

establecen en el momento de arranque del SO y permanecen fijas durante todo el tiempo

– Particionamiento Dinámico: las particiones cambian de acuerdo a los requisitos de los

procesos

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Page 14: Memoria virtual

Asignación Estática de Memoria Particionada 

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Hueco. bloque de memoria disponible; hay huecos de diversos tamaños repartidos por toda la

memoria Cuando llega un proceso se le asigna un hueco lo

suficientemente grande para que quepa Asignación Estática de Memoria Particionada 

Primer ajuste (First-fit): Se asigna el primer hueco lo suficientemente grande

Mejor ajuste (Best-fit): Se asigna el hueco más pequeño que es lo suficientemente grande; hay que

buscar en la lista entera de huecos (salvo si está ordenada por tamaño)

Desperdicia el menor espacio posible  Hay varias formas de satisfacer una solicitud de

tamaño n partiendo de una lista de huecos

Page 15: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Page 16: Memoria virtual

• Protección con Asignación Estática • Los registros de reubicación se usan para proteger los

procesos de usuario unos de otros y del código y datos del SO

– El registro base contiene la dirección física más baja a la que puede acceder el proceso

• El registro límite contiene el tamaño de la zona de memoria accesible por el proceso – las direcciones lógicas deben ser menores que el registro límite

• Asignación Dinámica de Memoria Particionada • Ahora el tamaño y ubicación de las particiones no es fijo sino

que cambia a lo largo del tiempo • Cuando llega un proceso se le asigna memoria de un hueco

lo suficientemente grande para que quepa – Con el espacio sobrante del hueco se crea una nueva partición

libre (hueco) • En este tipo de asignación las consideraciones de protección

son las mismas que en la asignación estática

MMU

Procesos de Usuario

Paginación

Segmentación

JULIO 2008 SISTEMAS OPERATIVOS

Gestión de Memoria

Page 17: Memoria virtual

• Asignación Dinámica de Memoria • Primer ajuste (First-fit): Se asigna el primer

hueco lo suficientemente grande • Mejor ajuste (Best-fit): Se asigna el hueco más

pequeño que es lo suficientemente grande; hay que buscar en la lista entera de huecos (salvo si está ordenada por tamaño) – Da lugar al hueco más pequeño

• Peor ajuste (Worst-fit): Se asigna el hueco más grande; hay que buscar en la lista completa de huecos (salvo si está ordenada por tamaño) – Da lugar al hueco más grande

MMU

Procesos de Usuario

Paginación

Segmentación

JULIO 2008 SISTEMAS OPERATIVOS

Gestión de Memoria

Page 18: Memoria virtual

• Fragmentación • La fragmentación es la memoria que queda

desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa.

• La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Page 19: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Page 20: Memoria virtual

• Fragmentación Externa – hay suficiente memoria libre para satisfacer una petición, pero esa memoria no es contigua

• Fragmentación Interna – la memoria asignada puede ser ligeramente mayor que la solicitada; esta diferencia de tamaño se encuentra en la partición pero no es usada

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 21: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 22: Memoria virtual
Page 23: Memoria virtual

Partición de la memoria en pequeños pedazos del mismo tamaño (chunks) y dividir cada proceso en trozos del mismo tamaño

Los trozos (chunks) de un proceso se llaman páginas y los de la memoria se llaman marcos de página (frames)

El sistema operativo mantiene una tabla de página para cada proceso

Proceso de migracion necesasio para atender fallos de pagina

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 24: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

El sistema operativo mantiene una tabla de página paracada proceso

Contiene la ubicación del marco de página (frame) de cada página del proceso

La dirección de memoria consiste en un número de página y un desplazamiento (offset) dentro de la página

Gestión de Memoria

Page 25: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

• Cada pagina tiene un numero que se utiliza como indice en la tabla de paginas, lo que da por resultado el numero del marco correspondiente a esa pagina virtual. La finalidad de la tabla de paginas es asociar las paginas virtuales con los marcos.

Page 26: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 27: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 28: Memoria virtual

Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).

Se divide la memoria en bloques de tamaño llamados paginas.

Se mantiene información en los marcos libres.

Se produce fragmentación interna

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria

Page 29: Memoria virtual

Es posible comenzar a ejecutar un programa

No  es necesario que las paginas estén contiguas en memoria

Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.

Se libera al programador de la restricción de programar para un tamaño físico de memoria

Se puede aumentar el numero de programas multiprogramándose.

Todo el mecanismo es transparente al usuario

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 30: Memoria virtual

El costo de hardware y software se incrementa

Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación.

. Aparece el problema de fragmentación interna

.

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 31: Memoria virtual
Page 32: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Es un esquema de manejo de memoria mediante el Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica;cual la estructura del programa refleja su división lógica;

Gestión de Memoria

Page 33: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Modularidad de programasModularidad de programas

Estructuras de datos de largo variableEstructuras de datos de largo variable

Protección: Protección:

Comparación: Comparación:

Enlace dinámico entre segmentosEnlace dinámico entre segmentos

Gestión de Memoria

Page 34: Memoria virtual

MMU

Procesos de Usuario

Paginación

Segmentación

Gestión de Memoria Se garantiza la facilidad de implantar la comparticion y

enlace.

Se simplifican las estrategias de almacenamiento.

Se elimina el problema de la fragmentación externa y la necesidad de compactación

Page 35: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

Hay un incremento en los costos de hardware y deHay un incremento en los costos de hardware y de software software

Problemas de fragmentación externas,Problemas de fragmentación externas,

Se complica el manejo de memoria virtualSe complica el manejo de memoria virtual

Puede ser necesarios planes de reubicación a nivel dePuede ser necesarios planes de reubicación a nivel de los discoslos discos

No se puede garantizar, que al salir un segmento de laNo se puede garantizar, que al salir un segmento de la memoria, este pueda ser traído fácilmente de nuevo,memoria, este pueda ser traído fácilmente de nuevo,

Requiere de mecanismos adicionales da hardware yRequiere de mecanismos adicionales da hardware y software.software.

Gestión de Memoria

Page 36: Memoria virtual

Segmentación Paginada Bajo esta técnica conocida se trata de

minimizar las desventajas de la segmentación

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 37: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

El programador puede conocer las unidades lógicas de El programador puede conocer las unidades lógicas de susu programaprograma

Es posible compilar módulos por separados Es posible compilar módulos por separados

Fácil la modificación de los módulosFácil la modificación de los módulos

Es fácil el compartir segmentosEs fácil el compartir segmentos

Existe la posibilidad de definir segmentos que aun noExiste la posibilidad de definir segmentos que aun no existanexistan

Gestión de Memoria

Page 38: Memoria virtual

de su implantacion

Incremento del costo

de almacenamiento

MMU

Procesos de Usuario

Paginacion

Segmentacion

Gestión de Memoria

Page 39: Memoria virtual

MMU

Procesos de Usuario

Paginacion

Segmentacion

En la memoria principal son ejecutados los programas y En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesosexiste en memoria para que se ejecuten los procesos

Las direcciones de memoria son de tres tipo: físicas, lógicas y lineales

Las estrategias mas comunes para asignar espacios vacíos (huecos) son: primer ajuste, mejor ajuste, peor ajuste

La fragmentación puede ser interna o externa

Gestión de Memoria

Page 40: Memoria virtual

Técnica Descripción Ventajas Desventajas

Esquemas de Asignación Contigua

     

Partición Estática

La memoria principal se divide en un conjunto de particiones estáticas, durante la generación del sistema. Un proceso se puede cargar en una partición de igual o mayor tamaño.

Sencilla de implementar, poca sobrecarga del sistema operativo.

Empleo ineficiente de la memoria debido a la fragmentación interna. El número de procesos activos es fijo.

Partición Dinámica

Las particiones se crean dinámicamente, de forma que cada proceso se carga en una partición de su mismo tamaño.

No hay fragmentación interna, uso más eficiente de la memoria principal.

Uso ineficiente del procesador debido a la compactación para contrarrestar la fragmentación externa.

Esquemas de Asignación no Contigua

     

Paginación La memoria principal se divide en un conjunto de marcos de igual tamaño. Cada proceso se divide en páginas de igual tamaño que los marcos. Un proceso se carga situando todas sus páginas en marcos libres pero no necesariamente contiguos. 

No tiene fragmentación externa

Hay una pequeña cantidad de fragmentación interna.

Segmentación Cada proceso se divide en segmentos. Un proceso se carga situando todos sus segmentos en particiones dinámicas que no tienen por qué ser contiguas.

No tiene fragmentación interna.

Mejora la utilización de la memoria y reduce la sobrecarga comparada con la partición dinámica.