Ucore-操作系統(tǒng)實驗二_第1頁
Ucore-操作系統(tǒng)實驗二_第2頁
Ucore-操作系統(tǒng)實驗二_第3頁
Ucore-操作系統(tǒng)實驗二_第4頁
Ucore-操作系統(tǒng)實驗二_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、張鵬飛 計科1302班 201308010213實驗二、物理內存管理一、 實驗目的l 理解基于段頁式內存地址的轉換機制l 理解頁表的建立和使用方法l 理解物理內存的管理方法二、 實驗內容本次實驗包含三個部分。 首先了解如何發(fā)現(xiàn)系統(tǒng)中的物理內存;然后了解如何建立對物理內存的初步管理, 即了解連續(xù)物理內存管理;最后了解頁表相關的操作, 即如何建立頁表來實現(xiàn)虛擬內存到物理內存之間的映射, 對段頁式內存管理機制有一個比較全面的了解。 本實驗里面實現(xiàn)的內存管理還是非?;镜?, 并沒有涉及到對實際機器的優(yōu)化, 比如針對 cache 的優(yōu)化等。 三、 實驗要求基于markdown格式來完成,以文本方式為主填

2、寫各個基本練習中要求完成的報告內容完成實驗后,請分析ucore_lab中提供的參考答案,并請在實驗報告中說明你的實現(xiàn)與參考答案的區(qū)別列出你認為本實驗中重要的知識點,以及與對應的OS原理中的知識點,并簡要說明你對二者的含義,關系,差異等方面的理解(也可能出現(xiàn)實驗中的知識點沒有對應的原理知識點)列出你認為OS原理中很重要,但在實驗中沒有對應上的知識四、 實驗流程概述內存管理相關的總體控制函數(shù)是pmm_init函數(shù), 它完成的主要工作包括:1. 初始化物理內存頁管理器框架pmm_manager2. 建立空閑的page鏈表,分配以頁(4KB)為單位的內存3. 檢查物理內存頁分配算法4.建立一個臨時二級

3、頁表5. 建立一一映射關系的二級頁表;6. 使能分頁機制;7. 從新設置全局段描述符表;8. 取消臨時二級頁表;9. 檢查頁表建立是否正確;10. 通過自映射機制完成頁表的打印輸出五、 實驗練習練習一、first-fit連續(xù)內存分配(1)用雙向鏈表結構來表示每個頁:(2)管理物理頁的Page數(shù)據(jù)結構:(3)物理內存頁管理器順著雙向鏈表進行搜索空閑內存區(qū)域,直到找到一個足夠大的空閑區(qū)域,這是一種速度很快的算法,因為它盡可能少地搜索鏈表。如果空閑區(qū)域的大小和申請分配的大小正好一樣,則把這個空閑區(qū)域分配出去,成功返回;否則將該空閑區(qū)分為兩部分,一部分區(qū)域與申請分配的大小相等,把它分配出去,剩下的一部

4、分區(qū)域形成新的空閑區(qū)。其釋放內存的設計思路很簡單,只需把這塊區(qū)域重新放回雙向鏈表(4)、default_init_memmap()(5)default_alloc_pages()練習二、查找虛擬地址對應頁表項(1)pde_t全稱為 page directory entry,也就是一級頁表的表項(注意:pgdir實際不是表 項,而是一級頁表本身。實際上應該新定義一個類型pgd_t來表示一級頁表本身)。pte t全 稱為 page table entry,表示二級頁表的表項。uintptr t表示為線性地址,由于段式管理只做直接映射,所以它也是邏輯地址。pgdir給出頁表起始地址。通過查找這個頁表

5、,我們需要給出二級頁表中對應項的地址。 雖然目前我們只有boot_pgdir一個頁表,但是引入進程的概念之后每個進程都會有自己的頁 表。(2)有可能根本就沒有對應的二級頁表的情況,所以二級頁表不必要一開始就分配,而是等到需要的時候再添加對應的二級頁表。如果在查找二級頁表項時,發(fā)現(xiàn)對應的二級頁表不存在,則需要根據(jù)create參數(shù)的值來處理是否創(chuàng)建新的二級頁表。如果create參數(shù)為0,則get_pte返回NULL;如果create參數(shù)不為0,則get_pte需要申請一個新的物理頁(通過alloc_page來實現(xiàn),可在mm/pmm.h中找到它的定義),再在一級頁表中添加頁目錄項指向表示二級頁表的新

6、物理頁。注意,新申請的頁必須全部設定為零,因為這個頁所代表的虛擬地址都沒有被映射。(3)當建立從一級頁表到二級頁表的映射時,需要注意設置控制位。這里應該設置同時設置 上PTE_U、PTE_W和PTE_P(定義可在mm/mmu.h)。如果原來就有二級頁表,或者新建立了頁表,則只需返回對應項的地址即可。(4)相應代碼如下:練習三、釋放虛擬地址所在頁,并取消對應二級頁表映射(1)判斷此頁被引用的次數(shù),如果僅僅被引用一次,則這個頁也可以被釋放。否則,只能釋放頁表入口。(2)相關代碼如下:(3)實驗結果:六、 實驗心得1、通過本次實驗,對X-86的內存的管理的分頁機制有了深入的理解2、x86特權級CPL:當前特權級

溫馨提示

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

評論

0/150

提交評論