Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Segmentación
• Consiste en dividir el espacio de direcciones en fragmentos de
longitud variables
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.
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: