RSS

jueves, 19 de noviembre de 2009

4.3.2 Segmentacion memoria virtual

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. La segmentación permite alcanzar los siguientes objetivos:




1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.


2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.


3. Protección: se puede proteger los módulos del segmento contra accesos no autorizados.


4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.


5. 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 solo cuando sea necesario.








  • Igual que la segmentación simple.
  • No es necesario cargar todos los segmentos. 
  • Las segmentos se cargan por demanda. 
  • Segmentos de tamaño dinámico, según la demanda.
  • Se puede alterar los programas y recompilarlos independientemente.


Tabla de Segmentos


El SO debe mantener una lista de huecos libres.

Un bit expresa si el segmento se encuentra ya en memoria.
Un bit expresa si el segmento ha sido modificado.





 






0 comentarios:

Publicar un comentario