花費 23 ms
MIT6.S081/6.828 實驗1:Lab Utilities

Mit6.828/6.S081 fall 2019的Lab1是Unix utilities,主要內容為利用xv6的系統調用實現sleep、pingpong、primes、find和xargs等工具。本文對各程序的實現思路及xv6的系統調用流程進行詳細介紹。 前言 在實驗之前,推薦閱讀 ...

Sun Jun 07 22:00:00 CST 2020 0 2114
MIT6.S081/6.828准備:MacOS下搭建xv6和risc-v環境

本文介紹搭建Mit6.828/6.S081 fall2019實驗環境的詳細過程,包括riscv工具鏈、qemu和xv6,以MacOS下的實踐為例,Linux系統同樣可以參考。 介紹 只有了解底層原理才能寫好上層應用,曾經幾度想要系統地學習OS課程,嘗試去看了《計算機操作系統 ...

Wed May 27 18:22:00 CST 2020 0 2093
xv6學習筆記(5) : 鎖與管道與多cpu

xv6學習筆記(5) : 鎖與管道與多cpu 1. xv6鎖結構 1. xv6操作系統要求在內核臨界區操作時中斷必須關閉。 如果此時中斷開啟,那么可能會出現以下死鎖情況: 進程A在內核態運行並拿下了p鎖時,觸發中斷進入中斷處理程序。 中斷處理程序也在內核態中請求p鎖,由於鎖在 ...

Mon Aug 30 04:22:00 CST 2021 2 208
xv6學習筆記(3):中斷處理和系統調用

xv6學習筆記(3):中斷處理和系統調用 1. tvinit函數 這個函數位於main函數內 表明了就是設置idt表 1. SETGATE函數 這里的setgate是一個宏定義是用來設置idt表的 下面是函數參數的說明 Sel : 表示對於中斷處理程序代碼所在段的段選擇 ...

Sun Aug 22 23:16:00 CST 2021 0 189
xv6學習筆記(4) : 進程調度

xv6學習筆記(4) : 進程 xv6所有程序都是單進程、單線程程序。要明白這個概念才好繼續往下看 1. XV6中進程相關的數據結構 在XV6中,與進程有關的數據結構如下 與前述的兩類信息的對應關系如下 操作系統管理進程有關的信息:內核棧kstack,進程的狀態state,進程 ...

Tue Aug 24 06:36:00 CST 2021 1 187
xv6實驗環境搭建

安裝bochs 因為要運行的是xv6,所以不能直接使用 apt-get 直接獲取軟件。apt-get獲取到的軟件不支持SMP (Symmetric Multi-Processing)。因此,需要下載源碼自己編譯(源代碼下載地址在下載頁面的底部Download SVN Snapshot ...

Wed Jan 01 22:55:00 CST 2014 0 3082
xv6的系統調用

最近更新於2021/08/05. 我們以xv6的一個系統調用getpid()為例,觀察xv6的系統調用大致過程。 系統調用的聲明位於 user.h 中,xv6的用戶程序若要使用系統調用需要包括這個頭文件,其中getpid()聲明如下: int getpid(void); 此函數定義 ...

Thu Aug 05 09:20:00 CST 2021 0 113

 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM