fbpx
Wikipedia

Tabla de paginación

Las tablas de paginación o tablas de páginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginación. Son usadas para realizar las traducciones de direcciones de memoria virtual (o lógica) a memoria real (o física) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema.

Las traducciones de memoria paginada toman las direcciones lógicas y por medio de la tabla de páginas se obtiene las direcciones físicas reales.

En cada entrada de la tabla de paginación (en inglés PTE, Page Table Entry) existe un bit de presencia, que está activado cuando la página se encuentra en memoria principal. Otro bit que puede encontrarse es el de modificado, que advierte que la página ha sido modificada desde que fue traída del disco, y por lo tanto deberá guardarse si es elegida para abandonar la memoria principal; y el bit de accedido, usado en el algoritmo de reemplazo de páginas llamado Menos Usado Recientemente (LRU, least recently used). También podría haber otros bits indicando los permisos que tiene el proceso sobre la página (leer, escribir, ejecutar).

Dado que las tablas de paginación pueden ocupar un espacio considerable de la memoria principal, estas también podrían estar sujetas a paginación, lo que da lugar a una organización paginada de múltiples niveles (o tabla de páginas multinivel). En los sistemas con un tamaño de direcciones muy grande ( 64 bits ), podría usarse una tabla de páginas invertida, la cual utiliza menos espacio, aunque puede aumentar el tiempo de búsqueda de la página.

Definiciones

  • Marcos o páginas físicas: Porciones de memoria física.
  • Número de página física: Número del marco.
  • Proceso: Es un flujo de ejecución, es un programa en ejecución y tiene asignado una página física, como contiene un espacio de páginas lógicas. De hecho, cada proceso tiene su tabla de páginas.
  • Mapeado: Asignación de una página lógica. Ocurre igual que en los videojuegos cuando asignamos una tecla a una acción.
  • Páginas lógicas: Están mapeadas a un marco (porción de memoria física).
  • Tabla de páginas: Formada por el mapeo entre páginas físicas y lógicas.

Funcionamiento

 
Conexión entre páginas virtuales y las páginas físicas, la memoria física puede contener páginas de distintos procesos. Las páginas se pueden almacenar en el disco si se usan con poca frecuencia o si la memoria física está llena.

Se debe hacer referencia a dos funciones esenciales:

  • Transforma una dirección virtual a física
  • Transfiere páginas de la memoria secundaria a la memoria principal y viceversa.

El traductor de memoria paginada toma la dirección lógica y, por medio de la tabla de páginas, obtiene la dirección física real. Los bits más significativos de una dirección lógica representan el número de página lógica, los menos significativos el desplazamiento dentro de la página. Concretamente, en un procesador de 32 bits, con un tamaño de página de 4Kb = 2^12, se emplean 12bits para el desplazamiento dentro de la página. Es decir, para referenciar los datos que una página contiene. Los restantes 20 bits más significativos indican el número de página.

Las páginas cuentan con mecanismos de protección, expresados en bits de lectura, escritura y ejecución, esto permite definir páginas de sólo lectura, por ejemplo, para almacenar datos con un valor predefinido (constantes). Páginas de sólo lectura y ejecución, para almacenar código, así como páginas de lectura y escritura para la pila del proceso. Si se accede a una página lógica que no existe en la tabla de páginas de un determinado proceso, el sistema lanza una excepción que finaliza de la ejecución del proceso.

Elementos de administración

Para mantener la contabilidad de marcos libres se pueden emplear estructuras de datos tales como:

  • Mapa de bits de marcos libres: Que contiene 1 si está asignada a un proceso, o 0 si está libre.
  • Lista de marcos libres: Hay una lista global de marcos libres y una lista por proceso de marcos ocupados.

Además, se puede emplear el mecanismo de los compañeros para mantener listas de varias páginas consecutivas (bloques) de tamaño en base a potencia de 2. Por ejemplo, imaginemos un sistema con páginas de 4 Bytes, bloques de 4 Kbyte (orden 0), bloques de 8 Kbyte (orden 1, dos páginas), bloques de 16 Kbyte (orden 2, cuatro páginas), bloques de 32 Kbyte (orden 3, 8 páginas) y así aumentar gradualmente.

