Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional I.

Documentos relacionados
Memoria Virtual. Memoria Virtual

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Administración de la memoria

Procesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Arquitectura de Computadores II Clase #7

Tema 20 Gestión de memoria

Sistemas Operativos Administración de la Memoria

Memoria. Organización de memorias estáticas.

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

SISTEMAS. UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR

Espacio de direcciones de un proceso

Organización lógica Identificación de bloque

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Introducción a los Sistemas Operativos

Tema 6. Gestión de la memoria

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Unidad 2: Gestión de Memoria

Tema 6. Administración de memoria

Arquitectura de Computadores II Clase #7

Administración de Memoria.

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

Tema 6 (II) Jerarquía de Memoria

MEMORIA EJERCICIO 1 EJERCICIO 2

El subsistema de Memoria

aspectos fundamentales

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

TEMA 5: GESTIÓN DE MEMORIA

SISTEMAS OPERATIVOS Ciclo 2014 Plan 2012

ADMINISTRACIÓN DE LA MEMORIA

Capítulo 2. Sistemas de Asignación Dispersa de

Examen de Arquitectura de Computadores

Tema 5: Memorias. Espacio reservado para notas del alumno

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Qué es un programa informático?

BUAP FACULTAD DE CIENCIAS DE LA COMPUTACIÓN SISTEMAS OPERATIVOS 2 PRACTICA 2 JAIME MORALES FLORES

Jerarquía de memoria - Motivación

Guía para la instalación de discos duro SATA y Configuración RAID

Ejercicios del tema 5. Jerarquía de de Memoria

Administración de memoria: Funciones y operaciones

Ejercicios de Arquitectura de Computadoras

Recopilación presentada por 1

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. 2. Multiprogramación

Tema 4. Administración de la memoria

Memoria Cache. Departamento de Arquitectura de Computadores

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Arquitectura (Procesador familia 80 x 86 )

Arquitectura de Computadores. Tema 13 Memoria Virtual. Eduardo Daniel Cohen

Unidad de Memoria. Almacenamiento de información Operaciones básicas. Propiedades de la Memoria. Escritura o almacenamiento. Lectura.

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Sistemas Operativos Tema 8. Gestión de memoria José Miguel Santos Alexis Quesada Francisco Santana Belén Esteban

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Capítulo 3 Gestión de Memoria

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Sea una memoria caché en la que cada 2 20 accesos se producen 2 17 fallos. Calcule la tasa de fallos.

Tema 7. Memoria virtual

Sistemas Operativos. Introducción. Tema 6

Tema 6 Organización y gestión de la memoria

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Sistemas Operativos [Administración de la memoria]

DIAGRAMA A BLOQUES DE UNA COMPUTADORA

Arquitectura de Computadores. Apellidos, Nombre:

Ejercicios Jerarquía de Memoria

SISTEMAS OPERATIVOS Arquitectura de computadores

Sistemas Operativos. Daniel Rúa Madrid

PREPARACION DE UN DISCO

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

Capítulo 4 Gestión de memoria

Tema: Microprocesadores

06. GESTIÓN DE PROCESOS Y RECURSOS

Administración de memoria: Asignación de memoria

Capitulo V Administración de memoria

MANEJO DEL AREA DE SWAP

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

Ingeniería en computación

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Escuela Politécnica Nacional I. Bernal. Iván Bernal, Ph.D. 4

Estructura de los dispositivos de E/S.

FUNCIONAMIENTO DEL ORDENADOR

Requerimientos o requisitos del sistema. Instalación de Windows 7.

Convivencia Gestión de la Memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Cuadro 3: Ejecución del algoritmo de reemplazo NFU.

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Iniciación a la informática

Arquitectura de un sistema de cómputo

Gestión de Memoria. Curso AT3148 Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P.

Tema 7: Memoria Virtual.

Tema 1: Arquitectura de ordenadores, hardware y software

Gestión de memoria en Servidores de Información Multimedia

Transcripción:

Sistemas Operativos Clase # 26 Administración de Memoria Martes, 22 de Octubre de 2002 Agenda Administración de Memoria: Paginación Iván Bernal, Ph.D. Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec Copyright @2002, I. Bernal Iván Bernal, Ph.D. 1 Iván Bernal, Ph.D. 2 Memoria virtual: paginación (1) La idea principal de la memoria virtual es que el tamaño combinado del programa, datos y stack pueden exceder el tamaño de memoria física disponible. El SO guarda aquellas partes del programa que se estén usando en memoria principal, y el resto en el disco duro. Memoria virtual: paginación (2) Que los procesos tengan que usar un espacio contiguo de la memoria es un impedimento para optimizar el uso de la memoria. Se propone que las direcciones lógicas sean contiguas, pero que no necesariamente correspondan a direcciones físicas contiguas. Se divide la memoria física en bloques de tamaño fijo, llamados marcos (frames). Se divide a la memoria lógica (la que los procesos ven) en bloques del mismo tamaño llamados páginas. Iván Bernal, Ph.D. 3 Iván Bernal, Ph.D. 4 1

