Upload
santiago-constantini
View
240
Download
2
Embed Size (px)
DESCRIPTION
Arquitectura de microprocesadores de 32 bits
Citation preview
1
Tcnicas Digitales III
Arquitecturas Intel de 16 y 32 bits
2
Conceptos de memoria virtual
Mecanismo implementado entre la CPU y el SO, que permite manejar un espacio de direcciones mucho mayor que:- La cantidad de memoria principal existente y/o - El espacio de direcciones que maneja el procesador.
La memoria virtual permite que las aplicaciones ocupen mucho ms espacio que el disponible en la memoria principal.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado3
Conceptos de memoria virtual
Los programas ven direcciones virtuales, que la MMU traduce a direcciones fsicas.
Cuando un objeto no est presente en memoria fsica, el SO lo debe cargar desde la memoria secundaria.
Cuando toda la memoria primaria est ocupada, un algoritmo de reemplazo debe determinar que objeto sera el ms conveniente de ser quitado de la memoria principal.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado4
Conceptos de memoria virtual
Modelo de traduccin de una direccin virtual a direccin fsica.
5
Conceptos de memoria virtual
Si va a ser reemplazado un objeto que no fue modificado, simplemente se lo sobre-escribe.
Si va a ser reemplazado un objeto que, durante su permanencia en memoria principal, ha sido modificado, debe ser transferido a memoria secundaria antes de sobre-escribirlo.
El objeto a reemplazar debera ser el menos probable de ser requerido en el futuro cercano.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado6
Conceptos de memoria virtual
Como no se puede adivinar si un objeto volver a ser requerido en el futuro, los algoritmos de reemplazo se basan en un par de principios empricos:
- vecindad temporal- vecindad espacial
Un algoritmo tpico es el LRU (Least RecentlyUsed), que supone que el objeto que desde hace ms tiempo no ha sido accedido es el menos probable de ser requerido en el futuro inmediato.
SantiagoResaltadoSantiagoResaltado7
Organizacin de la memoria virtual
Para poder implementar los algoritmos de reemplazo e intercambio, los espacios de memoria virtual y fsica se dividen:
- En segmentos- Bloques de tamao variable y contenido
coherente (cdigo, datos, pila, etc.)- En pginas
- Bloques de tamao fijo, pero cuyocontenido puede ser mixto.
- En segmentos paginados
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado8
Memoria virtual con segmentacin
Como los segmentos pueden ser de tamaos diferentes, a medida que se realizan intercambios pueden quedar fragmentos disjuntos, lo que representa un desperdicio.
Si se requiere cargar un segmento muy grande para utilizar slo una pequea porcin de l, se produce una importante prdida de tiempo.
Como el contenido de un segmento es coherente, se pueden aplicar polticas de proteccin.
9
Memoria virtual con paginacin
Las pginas son de tamao fijo y pequeo (por ej.: 4 KB).
Es menos probable cargar objetos no necesarios
El intercambio es ms gil que usando segmentos
Al ser todas las pginas de igual tamao, no se producen desperdicios.
En una pgina puede haber mezcla de cdigo, datos, etc. Hay menor posibilidad de proteccin
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado10
Memoria virtual con segmentos paginados
Aprovecha lo mejor de cada uno:- Proteccin a nivel de segmentos- Agilidad por el intercambio de pginas
Un segmento no se carga completo en la memoria principal, sino aquellas pginas que van siendo requeridas.
Ms complejo, requiere administrar segmentos y pginas.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado11
Vecindad temporal
Si un objeto fue accedido recientemente, es altamente probable que vaya a ser requerido prximamente.
Si un objeto hace mucho tiempo que no es accedido, es poco probable que vaya a serlo en breve.
SantiagoResaltadoSantiagoResaltado12
Si un objeto fue accedido recientemente, es altamente probable que algn objeto cercano vaya a ser requerido prximamente.
Ejemplo:for( i=0, suma=0; i
13
Traduccin de direccin virtual a fsica en IA-32
El esquema que utiliza puede ser:
- Memoria virtual segmentada, (bsico)- Memoria virtual con segmentos paginados
(opcional)
SantiagoResaltadoSantiagoResaltadoSantiagoResaltado14
Traduccin de direccin virtual a fsica en IA-32
Cuando la MMU detecta la ausencia de un elemento en memoria fsica, genera una excepcin que debe ser capturada por el SO, para efectuar el intercambio correspondiente.
SantiagoResaltado15
Traduccin de direccin virtual a fsica en IA-32
Una direccin lgica o virtual se compone de:
- Selector de segmento (registro CS, DS, SS, etc.)- Desplazamiento
- EIP para la bsqueda de una instruccin a ejecutar
- SP para instrucciones push y pop- EBX, ESI, etc para acceso a datos
usando direccionamiento indirecto.
- etc.
SantiagoResaltadoSantiagoResaltado16
Traduccin de direccin virtual a fsica en IA-32
Cuando no est activada la paginacin, la direccin virtual se traduce a fsica.
Los segmentos se cargan completos en la memoria principal.
SantiagoResaltado17
Traduccin de direccin virtual a fsica en IA-32
Los descriptores de segmento contienen los siguientes campos:
- Direccin base del segmento (32 bits)- Lmite del segmento (20 bits)- Atributos (12 bits)
Define caractersticas del segmento
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado18
Traduccin de direccin virtual a fsica en IA-32
Principales atributos:- P : presencia (1: segmento presente en memoria fsica)
- A : Accedido (se pone a 1 cada vez que un segmentoes accedido. Sirve para implementaralgn algoritmo de reemplazo).
- DPL : Nivel de privilegio (03) - 0 : mximo nivel (kernel)- 3 : mnimo nivel (aplicaciones)
- Tipo : Indica si el segmento es de:- Cdigo- Datos (normal o pila, R/W o R)- Especiales (o del Sistema)
- Granularidad: indica si el lmite est dado en bytes oen mltiplos de 4 KB
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado19
Traduccin de direccin virtual a fsica en IA-32
Con los 14 msb del selector de segmento se selecciona un descriptor de la tabla
20
Traduccin de direccin virtual a fsica en IA-32
En cada instante se tienen a disposicin dos tablas de descriptores:
- GDT (global para todas las tareas)- LDT (exclusiva de la tarea actual)
SantiagoResaltadoSantiagoResaltadoSantiagoResaltado21
Traduccin de direccin virtual a fsica en IA-32
- TI selecciona la tabla de descriptores- LDTR y GDTR apuntan a la base de ambas tablas- El campo ndice selecciona un descriptor
SantiagoResaltadoSantiagoResaltadoSantiagoResaltado22
Traduccin de direccin virtual a fsica en IA-32
Esquema completo de la obtencin de la direccin lineal o fsica (sin la paginacin activada).
23
Conmutacinde tareas
TSSSegmento de
Estado de Tareas
Almacena todos los registros que definen el estado actual de una tarea (contexto), y permitirn restaurarla en un momento posterior.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado24
Conmutacin de tareas
Cuando el procesador recibe la orden de conmutar a otra tarea, guarda el contexto de la tarea en ejecucin y carga el contexto de la tarea a reactivar.
SantiagoResaltado25
Conmutacin de tareas
Esquema del direccionamiento del TSS.TR: Registro de tarea selecciona el descriptor que apunta al TSS actual
SantiagoResaltadoSantiagoResaltadoSantiagoResaltado26
Conmutacin de tareas
Esquema de la conmutacin de tareas mediante una puerta de tarea
27
Protecciones
De acuerdo al valor del DPL, cada segmento pertenece a un determinado nivel de privilegio
28
Protecciones
29
Protecciones
Regla:Desde el rea local de una tarea est
prohibido acceder al rea local de cualquier otra, independientemente de los niveles de privilegio.
Esto se cumple gracias a que cada tarea tiene su propia LDT
Cuando el SO crea la LDT para una tarea, debe incluir en ella solamente los descriptores de segmento exclusivos de dicha tarea.
SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado30
Protecciones
Accesos entre segmentos de cdigo
31
Protecciones
Accesos a segmentos de datos
32
Protecciones Puertas de llamada
Transferencias de control intranivel permitidas
33
Protecciones Puertas de llamada
A travs de una puerta de llamada, desde un segmento de cdigo de nivel 3 se puede saltar a un punto especfico de un segmento de cdigo de nivel 0.
SantiagoResaltado34
Protecciones Puertas de llamada
Funcionamiento de una puerta de llamada
SantiagoResaltado35
Protecciones Puertas de llamada
Estructura del descriptor tipo Puerta de Llamada.
El campo Tipo lleva el valor 0xC
Selector : Desplazamiento indican la direccin de inicio para la ejecucin en el segmento de destino.
SantiagoResaltado36
Protecciones Puertas de llamada
Transferencia de control a travs de una PLL
SantiagoResaltado37
Protecciones Puertas de llamada
Ejemplos de transferencias de control usando PLL
SantiagoResaltado38
Segmentacin en modo real
SantiagoResaltado39
Segmentacin en modo protegido
SantiagoResaltado40
Interrupciones Modo Real
El vector de interrupcin provee CS:IP (direccin de inicio de la rutina de interrupcin).
SantiagoResaltado41
Interrupciones Modo Protegido
La Puerta de Interrupcin provee CS:EIP (direccin virtual de inicio de la rutina de interrupcin)
SantiagoResaltado42
Interrupciones Puerta de interrupcin
Atencin de una interrupcin en modo protegido, mediante una puerta de interrupcin
PUERTA DE
INTERRUPCION
SantiagoResaltado43
Interrupciones Puerta de interrupcin
Formato del descriptor tipo Puerta de Interrupcin
SantiagoResaltado44
Memoria cach - Ejemplo
Asociativa de 4 vas Bus de direcciones de 32 bits Tamao total: 2 MB 128 lneas por va
Tamao de la va: 2 MB / 4 = 512 KB
Tamao de la lnea: 512 KB / 128 = 4 KB
Estructura de la direccin
Etiqueta ndice Offset
31 19 18 12 11 0
45
Memoria cach - Ejemplo