實模式與保護模式

2021-06-18 14:41:18 字數 2021 閱讀 5780

實模式與保護模式

1. 實模式,又叫實位址模式,cpu完全按照8086的實際定址方法訪問從00000h--fffffh(1mb大小)的位址範圍的記憶體,在這種模式下,cpu只能做單任務執行;定址公式為:實體地址=左移4位的段位址+偏移位址,即:實體地址是由16位的段位址和16位的段內偏移位址組成的。

2.保護模式,又叫記憶體保護模式,定址採用32位段和偏移量,最大定址空間4gb,在這種模式下,系統執行於多工,設計這種模式的原因和好處是:保護模式增加了定址空間,增加了對多工的支援,增加了段頁式定址機制的記憶體管理(分段機制使得段具有訪問許可權和特權級,各應用程式和作業系統的**和核心是被保護的,這也是多工支援的實現關鍵和保護這個名字的由來)。定址過程為:實體地址=由段位址查詢全域性描述符表中給出的段基址+偏移位址,即:實體地址由影像暫存器中的基址加上16位或者32位的偏移組成。

1:實模式

是cpu啟動的時候的模式

這時候就相當於乙個速度超快的8086

不能使用多執行緒

不能實現許可權分級

還不能訪問20位以上位址線,也就是說只能訪問1m記憶體(!!!)

2:保護模式

作業系統接管cpu後.

會使cpu進入保護模式.

這時候可以發揮80x86的所有威力..

包括許可權分級.記憶體分頁.等等等等各種功能

1.虛擬8086模式是執行在保護模式中的實模式,為了在32位保護模式下執行純16位程式。它不是乙個真正的cpu模式,還屬於保護模式。

2.保護模式同實模式的根本區別是程序記憶體受保護與否。可定址空間的區別只是這一原因的果。

實模式將整個物理記憶體看成分段的區域,程式**和資料位於不同區域,系統程式和使用者程式沒有區別對待,而且每乙個指標都是指向"實在"的實體地址。這樣一來,使用者程式的乙個指標如果指向了系統程式區域或其他使用者程式區域,並改變了值,那麼對於這個被修改的系統程式或使用者程式,其後果就很可能是災難性的。為了克服這種低劣的記憶體管理方式,處理器廠商開發出保護模式。這樣,物理記憶體位址不能直接被程式訪問,程式內部的位址(虛擬位址)要由作業系統轉化為實體地址去訪問,程式對此一無所知。至此,程序(這時我們可以稱程式為程序了)有了嚴格的邊界,任何其他程序根本沒有辦法訪問不屬於自己的物理記憶體區域,甚至在自己的虛擬位址範圍內也不是可以任意訪問的,因為有一些虛擬區域已經被放進一些公共系統執行庫。這些區域也不能隨便修改,若修改就會有:

sigsegv(linux

段錯誤);非法記憶體訪問對話方塊(windows

對話方塊)。

cpu啟動環境為16位實模式,之後可以切換到保護模式。但從保護模式無法切換回實模式

3.事實上,現在的64位奔騰4處理器,擁有三種基本模式和一種擴充套件模式,

a)基本模式:

****保護模式:純32位保護執行環境。

****實模式:純16位無保護執行環境。

b)擴充套件模式:****ia-32e模式,64位作業系統執行在該模式。該模式有兩種子模式:

1)**相容模式:該模式下,64位作業系統執行在32位相容環境,能正常執行16,32位應用程式就像基本的保護模式一樣,訪問32位位址空間,但不能執行純16位實模式程式(就是不能執行虛擬86模式程式了)。

ia-32e子模式的切換完全基於**段暫存器。這樣一來,執行在ia-32e模式中(64位)的os完全可以無縫的執行所有16,32,64為應用程式,通過設定32位後的cs。

從80386開始,cpu有三種工作方式:實模式,保護模式和虛擬8086模式。只有在剛剛啟動的時候是real-mode,等到linux作業系統執行起來以後就執行在保護模式。

實模式只能訪問位址在1m以下的記憶體稱為常規記憶體,我們把位址在1m

以上的記憶體稱為擴充套件記憶體。

在保護模式下,全部32條位址線有效,可定址高達4g位元組的實體地址空間;

擴充的儲存器分段管理機制和可選的儲存器分頁管理機制,不僅為儲存器共享和保護提供了硬體支援,而且為實現虛擬儲存器提供了硬體支援;

支援多工,能夠快速地進行任務切換和保護任務環境;

4個特權級和完善的特權檢查機制,既能實現資源共享又能保證**和資料的安全和保密及任務的隔離;

支援虛擬8086方式,便於執行8086程式。

實模式與保護模式

實模式 即實位址訪問模式 它是intel公司80286及以後的x86 80386,80486和80586等 相容處理器 cpu 的一種操作模式。實模式被特殊定義為20位位址記憶體可訪問空間上,這就意味著它的容量是2的20次冪 1m 的可訪問記憶體空間 物理記憶體和bios rom 軟體可通過這些位址...

實模式與保護模式

1.x86實模式介紹 x86體系的處理器剛開始時只有20根位址線,定址暫存器是16位。我們知道16位的暫存器可以訪問64k的位址空間,如果程式要想訪問大於64k的記憶體,就需要把記憶體分段,每段64k,用段位址 偏移量的方式來訪問,這樣使20根位址線全用上,最大的定址空間就可以到1m位元組,這在當時...

實模式和保護模式

實模式 即實位址訪問模式 它是intel公司80286及以後的x86 80386,80486和80586等 相容處理器 cpu 的一種操作模式。實模式被特殊定義為20位位址記憶體可訪問空間上,這就意味著它的容量是2的20次冪 1m 的可訪問記憶體空間 物理記憶體和bios rom 軟體可通過這些位址...