原文:MIT-6.S081-2020實驗(xv6-riscv64)一:util

實驗文檔 概述 實驗一主要涉及調用系統調用函數,這些系統調用函數基本都是符合POSIX規范的,和操作系統本身關系較小,在調試的時候也可以先把程序在外部的Linux下跑通然后再放進xv 中運行。 內容 sleep 基本沒什么特別的內容,按說明的做就行了。 pingpong 涉及進程創建和管道,當一個進程在read的時候會掛起直至讀到內容,所以進程的執行順序也是非常清晰的。 primes 這個算是管道 ...

2020-12-31 23:12 0 707 推薦指數:

查看詳情

MIT-6.S081-2020實驗xv6-riscv64)五:lazy

實驗文檔 概述 這次實驗主要實現Lazy allocation的功能,即進程在動態分配內存的時候先不分配,等到要用到發生缺頁中斷的時候再實際分配,核心是實現缺頁中斷的處理。xv6的文檔介紹了三種缺頁中斷的應用,第一為Copy on write,即fork的時候先不復制內存,等到要用到發生 ...

Sun Jan 03 00:33:00 CST 2021 0 485
MIT-6.S081-2020實驗xv6-riscv64)十:mmap

實驗文檔 概述 這次實驗要求實現Linux中的mmap函數的一個子集,相當於在第五次實驗Lazy Allocation中加上了文件的操作。難度比較難定義,因為這個“子集”還是比較模糊的,如果僅僅只針對測試程序,做出一些簡化性的假設,難度就不會太大,但如果不做這些假設,難度就會非常高。 內容 ...

Wed Jan 13 18:07:00 CST 2021 0 576
MIT-6.S081-2020實驗xv6-riscv64)七:thread

實驗文檔 概述 這次實驗主要涉及多線程編程,和之前的實驗不太一樣,比較偏向於應用層面,除了任務一外都是在宿主機上編寫多線程程序,應該是xv6不支持系統級的多線程。 內容 Uthread: switching between threads 這個任務要求對一個程序填空,這個程序在用戶層面 ...

Thu Jan 07 07:34:00 CST 2021 0 523
MIT-6.S081-2020實驗xv6-riscv64)四:traps

實驗文檔 概述 這次實驗內容比較分散,總體來說難度不是太高。 內容 Backtrace 要求在內核中對程序的調用棧進行遍歷,輸出每一級調用的返回地址。首先我們分析Riscv的棧幀結構,查看call.asm中main函數的匯編代碼: 棧是由高地址向低地址增長的,可見在進入函數時,會由 ...

Sat Jan 02 04:21:00 CST 2021 0 567
MIT-6.S081-2020實驗xv6-riscv64)八:lock

實驗文檔 概述 這次實驗主要涉及鎖在內核的應用,沒有用到什么特別的理論知識,但是編程的時候陷阱重重,要么資源競爭,要么死鎖,和實驗三差不多,非常考驗耐心和細心。 內容 Memory allocator 這個任務要求給物理內存分配程序重新設計鎖,使得等待鎖時的阻塞盡量少。可以按CPU的數量 ...

Fri Jan 08 22:19:00 CST 2021 0 872
MIT-6.S081-2020實驗xv6-riscv64)十一:net

實驗文檔 概述 這次實驗主要實現網卡驅動的一部分,文檔內容非常長,實際實驗不算難,跟着hint就行,但還是需要對整體框架有一定的了解。 內容 發送函數: 這里有兩個問題,第一是可不可以只保存一個mbuf,每次調用函數的時候就釋放掉上一個mbuf,答案是不能,因為多進程的影響,可能有 ...

Wed Jan 13 21:33:00 CST 2021 0 381
MIT-6.S081-2020實驗xv6-riscv64)六:cow

實驗文檔 概述 這次實驗實現copy on write功能,和上次實驗一樣也是缺頁中斷的應用,但不同的是,這次實驗涉及的物理內存和虛擬地址的操作要比上個實驗多不少,因此難度也更大一些。 內容 首先是uvmcopy的部分,原來的操作是從老頁表中獲得虛擬地址對應的物理地址,創建一個新物理頁 ...

Thu Jan 07 01:54:00 CST 2021 0 452
MIT-6.S081-2020實驗xv6-riscv64)九:fs

實驗文檔 概述 這次實驗涉及文件系統,重點是對inode節點的操作。 內容 Large files 這個任務主要目的是支持更大的文件。和內存映射類似,文件系統中也有一個類似“頁表”的結構,每個文件(inode)都有自己的一個“頁表”,維護自己文件占用的文件塊。和內存不同的是,這個“頁表 ...

Tue Jan 12 06:08:00 CST 2021 0 311
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM