Está en la página 1de 34

Segmentación

Segmentación
• Consiste en dividir el espacio de direcciones en fragmentos de
longitud variables

• un programa es una colección de unidades lógicas (segmentos)


• procedimientos, funciones, pila, tabla de símbolos, etc.
Segmentación
• La segmentación permite que el programador vea la memoria
constituida por múltiples espacios de direcciones o segmentos.
• Tipos segmento
• Código
• Datos
• Pila
Segmentación
• Cada segmento consiste en una secuencia lineal de
direcciones, desde 0 hasta cierto valor máximo.
• La longitud de cada segmento puede ser cualquier
valor desde 0 hasta el máximo permitido.
• Los distintos segmentos pueden tener distintas
longitudes (y por lo general así es).
• Además las longitudes de los segmentos pueden
cambiar durante la ejecución.
Segmentación
• La segmentación permite que el programador
vea la memoria constituida por múltiples
espacios de direcciones o segmentos. Los
segmentos tienen un tamaño variable,
dinámico.
• Usualmente, el programador o el sistema
operativo asignará programas y datos a
segmentos distintos.
Segmentación
• Puede haber segmentos de programa
distintos para varios tipos de programas, y
también distintos segmentos de datos.
• Se pueden asignar a cada segmento
derechos de acceso y uso
Direccionamiento- dirección lógica
• Para especificar una dirección en esta memoria
segmentada o bidimensional, el programa debe
suministrar una dirección en dos partes, un
número de segmento y una dirección dentro
del segmento
• Una dirección virtual es un par ordenado v=(s,d)
Direccionamiento- tabla de segmentos

Para traducir las direcciones virtuales a direcciones reales,


el procesador posee una tabla de segmentos

• Para cada segmento se indica:


• Base: Dirección virtual en donde comienza (incluyendo esta dirección).
• Límite: Dirección virtual en donde finaliza (excluyendo esta dirección).
• Control de Acceso
Direccionamiento- Traducción de direcciones
• Un proceso en ejecución hace referencia a la dirección virtual
y = (s,d):
Direccionamiento- Traducción de direcciones
El segmento número "s" se añade a la dirección base "b" en el registro
origen de la tabla de mapa de segmentos formando la dirección de
memoria real "b + s"
Direccionamiento- Traducción de direcciones
El desplazamiento "d" se añade, "r = d + s +b" , correspondiente a la
dirección virtual "y = (s,d)".
Direccionamiento- Traducción de direcciones
Un bit de residencia o presencia, indica si en la actualidad el segmento
se encuentra o no en el almacenamiento primario.

Se genera un "fallo de pérdida


de segmento":
El S. 0. obtiene el control y
carga el segmento referido
desde la dirección “y" del
almacenamiento secundario.
Direccionamiento- Traducción de direcciones
Se comprueba si el desplazamiento "d" es menor o igual a la longitud
del segmento

Genera un "fallo de
desbordamiento de
segmento" y el S. 0.
obtiene el control y
termina la ejecución
del proceso
Ejemplo
Implementación de la tabla de segmentos
• Registro Base de la Tabla de Segmentos: apunta a la posición en
memoria de la tabla de segmentos.

• Registro Longitud de la Tabla de Segmentos (STLR) indica el numero


de segmentos usados por el programa; el numero de segmento “s” es
legal si s<STLR.
Control de Acceso- Protección
• Se facilita la protección.
• Un conjunto de programas o datos bien definido, el programador o el
administrador del sistema puede asignar privilegios de acceso de
forma adecuada.
Control de Acceso- Protección
• Se le otorga a cada proceso ciertos derechos de acceso a todos los
segmentos y se le niega completamente el acceso a muchos otros
• Si un proceso tiene “acceso de lectura” a un segmento, puede obtener
cualquier elemento de información contenido en ese segmento.
• Si un proceso tiene “acceso de escritura” a un segmento, puede
modificar cualquier contenido del segmento y puede introducirle
información adicional, incluso destruir toda la información del segmento.
• Un proceso con “acceso de ejecución” de un segmento puede ejecutarlo
como si fuera un programa.
Control de Acceso- Protección
• En base a los “tipos de control de acceso” indicados pueden crearse
distintos “modos de control de acceso”.
Modo Lectura Escritura Ejecución Explicación

