Está en la página 1de 15

Segmentacin de Memoria

Mtodos para la Administracin de


Memoria
Definicin y Aspectos Generales
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 con la
segmentacin de memoria
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.
Comparticin: dos o ms procesos pueden ser un
mismo segmento, bajo reglas de proteccin; aunque
no sean propietarios de los mismos.
Enlace dinmico entre segmentos: puede evitarse
realizar todo el proceso de enlace antes de comenzar a
ejecutar un programa. Los enlaces se establecern solo
cuando sea necesario.
La segmentacin Paginada ayuda al
proceso de gestin de memoria
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.
Los segmentos son usualmente mltiplos de
pginas en tamao, y no es necesario que todas
las pginas se encuentren en memoria principal a
la vez; adems las pginas de un mismo
segmento, aunque se encuentren contiguas en
memoria virtual; no necesitan estarlo en memoria
real.
La segmentacin Paginada ayuda al
proceso de gestin de memoria
SMT (tabla de mapas de segmentos): una para cada
proceso. En cada entrada de la SMT se almacena la
informacin descrita bajo segmentacin pura, pero en el
campo de direccin se indicara la direccin de la PMT (tabla de
mapas de pginas) que describe a las diferentes pginas de
cada segmento.
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.
La segmentacin paginada tiene su
propio esquema
Las pginas de
almacenamiento
virtual, que son
contiguas en este
almacenamiento, no
necesitan ser
contiguas en el
almacenamiento real.
El direccionamiento es
tridimensional con una
direccin de
almacenamiento
virtual v=(s,p,d):
Comparticin de Segmentos
Una de las ventajas de la
segmentacin sobre la
paginacin es que se trata ms
de un hecho lgico que fsico:
En un sistema de
segmentacin, una vez que un
segmento ha sido declarado
como compartido, entonces las
estructuras que lo integran
pueden cambiar de tamao.
Lo anterior no cambia el hecho
lgico de que residen en un
segmento compartido.
Dos procesos pueden compartir
un segmento con solo tener
entradas en sus tablas
generales que apunten al
mismo segmento del
almacenamiento primario
Los Bloques
Los bloques:
No necesitan ser de igual
tamao.
Los bloques separados no
necesitan ser adyacentes.
Deben estar compuestos de
posiciones contiguas de
almacenamiento.
Sin Embargo
Se complica la proteccin
de bloques de memoria de
un proceso de usuario.
Es ms difcil limitar el
rango de acceso de
cualquier programa
Las Ventajas de la Segmentacin
El programador puede conocer las unidades lgicas de su
programa, dndoles un tratamiento particular.
Es posible compilar mdulos 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 mdulos se hace ms fcil la
modificacin de los mismos. Cambios dentro de un modulo no
afecta al resto de los mdulos.
Es fcil el compartir segmentos.
Es posible que los segmentos crezcan dinmicamente segn las
necesidades del programa en ejecucin.
Existe la posibilidad de definir segmentos que aun no existan. As,
no se asignara memoria, sino a partir del momento que sea
necesario hacer usos del segmento. Un ejemplo de esto, serian
los Arrays cuya dimensin no se conoce hasta tanto no se
comienza a ejecutar el programa. En algunos casos, incluso
podra retardar la asignacin de memoria hasta el momento en el
cual se referencia el Array u otra estructura de dato por primera
vez.
Las Desventajas
Hay un incremento en los costos de hardware y de software para
llevar a cabo la implantacin, as como un mayor consumo de
recursos: memoria, tiempo de CPU, etc.
Debido a que los segmentos tienen un tamao variable se pueden
presentar problemas de fragmentacin externas, lo que puede
ameritar un plan de reubicacin de segmentos en memoria principal.
Se complica el manejo de memoria virtual, ya que los discos
almacenan la informacin en bloques de tamaos fijos, mientras los
segmentos son de tamao variable. Esto hace necesaria la existencia
de mecanismos ms costosos que los existentes para paginacin.
Al permitir que los segmentos varen de tamao, puede ser necesarios
planes de reubicacin a nivel de los discos, si los segmentos son
devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
No se puede garantizar, que al salir un segmento de la memoria, este
pueda ser trado fcilmente de nuevo, ya que ser necesario
encontrar nuevamente un rea de memoria libre ajustada a su
tamao.
La comparticion de segmentos permite ahorrar memoria, pero
requiere de mecanismos adicionales de hardware y software.
Estas desventajas bien pueden ser minimizadas por la Segmentacin
Paginada, sin embargo esta tambin tiene desventajas y ventajas
Segmentacin Paginada:
No todo es color de Rosa
Ventajas de la segmentacin paginada
El esquema de segmentacin paginada tiene todas las
ventajas de la segmentacin y la paginacin:
Debido a que los espacios de memorias son segmentados,
se garantiza la facilidad de implantar la comparticion y
enlace.
Como los espacios de memoria son paginados, se
simplifican las estrategias de almacenamiento.
Se elimina el problema de la fragmentacin externa y la
necesidad de compactacin.
Desventajas de la segmentacin paginada
Las tres componentes de la direccin y el proceso de formacin
de direcciones hace que se incremente el costo de su
implantacin. El costo es mayor que en el caso de de
segmentacin pura o paginacin pura.
Se hace necesario mantener un nmero mayor de tablas en
memoria, lo que implica un mayor costo de almacenamiento.
Segmentacin Paginada:
No todo es color de Rosa
La Peor de las Desventajas:
Sigue existiendo el problema de
fragmentacin interna de todas- o casi-
todas las pginas finales de cada uno de
los segmentos. Bajo paginacin pura se
desperdician solo la ltima pgina
asignada, mientras que bajo
segmentacin paginada el desperdicio
puede ocurrir en todos los segmentos
asignados.
Conclusiones
En la memoria principal son ejecutados los programas y procesos de
una computadora y es el espacio real que existe en memoria para que
se ejecuten los procesos.
La memoria virtual es aquella que le ofrece a las aplicaciones la
ilusin de que estn solas en el sistema y que pueden usar el espacio
de direcciones completo.
Las direcciones de memoria son de tres tipo: fsicas, lgicas y
lineales.
La paginacin es una tcnica de gestin de memoria en la cual el
espacio de memoria se divide en secciones fsicas de igual tamao
llamadas marcos de pagina, las cuales sirven como unidad de
almacenamiento de informacin.
La segmentacin 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.
Estos segmentos pueden ser compartidos por varios procesos. Pero
eso no cambia el hecho lgico de que residen en un segmento
compartido.
Conclusiones
En un sistema de segmentacin, una vez que un segmento ha sido
declarado como compartido, entonces las estructuras que lo integran
pueden cambiar de tamao.
Dos procesos pueden compartir un segmento con solo tener entradas
en sus tablas generales que apunten al mismo segmento del
almacenamiento primario.
Con la segmentacin se complica el manejo de memoria virtual, ya
que los discos almacenan la informacin en bloques de tamaos fijos,
mientras los segmentos son de tamao variable. Esto hace necesaria
la existencia de mecanismos ms costosos que los existentes para
paginacin.
Al permitir que los segmentos varen de tamao, puede ser necesarios
planes de reubicacin a nivel de los discos, si los segmentos son
devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
No se puede garantizar, que al salir un segmento de la memoria, este
pueda ser trado fcilmente de nuevo, ya que ser necesario
encontrar nuevamente un rea de memoria libre ajustada a su
tamao.
La comparticion de segmentos permite ahorrar memoria, pero
requiere de mecanismos adicionales de hardware y software.
El Sharingans Team les
Agradece su Atencin

También podría gustarte