Introducción a los Sistemas Operativos Memoria Virtual

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

GESTION DE MEMORIA.
III - Gestión de memoria
Administración de memoria
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
CLASE 3 SOFTWARE DEL MICROPROCESADOR
3.4.- Administración de Memoria Virtual.
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Windows XP sp3.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Arquitectura de Conjunto de Instrucciones (ISA)
Teoría de Sistemas Operativos
Gustavo Andrés Uribe Gómez
Direcciones físicas y direcciones virtuales (lógicas)
Paginación-Segmentación Fundamentos Translación de Direcciones Tabla de páginas Segmentación Emely Arráiz Ene-Mar 08.
Tema 10: Gestión de Memoria
Administración de memoria
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Técnicas de recuperación de bases de datos
PAGINACIÓN Y SEGMENTACIÓN
UNIDAD 3 Conceptos de Sistemas Operativos.
Administración de Memoria Memoria Virtual
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Introducción a los Sistemas Operativos
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Tema VII Memoria Virtual.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
COMPONENTES DEL SISTEMA OPERATIVO.
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Gestión de Memoria.
Introducción a los SOs.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Tema 5: Multiprocesadores
Gestión de Memoria.
UNIDAD 3 C ONCEPTOS DE S ISTEMAS O PERATIVOS. El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Gestión de memoria Rina Arauz.
Arquitectura de Computadores I
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Memoria virtual. Universidad de SonoraArquitectura de Computadoras2 Introducción Memoria virtual es un mecanismo que permite que la memoria principal.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Memoria virtual.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Transcripción de la presentación:

Introducción a los Sistemas Operativos Memoria Virtual

Memoria Virtual Memoria Virtual es la técnica que permite que un programa (y sus datos) no necesite estar completo en memoria para ejecutarse. Esto es necesario por dos motivos: Los programas suelen ser muy grandes y no caben enteros en memoria física. En un sistema multiusuario/multitarea, varios programas comparten la misma CPU: es necesario que todos ellos esten en memoria física al mismo tiempo, y obviamente, no caben.

Memoria Virtual Solución: Todos los programas que están ejecutándose en un momento determinado del tiempo, están en disco. Sólo sus partes actualmente accedidas están en memoria principal. La memoria principal actúa como una caché del disco donde están los programas completos que se están ejecutando. La técnica de memoria virtual ofrece además, un mecanismo de protección entre programas: asegura que ningún programa lee/escribe los datos de otro programa

Espacios de Direcciones La memoria física tiene un espacio de direcciones igual a 2n bytes, siendo n el número de bits (señales) que el procesador tiene para direccionar memoria. La memoria física (DRAM) se accede con direcciones físicas. La memoria virtual tiene un espacio de direcciones igual a 2m, siendo m la cantidad de bits que los programas utilizan para especificar una dirección (de una instrucción o de un dato). Estas direcciones se llaman direcciones virtuales. Memoria virtual Memoria física (DRAM) dirección virtual dirección física

Espacios de Direcciones Cuando un programa es compilado, sus direcciones son direcciones del espacio virtual. Cuando un programa es ejecutado, las direcciones con las que se accede a memoria son direcciones del espacio físico. En el medio, debe haber un proceso que traduzca una dirección virtual a una dirección física. El proceso de traducción permite que un programa cambie muchas veces su mapeo entre dirección virtual y dirección física durante su ejecución. La técnica de memoria virtual la implementa: El sistema operativo con soporte de hardware La traducción de direcciones virtuales a físicas, la realiza el hardware (en casi todos los procesadores actuales)

Memoria Virtual La unidad (bloque) de transferencia se llama página. h y s i c a l d r e D k V t u A n o La unidad (bloque) de transferencia se llama página. Fallo: Fallo de página (Page Fault) El mapeo se realiza entre las páginas de memoria virtual y las páginas de memoria física.

Traducción Una dirección de memoria virtual se compone de: Número de página Offset dentro de la página La función de traducción asigna un número de página física a la página virtual. La traducción se realiza cada vez que se accede a un dato.

Páginas Cuando la función de traducción encuentra que no hay mapeo para una dirección virtualfallo de página El fallo de página tiene una penalización enorme: acceder al disco cuesta millones de ciclos de proceso Los sistemas de memoria virtual se diseñan de forma de reducir esta penalización.

Páginas Las páginas deben ser lo suficientemente grandes para amortizar el tiempo de acceso: de 4KB, 16KB, 32KB y 64 KB. Se usa un esquema totalmente asociativo para colocar las páginas en memoria. El software gestiona los fallos de página: el hardware avisa que hay fallo, el SO toma el control, transfiere la página y utiliza algún algoritmo para decidir a quien reemplaza. Cuando se escribe en memoria principal, no se actualiza el disco: se utiliza la política de escritura diferida. El disco se actualiza cuando la página se elimina de memoria.

Como ubicar y encontrar una página SO gestiona la localización de las páginas: Algoritmos sofisticados que llevan la cuenta de las páginas que no se necesitarán por mucho tiempo totalmente asociativo Dificultad: localizar la página. Una búsqueda total es impracticable. Se utiliza una Tabla de Páginas.

Tablas de Página Tabla de Páginas reside en Memoria Se indexa con el número de página virtual. Contiene el número de página física o bien una indicación de que no está. Cada programa tiene su propia Tabla de Páginas. Un registro del procesador apunta a la dirección en memoria de la Tabla de Páginas

Tabla de Páginas Tamaño de página: 212 bytes (4K bytes) Espacio virtual de direcciones: 232 bytes Espacio físico de direcciones: 230 bytes Tamaño de la Tabla de Páginas: 220 entradas, de 19 bits. O sea: un millón de entradas de 32 bits (redondeando para hacer mas fácil el acceso)

