Vous êtes sur la page 1sur 15

SEGMEMTACION DE MEMORIA

La Segmentacin de memoria es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos.
Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. Obviamente este sistema de gestin de memoria es utilizado en Sistemas operativos avanzados, pero ya existan muestras de su actividad desde los S.O.s Unix y D.O.S

Objetivos alcanzados
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: Donde cada estructura tiene su propio tamao y este puede variar. (Stack). Proteccin: Se puede proteger los mdulos del segmento contra accesos no autorizados.

Visin del usuario de la memoria

Concibe el usuario la memoria como una tabla lineal de palabras, algunas de las cuales contienen instrucciones mientras que otras contienen datos. El usuario o programador de un sistema no piensa en la memoria como una tabla lineal de palabras. Ms bien prefieren concebirla como una coleccin de segmentos de longitud variable, no necesariamente ordenados.

La segmentacin es un esquema de administracin de la memoria que soporta la visin que el usuario tiene de la misma. Un espacio de direcciones lgicas es una coleccin de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada direccin mediante dos cantidades: un nombre de segmento y un desplazamiento. los segmentos estn numerados y se referencian por un nmero de segmento en lugar de un nombre

Hardware
Aunque el usuario ahora puede referenciar los objetos del programa por medio de una direccin de dos dimensiones, la memoria fsica real es todava una secuencia unidimensional. La transformacin se efecta por medio de una tabla de segmentos.

El proceso de transformacin de una direccin solicitada por un proceso, hasta conseguir la direccin real sobre la memoria fsica va a ser el siguiente:
La direccin que solicita el proceso est compuesta por dos partes: un nmero de segmento y un desplazamiento dentro de este segmento. Esta direccin ha de transformarse en una direccin de memoria fsica y el desplazamiento a partir de esta. Entonces el procedimiento de clculo de la direccin real ser el siguiente: Un proceso solicita el contenido de una celda de memoria al sistema operativo. Para ello, aporta el nmero de segmento en el que se encuentra y un desplazamiento a partir de la direccin de comienzo de este. El sistema operativo intentar satisfacer la peticin desde la memoria asociativa. Buscar una entrada con el segmento solicitado en esta memoria. Si la encuentra, formar la direccin real (fsica) con la entrada de direccin real ms el desplazamiento solicitado y concluir el proceso. Si la peticin no puede ser satisfecha desde la memoria asociativa, el sistema operativo proceder a buscarla en la tabla de segmentos. Cuando la encuentre compondr la direccin real a partir de la entrada en la tabla y el desplazamiento solicitado.

Fragmentacin
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa. La fragmentacin es generada cuando durante el remplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera. La fragmentacin puede ser: Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. Fragmentacin Interna:es generada cuando se reserva ms memoria de la que el proceso va realmente a usar. La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un solo gran bloque, pero esta solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin. En la interna estos huecos no se pueden compactar para ser utilizados. Se debe de esperar a la finalizacin del proceso para que se libere el bloque completo de la memoria.

Segmentacin Paginada
Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de pginas. SMT(tabla de mapas de segmentos): una para cada proceso. PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT describe una pgina de un segmento; en la forma que se presento la pagina pura. TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte del sistema operativo. JT (tabla de Jobs) que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria. En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se necesita tener la correspondiente PMT puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicara si el segmento esta paginado o no.

Vous aimerez peut-être aussi