代碼在github上。總體來說如果理解了COW機制的話,這個實驗的完成也沒有很復雜。 這一個實驗是要完成COW(copy on write)fork。在原始的XV6中,fork函數是通過直接對進程的 ...
代碼在github上。總體來說如果理解了COW機制的話,這個實驗的完成也沒有很復雜。 這一個實驗是要完成COW(copy on write)fork。在原始的XV6中,fork函數是通過直接對進程的 ...
這一個實驗主要是對RISC-V的匯編、棧幀結構以及陷阱進行簡單的了解,難度並不大。 代碼放在github上。 RISC-V assembly (easy) Q1: Which registers ...
代碼放在github上。 這一次實驗感覺挺簡單的,特別是后面兩個小實驗。主要就是對多線程和鎖進行一個學習。 Uthread: switching between threads 這一個實驗是要實 ...
實驗的代碼放在了Github上。 第二個實驗是Lab: system calls。 這個實驗主要就是自己實現幾個簡單的系統調用並添加到XV6中。 XV6系統調用 添加系統調用主要有以下幾步: ...
代碼在Github上。 這一個實驗是要實現最基礎的mmap功能。mmap即內存映射文件,將一個文件直接映射到內存當中,之后對文件的讀寫就可以直接通過對內存進行讀寫來進行,而對文件的同步則由操作系統來 ...
頁表是操作系統中非常重要的一部分,用於將虛擬地址轉化為物理地址。虛擬內存是操作系統實現進程隔離的關鍵技術。 在 XV6 中通過 RISC-V 的頁表機構完成了虛擬地址向物理地址的轉換。 分頁硬件機構 ...
正在學習MIT的6.S081,把做的實驗寫一寫吧。 實驗的代碼放在了Github上。 第一個實驗是Lab util,算是一個熱身的實驗,沒有涉及到系統的底層,就是使用系統調用來完成幾個用戶模式的小 ...
代碼在github上。 這次實驗是要對文件系統修改,使其支持更大的文件以及符號鏈接,實驗本身並不是很復雜。但文件系統可以說是XV6中最復雜的部分,整個文件系統包括了七層:文件描述符,路徑名,目錄,i ...
Exercise1 源代碼閱讀 文件系統部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exe ...
代碼在github上 這一次實驗是要對XV6內部的鎖進行優化,減少鎖爭用,提高系統的性能。 Memory allocator (moderate) 第一個實驗是對XV6內核的內存頁面分配器進行改 ...