Segmentacion Y Paginacion De Memoria
Enviado por ingrid1203 • 30 de Noviembre de 2013 • 1.072 Palabras (5 Páginas) • 425 Visitas
SEGMENTACIÓN DE MEMORIA
La segmentación es una técnica que asigna segmentos contiguos de memoria para las áreas de memoria de un proceso.
De esta forma, logra acomodarse más a la visión de la memoria por parte del usuario.
Un proceso se compone de una sección de código, una pila (stack), un espacio para la memoria dinámica (heap), la tabla de símbolos, etc.
Cada componente se agrupa en un segmento del tamaño necesario.
SISTEMA DE GESTIÓN DE MEMORIA EN UN SISTEMA OPERATIVO.
La segmentación es una técnica de gestión de memoria que pretende acercarse más al punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un núcleo central (principal) desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc ).
Desde este punto de vista, un programa es un conjunto de componentes lógicos de tamaño variable o un conjunto de segmentos, es decir, el espacio lógico de direcciones se considera como un conjunto de segmentos, cada uno definido por un identificador, y consistente de un punto de inicio y el tamaño asignado.1
La segmentación de un programa la realiza el compilador y en ella cada dirección lógica se expresará mediante dos valores: Número de segmento (s) y desplazamiento dentro del segmento (d).
Una de las implementaciones más obvias y directas de un espacio de memoria segmentado es asignar un segmento distinto a cada una de las secciones del espacio en memoria de un proceso.
La segmentación también ayuda a incrementar la modularidad de un programa: Es muy común que las bibliotecas enlazadas dinámicamente estén representadas en segmentos independientes.
HARDWARE DE SEGMENTACIÓN
Puesto que la memoria física se direcciona literalmente, será necesario transformar cada dirección lógica (s,d) en una dirección real (r). Esta conversión la realiza un dispositivo especial de hardware, la unidad de gestión de memoria, consultando la tabla de segmentos correspondiente.
RENDIMIENTO
Esta técnica permite reducir la fragmentación interna de la memoria provocada por la paginación, ya que asigna a cada programa la cantidad de memoria que requiere.
La carga de un programa en memoria exige la búsqueda de los huecos adecuados a sus segmentos, y puesto que éstos son de tamaño variable, se ajustarán los más posible a las necesidades, produciéndose huecos pequeños. En este caso se produce fragmentación externa. La eficiencia de la segmentación requiere, de igual forma que la paginación, el uso de memorias caché para lograr unos tiempos de acceso adecuados. De igual forma que en la paginación, se pueden compartir segmentos entre varios procesos.
PERMISOS
Una de las principales ventajas del uso de segmentación es que nos permite pedir a la unidad de gestión de memoria que cada uno de los segmentos tenga un distinto juego de permisos2 para el proceso en cuestión: El sistema operativo puede indicar, por ejemplo, que el segmento de texto (el código del programa) sea de lectura y ejecución, mientras que la sesión de datos es de lectura y escritura. De este modo podemos evitar que un error en la programación resulte en que datos proporcionados por el usuario o por el entorno modifiquen el código que está siendo ejecutado.
Sin embargo, incluso bajo este esquema, dado que la pila de llamadas (stack) debe mantenerse como escribible, es común
...