allocvm.c
micreatepagetablesforphysicalrange (
in peprocess process,
in pvoid startingaddress,
in pvoid endingaddress
)1.計算需要從startingaddress到endingaddress需要多少物理頁面才夠裝下頁目錄。
假設最簡單的情況startingaddress到endingaddress可以裝在乙個pde中。那麼需要乙個pxe項指向乙個ppe項指向乙個pde項。那麼需要3個頁面。
pagesneeded = miresidentpagesforspan (startingaddress, endingaddress);
pointerpte = migetpteaddress (startingaddress);
lastpte = migetpteaddress (endingaddress);
2.提交從pointerpte到lastpte需要的pde的物理記憶體。在amd64中pxe,ppe,pde,pte都是一維陣列。
while (pointerpte <= lastpte)
//省略部分**
pointerpte += 1;
startingaddress = (pvoid)((puchar)startingaddress + page_size);
}
給我一塊石頭
給我一塊石頭!專案經理應該小心的遊戲之一 克里夫與團隊一起,用一周時間制訂出了專案日程。他們完成了 哈德遜灣式啟動 並且確定已經識別出了主要的技術風險。他將風險和日程安排告訴了他的上司諾姆。你就不能再早點完成專案了麼?諾姆的一句話將克里夫送回了團隊,步履蹣跚。克里夫與團隊又花了一周時間修改時間表,得...
我是一塊硬碟
發信人 lesliechen 打死我也不說 信區 campus east 標 題 我是一塊硬碟 zz 發信站 bbs 同舟共濟站 wed jul 7 13 27 53 2004 站內 我是乙個硬碟,st380021a,在乙個普普通通的台式電腦裡工作。別人總認為我們是高科技白領,工作又乾淨又體面,似乎...
我是一塊硬碟
我是一條記憶體。我在一台台式電腦裡工作,但是我記不得我是從 來的,是什麼牌子,因為我健忘。我的上司是cpu大哥,他是我們的老大。都說他是電腦的腦子,可是我看他的腦子 實在是太小了,比我還要健忘。每天他總是不停地問我,某某頁某某位址存的是什麼?我總是不厭其煩地告訴他,可是不出一秒鐘他又忘記了,又要問一...