實模式/保護模式

 

## 實模式和保護模式程序員

### 實模式
時間短,通常沒法感知

CPU復位(reset)或加電(power on)的時候就是實模式啓動,這個時候處理器是以實模式工做,不能實現權限分級,也不能訪問20位以上的地址線,也就是隻能訪問1M內存(2^18bits, 18位地址線)

以後通常就是加載OS模塊,進入保護模式

8086
地址線是20位,寄存器是16位,採用:物理地址= 段地址<<4 + 偏移

8086發展來的32位處理器地址線擴展到32位,有4GB尋址空間

在保護模式下,系統計算地址的時候是按照對1MB求模進行——Wrap-Around技術

windows

### 保護模式
####
起源
最開始的程序尋址是:段+偏移,這樣的好處是程序員指定的地址就是物理地址,物理地址對程序員可見

這樣帶來的問題是:

1. 
沒法支持多任務
2. 
程序的安全性沒法獲得保證

安全

windows的舊版本中,電腦時不時死機/藍屏,這其實就是由於內存被破壞致使的。

由於在實模式中,將物理內存當作分段的區域,程序代碼和數據位於不區域,系統程序和用戶程序區別對待,而指針是任意的,若是用戶程序指針指向了系統程序或其餘用戶程序區域,並改變了區域的數據,就會形成破壞,致使程序/系統崩潰


在保護模式下,所有32條地址線有效,4G尋址空間,存儲器分段管理機制和分頁管理機制等,不只爲存儲器共享和保護提供了硬件支持,並且爲實現虛存提供硬件支持。支持多任務,能快速進行任務切換和保護任務環境。

保護模式出現的緣由是:**保護進程地址空間**,這樣產生了一個結果——兩種模式下的程序尋址方式發生了變化

####
保護模式下的尋址方式和工做原理
地址一樣是+偏移,可是段的概念發生根本變化數據結構

 

段變成了一個索引,指向一個數據結構——全局描述符GDT(或是LDT),定義了段的起始地址,界限、屬性等spa

GDT做用是提供段氏存儲機制指針

在實模式中:段地址並不是真正的物理地址,<<4+offsetorm

在保護模式中,段地址是32位線性地址,若是未開啓分頁功能,該線性地址就是物理的地址索引

 

 

From PPT進程

l  實模式就是用基地址+偏移量就能夠直接拿到物理地址的模式內存

n  缺點:不安全

l  保護模式:不能直接拿到物理地址的模式

n  須要地址轉換

n  80386開始,是現代OS主要模式

相關文章
相關標籤/搜索