El documento describe los conceptos de paginación y segmentación en sistemas operativos. La paginación divide la memoria lógica en páginas de tamaño fijo y la memoria física en marcos, utilizando una tabla de páginas para mapear direcciones lógicas a físicas. La segmentación divide la memoria lógica en segmentos de longitud variable, mapeados a memoria física mediante una tabla de segmentos. Ambos esquemas permiten compartición y protección de memoria.
2. La paginación consiste en considerar el espacio de
direcciones lógicas de cada proceso como un conjunto de
bloques de tamaño consistente llamados paginas. Cada
dirección lógica manejada para un proceso estará conformada
por un par de valores [pagina: desplazamiento].
3. La memoria física se compone en bloques de tamaño fijo
denominados marcos.
La memoria lógica también se compone en bloques del
mismo tamaño denominados páginas
5. P D
número de página desplazamiento en la página
m - n
n
7. Un apuntador a tabla de páginas se almacena con los demás
valores de registro en el bloque de control de procesos.
Cuando se le dice al despachador que inicie un proceso, debe
recargar los registros del usuario y definir los valores
correctos de la tabla de páginas de hardware a partir de la
tabla de páginas de usuario que esta almacenada.
8. La tabla se implementa como un conjunto de registros
dedicados . Estos registro se deberán construirse con una
lógica de muy alta velocidad para que la traducción de
direcciones sea eficiente.
El uso de los registros para la tabla de páginas es satisfactorio
si la tabla es razonablemente pequeña.
9. Los registros asociativos se conforman por: una llave y un
valor, o buffers de traducción de vista lateral (TLB)
Se utiliza para una búsqueda rápida (cache de hardware
especial )
Si el número de páginas no están en los registros, se debe
hacer una referencia de memoria a la tabla de páginas
11. ProtecciónProtección
En un ambiente con paginación se realiza mediante bits de
protección
Éstos se mantienen en la tabla de páginas
Un bit puede definir que una página sea de lectura y escritura,
o sólo de lectura.
Cada referencia a la memoria pasa por la tabla de páginas para
encontrar el número correcto de marco.
Los bits de protección pueden examinarse para verificar
trampas de hardware.
solución: hardware, bits de protección distintos para cada
clase de acceso
Bit de validez-invalidez: un bit más a cada entrada de la tabla
de páginas. Si es válido indica que la página asociada está en
la página de direcciones lógicas del proceso.
Registro de longitud de la tabla de páginas (PTLR)->hardware,
par indicar el tamaño de una tabla de páginas.
13. Paginación con múltiples nivelesPaginación con múltiples niveles
Utiliza un algoritmo de paginación con dos niveles
Una tabla de páginas misma también se pagina.
Dirección lógica: número de página y desplazamiento de
página.
El número de página se subdivide en otro número de página y
un desplazamiento.
La arquitectura VAX soporta paginación con dos niveles.
La VAX es una máquina de 32 bits, tamaño de página 512
bytes. El espacio de direcciones lógicas de un proceso se
divide en 4 secciones iguales.
La arquitectura SPARC soporta un esquema de paginación con
tres niveles.
La arquitectura Motorola 68030 soporta una esquema de
paginación con cuatro niveles.
15. Esquema de paginación con 3 yEsquema de paginación con 3 y
cuatro nivelescuatro niveles
16. Rendimiento del sistema conRendimiento del sistema con
paginación con niveles múltiplespaginación con niveles múltiples
Cada nivel se almacena como una tabla distinta en
memoria
La conversión de una dirección lógica en una física
puede requerir cuatro accesos a memoria.
La técnica caché nuevamente genera dividendos, y el
rendimiento se mantiene razonalbes.
Tiempo a acceso a memoria.
17. Tablas de páginas invertidaTablas de páginas invertida
Tiene una entrada por cada página (marco) real de
memoria. Ordenada por dirección física, y búsqueda por
dirección virtual.
Entrada: dirección virtual de la página almacenada en
dicha ubicación de memoria real, con información acerca
del proceso que posee dicha página.
Sólo hay una tabla de páginas en el sistema, y sólo tiene
una entrada por cada página de la memoria física.
Reduce la cantidad de memoria necesaria para
almacenar cada tabla de páginas, pero incrementa la
cantidad de tiempo necesario para buscar en la tabla
cuando ocurre una referencia a una página.
Se puede usar una tabla de hash para limitar la
búsqueda a una (o unas pocas) entradas de tabla de
páginas.
19. Páginas compartidasPáginas compartidas
Compartir un código común
El código compartido debe estar en el mismo lugar en
el espacio de direcciones lógicas de todos los
procesos
Código reentrante:
- no puede modificarse a sí mismo
- nunca cambia durante la ejecución
Dos o más procesos pueden ejecutar el mismo código
al mismo tiempo.
Se pueden compartir: editores de texto, compiladores,
sistemas de bases de datos, etc.
Cada proceso tiene una copia separada del código
21. SEGMENTACIÓNSEGMENTACIÓN
La segmentación es un esquema de administración de la
memoria que soporta la visión que el usuario tiene de la
misma
Un espacio de direcciones lógicas es una colección 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 dirección
mediante dos cantidades: un nombre de segmento y un
desplazamiento.
23. En la paginación el usuario especificaba solamente una
única dirección, que el hardware particionaba en número
de página y desplazamiento, siendo todo ello invisible al
programador.
HARDWARE
La transformación se efectúa por medio de una tabla de
segmentos.
Cada entrada de la tabla de segmentos tiene una base
de segmento y un límite
El desplazamiento d de la dirección lógica tiene que
estar comprendido entre 0 y el límite de segmento. En
caso contrario se produce una excepción al sistema
operativo
25. Implementación de tablas de segmentosImplementación de tablas de segmentos
Al igual que la tabla de páginas, la tabla de segmentos
puede situarse bien en registros rápidos o bien en
memoria
Con tantos segmentos no es factible mantener la tabla
de segmentos en registros, de modo que tiene que
mantenerse en memoria
26. Compartición y protecciónCompartición y protección
Una ventaja importante de la segmentación es la
asociación de la protección con los segmentos
El hardware verificará los bits de protección asociados a
cada entrada en la tabla de segmentos para impedir
accesos ilegales a memoria
Otra ventaja de la segmentación está relacionada con la
compartición del código y datos.
Los segmentos se comparten cuando las entradas en las
tablas de segmentos de 2 procesos diferentes apuntan a
las mismas posiciones físicas.
27. FragmentaciónFragmentación
El sistema operativo tiene que encontrar y asignar
memoria para todos los segmentos de un programa de
usuario
Esta situación es similar a la paginación, excepto en el
hecho de que los segmentos son de longitud variable; las
páginas son todas del mismo tamaño.
La segmentación puede ocasionar entonces
fragmentación externa, cuando todos los bloques libres
de memoria son demasiado pequeños para acomodar a
un segmento