No hay permiso de
0 N N N
acceso
1 N N S Solo ejecución
2 S N N Solo lectura
3 S N S Lectura / ejecución
Lectura / escritura pero
4 S S N
no ejecución
5 S S S Acceso no limitado
Control de Acceso- Protección
• Se comprueban los bits de protección para asegurarse si se permite la
operación que se está intentando:
• Si la operación intentada no se permite se genera un "fallo de
protección de segmento" y el S. 0. obtiene el control y termina la
ejecución del proceso.
Permite que varios procesos compartan
segmentos
• Dos procesos pueden compartir un segmento con solo tener entradas
en sus tablas generales que apunten al mismo segmento del
almacenamiento primario
Ventajas
• No aparece fragmentación interna
• Proporciona protección
• Simplifica la gestión de estructuras variables de datos
• Permite que varios procesos compartan segmentos
• Permite modificar los programas y recompilarlos independientemente
Desventajas
• Efecto de tablero de ajedrez o fragmentación externa, desperdicia
memoria en los huecos.
Compactación
• técnica para reducir la fragmentación externa que consiste en
arrastrar los contenido de memoria a un lugar para reunir la memoria
libre en un bloque
Políticas de ubicación para memorias
segmentadas
• Se identifican los huecos de memoria principal por su tamaño
(longitud) y dirección inicial, y se reúnen en una lista
• Una vez que se decide el hueco donde se ubica el segmento, se
actualiza la lista de huecos con el que se acaba de crear (a no ser que
el segmento mida exactamente igual que el hueco de memoria
utilizado).
• Si no se puede encontrar un hueco apropiado para el segmento,
interviene la política de sustitución.
Las tres políticas de ubicación de segmentos
más utilizadas son las siguientes:
Mejor ajuste (best fit) La lista de huecos se mantiene ordenada en orden
creciente de tamaño y se ubica el segmento en el primer hueco con
capacidad suficiente para albergarlo.
Peor ajuste (worst fit) La lista de huecos se mantiene ordenada en orden
decreciente de tamaño y se ubica el segmento en el primer hueco con
capacidad suficiente para albergarlo.
Primer ajuste (first fit) La lista de huecos se mantiene ordenada en orden
creciente de las direcciones iniciales de los huecos, y se ubica el segmento en
el primer hueco con capacidad suficiente para albergarlo. Con esta política,
cuando transcurre un cierto tiempo, se acumulan un número elevado de
huecos pequeños próximos a la cabeza de la lista, penalizando las búsquedas.
Segmentación por demanda
• Un proceso no necesita tener todos sus segmentos en la memoria
para ejecutarse.
• Más bien, el descriptor de segmento contiene un bit de validez que
indica si el segmento está o no actualmente en la memoria.
• Cuando un proceso hace referencia a un segmento, el hardware
examina este bit de validez.
Segmentación paginada
• Trata de resolver los problemas de fragmentación externa e interna, y
los elevados tiempos de búsqueda mediante la paginación de los
segmentos.
• Un segmento es un espacio lineal de direcciones que puede ser
paginado.
• Solución: Paginar los segmentos
Segmentación paginada
• La segmentación presenta una serie de propiedades ventajosas para
el programador
• La paginación proporciona una forma más eficiente de gestionar el
espacio de memoria.
Permiten una combinación de ambas, es decir, un sistema virtual con
segmentos paginados.
Segmentación paginada
• Ofrecen las ventajas de las dos técnicas de organización del
almacenamiento virtual .
• Un segmento es un espacio lineal de direcciones que puede ser
paginado.
Segmentación paginada
• El tamaño de los segmentos es múltiplo del de las páginas
• No es necesario que todas las páginas de un segmento se encuentren
al mismo tiempo en el almacenamiento primario

Tabla segmentos
Direccionamiento- Traducción de direcciones
El direccionamiento es tridimensional con una dirección de
almacenamiento virtual "y = (s , p , d)":
Direccionamiento- Traducción de direcciones
Direccionamiento- Traducción de direcciones
Ejemplo:

También podría gustarte