arquitectura ia-32 modo realgjoyuela/presentaciones...memoria dh dl ram dx ch cl cx bh bl bx ah al...
TRANSCRIPT
Autor:Alejandro Furfaro 1
Arquitectura IA-32Modo Real
Autor:Alejandro Furfaro 2
Modo RealEn este modo de operación el procesador presenta de manera exacta el entorno de ejecución de un 8086, con algunas extensiones.
Extensión Nº2:Algunos recursos que son propios del Modo Protegido actúan en forma “silenciosa” en modo real.
Extensión Nº2:Algunos recursos que son propios del Modo Protegido actúan en forma “silenciosa” en modo real.
Extensión Nº1:El modelo de 32 bits de registros generales está disponible en modo real.
Extensión Nº1:El modelo de 32 bits de registros generales está disponible en modo real.
00000h
220-1
MemoriaRAMDH DL
DXCH CL
CXBH BL
BXAH AL
AX07815
DI
SI
SP
BP
015
CS
SS
DS
ES
IP
Flags
015
Desplazamiento
Selector
015
Desplazamiento
Selector
Desplazamiento
Selector
IDTR
0
2
4
6
8
10
Vector de INT 0
Vector de INT 1
Vector de INT 2
Hasta Vector 255
Autor:Alejandro Furfaro 3
Direccionamiento en Modo Real
Autor:Alejandro Furfaro 4
Dirección Lógica
SelectorSelector15 0
Direccionamiento en Modo Real
DesplazamientoDesplazamiento15 0
Autor:Alejandro Furfaro 4
Dirección Lógica
SelectorSelector15 0
Direccionamiento en Modo Real
DesplazamientoDesplazamiento15 0
16
Dirección BaseDirección Base19 0
Autor:Alejandro Furfaro 4
Dirección Lógica
SelectorSelector15 0
Direccionamiento en Modo Real
DesplazamientoDesplazamiento15 0
16
Dirección BaseDirección Base19 0
Autor:Alejandro Furfaro 4
Dirección Lógica
SelectorSelector15 0
Direccionamiento en Modo Real
DesplazamientoDesplazamiento15 0
16
Dirección BaseDirección Base19 0
Dirección FísicaDirección Física19 0
Autor:Alejandro Furfaro 4
Dirección Lógica
SelectorSelector15 0
Direccionamiento en Modo Real
DesplazamientoDesplazamiento15 0
16
Dirección BaseDirección Base19 0
Dirección FísicaDirección Física19 0
Al Bus de Al Bus de Address Address
Autor:Alejandro Furfaro 5
Arquitectura IA-32Modo Protegido
Autor:Alejandro Furfaro 6
DH DLDX
CH CLCX
BH BLBX
AH ALAX
07815
DI
SI
SP
BP
Entorno Básico de EjecuciónRegistros de Propósito General
Registros de Control y Estado
015
CS
SS
DS
ES
IP
Flags
Registros de Segmento
Autor:Alejandro Furfaro 6
DH DLDX
CH CLCX
BH BLBX
AH ALAX
07815
DI
SI
SP
BP
Entorno Básico de EjecuciónRegistros de Propósito General
Registros de Control y Estado
015
CS
SS
DS
ES
IP
Flags
Registros de Segmento
1631
EDX
ECX
EBX
EAX
EDI
ESI
ESP
EBP
FS
GS
EFlags
EIP
Autor:Alejandro Furfaro 7
Entorno Básico de Ejecución
Registro EFLAGS
Autor:Alejandro Furfaro 8
Sistemas Operativos Multitasking
q UNIX, el padre de los Sistemas Abiertos, fue desarrollado en 1969.....
q En los 70’s aparecieron los primeros microprocesadores de 8 bits, pero sus prestaciones eran insuficientes para satisfacer los requerimientos de un sistema como UNIX.
q La aparición del microprocesador de Intel 80286 (1981!!!), introdujo por primera vez la capacidad de procesamiento multitasking real. Pero sus recursos, aun no eran suficientes para sostener a UNIX.
q Los Sistemas Operativos,ya por entones, requerían capacidades adicionales de los procesadores.
q La arquitectura de los procesadores modernos de 32 bits, se concibió en función de estos requerimientos.
Autor:Alejandro Furfaro 9
Requerimientos de los Sistemas Operativos Multitaskingq Area de memoria exclusiva para cada tarea para
almacenar su código y sus datos. (Area Local)q Area de memoria común a todas las aplicaciones,
para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo de modo de permitir la comunicación entre las aplicaciones. (Area Global).
q Cada tarea podrá acceder únicamente a su AreaLocal y al Area Global, pero nunca podrá acceder al Area Local de otra tarea. De este modo el Sistema Operativo garantiza la integridad del código y de los datos propios de cada tarea.
q En cada momento la CPU ejecuta una tarea de la lista que mantiene, poniendo a su disposición todos los recursos de hardware de la máquina, incluyendo la cantidad de memoria requerida por la aplicación.
Autor:Alejandro Furfaro 10
Requerimientos de los Sistemas Operativos Multitaskingq Alta velocidad de procesamientoq Gran capacidad de Direccionamiento de memoria
2 Amplio espacio de direccionamiento para memoria RAM2 Capacidad de Gestión de memoria de cada tarea por el
método de Memoria Virtualq Gestión de Memoria en entorno de protección:
2 Un área de memoria exclusiva para cada tarea para almacenar su código y sus datos. (Area Local)
2 Un área de memoria común a todas las aplicaciones, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo de modo de permitir la comunicación entre las aplicaciones. (Area Global).
2 Cada tarea podrá acceder únicamente a su Area Local y al Area Global, pero nunca podrá acceder al Area Local de otra tarea.
q Capacidad de implementar Multitarea de manera rápida y segura.
Autor:Alejandro Furfaro 11
Memoria Virtual
Descripción de una variable o de un Código de Operación
Microprocesador
Memoria DRAM
del Sistema
Variable o Código de Operación Presente
Variable o Código de Operación Ausente
Captura el evento
Bus del Sistema
Memoria Virtual(Disco)
Genera un evento indicando la
Ausencia
Manejador de Memoria del
Sistema Operativo
Busca elemento Ausente
Transfiere Elemento a Memoria Física
Para conseguir direccionargran cantidad de memoria se emplea la técnica de Memoria Virtual, método que proporciona al programador la posibilidad de disponer de un espacio de direccionamiento de memoria, mucho mayor que el disponible físicamente.
Para conseguir direccionargran cantidad de memoria se emplea la técnica de Memoria Virtual, método que proporciona al programador la posibilidad de disponer de un espacio de direccionamiento de memoria, mucho mayor que el disponible físicamente.
Autor:Alejandro Furfaro 12
Registros del procesador para uso del Sistema Operativo
47 1516 0GDTRLIMITEBASE
IDTR1516 0
LIMITEBASE47
15 0
TR
1516 0
LIMITEBASE
47
REGISTRO CACHE INVISIBLESELECTOR
15 0
LDTR LIMITEBASE
47
REGISTRO CACHE INVISIBLESELECTOR
1516 0
CR0
CR1
CR3
CR2
31 0
MSWPG
RESERVADO USOS FUTUROS
REG.DIR.LINEAL FALLO DE PAGINA
REG.BASE DIRECTORIO DE PAGINAS
1516
DR0
DR1
DR3
DR6
DR7
DR2
31 0DIRECCION LINEAL PUNTO
PARADA 1DIRECCION LINEAL PUNTO
PARADA 2DIRECCION LINEAL PUNTO
PARADA 3DIRECCION LINEAL PUNTO
PARADA 4ESTADO DE LOS PUNTOS DE
PARADACONTROL DE LOS PUNTOS DE
PARADA
REGISTROS DE DEBUGGING
REGISTROS DE CONTROL
TR6
TR7
31 0
REGISTROS DE PRUEBA DE LA TLB
CONTROL DE PRUEBAS
ESTADO DE LAS PRUEBAS
PM
CR4 DIFERENTES BITS DE CONTROL
Autor:Alejandro Furfaro 13
Ingreso al entorno de protección
Para poner al procesador en Modo Protegido todo lo que se requiere es setear el bit PE, (bit 0 del registro CR0).
Es un lamentable error considerar que esto es todo lo que hay hecer.Setear PE es solo el principio. De hecho el siguiente programa funciona sin problemas. Veamos...
PE
MP
EM
TS
ET
NE
WP
AM
NW
CD
PG
5 4 3 2 1 018 1631 30 29
Registro de control CR0Registro de control CR0
Autor:Alejandro Furfaro 14
use16org 100hinicio:
climov eax,cr0 ;lee el registro de control 0.or al,1 ;setea el bit PE Protection Enable.mov cr0,eax ;pasa a modo protegido.jmp short $+2;vacía la cola de ejecución.
mp: in al,60h ;lee el tecladodec al ;compara con escjnz mp ;sino es esc siguemov eax,cr0and al,0feh ;resetea el PE.mov cr0,eax ;retorna a modo real.jmp short $+2;vacía la cola de ejecución.sti ;habilita las interrupciones.mov ah,4ch ;retorna al dos con el int 21h ;servicio 4ch de la int 21h.codigo.
use16org 100hinicio:
climov eax,cr0 ;lee el registro de control 0.or al,1 ;setea el bit PE Protection Enable.mov cr0,eax ;pasa a modo protegido.jmp short $+2;vacía la cola de ejecución.
mp: in al,60h ;lee el tecladodec al ;compara con escjnz mp ;sino es esc siguemov eax,cr0and al,0feh ;resetea el PE.mov cr0,eax ;retorna a modo real.jmp short $+2;vacía la cola de ejecución.sti ;habilita las interrupciones.mov ah,4ch ;retorna al dos con el int 21h ;servicio 4ch de la int 21h.codigo.
Ingreso al entorno de protección
Autor:Alejandro Furfaro 15
Acceso a la memoria en MP
Para acceder a la memoria, los programas seguirán trabajando con segmentos, del mismo modo en que lo hacen en Modo Real.La difrerencia está en la información que se necesita en un entorno protegido para definir un segmento:
2 Dirección a partir de la cual comienza el segmento. La llamamos Dirección BaseDirección Base.
2 Tamaño del segmento. Intel lo denomina LímiteLímite.2 Permisos de acceso al segmento: Read Only,
Código/Datos, y demás características que ahora serán rigurosamente chequeadas. Los denominaremos Atributos.Atributos.
Autor:Alejandro Furfaro 16
Acceso a la memoria en MP
segmento
Dirección Base = 01F00000hDirección Base = 01F00000h01F00000
01F20000
Tamaño = 20000h (128 Kbytes)Tamaño = 20000h (128 Kbytes)
Para definir (o describir) un segmento en Modo Protegido se necesita un número de :
32 bits para la dirección base+ 32 bits para el tamaño
n bits para los atributos…..--------------------------------------------
> 64 bits!!!!!
Para definir (o describirdescribir) un segmento en Modo Protegido se necesita un número de :
32 bits para la dirección base+ 32 bits para el tamaño
n bits para los atributos…..--------------------------------------------
> 64 bits!!!!!
Autor:Alejandro Furfaro 17
Descriptores de Segmento
q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.
q La estructura que define un segmento se denomina descriptor.
q Los descriptores se agrupan en tablas.
Autor:Alejandro Furfaro 17
Descriptores de Segmento
q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.
q La estructura que define un segmento se denomina descriptor.
q Los descriptores se agrupan en tablas.
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Reservado
Campos del Procesador 80286Campos del Procesador 80286
Dirección n+4
Dirección n
31 16 15 8 7 0
Autor:Alejandro Furfaro 17
Descriptores de Segmento
q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.
q La estructura que define un segmento se denomina descriptor.
q Los descriptores se agrupan en tablas.
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Reservado
Campos del Procesador 80286Campos del Procesador 80286
Dirección n+4
Dirección n
31 16 15 8 7 0
Campos del Procesador 80386 y posteriores (IACampos del Procesador 80386 y posteriores (IA--32)32)
Base 31-24 Atributos Límite 19-16
24 23 20 19
Autor:Alejandro Furfaro 18
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Dirección n+4
Dirección n
31 16 15 8 7 0
Descriptores de Segmento
Base 31-24 Atributos Límite 19-16
24 23 20 19
Descriprtor de Segmento
Autor:Alejandro Furfaro 18
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Dirección n+4
Dirección n
31 16 15 8 7 0
Descriptores de Segmento
Base 31-24 Atributos Límite 19-16
24 23 20 19
Descriprtor de Segmento
A7 6 5 4 3 2 1 0
TIPOSP DPL
Autor:Alejandro Furfaro 18
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Dirección n+4
Dirección n
31 16 15 8 7 0
Descriptores de Segmento
Base 31-24 Atributos Límite 19-16
24 23 20 19
Descriprtor de Segmento
A7 6 5 4 3 2 1 0
TIPOSP DPL
E
Autor:Alejandro Furfaro 18
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Dirección n+4
Dirección n
31 16 15 8 7 0
Descriptores de Segmento
Base 31-24 Atributos Límite 19-16
24 23 20 19
Descriprtor de Segmento
A7 6 5 4 3 2 1 0
TIPOSP DPL
E
W0 ED
R1 C
Autor:Alejandro Furfaro 18
Límite 0-15Dir. Base 0-15
Atributos Base 23-16Dirección n+4
Dirección n
31 16 15 8 7 0
Descriptores de Segmento
Base 31-24 Atributos Límite 19-16
24 23 20 19
Descriprtor de Segmento
A7 6 5 4 3 2 1 0
TIPOSP DPL
E
W0 ED
R1 C
AVLG D/B 0
Autor:Alejandro Furfaro 19
Campo Tipo para S=0 (Descriptor de Sistema).
q Cuando el Bit S es 0, el descriptor se denomina descriptor de sistema.
q En ciertos casos, el descriptor corresponde a un segmento para uso del sistema operativo.
q En otras ocasiones es simplemente un mecanismo que utilizará el Sistema Operativo.
q Cuando el Bit S es 0, el descriptor se denomina descriptor de sistema.
q En ciertos casos, el descriptor corresponde a un segmento para uso del sistema operativo.
q En otras ocasiones es simplemente un mecanismo que utilizará el Sistema Operativo.
Autor:Alejandro Furfaro 20
Selectores de Segmento
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX TITI
q En modo real los registros de segmento contenían toda la información necesaria para definir el segmento.
q En Modo Protegido los registros de segmento siguen conteniendo información necesaria para acceder al segmento, pero esa información se utiliza ahora para ubicar en la memoria del sistema, al descriptor del segmento a acceder.
q Por tal motivo al contenido de un registro de segmento, en Modo Progtegido se lo denomina SelectorSelector.
q Esta denominación se extiende al Modo Real ya que siempre un registro de segmento “seleccionaselecciona” con su contenido a un segmento determinado en memoria.
Formato de un Selector
RPLRPL
Autor:Alejandro Furfaro 21
Tablas de descriptores: GDT y LDT
Área de memoria exclusiva de cada tarea para almacenar su código y sus datos. (Área Local)
Área de memoria exclusiva de cada tarea para almacenar su código y sus datos. (Área Local)
Área de memoria común a todas las tareas, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo (Base de modo de permitir la comunicación entre las aplicaciones. (Área Global).
Área de memoria común a todas las tareas, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo (Base de modo de permitir la comunicación entre las aplicaciones. (Área Global).
Selector Nulo
LimiteDirección Base
56484032241680
56484032241680
SelectorLímite
Dirección Base
Registro LDTRRegistro GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX TITI RPLRPL
TI=1 TI=0 Global Decriptor Table
Local Decriptor Table
Autor:Alejandro Furfaro 22
Translación de dirección lógica a lineal (Selector con TI=0)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPL
OFFSETOFFSETDirección Lógica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
Autor:Alejandro Furfaro 22
Translación de dirección lógica a lineal (Selector con TI=0)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPL
OFFSETOFFSETDirección Lógica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
8 * INDEX
Autor:Alejandro Furfaro 22
Translación de dirección lógica a lineal (Selector con TI=0)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPL
OFFSETOFFSETDirección Lógica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
8 * INDEX Límite 0-15Dir. Base 0-15
Atributos Base 23-16
31 16 15 8 7 0
Base 31-24 AtributosLímite 19-16
24 23 20 19
Autor:Alejandro Furfaro 22
Translación de dirección lógica a lineal (Selector con TI=0)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPL
OFFSETOFFSETDirección Lógica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
8 * INDEX Límite 0-15Dir. Base 0-15
Atributos Base 23-16
31 16 15 8 7 0
Base 31-24 AtributosLímite 19-16
24 23 20 19
LIM
ITE
+ 1
Límite 0-15
Autor:Alejandro Furfaro 22
Translación de dirección lógica a lineal (Selector con TI=0)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPL
OFFSETOFFSETDirección Lógica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
8 * INDEX Límite 0-15Dir. Base 0-15
Atributos Base 23-16
31 16 15 8 7 0
Base 31-24 AtributosLímite 19-16
24 23 20 19
LIM
ITE
+ 1
Límite 0-15
Objeto direccionado en memoria
CS, SS, DS,ES, FS, o GS
Límite 0-15Dir. Base 0-15
Atributos Base 23-16
16 15 8 7 0
AtributosLímite 19-16
20 19
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEX
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
LIM
ITE
+ 1
LDT
Dirección BaseDirección Base
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
LIM
ITE
+ 1
LDT
Dirección BaseDirección Base
8 * INDEX
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
LIM
ITE
+ 1
LDT
Dirección BaseDirección Base
8 * INDEXLímite 0-15Base 0-15
Atributos Base 23-16Base 31-24 Atributos
Límite 19-16
31 16 15 8 7 024 23 20 19
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
LIM
ITE
+ 1
LDT
Dirección BaseDirección Base
8 * INDEXLímite 0-15Base 0-15
Atributos Base 23-16Base 31-24 Atributos
Límite 19-16
31 16 15 8 7 024 23 20 19
LIM
ITE
+ 1
Atributos Base 23-16Base 31-24 Atribu Límite 16 15 8 7 024 23 20 19
Autor:Alejandro Furfaro 23
Translación de dirección lógica a lineal (Selector con TI=1)
GDT
LímiteLímite
Dirección BaseDirección Base
GDTR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 11 RPLRPL
OFFSETOFFSET
Dire
cció
n Ló
gica
CS, SS, DS,ES, FS, o GS
ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX 00 RPLRPLLDTR
8 * INDEXDPLP 0 0010
Límite 0-15Base 23-16
31 16 15 8 7 0
Base 31-24 Atributos
Límite 19-16
24 23 20 19
Base 0-15
TIPO = Descriptor de LDT
LIM
ITE
+ 1
LDT
Dirección BaseDirección Base
8 * INDEXLímite 0-15Base 0-15
Atributos Base 23-16Base 31-24 Atributos
Límite 19-16
31 16 15 8 7 024 23 20 19
LIM
ITE
+ 1
Atributos Base 23-16Base 31-24 Atribu Límite 16 15 8 7 024 23 20 19
Objeto direccionado en memoria
Autor:Alejandro Furfaro 24
Dirección lineal15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INDEXINDEX TITI RPLRPL
Descriptor deSegmento
Tabla de Descriptores
OFFSETOFFSET
Dirección BaseDirección Base
Dirección LinealDirección Lineal31 0
La Dirección Lineal recibe ese nombre por ser la salida de la Unidad de Segmentación un espacio contiguo y consecutivo de direcciones de memoria
31 0
31 0
Autor:Alejandro Furfaro 25
“Memorizando” los descriptores: Registros hiddenPara evitar un acceso a la GDT o LDT cada vez que necesita un descriptor de segmento, el procesador mantiene un registro cachéinvisible por cada registro cuyo contenido sea un selector.Esos registros no son accesibles ni siquiera al programador del S.O.
CSSSDSESFSGS
TRLDTR
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Base + Límites + Atributos
Autor:Alejandro Furfaro 26
Paginación de Memoria
q La segmentación posee claras ventajas para proveer un entorno flexible en la programación de aplicaciones.
q Para Adminsitración de la memoria por parte del sistema operativo, la variabilidad del tamaño de los segmentos intruduce complejidad en el diseño de un sistema de memoria virtual.
q Los sistemas operativos como UNIX desde su concepción trabajaron la memoria en bloques de tamaño uniforme.
q La Paginación cumple con ese requisito.
Autor:Alejandro Furfaro 27
Unidad de Segmentación
Unidad de Unidad de SegmentaciónSegmentación
Unidad de PaginaciónUnidad de Unidad de PaginaciónPaginación
MemoriaFísica
MemoriaMemoriaFísicaFísica
INDEX TI
RPL
SELECTOR
DESPLAZAMIENTO
Estructura de la MMU
Dirección Lógica
Dirección Lógica
Dirección Lineal
Dirección Lineal
Dirección Física
Dirección Física
Unidad de Paginación No activadaDirección Física= Dirección Lineal
La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386 y subsiguientes, una Unidad de Gestíón de Memoria que contieneuna Unidad de Paginación a continuación de la Unidad de Segmentación
La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386 y subsiguientes, una Unidad de Gestíón de Memoria que contieneuna Unidad de Paginación a continuación de la Unidad de Segmentación
Autor:Alejandro Furfaro 28
Paginación de Memoria
q En los primeros procesadores (hasta el Pentium Pro), el tamaño de página es fijo: 4Kbytes.
q A partir del Pentium Pro cada tarea puede optar por tener páginas de 4 Kbytes o 4 Mbytes.
q Las páginas son contiguas y a diferencia de los segmentos no se solapan.
q El máximo tamaño de un espacio lineal es 4 Gbytes
q El espacio Lineal se divide entones en 1.000.000 de páginas de 4 Kbytes c/u.
q Se necesita un descriptor para cada página que especifique:2 Dirección Base de la página: Se necesitan 20 bits
(comienzan en múltiplos de 4K ya que no se solapa, de modo que los 12 bits menos significativos serán 0)
2 Atributos. Del mismo modo que los segmentos2 No se requiere límite ya que su tamaño es fijo.
Autor:Alejandro Furfaro 29
Tabla de Páginas de Memoria q 4 bytes por cada descriptor y un millón de
descriptores de página.q Se necesita una tabla de descriptores de página de 4
Mbytes!!!.q La primer PC 386 venía con 4 Mbytes de RAM.q Evidentemente se necesita otro approach.
Una tabla de 4 Mbytes
con 1.000.000
descriptores de páginas
Una tabla de 4 Mbytes
con 1.000.000
descriptores de páginas
1001 Tablas de 4 Kbytes c/u con 1.000 descriptores de páginas
1001 Tablas de 4 Kbytes c/u con 1.000 descriptores de páginas
1.000 tablas con 1.000 descriptores de páginac/u
Directorio de Tablas de Páginas con 1.000 descriptores de tablas
de página
Autor:Alejandro Furfaro 30
Paginación de Memoria en dos niveles
RaízRaRaíízz
CR0CR1CR2CR3CR4
31 031 0
31 0
Descriptor de Página
DirectorioDirectorio
Tabla dePáginas
TablaTabla31 022 12
OffsetOffset
Memoria
121010
CPU
Unidad de Unidad de SegmentaciónSegmentación
DirecciónLineal
Dirección Base de la Página 31-12Reservado
S.O.0 0 D A 0 0 U/S
R/W
P
31 012 1234567891011
Sistema deTraducción de Páginas de dos niveles
Directorio de Tablas de Páginas Page Directory
Entries (PDE’s)
Page Table Entries (PTE’s)
Autor:Alejandro Furfaro 31
Segmentación y Paginación de Memoria
DirectorioDirectorio TablaTabla31 022 12
OffsetOffset
SelectorSelector DesplazamientoDesplazamiento
Descriptor de Descriptor de SegmentoSegmento
Tabla de Tabla de DescriptoresDescriptores
Espacio Lineal Espacio Lineal de Direcciones de Direcciones
(4Gbytes)(4Gbytes)
Dirección Lógica o puntero farDirección Lógica o puntero far
SegmentoSegmento
Dirección LinealDirección Lineal
Espacio Físico Espacio Físico de de
DireccionesDirecciones
Dirección FísicaDirección Física
PAGINACIONSEGMENTACION
PDE
PTE
Dirección LinealDirección Lineal
PáginasPáginas PáginaPágina
Tabla de Tabla de PáginasPáginas
Directorio de Directorio de Tablas de Tablas de PáginasPáginas
Dirección BaseDirección Basedel Segmentodel Segmento
Autor:Alejandro Furfaro 32
Modelos de Memoria
Modelo Flat Básico
CSSSDSESFSGS
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Atributos
Atributos
Atributos
Atributos
Atributos
Atributos Límite
Límite
Límite
Límite
Límite
Límite
Tabla de Descriptores
0
FFFFFFFFCódigo
No Presente
Datos y Pila
Espacio Lineal de Direcciones (o Memoria Física)
Tanto el Sistema Operativo como las aplicaciones tienen acceso a un espacio de 4 Gbytes no segmentado.Se evitan las excepciones por exceso en ellímite de memoria ya que el límite de todos los descriptores es FFFFFFFF. Aún si se accede a áreas en las que no existe memoria física.
Autor:Alejandro Furfaro 33
Modelos de Memoria
Modelo Flat Protegido
CSSSDSESFSGS
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Atributos
Atributos
Atributos
Atributos
Atributos
Atributos Límite
Límite
Límite
Límite
Límite
Límite
Tabla de Descriptores
0
FFFFFFFFCódigo
No Presente
Datos y Pila
Espacio Lineal de Direcciones (o Memoria Física)
Memoria para E/S
Los segmentos tienen el límoite acorde a la memoria física instalada en el sistema.
Autor:Alejandro Furfaro 34
Modelos de Memoria.
Modelo Multi Segment
CSSSDSESFSGS
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Dirección Base
Atributos
Atributos
Atributos
Atributos
Atributos
Atributos Límite
Límite
Límite
Límite
Límite
Límite
Tabla de Descriptores
0
FFFFFFFF
Código
Pila
Datos
Espacio Lineal de Direcciones
(o Memoria Física)
Datos
Datos
Datos
Dirección BaseAtributos Límite
Dirección BaseAtributos Límite