Una reserva de página de orden 0 nunca falla a no ser que no haya memoria disponible en el sistema. La de orden 1 puede fallar si no hay dos páginas consecutivas.

El hecho de asignar páginas de manera consecutiva permite explotar mejor la propiedad de localidad espacial en el acceso a memoria.

Tabla de Páginas Multinivel

La tabla de páginas multinivel es una estructura de tabla de páginas que a su vez contiene asignaciones para páginas virtuales. Se realiza manteniendo varias tablas de páginas que cubren un determinado bloque de la memoria virtual. Por ejemplo, podemos crear páginas más pequeñas de 4KB de 1024 entradas que cubran 4 MB de memoria virtual.

Esto es provechoso, ya que, las partes superiores e inferiores de la memoria virtual se usan para ejecutar un proceso; la parte superior se usa a menudo para segmentos de texto y datos, mientras que la parte inferior para la pila, con memoria libre en el medio. La tabla de páginas multinivel puede mantener algunas de las tablas de páginas más pequeñas para cubrir solo las partes superior e inferior de la memoria y crear otras nuevas solo cuando sea estrictamente necesario. Cada una de estas tablas de páginas más pequeñas están unidas entre sí por una tabla de páginas mayor, lo que crea efectivamente una estructura de datos tipo árbol. Este modelo se puede repetir y crecer para obtener más niveles. Por ejemplo, una dirección virtual en este esquema podría dividirse en tres partes: el índice en la tabla de la página raíz, el índice en la tabla de la subpágina y el desplazamiento en esa página.

Tabla de Páginas Invertida

Es una técnica de paginación donde existe una entrada por cada página real de la memoria, además, incorpora información del proceso dueño dicha página. Por lo tanto, en el sistema solo habrá una tabla de páginas invertida y esta solo tendrá una entrada por cada marco en la memoria física.

La principal ventaja de este método es que reduce la memoria física ocupada por la tabla de páginas. Por otra parte, genera una desventaja, la cual aumenta el tiempo de búsqueda de páginas, ya que, se debe verificar la tabla de páginas cada vez que hay una referencia a una página, debido a que esta se encuentra ordenada según mande la memoria física y las búsquedas se realizan según la memoria virtual. Para solucionar esta desventaja se utiliza una tabla de hash, para limitar la búsqueda a una o en el peor de los casos, unas pocas entradas de la tabla de páginas, pero cada acceso a una página requerirá dos accesos a memoria: el primero, para acceder a la tabla de hash, y el segundo, para la tabla de páginas (recordar que primero se explora un buffer TLB -Translation Lookaside Buffer- antes de consultar la tabla hash). Los sistemas que utilizan tablas de páginas invertidas tienen problemas para implementar el concepto de memoria compartida, ya que, cada entrada de la tabla de páginas invertida corresponde a solo un marco en memoria.

Véase también

Referencias

  1. Universidad de Sevilla, Ingeniería de Computadores.
  2. Universidad del País Vasco EHU/UPV. Sistemas Operativos, ingeniería de Computadores.
  3. Milan Milenkovic (1994). Sistemas Operativos - Conceptos y Diseño (2ª edición). Mcgraw-hill. ISBN 8448146417. 
  4. Abraham Silberschatz, Greg Gagne, Peter Baer Galvin (2006). Fundamentos de sistemas operativos (7ª edición). Mcgraw-hill. pp. 690. ISBN 8448146417. 
  •   Datos: Q1195972

Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestión de Memoria (MMU) para realizar las traducciones. Para evitar un acceso a las tablas de paginación, hay un dispositivo llamado Buffer de Traducción Adelantada (TLB, Translation Lookaside Buffer), acelerando el proceso de traducción.

