位址空間 位址生成

2022-10-10 12:45:10 字數 827 閱讀 8817

位址空間定義

邏輯位址生成

1、生成過程

(1)編譯:高階語言 -> 組合語言

(2)彙編:組合語言 -> 機器語言

(5)例,乙個 c 程式中的函式位置、變數名是一種邏輯位址,將 c 語言編譯成組合語言,組合語言中依然使用變數和函式名等來進行編寫,將組合語言進行彙編形成 .o 程式,.o 程式的起始位址都是從 0 開始的,將之前匯程式設計序的變數和函式符號名稱轉變為相應的連續邏輯位址空間,之後將多個 .o 程式通過 linker 進行鏈結為單一的可執行程式 .exe 檔案,.exe 檔案是一種存放在硬碟中,且可以在記憶體中進行執行的程式,最終硬碟中的 .exe 檔案通過 loader 載入記憶體中執行,相對於原始硬碟中的 .exe 檔案,載入記憶體中的 .exe 檔案的位址有一定的偏移量,有了這個偏移量,所有的.exe檔案中的功能,都能夠對應找到相應的檔案和資料

2、生成時間

(3)執行:當執行到一條具體指令的時候,才知道它確切訪問的位址,這種情況出現在使用虛擬儲存的系統裡,優點:在程式執行過程中就可以將**移動,而前面兩種生成時機都不可以,但是需要位址轉化硬體支援

實體地址生成

1、cpu

4、生成過程

(2)當 cpu 要執行某條指令時,其 alu 部件會發出請求指令(傳送邏輯位址)

(3)cpu 中的 mmu 部件會根據邏輯位址和實體地址的對映表,查詢到 alu 傳送來的邏輯位址對應的實體地址

(4)若沒有,則會轉移到記憶體中繼續查詢實體地址,若找到,則 cpu 的控制器會給主存發出請求,需要某實體地址的內容

(5)主存會將實體地址中的內容,通過匯流排傳遞到 cpu

(6)最後 cpu 拿到指令內容,開始進行執行

系統位址空間,PCI位址空間

1 系統位址空間與 pci 位址空間 1.1 pci 位址空間 pci 匯流排具有 32 位資料 位址復用匯流排,所以其儲存位址空間為 2的32次方 4gb 也就是 pci 上的所有裝置共同對映到這 4gb 上,每個 pci 裝置占用唯一的一段 pci 位址,以便於 pci 匯流排統一定址。每個 p...

邏輯位址空間和實體地址空間

位址空間是乙個程序可用於定址記憶體的一套位址集合。1 程式經過編譯後,每個目標模組都是從0號單元開始編址,稱為該目標模組的相對位址 或邏輯位址 2 當鏈結程式將各個模組鏈結成乙個完整的可執行目標程式時,鏈結程式順序依次按各個模組的相對位址構成統一的從0號單元開始編址的邏輯位址空間。3 使用者程式和程...

程序位址空間

這篇文章應該不能說是原創的,這裡的記錄都是我通過閱讀整理來的,並沒有太多的自己的想法。資料 現代作業系統 之所以去了解位址空間也是因為在學習dll的時候看到要將dll對映到程式的位址空間,不甚明了所以去查詢相關的資料。位址空間其實很好理解 當然針對早期的機器 早期的機器是沒有ram,rom,cach...