Memoria virtual: paginación (3) Las direcciones que un programa genera se llaman direcciones virtuales y conforman el espacio de direcciones virtuales. Las direcciones virtuales no van directamente al bus de memoria. Las direcciones virtuales van al MMU (Memory Management Unit). Traduce direcciones virtuales en direcciones físicas. Memoria virtual: paginación (4) Iván Bernal, Ph.D. 5 Iván Bernal, Ph.D. 6 Memoria virtual: paginación (5) Memoria virtual: paginación (6) Se usa una tabla de páginas para saber en que marco se encuentra cada página. Se requiere apoyo del hardware. Cada vez que la CPU intenta acceder a una dirección, la dirección se divide en un número de página p y un desplazamiento (offset) d. p se transforma en el marco correspondiente, antes de acceder físicamente la memoria. Iván Bernal, Ph.D. 7 Iván Bernal, Ph.D. 8 2

Memoria virtual: paginación (7) Memoria virtual: paginación (8) El tamaño de las páginas es una potencia de 2, típicamente entre 0.5 y 8K. Si las direcciones son de m bits y el tamaño de página es 2 n, entonces los primeros m-n bits de cada dirección forman p,, y los restantes n forman d. Iván Bernal, Ph.D. 9 Iván Bernal, Ph.D. 10 Memoria virtual: paginación (9) Cada proceso tiene su propia tabla: Cuando la CPU se asigna a otro proceso, hay que cambiar la tabla de páginas a la del nuevo proceso. La paginación en general encarece los cambios de contexto. La seguridad se obtiene directamente, ya que cada proceso sólo puede acceder las páginas que están en su tabla de páginas. Fragmentación: Sólo interna, y de media página por proceso, en promedio. Esto sugeriría que conviene usar páginas pequeñas, pero eso aumentaría el costo de administrar las páginas. En general, el tamaño de página ha aumentado con el tamaño de la memoria física de una máquina típica. Memoria virtual: paginación (10) Tablas de páginas: Si las direcciones son de m bits y el tamaño de página es 2 n, la tabla de páginas puede llegar a contener 2 m- n entradas. En una CPU moderna, m=32 (incluso 64), y n=12 ó 13, lo que significa que se requerirían cientos de miles de entradas: Se puede manejar la tabla de páginas de cada proceso completamente en memoria, y usar sólo un registro que apunte a la ubicación de la tabla. Para cambiar de un proceso a otro, sólo se cambia ese registro. Desventaja: costo de cada acceso a memoria se duplica, porque primero hay que acceder la tabla (indexada por el número de página). O sea, si sin paginación cada acceso costaba 70ns, ahora cuesta 140! Iván Bernal, Ph.D. 11 Iván Bernal, Ph.D. 12 3