tabla, paginación, tablas, paginación, tablas, páginas, parte, integral, sistema, memoria, virtual, sistemas, operativos, cuando, utiliza, paginación, usadas, para, realizar, traducciones, direcciones, memoria, virtual, lógica, memoria, real, física, general, . Las tablas de paginacion o tablas de paginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos cuando se utiliza paginacion Son usadas para realizar las traducciones de direcciones de memoria virtual o logica a memoria real o fisica y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema Las traducciones de memoria paginada toman las direcciones logicas y por medio de la tabla de paginas se obtiene las direcciones fisicas reales En cada entrada de la tabla de paginacion en ingles PTE Page Table Entry existe un bit de presencia que esta activado cuando la pagina se encuentra en memoria principal Otro bit que puede encontrarse es el de modificado que advierte que la pagina ha sido modificada desde que fue traida del disco y por lo tanto debera guardarse si es elegida para abandonar la memoria principal y el bit de accedido usado en el algoritmo de reemplazo de paginas llamado Menos Usado Recientemente LRU least recently used Tambien podria haber otros bits indicando los permisos que tiene el proceso sobre la pagina leer escribir ejecutar Dado que las tablas de paginacion pueden ocupar un espacio considerable de la memoria principal estas tambien podrian estar sujetas a paginacion lo que da lugar a una organizacion paginada de multiples niveles o tabla de paginas multinivel En los sistemas con un tamano de direcciones muy grande 64 bits podria usarse una tabla de paginas invertida la cual utiliza menos espacio aunque puede aumentar el tiempo de busqueda de la pagina Indice 1 Definiciones 2 Funcionamiento 3 Elementos de administracion 4 Tabla de Paginas Multinivel 5 Tabla de Paginas Invertida 5 1 Vease tambien 6 ReferenciasDefiniciones EditarMarcos o paginas fisicas Porciones de memoria fisica Numero de pagina fisica Numero del marco Proceso Es un flujo de ejecucion es un programa en ejecucion y tiene asignado una pagina fisica como contiene un espacio de paginas logicas De hecho cada proceso tiene su tabla de paginas Mapeado Asignacion de una pagina logica Ocurre igual que en los videojuegos cuando asignamos una tecla a una accion Paginas logicas Estan mapeadas a un marco porcion de memoria fisica Tabla de paginas Formada por el mapeo entre paginas fisicas y logicas Funcionamiento Editar Conexion entre paginas virtuales y las paginas fisicas la memoria fisica puede contener paginas de distintos procesos Las paginas se pueden almacenar en el disco si se usan con poca frecuencia o si la memoria fisica esta llena Se debe hacer referencia a dos funciones esenciales Transforma una direccion virtual a fisica Transfiere paginas de la memoria secundaria a la memoria principal y viceversa El traductor de memoria paginada toma la direccion logica y por medio de la tabla de paginas obtiene la direccion fisica real Los bits mas significativos de una direccion logica representan el numero de pagina logica los menos significativos el desplazamiento dentro de la pagina Concretamente en un procesador de 32 bits con un tamano de pagina de 4Kb 2 12 se emplean 12bits para el desplazamiento dentro de la pagina Es decir para referenciar los datos que una pagina contiene Los restantes 20 bits mas significativos indican el numero de pagina Las paginas cuentan con mecanismos de proteccion expresados en bits de lectura escritura y ejecucion esto permite definir paginas de solo lectura por ejemplo para almacenar datos con un valor predefinido constantes Paginas de solo lectura y ejecucion para almacenar codigo asi como paginas de lectura y escritura para la pila del proceso Si se accede a una pagina logica que no existe en la tabla de paginas de un determinado proceso el sistema lanza una excepcion que finaliza de la ejecucion del proceso Elementos de administracion EditarPara mantener la contabilidad de marcos libres se pueden emplear estructuras de datos tales como Mapa de bits de marcos libres Que contiene 1 si esta asignada a un proceso o 0 si esta libre Lista de marcos libres Hay una lista global de marcos libres y una lista por proceso de marcos ocupados Ademas se puede emplear el mecanismo de los companeros para mantener listas de varias paginas consecutivas bloques de tamano en base a potencia de 2 Por ejemplo imaginemos un sistema con paginas de 4 Bytes bloques de 4 Kbyte orden 0 bloques de 8 Kbyte orden 1 dos paginas bloques de 16 Kbyte orden 2 cuatro paginas bloques de 32 Kbyte orden 3 8 paginas y asi aumentar gradualmente Una reserva de pagina de orden 0 nunca falla a no ser que no haya memoria disponible en el sistema La de orden 1 puede fallar si no hay dos paginas consecutivas El hecho de asignar paginas de manera consecutiva permite explotar mejor la propiedad de localidad espacial en el acceso a memoria Tabla de Paginas Multinivel EditarLa tabla de paginas multinivel es una estructura de tabla de paginas que a su vez contiene asignaciones para paginas virtuales Se realiza manteniendo varias tablas de paginas que cubren un determinado bloque de la memoria virtual Por ejemplo podemos crear paginas mas pequenas de 4KB de 1024 entradas que cubran 4 MB de memoria virtual Esto es provechoso ya que las partes superiores e inferiores de la memoria virtual se usan para ejecutar un proceso la parte superior se usa a menudo para segmentos de texto y datos mientras que la parte inferior para la pila con memoria libre en el medio La tabla de paginas multinivel puede mantener algunas de las tablas de paginas mas pequenas para cubrir solo las partes superior e inferior de la memoria y crear otras nuevas solo cuando sea estrictamente necesario Cada una de estas tablas de paginas mas pequenas estan unidas entre si por una tabla de paginas mayor lo que crea efectivamente una estructura de datos tipo arbol Este modelo se puede repetir y crecer para obtener mas niveles Por ejemplo una direccion virtual en este esquema podria dividirse en tres partes el indice en la tabla de la pagina raiz el indice en la tabla de la subpagina y el desplazamiento en esa pagina Tabla de Paginas Invertida EditarEs una tecnica de paginacion donde existe una entrada por cada pagina real de la memoria ademas incorpora informacion del proceso dueno dicha pagina Por lo tanto en el sistema solo habra una tabla de paginas invertida y esta solo tendra una entrada por cada marco en la memoria fisica La principal ventaja de este metodo es que reduce la memoria fisica ocupada por la tabla de paginas Por otra parte genera una desventaja la cual aumenta el tiempo de busqueda de paginas ya que se debe verificar la tabla de paginas cada vez que hay una referencia a una pagina debido a que esta se encuentra ordenada segun mande la memoria fisica y las busquedas se realizan segun la memoria virtual Para solucionar esta desventaja se utiliza una tabla de hash para limitar la busqueda a una o en el peor de los casos unas pocas entradas de la tabla de paginas pero cada acceso a una pagina requerira dos accesos a memoria el primero para acceder a la tabla de hash y el segundo para la tabla de paginas recordar que primero se explora un buffer TLB Translation Lookaside Buffer antes de consultar la tabla hash Los sistemas que utilizan tablas de paginas invertidas tienen problemas para implementar el concepto de memoria compartida ya que cada entrada de la tabla de paginas invertida corresponde a solo un marco en memoria Vease tambien Editar MMU TLB Algoritmo de reemplazo de paginasReferencias EditarUniversidad de Sevilla Ingenieria de Computadores Universidad del Pais Vasco EHU UPV Sistemas Operativos ingenieria de Computadores Milan Milenkovic 1994 Sistemas Operativos Conceptos y Diseno 2ª edicion Mcgraw hill ISBN 8448146417 Abraham Silberschatz Greg Gagne Peter Baer Galvin 2006 Fundamentos de sistemas operativos 7ª edicion Mcgraw hill pp 690 ISBN 8448146417 Datos Q1195972 Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestion de Memoria MMU para realizar las traducciones Para evitar un acceso a las tablas de paginacion hay un dispositivo llamado Buffer de Traduccion Adelantada TLB Translation Lookaside Buffer acelerando el proceso de traduccion Obtenido de https es wikipedia org w index php title Tabla de paginacion amp oldid 141792957, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos