SOP U-4 Memoria virtual Flashcards
Características:
✓ Es una técnica de administración de memoria mediante la cual el sistema operativo reserva
un espacio en el disco para poder utilizarlo como si fuese memoria RAM.
✓ El sistema operativo crea para cada proceso un espacio de direcciones virtual en disco.
✓ Permite ejecutar programas cuyo tamaño sea mayor a la memoria física (RAM) disponible.
✓ El programa se divide en “partes” y se almacenan algunas en disco y otras en memoria.
✓ Se aumenta considerablemente el grado de multiprogramación.
Imagina una biblioteca muy grande con un almacén:
Biblioteca: Representa la memoria principal (RAM) de tu computadora.
Almacén: Representa el disco duro.
Libros: Representan los programas que quieres ejecutar.
Memoria virtual: En esta biblioteca, solo los libros que estás leyendo en este momento están en los estantes principales (memoria principal). Los demás libros están guardados en el almacén (disco duro).
Espacio de direcciones: Cada libro tiene su propio índice (espacio de direcciones). Tú puedes buscar cualquier página del libro sin importar si está en el estante o en el almacén.
Acceso a un libro: Cuando quieres leer una página de un libro que está en el almacén, se trae rápidamente a la biblioteca, se coloca en un estante libre y luego puedes leer la página.
Para entender mejor las características:
Reserva de espacio en disco: Es como tener un espacio reservado en el almacén para guardar los libros que no caben en la biblioteca.
Espacio de direcciones virtual: Cada libro tiene su propio índice, aunque parte del libro esté en el almacén.
Programas más grandes: Puedes tener libros (programas) mucho más grandes que la capacidad de la biblioteca (memoria RAM).
División del programa: Los libros se dividen en capítulos (partes) y se almacenan en diferentes lugares (memoria o disco).
Más multiprogramación: Puedes tener muchos más libros (programas) abiertos al mismo tiempo, ya que muchos de ellos estarán en el almacén.
Direcciones virtuales
→ Direcciones virtuales: conjunto de direcciones de memoria que los programas pueden producir,
constituyen el espacio de direcciones virtual.
Imagina una biblioteca muy grande con un sistema de clasificación muy particular:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora.
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
¿Por qué etiquetas en lugar de números de estante?
Imagina que en lugar de números de estante, cada libro tiene una etiqueta con un nombre o un código único. Cuando quieres encontrar un libro, buscas por esa etiqueta, no por el número de estante exacto donde se encuentra.
¿Por qué es útil esto?
Flexibilidad: Los libros (programas) pueden moverse de un estante a otro sin que tú tengas que cambiar las etiquetas.
Simplificación: No tienes que recordar números de estante, solo el nombre del libro (la dirección virtual).
Organización: El sistema se encarga de encontrar el libro en función de la etiqueta,
Fallo de página
Fallo de página → Se produce cuando el programa intenta ejecutar una página, la MMU detecta que no se encuentra en la memoria RAM, está en SWAP y hace que la CPU genere un TRAP al sistema operativo. El proceso se detiene, se busca esa parte del programa en disco y se la almacena en la RAM
Imagina una biblioteca muy grande con un almacén y un bibliotecario:
Biblioteca: Representa la memoria RAM de tu computadora.
Almacén: Representa el disco duro (SWAP).
Libros: Representan los programas que quieres ejecutar.
Cajas: Representan las páginas de un programa.
Bibliotecario: Representa la MMU.
Fallo de página:
Imagina que estás leyendo un libro (programa) y llegas a un capítulo (página) que no está en los estantes de la biblioteca (memoria RAM), sino que está guardado en el almacén (disco duro).
Pides el capítulo: Le pides al bibliotecario el capítulo que necesitas.
El bibliotecario no lo encuentra: El bibliotecario busca el capítulo en los estantes, pero no lo encuentra.
El bibliotecario va al almacén: El bibliotecario se da cuenta de que el capítulo está en el almacén, así que va a buscarlo.
Mientras tanto, te quedas esperando: Tú (el programa) tienes que esperar a que el bibliotecario traiga el capítulo.
inconvenientes de las técnicas de administración de multiprogramación
Resuelve los inconvenientes de las técnicas de administración de multiprogramación:
* Un proceso debe estar cargado en RAM todo junto en direcciones de memoria en forma
contigua.
* No se puede ejecutar un proceso cuyo tamaño sea mayor al total de memoria RAM disponible.
* El grado de multiprogramación está limitado a la cantidad máxima de procesos alojados en
RAM.
Imagina una biblioteca muy grande con un almacén:
Biblioteca: Representa la memoria principal (RAM) de tu computadora.
Almacén: Representa el disco duro.
Libros: Representan los programas que quieres ejecutar.
Problemas de las bibliotecas tradicionales:
Libros completos en un solo estante: Si un libro es muy grande, necesitas un estante entero para él. Si no hay un estante lo suficientemente grande, no puedes leer el libro.
Biblioteca pequeña: Si la biblioteca es pequeña, solo caben unos pocos libros.
Pocos lectores: Solo pueden leer los libros que caben en la biblioteca.
Solución: La memoria virtual
En esta biblioteca, los libros se pueden dividir en capítulos. Los capítulos que estás leyendo están en los estantes principales (memoria principal), mientras que los demás están en el almacén.
Capítulos en diferentes lugares: Los capítulos de un mismo libro pueden estar en diferentes estantes, incluso en el almacén.
Biblioteca más grande: Puedes tener muchos más libros de los que caben en la biblioteca, ya que los capítulos que no estás leyendo están en el almacén.
Más lectores: Pueden leer más libros al mismo tiempo, ya que cada libro puede ocupar varios estantes, tanto en la biblioteca como en el almacén.
Cómo resuelve los inconvenientes:
Un proceso debe estar cargado todo junto: Con la memoria virtual, los procesos se pueden dividir en partes (páginas) y cada parte puede estar en un lugar diferente.
No se puede ejecutar un proceso cuyo tamaño sea mayor: Al dividir los procesos en partes, puedes ejecutar programas más grandes que la memoria física disponible.
Grado de multiprogramación limitado: Puedes tener más procesos en ejecución, ya que no todos tienen que estar completamente cargados en memoria al mismo tiempo.
Memoria virtual
Técnica de administración de memoria en la cual el sistema mantiene en la memoria principal las partes del programa que se están usando en ese momento, y el resto en el disco.
La idea principal es que cada programa tiene su propio espacio de direcciones.
Imagina una biblioteca muy grande con un almacén:
Biblioteca: Representa la memoria principal (RAM) de tu computadora.
Almacén: Representa el disco duro.
Libros: Representan los programas que quieres ejecutar.
Memoria virtual: En esta biblioteca, solo los libros que estás leyendo en este momento están en los estantes principales (memoria principal). Los demás libros están guardados en el almacén (disco duro).
Espacio de direcciones: Cada libro tiene su propio índice (espacio de direcciones). Tú puedes buscar cualquier página del libro sin importar si está en el estante o en el almacén.
Acceso a un libro: Cuando quieres leer una página de un libro que está en el almacén, se trae rápidamente a la biblioteca, se coloca en un estante libre y luego puedes leer la página.
Ventajas:
Más espacio: Puedes tener muchos más libros (programas) de los que caben en la biblioteca (memoria principal).
Eficiencia: Solo se utiliza la memoria necesaria para los libros que se están leyendo en ese momento.
Desventajas:
Velocidad: Acceder a un libro que está en el almacén es más lento que acceder a uno que está en la biblioteca.
Complejidad:
MMU (Unidad de Administración de Memoria)
→ MMU (Unidad de Administración de Memoria) establece una correspondencia entre las direcciones virtuales y físicas de la memoria. Es un chip o un conjunto de chips. La CPU envía direcciones virtuales a la MMU, la MMU envía direcciones físicas a la memoria.
Funcionamiento interno
* Los primeros 4 bits indican un número de página. Este se utiliza como índice para consultar latabla de página y así obtener el número de marco de página correspondiente.
24= 16.
Cantidadde páginas es 16.
* Los siguientes 12 bits indican un desplazamiento.
* 2 12= 4096 = 4 kb
* Total, del espacio de direccionamiento → 16 x 4k = 64k
Imagina una biblioteca muy grande con un sistema de clasificación muy particular y un bibliotecario muy eficiente:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (direcciones físicas).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Bibliotecario: Este es la MMU.
¿Cómo funciona el bibliotecario (MMU)?
Pides un libro: Tú (la CPU) le dices al bibliotecario el número de la etiqueta del libro que quieres (dirección virtual).
El bibliotecario consulta su catálogo: El bibliotecario tiene un catálogo (tabla de páginas) que le indica en qué estante se encuentra cada libro en función de su etiqueta.
Te lleva al libro: El bibliotecario te lleva directamente al estante correcto (dirección física) y te entrega el libro.
¿Cómo funciona el catálogo (tabla de páginas)?
División de los libros: Imagina que los libros se dividen en secciones (páginas) de igual tamaño.
Catálogo con números de estante: El catálogo tiene una entrada para cada sección de cada libro, indicando en qué estante se encuentra esa sección.
Ejemplo:
Etiqueta del libro: 1010 (en binario)
División: Los primeros 4 dígitos (1010) indican la sección (página) del libro.
Consulta al catálogo: El bibliotecario busca la sección 1010 en el catálogo y encuentra que está en el estante 1100.
Los últimos 12 dígitos: Los últimos 12 dígitos de la etiqueta indican la posición exacta dentro de la sección (desplazamiento).
PAGINACIÓN
Al programa se lo divide en partes iguales, que recibe el nombre de páginas. Tamaño promedio de
páginas: 4 kb.
Las páginas se almacenan en disco y se van llevando a memoria a medida que se necesitan.
En la RAM las páginas se almacenan en marcos para páginas.
Imagina una biblioteca muy grande con un almacén y cajas:
Biblioteca: Representa la memoria principal (RAM) de tu computadora.
Almacén: Representa el disco duro.
Libros: Representan los programas que quieres ejecutar.
Cajas: Representan las páginas de un programa. Todas las cajas tienen el mismo tamaño.
Paginación: En esta biblioteca, los libros se dividen en cajas del mismo tamaño. Las cajas que necesitas para leer un libro están en los estantes de la biblioteca (memoria principal). El resto de las cajas están en el almacén (disco duro).
Tamaño de las cajas: Todas las cajas tienen el mismo tamaño (por ejemplo, 4 kilos de papel).
Almacenamiento: Las cajas se almacenan en el almacén hasta que las necesitas.
Uso de las cajas: Cuando necesitas leer una parte de un libro, se trae la caja correspondiente del almacén a la biblioteca y se coloca en un estante vacío.
Tabla de páginas
Tabla de páginas → Es una función donde el número de página virtual es un argumento y el número
de marco físico es un resultado. El objetivo es asociar páginas virtuales a los marcos de página. Cada proceso posee su propia tabla de páginas.
Estructura →
✓ Bit presente/ausente: si este bit es 1, la entrada es válida y puede usarse; si es 0, la página virtual a la que la entrada corresponde no está en memoria. Tener acceso a una entrada de tabla de página que tiene este bit en 0 causa un fallo de página.
✓ Bits de protección: indican cuales tipos de accesos están permitidos. Bit 0 se permite leer y escribir y 1 si no se permite leer.
✓ Bit solicitado: se enciende cada vez que se hace referencia a una página, ya sea para leer o para escribir. Este bit ayuda al sistema a elegir entre que página seleccionar para sacar cuando se presente un fallo de página.
✓ Bit caché: este bit permite inhabilitar el uso de caché con la página.
Imagina una biblioteca muy grande con un sistema de clasificación muy particular y un catálogo detallado:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (marcos físicos).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Catálogo: Esta es la tabla de páginas.
¿Cómo funciona el catálogo (tabla de páginas)?
Cada libro tiene una entrada: En el catálogo, hay una entrada para cada sección (página) de cada libro.
La entrada indica el estante: Cada entrada te dice en qué estante (marco físico) se encuentra la sección correspondiente del libro.
Información adicional: Además de la ubicación, cada entrada tiene información adicional:
Si el libro está en la biblioteca: Bit presente/ausente. Si el bit es 0, el libro no está en la biblioteca (fallo de página).
Quién puede leer el libro: Bits de protección. Indican si se puede leer, escribir o ambas cosas.
Si el libro ha sido consultado recientemente: Bit solicitado. Esto ayuda a decidir qué libro sacar de la biblioteca si se necesita espacio.
Si se puede hacer una copia del libro: Bit caché. Indica si se puede hacer una copia rápida del libro (caché) para acceder a él más rápidamente.
Tabla de páginas invertidas
Tabla de páginas invertidas
→ Este diseño permite tener una entrada por cada marco de página ubicado en memoria RAM
→ Cada entrada lleva el registro de qué proceso y página virtual se encuentra en el marco de página
→ Ahorran gran cantidad de espacio de memoria RAM
→ Complejidad en la traducción de dirección virtual a física.
Imagina una biblioteca muy grande con un sistema de clasificación muy particular y un catálogo especial:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (marcos físicos).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Catálogo: Esta es la tabla de páginas.
¿Cómo funciona el catálogo tradicional?
En un catálogo tradicional, cada libro tiene una entrada que indica en qué estante se encuentra.
¿Cómo funciona un catálogo invertido?
En un catálogo invertido, la lógica es al revés: cada estante tiene una etiqueta que indica qué libro está ahí. Es como si en lugar de buscar el libro por su título, buscaras el estante y vieras qué libro está allí.
Ventajas del catálogo invertido:
Ahorro de espacio: Si tienes muchos libros y pocos estantes, un catálogo invertido es más eficiente porque solo necesitas una entrada por estante, no por cada libro.
Fácil de encontrar libros prestados: Si quieres saber quién tiene un libro prestado, solo tienes que buscar el estante donde estaba el libro.
Desventajas del catálogo invertido:
Más difícil encontrar un libro específico: Si quieres encontrar un libro en particular, tienes que buscar en todos los estantes hasta encontrarlo.
En el contexto de las computadoras:
Tabla de páginas invertida: Cada entrada del catálogo corresponde a un marco de memoria (estante).
Información en la entrada: Indica el proceso (libro) y la página virtual (parte del libro) que se encuentra en ese marco.
Ventajas: Ahorra memoria, facilita la gestión de la memoria compartida.
Desventajas: La traducción de direcciones virtuales a físicas es más compleja.
Tablas de páginas multinivel
En este modelo, no es necesario tener todas las tablas de páginas en memoria todo el tiempo
Imagina una biblioteca nacional muy grande con un sistema de clasificación muy complejo:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (marcos físicos).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Catálogos: Estos representan las tablas de páginas.
¿Por qué un catálogo tan complejo?
Imagina que el catálogo de la biblioteca es ENORME. Sería muy ineficiente tener todo el catálogo abierto todo el tiempo, ya que ocuparía mucho espacio y ralentizaría las búsquedas.
La solución: Catálogos multinivel
Para solucionar este problema, se dividen los catálogos en niveles:
Catálogo general: Un catálogo pequeño que te indica en qué sección del catálogo detallado encontrar el libro que buscas.
Catálogos detallados: Cada sección del catálogo general tiene su propio catálogo detallado, que te indica el estante exacto donde se encuentra el libro.
¿Cómo funciona?
Buscas un libro: Tú (la CPU) le dices al bibliotecario el número de la etiqueta del libro que quieres (dirección virtual).
Consulta el catálogo general: El bibliotecario busca la etiqueta en el catálogo general.
Encuentra la sección: El catálogo general te indica en qué sección del catálogo detallado buscar.
Consulta el catálogo detallado: El bibliotecario busca la etiqueta en el catálogo detallado correspondiente.
Encuentra el libro: El catálogo detallado te indica el estante exacto donde se encuentra el libro.
Ventajas de los catálogos multinivel:
Ahorro de espacio: No es necesario tener todos los catálogos abiertos al mismo tiempo.
Mayor eficiencia: Las búsquedas son más rápidas porque se consultan catálogos más pequeños.
Flexibilidad: Se pueden agregar o eliminar secciones del catálogo sin afectar a todo el sistema.
TLB - Translation Lookaside Buffer
TLB - Translation Lookaside Buffer
→ Es un dispositivo de hardware que acelera el proceso de traducir direcciones virtuales a direcciones físicas, sin pasar por la tabla de páginas. También conocido como memoria asociativa.
→ Ubicado en el interior de la MMU
→ Cuando llega una dirección virtual a la MMU, el hardware verifica primero si el número de página virtual está en el TLB, comparando todas las entradas en paralelo e intenta hacer la traducción, si no está en el TLB, hace una consulta normal a la tabla de páginas y actualiza el TLB
magina una biblioteca muy grande con un bibliotecario muy eficiente y un índice rápido:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (marcos físicos).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Bibliotecario: Este es la MMU.
Catálogo: Esta es la tabla de páginas.
Índice rápido: Este es el TLB.
¿Cómo funciona el índice rápido (TLB)?
Imagina que el bibliotecario, además del catálogo completo, tiene un pequeño índice con las últimas búsquedas que has hecho. Este índice te permite encontrar los libros más rápidamente, sin tener que buscar en todo el catálogo.
Pides un libro: Tú (la CPU) le dices al bibliotecario el número de la etiqueta del libro que quieres (dirección virtual).
El bibliotecario consulta el índice rápido: Antes de buscar en el catálogo completo, el bibliotecario revisa si la etiqueta del libro está en su índice rápido.
Si encuentra la etiqueta: Si encuentra la etiqueta en el índice, sabe inmediatamente en qué estante está el libro y te lo trae.
Si no encuentra la etiqueta: Si no encuentra la etiqueta en el índice, busca en el catálogo completo (tabla de páginas) y actualiza el índice para la próxima vez.
Traducción de direcciones
→Traducción de direcciones → Como las direcciones virtuales no van directamente al bus de memoria existe la necesidad de traducirlas en direcciones físicas.
Imagina una biblioteca muy grande con un sistema de clasificación muy particular y un mapa:
Libros: Estos representan los programas que quieres ejecutar.
Estantes: Son como las ubicaciones de memoria en tu computadora (direcciones físicas).
Etiquetas en los libros: Estas etiquetas son las direcciones virtuales.
Mapa de la biblioteca: Este mapa te indica dónde se encuentra cada libro en función de su etiqueta.
¿Cómo funciona la traducción de direcciones?
Buscas un libro: Cuando quieres leer un libro, buscas su etiqueta (dirección virtual).
Consultas el mapa: Utilizas el mapa de la biblioteca para encontrar el estante exacto donde se encuentra el libro (dirección física).
Vas al estante: Vas al estante indicado y tomas el libro.