Memoria virtual: paginación (11) TLB (translation look-aside buffer ) Pequeño y rápido caché especial de memoria asociativa. La memoria asociativa guarda pares (clave, valor), y cuando se le presenta la clave, busca simultáneamente en todos sus registros, y retorna, en pocos ns, el valor correspondiente. La memoria asociativa es cara; los TLBs rara vez contienen más de 64 registros. El TLB forma parte de la MMU, y contiene los pares (página, marco) de las páginas más recientemente accedidas. Cuando la CPU genera una dirección lógica a la página p,, la MMU busca una entrada (p,f) en el TLB. Si se encuentra, se usa el marco f,, sin acudir a la memoria. Sólo si no hay una entrada para p, la MMU debe acceder la tabla de páginas en memoria (e incorporar una entrada para p en el TLB, posiblemente eliminando otra). Memoria virtual: paginación (12) Iván Bernal, Ph.D. 13 Iván Bernal, Ph.D. 14 Memoria virtual: paginación (13) Por pequeño que sea el TLB, la probabilidad de que la página esté en el TLB (tasa de aciertos) ) es alta, porque los programas suelen hacer muchas referencias a unas pocas páginas. Si la tasa de aciertos es del 90% y un acceso al TLB cuesta 10ns, entonces, en promedio, cada acceso a memoria costará 87ns ( por qué?). O sea, sólo un 24% más que un acceso sin paginación (70ns). En cada cambio de contexto, hay que limpiar el TLB, lo que puede ser barato, pero hay que considerar un costo indirecto: si los cambios de contexto son muy frecuentes, la tasa de aciertos se puede reducir (para cada cambio de contexto se debe llenar el TLB) Memoria virtual: paginación (14) Otra ventaja de paginación: Permite que procesos compartan páginas. Por ejemplo, varios procesos ejecutando el mismo código: las primeras páginas lógicas apuntan a las mismas páginas físicas, que contienen el código. El resto, apunta a datos locales, propios de cada ejecución. Un factor importante que se ha mencionado es si los programas exhiben una característica denominada `localidad : Muchos programas tienden a usar las instrucciones que están cercanas a la localidad de la instrucción que se está ejecutando actualmente. Iván Bernal, Ph.D. 15 Iván Bernal, Ph.D. 16 4

Memoria virtual: paginación (15) Page fault Cuando se está buscando una página cualquiera y ésta no está cargada, surge lo que se conoce como un `fallo de página' (page fault ). Esto es caro para el manejador de memoria, ya que tiene que realizar una serie de pasos extra para poder resolver la dirección deseada y darle su contenido a quien lo pide. Se detecta que la página no está presente y entonces se busca en la tabla la dirección de esta página en disco. Una vez localizada en disco se intenta cargar en alguna página libre de RAM. Si no hay páginas libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se marca su valor de control en la tabla de direcciones virtuales para indicar que ya no está en RAM, mientras que la página deseada se carga en RAM y se marca su valor para indicar que ahora ya está en RAM. Memoria virtual: paginación (16) Todo este procedimiento es caro, ya que se sabe que los accesos a disco duro son del orden de decenas de veces más lentos que en RAM. En el ejemplo anterior se mencionó que cuando se necesita descargar una página de RAM hacia disco se debe de hacer una elección. Para realizar esta elección existen varios algoritmos. Algoritmos para reemplazo de páginas Páginas modificadas deben primero salvarse. Páginas NO modificadas deben simplemente ser sobreescritas. La primera en entrar, primera en salir: : Se escoge la página que haya entrado primero y esté cargada en RAM. Se necesita que en los valores de control se guarde un dato de tiempo. No es eficiente porque no aprovecha ninguna característica de ningún sistema. Es justa e imparcial. La no usada recientemente: Se escoge la página que no haya sido usada (referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad. Iván Bernal, Ph.D. 17 Iván Bernal, Ph.D. 18 Memoria virtual: paginación (17) La no usada frecuentemente: Este algoritmo toma en cuenta no tanto el tiempo, sino el número de referencias. En este caso cualquier página que se use muy poco, menos veces que alguna otra. La menos frecuentemente usada: Es parecida a la anterior, pero aquí se busca en forma exhaustiva aquella página que se ha usado menos que todas las demás. En forma aleatoria: Elige cualquier página sin aprovechar nada. Es justa e imparcial, pero ineficiente. Segmentación (1) Aprovecha que los programas se dividen en partes lógicas, datos, código y stack. Asigna particiones de memoria a cada segmento de un programa. Facilita el compartir de segmentos (Ejem: librerías compartidas). Facilita el intercambio entre memoria y disco duro. Iván Bernal, Ph.D. 19 Iván Bernal, Ph.D. 20 5

Segmentación (2) Por ejemplo, en la versión de UNIX SunOS 3.5, no existían librerías compartidas para algunas herramientas, como para los editores de texto orientados al ratón y menús. Cada vez que un usuario invocaba a un editor, se tenía que reservar 1 MB de memoria. Como los editores son una herramienta muy solicitada y frecuentemente usada, se dividió en segmentos para le versión 4.x ( que a su vez se dividen en páginas). La mayor parte del editor es común para todos los usuarios, la primera vez que cualquier usuario lo invocaba, se reservaba un MB como antes, pero para el segundo, tercero y resto de usuarios, cada editor extra sólo consumía 20 KB de memoria. El ahorro es impresionante. Segmentación (3) Particiones de memoria son de tamaño variable, en contraste con páginas de tamaño fijo en la paginación pura. La traducción de direcciones es muy similar a la llevada a cabo en la paginación. Diferencia: el tamaño de los bloques a controlar son variables, por lo que cada entrada en la tabla debe contener la longitud de cada segmento. La dirección virtual se compone de un número de segmento (s) y un desplazamiento (d) para ubicar un byte dentro de dicho segmento. El desplazamiento no debe ser mayor que el tamaño del segmento. Iván Bernal, Ph.D. 21 Iván Bernal, Ph.D. 22 Sistemas Combinados (1) La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos. La mayoría de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginación y la segmentación. La idea de combinar estos esquemas es para aprovechar los conceptos de la división lógica de los programas (segmentos) con la granularidad de las páginas. Un proceso estará repartido en la memoria real en pequeñas unidades (páginas) cuya liga son los segmentos. Es factible el compartir segmentos a medida que las partes necesitadas de los mismos se van referenciando (páginas) Iván Bernal, Ph.D. 23 6