Mode irreal

De Viquipèdia

El mode irreal, a diferència del mode real, el mode protegit i el mode llarg, no és un mode d'adreçament separat en el qual poden operar els processadors x86 o x86-64. En lloc d'això, el mode irreal, també anomenat mode real gran o mode real pla, és una variant del mode real (PE = 0) en la qual un o més registres de segment han estat carregats amb adreces i límits de 32 bits.

Per activar el mode irreal, el programa ha d'entrar en mode protegit, localitzar un descriptor pla en el GDT o LDT o crear-ne un, carregar alguns dels registres de segment amb el respectiu selector de mode protegit, llavors es retorna del mode protegit al mode real. Quan s'està de nou en el mode real, el processador continuarà usant els descriptors de la "memòria cache" com havien quedat establerts en el mode protegit, si més no fins que siguin recarregats de nou els registres de segment, permetent així l'accés a 4 GB de memòria estesa des del mode real.

Això no obstant, el parany és que la recàrrega del descriptor de segment del cache, que ara conté valors "irreals", pot passar asincrònicament dins d'un gestor d'excepció o interrupció, i després, encara que el gestor intenti recarregar correctament el segment abans del IRET (retornant de l'excepció o interrupció), entrarà en fallada ja que el descriptor ocult serà recarregat sota regles del mode real, resultant en la pèrdua del descriptor pla i una catàstrofe imminent. Per tant, o es prohibeixen les interrupcions mentre s'està accedint a les adreces "irreals", que pot ser només per una petit espai de temps, o s'usa un registre de segment (FS o GS) que estigui absolutament garantit que no serà modificat pel Sistema operatiu, el BIOS, o cap driver.

Al principi, aquest mode era considerat com un bug, però més endavant es va convertir en una tècnica estàndard per als processadors x86 i x86-64.

Algun tipus de DOS extender va emprar aquesta característica per poder direccionar la memòria alta. Va ser usat per molts jocs d'ordinador entre els anys 1990 i 1995, pel fet que permetia als programadors utilitzar més memòria que en el mode real, la qual estava restringida a 1 MB (640 KB usables), tot i mantenint l'accés al sistema operatiu DOS, que no treballa en mode protegit. Després de la introducció del mode irreal de Windows 95 ràpidament va caure en desús, ja que els programes que l'usaven no podien passar al DOS Prompt de Ms-Windows, aquests programes requerien, en Windows 95 i 98, "Reiniciar-se en mode MS-DOS", i no podien córrer en sistemes Windows NT, 2000 i XP. Per aquests sistemes operatius, l'única manera d'executar els programes dissenyats per al mode irreal era un emulador com el DOSBox.

Vegeu també[modifica]