雖然Copy-on-Write原理是很顯而易見的,但是在具體實現中需要處理的細節特別多,經常會在莫名其妙的地方出現錯誤,再加上使用gdb調試內核本身就是一件不容易的事情 ...
目錄 實驗總結 . 實驗准備 . 引用計數 . 實現基於 cow 的 uvmcopy . 處理頁面異常 amp . 各種檢查 實驗總結 本次實驗用時約 個小時。 收獲是對 Copy on Write 機制的理解更深入了。 遇到的困難包括: 懶。 中間把代碼寫掛了兩次,經過 soha 提示,恍然大悟,原因是相同的:在子進程退出內存回收時把共享的 physical page 給回收了,經過修改已經解 ...
2019-12-26 10:38 0 1017 推薦指數:
雖然Copy-on-Write原理是很顯而易見的,但是在具體實現中需要處理的細節特別多,經常會在莫名其妙的地方出現錯誤,再加上使用gdb調試內核本身就是一件不容易的事情 ...
代碼在github上。總體來說如果理解了COW機制的話,這個實驗的完成也沒有很復雜。 這一個實驗是要完成COW(copy on write)fork。在原始的XV6中,fork函數是通過直接對進程的地址空間完整地復制一份來實現的。但是,拷貝整個地址空間是十分耗時的,並且在很多情況下,程序立即調用 ...
前言 最近絕大多數的空閑時間都拿來錘15-445了,很久沒動6.S081。前幾天回頭看了一下一個月前錘完的Lazy Allocation,自己寫的代碼幾乎都不認識了.......看來總結之類的東西最好還是趁着熱乎的時候寫啊。 不過15-445的內容實在太多了,我只是為了錘Lab粗略的看了看課件 ...
。 xv6-riscv 默認開了 kpti(內核和用戶態頁表分離) ,故需要在各種系統調用頭部手動 ...
(), twd2 認為可以往 xv6 中加一個 dup2 函數,我表示同意。需要進一步研究 xv6 結構,確 ...
目錄 實驗總結 0. 實驗准備 1. file.c 2. buddy.c 實驗總結 本次實驗用時約兩個小時,修改了 xv6 中大量惡臭代碼。 測試結果: 0. 實驗准備 實驗指導鏈接 上來直接: 實驗分為兩個 ...
目錄 實驗總結 0. 實驗准備 1. 代碼實現 實驗總結 本次實驗用時約兩個小時,使用了大量惡臭代碼。 其他遇到的問題包括: 使用 du ...
這一部分要實現的是對多核處理器的支持,然后實現系統調用只喜歡用戶應用創建新的應用,而且還要實現round-robin調度算法 Multiprocessor support jos中對CPU進行了抽 ...