12 octubre, 2014

Paginacion y Segmentacion

Paginación

En la gestión de memoria con intercambio, cuando había que pasar un proceso a ejecución, era necesario traer el proceso entero de disco a memoria principal.

Con memoria virtual hemos dicho que no se trae todo el proceso, sino que cuando se hace referencia a una dirección de memoria virtual cuya correspondiente memoria física reside en disco, se trae el contenido de disco a RAM.

¿Quiere esto decir que la unidad de intercambio de memoria es el byte? Si lo fuera, daría lugar a que continuamente se estuviesen generando operaciones de E/S, lo cual sería poco eficaz. Claramente, parece más conveniente utilizar bloques más grandes, para aprovechar de manera más eficiente cada operación de E/S.



Tablas de páginas

Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual. Si el bit presente / ausente es 0, se provoca un señalamiento (trap) hacia el sistema operativo. Si el bit es 1, el número de marco que aparece en la tabla de páginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la dirección virtual de entrada.

Juntos forman una dirección física de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la dirección en la memoria física.


Estructura de la tabla de paginas


  • Protección: Expresa los permisos de acceso del proceso. En caso de tener permiso para la operación de lectura/escritura que se va a realizar, se consulta el resto de los campos.
  • Bit de Presencia: Indica si la página está presente en memoria principal o no. Si se encuentra en RAM, también tienen sentido los siguientes campos.
  • Marco Ocupado: Si la página se encuentra en memoria principal, este campo expresa el marco que la contiene.
  • Modificada (Bit de ensuciada): Este campo indica si el contenido de la página ha sido modificado desde que se trajo de la memoria secundaria.
  • Referenciada: Este campo booleano se pone a cierto cada vez que se hace referencia a cualquier dirección de la página. Lo utiliza el sistema operativo para ayudar a los algoritmos de sustitución de páginas.



Características de la paginación

  • El espacio de direcciones lógico de un proceso puede ser no contiguo.
  • 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 páginas.
  • Se mantiene información en los marcos libres.
  • Para correr un programa de en páginas de tamaño, se necesitan encontrar n marcos y cargar el programa.
  • Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
  • Se produce fragmentación interna.



Ventajas de la paginación


  • Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
  • No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de páginas libres dispersos en la memoria.
  • Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
  • El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.


Desventajas de la paginación


  • El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direcciones necesario. Se consumen muchos más recursos de memoria, tiempo en el CPU para su implantación.
  • Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fijo el tamaño de estas, se crea un problema semejante al de los programas (cómo asignar un tamaño óptimo sin desperdicio de memoria, u ovearhead del procesador).




SEGMENTACIÓN 

Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica, llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa.


OBJETIVOS: 

  •  Modularidad de programas: Cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
  • Estructuras de datos de largo variable: Ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar. 
  •  Protección: Se pueden proteger los módulos del segmento contra accesos no autorizados.
  •  Compartición: Dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos. Enlace dinámico entre segmentos: Puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán sólo cuando sea necesario.


Ventajas de la segmentación

El esquema de segmentación ofrece las siguientes ventajas:

  •  El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular.
  •  Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
  • Debido a que es posible separar los módulos, se hace más fácil la modificación de los mismos. Cambios dentro de un módulo no afecta al resto de los módulos.
  • Es fácil el compartir segmentos.
  • Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución.
  •  Existe la posibilidad de definir segmentos que aún no existan. Así, no se asignará memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serían los arreglos cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podría retardar la asignación de memoria hasta el momento en el cuál se referencia el arreglo u otra estructura de datos por primera vez.



Fuentes de informacion: http://es.slideshare.net/menes21/paginacion-y-segmentacion-de-memoriahttp://www.monografias.com/trabajos13/gesme/gesme.shtml

0 comentarios:

Publicar un comentario