第六章存儲器管理_第1頁
第六章存儲器管理_第2頁
第六章存儲器管理_第3頁
第六章存儲器管理_第4頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第六章 存儲器管理朱敏2014年5月13日地址綁定 確定程序的指令和數(shù)據(jù)在內(nèi)存中的位置 編譯時: 絕對代碼(只能放在內(nèi)存中的特定位置) 加載時: 可重定位代碼(每次加載,修改地址值) 運行時: 程序可以在內(nèi)存中移動 訪問程序時,臨時計算 完整過程:地址變換 編譯: 由源文件翻譯成包含機器碼的目標文件 為變量名指派目標文件內(nèi)的相對地址 鏈接: 將多個目標文件打包成可執(zhí)行文件 根據(jù)對應關系,把相對地址修改成邏輯地址 加載:把可執(zhí)行文件裝入內(nèi)存中 運行:把邏輯地址轉(zhuǎn)換成物理地址程序的一生101010101010101010101010101010101010101010101010ccx.cx.sa

2、sx.o101010101010101010101010101010101010101010101010ccy.cy.sasy.o101010101010101010101010101010101010101010101010ccz.cz.sasz.o101010101010101010101010101010101010101010101010源代碼匯編代碼目標文件可執(zhí)行文件a.out編譯器匯編器鏈接器加載器ldOSCode0DataStack進程的內(nèi)存邏輯結(jié)構(gòu) 堆棧(Stack)向下生長 堆(Heap)向上生長 靜態(tài)數(shù)據(jù)(Data)固定 代碼(Code)只讀 分段式存儲管理的時候內(nèi)存是什么

3、樣的呢?Code0StackHeapHeapDataData1111 1111heapheapcodecodedatadata邏輯地址視圖物理地址視圖datadataheapheap0000 00000100 0000(0 x40)1000 0000(0 x80)1100 0000(0 xC0)段號段號偏移codecode0000 00000001 0000(0 x10)0101 0000(0 x50)0111 0000(0 x70)1110 0000(0 xE0)段號段號# #基址基址容量容量11111011 00001011 00001 00001 000010100111 0000011

4、1 00001 10001 100001010101 00000101 000010 000010 000000000001 00000001 000010 000010 0000stackstack1111 0000(0 xF0)stackstack1011 0000 + 11 0000-1110 00001111 1111stackstackheapheapcodecodedatadata邏輯地址視圖物理地址視圖datadataheapheapstackstack0000 00000100 00001000 00001100 00001110 0000段號段號偏移codecode0000

5、00000001 00000101 00000111 00001110 0000段號段號# #基址基址容量容量11111011 00001011 00001 00001 000010100111 00000111 00001 10001 100001010101 00000101 000010 000010 000000000001 00000001 000010 000010 0000當堆棧向下生長當堆棧向下生長到到1110 00001110 0000的時的時候,會發(fā)生什么?候,會發(fā)生什么?1111 1111stackstackheapheapcodecodedatadata邏輯地址視圖物理

6、地址視圖datadataheapheapstackstack0000 00000100 00001000 00001100 00001110 0000段號段號偏移codecode0000 00000001 00000101 00000111 00001110 0000段號段號# #基址基址容量容量11111011 00001011 00001 00001 000010100111 00000111 00001 10001 100001010101 00000101 000010 000010 000000000001 00000001 000010 000010 0000物理視圖堆棧已經(jīng)溢出物

7、理視圖堆棧已經(jīng)溢出了,需要擴大容量,有了,需要擴大容量,有可能還要調(diào)整位置可能還要調(diào)整位置1111 1111stackstackheapheapcodecodedatadata邏輯地址視圖物理地址視圖datadataheapheapstackstack0000 00000100 00001000 00001100 00001110 0000段號段號偏移codecode0000 00000001 00000101 00000111 00001110 0000段號段號# #基址基址容量容量11111011 00001011 00001 00001 000010100111 00000111 000

8、01 10001 100001010101 00000101 000010 000010 000000000001 00000001 000010 000010 0000物理視圖堆棧已經(jīng)溢出物理視圖堆棧已經(jīng)溢出了,需要擴大容量,有了,需要擴大容量,有可能還要調(diào)整位置可能還要調(diào)整位置分頁式的又會是什么樣的呢?分頁式的又會是什么樣的呢?1111 1111stackheapcodedata邏輯地址視圖0000 00000100 00001000 00001100 00001111 0000頁號頁號偏移物理地址視圖datacodeheapstack0000 00000001 00000101 0000

9、111 0001110 000011111 1110111110 1110011101 null 11100 null 11011 null11010 null11001 null11000 null10111 null10110 null10101 null10100 null10011 null10010 1000010001 0111110000 0111001111 null01110 null 01101 null01100 null01011 01101 01010 01100 01001 0101101000 0101000111 null00110 null00101 null

10、 00100 null 00011 0010100010 0010000001 0001100000 00010頁表1110 11111111 1111stackheapcodedata邏輯地址視圖0000 00000100 00001000 00001100 00001111 0000頁號頁號偏移物理地址視圖datacodeheapstack0000 00000001 00000101 0000111 0001110 000011111 1110111110 1110011101 null 11100 null 11011 null11010 null11001 null11000 null

11、10111 null10110 null10101 null10100 null10011 null10010 1000010001 0111110000 0111001111 null01110 null 01101 null01100 null01011 01101 01010 01100 01001 0101101000 0101000111 null00110 null00101 null 00100 null 00011 0010100010 0010000001 0001100000 00010頁表1110 1111當堆棧向下生長當堆棧向下生長到到1110 00001110 000

12、0的時的時候,會發(fā)生什么?候,會發(fā)生什么?stack1111 1111stackheapcodedata邏輯地址視圖0000 00000100 00001000 00001100 0000頁號頁號偏移物理地址視圖datacodeheapstack11111 1110111110 1110011101 1011111100 1011011011 null11010 null11001 null11000 null10111 null10110 null10101 null10100 null10011 null10010 1000010001 0111110000 0111001111 null01110 null01101 null01100 null01011 01101 01010 01100 01001 0101101000 0101000111 null00110 null00101 null 00100 null 00011 0010100010 0010000001 0001100000 00010頁表0000 00000001 00000101 0000111 0001110 0000分配空閑頁給分配空閑頁給程序。程序。1110 0000分段式存儲管理 x86匯編語言,段寄存器 程序段:CS + 程序計數(shù)器 IP 堆棧段:SS +

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論