Pregunta

Estoy un poco confundido acerca de la segmentación pura debido a que en mi cabeza siempre existió la idea de memoria virtual.

Pero, según tengo entendido, la segmentación pura también es imaginar un espacio de direcciones virtuales, dividido en segmentos que TODOS están cargados en la RAM.

La diferencia con la memoria virtual con segmentación, es que posiblemente haya algún segmento que no esté en la RAM.

¿Es esto correcto?

AGREGO UNA PREGUNTA:¿Existe una diferencia práctica entre la segmentación combinada con paginación y una paginación de dos niveles? Es lo mismo excepto por la protección de "límite" del método de segmento.¿O hay otra diferencia?

¿Fue útil?

Solución

No, no es correcto.Por ejemplo, en x86, la segmentación utiliza punteros "lejanos" que constan de dos partes:el selector de segmento (cargado en un registro de segmento, por ejemplo, DS) y un desplazamiento en el segmento.Los desplazamientos de segmento siempre comienzan en 0.La CPU utiliza el selector de segmento para encontrar el descriptor de segmento que contiene la dirección base LINEAL, la longitud y los derechos de acceso del segmento.Todos los accesos están controlados en longitud;Si intenta acceder a la memoria fuera del límite del segmento o con un acceso no válido (por ejemplo, escribiendo en un segmento de solo lectura), la CPU generará una falla de protección general.

Dado que las direcciones de segmento siempre tienen base cero y la base del segmento está implícita en el selector de segmento, el sistema operativo puede mover segmentos y desfragmentar la memoria sin afectar los programas que utilizan esos datos.(Compare esto con el modelo de memoria "plana" donde, si mueve algunos datos, también debe actualizar todos los punteros que apuntan a ellos).

Ahora, cuando la paginación está deshabilitada, la dirección base del segmento LINEAL es su dirección de memoria física.Cuando la paginación está habilitada, la MMU traduce todos los accesos a los datos del segmento como de costumbre.

Otros consejos

Si se trata de comprender la gestión de la memoria en este nivel, se puede encontrar una excelente explicación al leer Conceptos del sistema operativo de Silberschatz, Galvin y Gagne.Debe poder encontrar una edición más barata y más antigua.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top