Programas y Procesos La Tabla de Páginas, junto con el PC y los registros representan el estado del programa que se está ejecutando. La Tabla de Páginas define el estado de la memoria del programa. Si se quiere compartir la CPU, se deberá salvar el estado del programa. El programa y su estado se denomina proceso. Un proceso está activo si está en posesión de la CPU : de lo contrario está inactivo. El S.O es el que pasa los procesos del estado inactivo a activo y viceversa

¿Donde está la página en disco? Un fallo de página provoca una excepción que le da control al S.O Este debe localizar el lugar del disco donde se encuentra la página que falló. Utiliza una estructura similar a la Tabla de Páginas, o bien la misma Tabla de Páginas para almacenar la ubicaciónde la página en disco. El S.O también tiene una tabla por proceso donde guarda información de sus páginas mapeadas. Reemplaza, utilizando LRU.

Problema Calcular el tamaño de la Tabla de Páginas necesaria para soportar un sistema con páginas de 4KB, 4 bytes por entrada en la TP y direcciones virtuales de 32 bits. Respuesta: 4MB!!!!!!!!!! Es decir: se necesita en memoria por cada programa que está corriendo una tabla de 4MB En una máquina con varios cientos de programas activos ............toda la memoria de la máquina estaría ocupada por las Tablas de Páginas!

Soluciones Limitar el tamaño de la TP por proceso, de manera que esta crezca solo si el proceso lo necesita. Registro Límite. Idem que el anterior pero permitiendo que las direcciones crezcan en los dos sentidos: de abajo hacia arriba (heap) y de arriba hacia abajo (pila). De esta forma las direcciones virtuales pertenecen a dos segmentos: el bit de mayor peso de la dirección identifica a cual. Cada segmento tiene una Tabla de Páginas diferente. MIPS Aplicar una función de hashing a la dirección virtual de forma que el tamaño de la Tabla de Páginas escale al tamaño de la memoria física y no al de la memoria virtual. Tabla de Páginas Invertida. Utilizar múltiples niveles de tablas de páginas. Un directorio que contiene direcciones de Tablas de páginas y las Tablas de Páginas que están en el segundo nivel. Tablas Jerárquicas. INTEL Paginar la Tabla de Páginas: es decir, permitir que las Tablas de Páginas residan en el espacio virtual.

Escrituras Escritura diferida: además solo se escribe si la página fue modificada. Bit de sucio. (dirty). El bit de dirty se activa cuando se realiza una escritura en la página

Traducción de direcciones Si la Tabla está en MP: un acceso a un dato requiere dos accesos (al menos!): Uno para acceder a la dirección Otro para acceder al dato Se puede acelerar basándose en el principio de localidad de las referencia: Si una página fue recientemente referenciada es probable que lo vuelva a ser pronto porque los datos tienen localidad espacial y temporal Solución: poner una pequeña caché de las últimas referencias traducidas a direcciones físicas: TLB Translation LookAside Buffer

TLB: caché de direcciones La TLB es una pequeña caché, por lo tanto cada entrada contiene un tag: el número de página virtual. Cuando hay un fallo en la TLB, puede o no haber fallo de página. Los fallos en la TLB los sirve el hardware por lo general. La TLB contiene también los bits de referencia y sucio. Si hay reemplazo, se copian en memoria. (escritura diferida) V a l i d 1 P g e t b h y s c p r T L B u n m o k D

TLB Algunos valores normales para la TLB: Tamaño: 32 a 4096 entradas Bloque: 1 o 2 entradas de Tabla de Página de 4-8 bytes cada una. Tiempo de acierto: 0,5-1 ciclo Penalización por fallo: 10-30 ciclos Tasa de fallos: 0,01%-1% Asociatividad: totalmente asociativa difícil el reemplazo. Pocas entradas. Poca asociatividad (2,4)

Integración: memoria virtual, cachés y TLB’s

Integración Sistemas con direcciones físicas traducidas ANTES de acceder a la caché: Cachés indexadas físicamente y etiquetadas físicamente El tiempo necesario para acceder al dato es la suma de los tiempos de acceso a la TLB y a la Caché. Sistemas con direcciones físicas traducidas DESPUES de acceder a la caché: Cachés indexadas virtualmente y etiquetadas virtualmente Se accede en paralelo a la TLB y a la Caché Solo en caso de miss en caché se usa la dirección física obtenida en la TLB Problema: una misma dirección física puede tener varias direcciones virtuales estar contenida en varias líneas de la caché. (páginas compartidas entre programas)

Integración Sistemas mixtos: Las cachés se indexan con la dirección virtual (se pueden usar los bits de desplazamiento de página que no se cambian en la traducción), pero se comparan con la dirección física. La caché y la TLB se acceden en paralelo. La TLB suministra la etiqueta para los comparadores

Protección Es una de las funciones del sistema de memoria virtual: permitir la compartición de la memoria única entre múltiples procesos: protección entre procesos y con el SO. En la TLB, el bit de escritura protege contra accesos de escritura no deseados. Lecturas: El SO debe garantizar que las páginas virtuales de dos procesos independientes se asignen a páginas físicas disjuntas. También debe garantizar que un proceso no pueda cambiar su Tabla de Páginas, sin embargo el SO si debe poder cambiar las Tablas de Páginas.

Protección El hardware debe proporcionar: Al menos dos modos de ejecución: proceso usuario y proceso kernel (supervisor, ejecutivo) Instrucciones que solo puedan ser usadas por el proceso kernel (para actualizar las estructuras de datos) Mecanismos para pasar de un modo a otro De usario a kernel excepciones, llamadas al sistema (syscall) De kernel a usuarioretorno de excepción: restaura el estado del proceso.