對於每個程序而言都能看到
4g的記憶體,乙個頁是
4k,一共有
4g/4k=2^20
個頁。每個程序中都有自己的乙個頁目錄(一級頁表),這個頁目錄可以管轄
1024
個二級頁表,充足情況下程序會有
1024
個二級頁表。那麼這
1024
個頁對於使用者來說就不用了,可以從
2^20
個頁表中去除,實際需要管理的頁的個數就是
2^20-1024=1023*1024
個頁。又因為我們有
1024
個二級頁表,每個二級頁表可以管理
1024
個頁,理論上可以管理
1024*1024
個頁,但是我們已經知道實際只需要管理
1023*1024
個頁,也就是說我們可以騰出乙個二級頁表示空閒的,因為頁目錄和二級頁表的儲存格式是一樣的,我們可以把這個二級頁表替換成頁目錄,這樣實際就是乙個頁目錄加上
1023
個二級頁表形成乙個
1024
個頁組成的
4m大頁。
如下圖,0~1023
是1024
個二級頁表,那麼也就是
1024
個頁,那麼必然有乙個二級頁表來管理這
1024
個頁,不妨令紅色的這個二級頁表管理這
1024
個頁,那麼它其實就是頁目錄,不妨令編號為頁目錄基值的那個二級頁表作為頁目錄。
os中同步鎖的位置問題
今日看19年的408的哲學家吃飯問題,對同步鎖的位置有些困惑,與生產消費者的鎖的問題是剛好相反的。比如19年的題 有n n 3 位哲學家圍坐在一張圓桌邊,每位哲學家交替地就餐和思考。在 圓桌中心有m m 1 個碗,每兩位哲學家之間有一根筷子。每位哲學家必須取到乙個碗和兩 側的筷子後,才能就餐,進餐完...
PHP 中 自增 自減 運算引發的奇怪問題
a true var dump a bool true b false var dump b bool false b false var dump b bool false 遞增 遞減 null php a null var dump a int 1 a null var dump a null在...
PHP 中 自增 自減 運算引發的奇怪問題
在 php 的官方手冊中寫道 php 支援 c 風格的前 後遞增與遞減運算子。第乙個注意事 遞增 遞減運算子不影響布林值。遞減null值也沒有效果,但是遞增null的結果是1。換句話說 遞增 遞減運算中,不會把運算元轉換成整數後再運算。如果運算數是布林值,則直接返回結果。遞增 遞減布林值 php a...