Idioma :
SWEWE Membre :Login |Registre
Cercar
Comunitat enciclopèdia |Enciclopèdia Respostes |Enviar pregunta |Coneixement de vocabulari |Pujar coneixement
Anterior 1 Pròxim Seleccioneu Pàgines

Mode protegit

Mode protegit, (mode protegit, o, de vegades abreujat com pmode) és la manera d'operació de la CPU compatible amb x86 i després d'una sèrie 80.286. El mode protegit té algunes noves característiques dissenyades per millorar la multitasca i l'estabilitat del sistema, com ara la protecció de memòria, sistemes de localització, i el suport de maquinari per a la memòria virtual. La majoria de sistemes operatius x86 d'avui corren en mode protegit, incloent Linux, FreeBSD, i Microsoft Windows 2.0 i versions posteriors.

Visió de conjunt

El mode protegit i es correspon en manera real. En 80286, la CPU només en mode real anterior, el bus d'adreces és de 20, i l'adreça de memòria és 16, que és capaç d'accedir fins a 2 ^ 20 = 1 M d'espai de memòria. Al 80286, i més tard, l'adreça de memòria als 16 o 32 anys, almenys es pot tenir accés a 2 ^ 32 = espai de memòria de 4G. Però per tal de garantir la CPU de seguiment capaç d'executar la CPU d'edat, només pot mantenir la compatibilitat cap enrere. Per tant, la primera 80286 de la CPU i més tard en manera real a mode protegit i després entren a través del mecanisme de commutació.En comparació amb la manera protegida i la manera real, dues diferències principals: En primer lloc, per proporcionar un mecanisme de protecció entre els segments per evitar que entre programes front als problemes causats per l'accés a l'atzar, i en segon lloc, l'accés més ampli espai de memòria, consulteu la descripció anterior.

8086/8088 vegades, només hi ha una manera d'operació del processador (Mode d'operació), a continuació, ja que no hi ha altra manera d'operació, de manera que aquesta manera no és l'anonimat. Des de principis de 80.286-80.386, el processador afegeix altres dos modes de funcionament - mode protegit PM (mode protegit) i de gestió del sistema Mode de SMM (System Management Mode), per tant, 8086 / model 8088 va ser nomenat com el mode real (RM direcció Mode Real-direcció).

PM és la manera natiu del processador, en aquesta manera, el processador és compatible amb tots els comandaments i totes les característiques estructurals del sistema, proporcionant el més alt rendiment i compatibilitat. Per a totes les noves aplicacions i sistemes operatius, l'ús proposat d'aquesta manera. Per assegurar la compatibilitat PM, RM processador permet l'execució del programa en un entorn multitasca protegida. Aquesta funció s'anomena 8086 manera virtual (mode virtual -8086), encara que no és una manera de processador veritable. La manera virtual-8086 és en realitat la propietat d'un PM, qualsevol tasca pot usar-lo.

RM proporciona l'entorn de programació de processador Intel 8086, mentre que hi ha algunes extensions (per exemple, la capacitat de canviar a la PM o el SMM). Quan l'hoste és la potència o Reset, el processador està en RM.

