實模式與保護模式
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位無保護執行環境。
****系統管理模式:當SMI引腳為有效進入系統管理模式,首先保存當前的CPU上下文。它有獨立的地址空間,用來執行電源管理或系統安全方面的指令。
b)擴展模式:****IA-32e模式,64位操作系統運行在該模式。該模式有兩種子模式: 1)**兼容模式:該模式下,64位操作系統運行在32位兼容環境,能正常運行16,32位應用程序就像基本的保護模式一樣,訪問32位地址空間,但不能 運行純16位實模式程序(就是不能運行虛擬86模式程序了)。
2)**64位模式:在該模式下,處理器完全執行