U8 - Segmentación Flashcards
Que son los registros de segmento?
Son los que se utilizan para manipular e identificar la CPU
Dirección lógica/virtual de los elementos
Cuales son sus componentes?
0-13: Selector/Índice- Contenido de los registros de segmento que identifica al segmento y la dirección de su base
14: TI - Índice de tabla. TI=1 Local TI=0 Global
15-16: RPL - Nivel de privilegio
Como se calcula la dir. lógica en cada caso?
CS (Segmento de código que está ejecutando la CPU) + IP (Desplazamiento)
SS (Segmento de pila que guarda el valor del selector del segmento de pila en curso) + ESP (Cima donde se cargan y descargar los datos)
DS, ES, FS, GS (Segmento de dato) + Modo de direccionamiento
Que es el desplazamiento y cual es su máximo tamaño?
Desplazamiento: Valor que se le añade a la base del Segmento para localizar al dirección
Longitud máxima - Modo protegido: 2^32 (4GB)
Longitud máxima - Modo real: 2^16 (64KB)
Segmentación en modo real
Como es la estructura del segmento?
Base y desplazamiento.
(20 bits) (16 bits)
Como calcular la dir. efectiva?
(Modo real)
A los desplazamiento de cada tipo de segmento como ocupan 16 bits y el campo base es de 20 se le suman 4 ceros.
RSx16 + Desplazamiento.
Segmentación en modo protegido
Como es la estructura del descriptor de segmento?
64 bits
0-31: Base - Dirección lineal donde comienza el segmento
32- 52: Limite - Determina el tamaño del segmento usado. Si está expresado en paginas de 4Kb puede ser tan grande como la memoria principal de 4GB.
53-64: Atributos - Características del segmento
Segmentación en modo protegido
Cuales son los datos importantes del campo de atributos?
*Tipo de segmento: legible, escribible, ejecutable, etc. S()
*Nivel de privilegio: Grado de seguridad del contenido del sistema
- DPL
*Indicadores: Sobre la gestión de memoria virtual, si está o no está cargado en memoria.
- Bit de presencia - P(1) Cargado en memoria principal P(0) Excepción
- Accedido (A)
- Granularidad (G)
Cual es el numero máximo de descriptores?
El numero máximo de descriptores es 2^13. (8KB) . El 13 se saca del tamaño del índice selector de la dirección logica.
Memoria virtual, cual es el tamaño máximo?
64TB= 16k descriptores x 4GB
Que son los segmentos?
Son bloques de memoria de tamaño variable. Contienen información de la misma clase
Base del mecanismo de protección
Siempre activada
¿Dónde consulta la unidad de segmentación el nivel de privilegio para ver si cumple con el acceso permitido?
DPL del descriptor de segmento
¿Requisitos para que no de segment fault?
P=1, debe estar en memoria y no se debe exceder el campo limite
Conjuntos de registros de la CPU usados en el modelo de programación de aplicaciones
Registros de propósito general
Registros de segmento (CS, DS, SS)
Registro puntero de instrucción (EIP)
Registro de estado o señalizadores (EFLAGS)
¿Cuál es la estructura de dato que contienen las referencia para acceso a memoria cuando la memoria está segmentada?
Tabla de descriptores de segmento