SMM és una estructura característica estàndard de tots els processadors d'Intel són sistema unificat. Va aparèixer en les fitxes Intel386 SL. Aquesta manera s'especifica les funcions d'execució del sistema operatiu de plataforma (per exemple, la gestió de l'energia o la seguretat del sistema) proporciona un mecanisme transparent. Quan s'activa un pin d'interrupció externa SMM (SMI #) o un SMI rebre de APIC (Controlador d'interrupcions Programació Avançada), el processador entrarà SMM. En SMM, el dels programes en execució quan es guarda un context sencer (Context), el processador passa a uns espais d'adreces separats. Codi SMM pot llavors ser assignada una transparent executat. En tornar de SMM, el processador tornarà a l'estat per la gestió del sistema d'interrupció abans.

Ja que la màquina després l'encesa o Reset, el processador és l'estat RM, i per a Intel 80386 i fitxes posteriors, utilitzeu només el PM per jugar el paper més important. Així que ens trobem davant d'un canvi de RM als temes de PM.

Aquest article no tracta el SMM, aquesta secció se centra en com canviar l'escenari Arrencar des RM de PM, la discussió aquí no és massa detall PM perquè "Manual de l'Intel Architecture Software Developer Volum 3: Programació del sistema" d'una manera molt detallada i descripció exacta.

Global Descriptor Table (GDT Global Descriptor Table): En la manera protegida, una estructura de dades important és essencial GDT (Global Descriptor Table).

Per què hauria GDT? Considerem en primer lloc sota el model de programació Mode real:

En manera real, tenim accés a una adreça de memòria per segment: desplaçament de l'enfocament al qual adreça base del segment és un segment, la longitud màxima d'un segment és de 64 KB, que és un sistema de 16 bits pot representar longitud màxima. El desplaçament és relatiu a aquest segment de desplaçament Direcció Base. Direcció base offset és una adreça de memòria absoluta. Per tant, podem veure un segment amb dos factors: adreça base i límit (longitud màxima del segment), l'accés a una adreça de memòria, cal assenyalar: Què secció? Igual que fa a aquest segment de la base d'adreces de desplaçament, el desplaçament ha de ser inferior a aquest límit de segment. Per descomptat, per als sistemes de 16 bits, límit no s'especifica, el valor per defecte és la longitud màxima de 64 KB, mentre que el desplaçament de 16 bits no pot ser major que el límit. La nostra programació real, l'ús de segment de 16 bits registra CS (segment de codi), DS (segment de dades), SS (Stack segment) per especificar segment, la CPU es compensarà als valors dels registres de segment d'esquerra en 4 bits, va posar la direcció de 20 bits de 20 bits en línia s'ha convertit en la base d'adreces.

Per la manera protegida, el model de gestió de la memòria es divideixen en dos tipus, la manera de segments i la manera de pàgina, mode de pàgina, que també es basa el model de segment. En altres paraules, la manera protegida model de gestió de memòria és en realitat: la manera segment pur i paràgraf de la pàgina. A més, el model de segment és essencial, i la manera de pàgina són opcionals - si s'utilitza el mode pàgina és l'apartat en la pàgina, en cas contrari aquest és la manera de segment pur.

Per tant, no considerem que la primera manera de pàgina. Per al model del segment en termes d'accés a una adreça de memòria segueixen utilitzant Segment: Offset cert, això és molt natural. A causa de dos factors mode protegit s'executa en sistemes de 32 bits, del segment: adreça base i límit són també de 32 bits. IA-32 permet que la direcció de base es fixa a qualsevol valor d'un segment pot ser representat per 32 bits (límit es pot ajustar a qualsevol valor de 32 bits que pot ser expressat en múltiples de 2 ^ 12), a diferència de la Mode Reial baix, Direcció base només un segment és un múltiple de 16 (a causa de la seva operació de desplaçament a l'esquerra sota 4 bits és venir a través, només a 0, per tal d'utilitzar els registres de segment de 16 bits, va dir 20 bits adreça base propòsit), i un límit de segment és un valor fix només 64 KB. A més, la manera protegida, com el seu nom indica, proporciona protecció per la manera segment, també va dir que un descriptor de segment necessària per part de seu propi accés (Access). Per tant, sota la manera protegida, una descripció d'un segment inclou tres factors: [adreça base, límit, d'accés], junts es col · loquen en una estructura de dades de longitud de 64 bits, anomenat el descriptor de segment . En aquest cas, si nosaltres directament a través d'un descriptor de segment de 64 bits per referir-se a un segment de temps, ha d'utilitzar un segment de 64 bits registres es carreguen amb el descriptor de segment llarg. Però Intel Per mantenir la compatibilitat amb versions anteriors, els registres de segment segueixen especifica com de 16 bits (malgrat el fet que hi ha una secció de 64 bits de llarg per registre de segment no és visible, però per als programadors, registre de segment és una de 16 bits ), llavors és obvi que no podem passar la longitud del segment de registre de 16 bits a 64 bits referència directa al descriptor de segment.

Com fer? La solució consisteix en aquestes longituds d'descriptor de segment de 64 bits en una matriu, i el valor dels registres de segment com una referència indirecta índex subíndex (de fet, són els registres de segment en l'alt de 13 bits contingut com un índex). Aquesta matriu global és la GDT. De fet, no només s'emmagatzema en els descriptors de GDT, així com altres descriptors, que són de 64 bits de llarg, hem seguit el debat.

GDT es pot posar en qualsevol lloc en la memòria, a continuació, quan el programador a través del segment registra per referir-se a un temps descriptor segment, CPU GDT ha de conèixer l'entrada, que és la direcció de base de on posar, de manera que els dissenyadors de la porta d'Intel proporciona un registre Després GDTR s'utilitza per emmagatzemar la direcció d'entrada GDT, el programador GDT establir una ubicació en la memòria, es pot muntar aquest GDT direcció d'entrada del registre d'instruccions lgdt, des de llavors, registre de la CPU en virtut d'aquest contingut com GDT L'entrada per accedir a la GDT.

GDT està protegida estructures de dades necessàries de manera, l'únic - no deu, i no pot tenir més d'un. A més, tal com el seu nom (Global Descriptor Table) va revelar que és visible globalment, per al propòsit són tals que qualsevol tasca.

A més de la GDT, IA-32 també permet al programador construir una estructura de dades similar a la GDT, se'ls crida LDT (Taula descriptor local), però la diferència és GDT, LDT pot existir en múltiples sistemes, i de LDT El nom pot ser après, LDT no és visible globalment, són només de referència visible per les seves tasques, i cada tasca pot tenir fins a un LDT. A més, cada segment de LDT en si com un regal, que es col · loquen al descriptor de segment en el GDT.

IA-32 per a la direcció d'entrada LDT també proporciona una LDTR registre, perquè en qualsevol moment només una tasca s'està executant, de manera que el LDT també acaba de tenir un registre mundial. Si una tasca té la seva pròpia LDT, llavors quan cal fer referència a la seva pròpia LDT, ha de ser per LLDT LDT descriptor del segment de muntatge en aquest registre. Comando LLDT i la instrucció lgdt és diferent, lgdt operant de la instrucció és una adreça de 32 bits de memòria, l'adreça de memòria s'emmagatzema en una direcció d'entrada GDT 32 bits, així com un límit de GDT 16 bits. El operant de la instrucció LLDT és una sub-selecció de 16 bits, els principals continguts d'aquest selecte substitució: descriptor del segment LDT es carrega en els valors de l'índex en el GDT en - i això és els registres de segment que acabem d'analitzar en funció de segment de patró és el mateix.

LDT és només una estructura de dades opcional, vostè pot fer-ho. Utilitzeu podria portar alguna conveniència, però també porta la complexitat, si vols que el teu nucli del sistema per mantenir la simplicitat i la portabilitat, és millor no usar-lo.

GDT i LDT segment referències al descriptor de segment descriu, a través d'una estructura de dades de 16 bits per aconseguir, aquesta estructura de dades anomenada el Selector de Segment - selector de segment. El seu alt 13 com a descriptor del segment de referència en GDT / LDT l'índex subíndex, el bit 2 s'utilitza per especificar el descriptor de segment de referència se situa en el GDT o LDT al bit 0 i el bit 1 és el RPL- - nivell de privilegi Sol · licitud, es va utilitzar per fer els propòsits de protecció, no discutim en detall aquí.

Registres de segment de càrrega com es va assenyalar anteriorment GDT index / LDT es Selector segment, quan es necessita per fer referència a una adreça de memòria, l'ús segueix sent Segment: manera de compensació, l'operació específica és: en el registre de segment corresponent es carrega Selector Segment, D'acord amb aquest selector de segment es pot trobar a la GDT o LDT corresponent descriptor del segment, el descriptor de segment gravat en aquesta secció de la base d'adreces, a continuació, afegir Offset, obtenir l'adreça de memòria final.

Descripció Instal · lació

A la secció anterior tractem que, GDT està protegida estructures de dades de la manera necessària, així que abans que entrem en la manera protegida, l'usuari ha de configurar GDT, ia través lgdt ser carregat en el registre corresponent.

Tot i que el GDT permet que la memòria es col · loca en qualsevol lloc, però els elements en el GDT - Descriptor de - tant en longitud de 64 bits, que és de 8 bytes, per tal de permetre l'accés a la velocitat de la CPU d'GDT El més ràpid, cal posar l'adreça d'entrada GDT a 8 bytes alineats, que és un múltiple de 8 ubicació de la direcció.

GDT primer descriptor ha de ser un descriptor de buit, que és tot el seu contingut ha de ser 0. Si es refereix a aquest accés a la memòria descriptor es genera una excepció de protecció general.

Si un sistema operatiu no utilitza model de segment de memòria virtual seria una bona opció. Però cap sistema operatiu modern no utilitza memòria virtual, memòria virtual i més convenient i eficient gestió de memòria és una gestió de la pàgina. Però en el IA-32, si volem utilitzar la gestió de la pàgina, només podem utilitzar l'apartat de la pàgina - no hi ha manera de prohibir completament la manera segment. Però podem tractar de fer que l'efecte de baixar el segment mínim.

IA-32 ofereix el que es coneix com "bàsic Flat Model" de manera segmentat pot aconseguir aquest efecte. Aquesta manera requereix almenys es defineix en les GDT dos descriptors, que s'utilitza per fer referència a segment de dades, un altre per citar Codi Segment. Aquest segment 2 conté l'espai lineal, és a dir Segment Limit = 4 GB, tot i que la memòria física real no queda molt, però per al futur d'aquest espai es defineix per la direcció de la pàgina per implementar la memòria virtual.

Després d'aquí, estem just en arrencar l'escenari, així que només hem d'establir un principi sobre GDT, i una altra veritablement entrem en mode protegit, arrencat el sistema operatiu del nucli, el sistema operatiu específic té intenció de crear GDT, l'ús de la manera de gestió de memòria, establert pel propi nucli, de dades i segments de codi de configuració Arrencada del nucli es donen per tot l'espai lineal en ell.


Anterior 1 Pròxim Seleccioneu Pàgines
Usuari Revisió
Sense comentaris encara
Vull comentar [Visitant (3.138.*.*) | Login ]

Idioma :
| Comproveu el codi :


Cercar

版权申明 | 隐私权政策 | Drets d'autor @2018 Coneixement enciclopèdic del Món