Mode irreal: diferència entre les revisions

m
Corregit: No -> Això no obstant
m (Corregit: desús -> desús, ja que el)
m (Corregit: No -> Això no obstant)
Per activar el mode irreal, el programa ha d'entrar en mode protegit, localitzar un descriptor pla en el GDT o LDT o crear algun, 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 cau com havien quedat establerts en el mode protegit, si més no fins que siguin recarregats els registres de segment, permetent així l'accés a 4 [[gigabyte|GB]] de [[memòria estesa]] des del mode real.
 
NoAixò 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 intenta recarregar correctament el segment abans del IRET (retornant de l'excepció o interrupció), ell fallarà doncs el descriptor ocult seria 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'estan accedint les adreces "irreals", que pot ser només per una petita durada, o s'usa un registre de segment (FS o GS) que estigui absolutament garantit que no seran tocats pel Sistema operatiu, el [[BIOS]], o qualsevol driver.
 
Al principi, aquest mode era considerat com un [[Error de programari|bug]], però més endavant es va convertir en una tècnica estàndard per als processadors x86 i x86-64.
1.168.729

modificacions