前言 前面我們提到了 Process 的概念,我們知道一個位於 user space 執行中的程式為 Process,而 Process 有虛擬記憶體的概念,...
前言 我們簡單的回顧來自於 user mode 的 trap 的流程,整個流程為 uservec 到 usertrap() 再到 usertrapret()...
前言 前面我們介紹了多 Process 會遇到的 race condition 的問題,以及如何使用 lock 的機制進行處理,後面提到了 xv6 中 Spi...
前言 在前面我們看過了整個 trap 的流程,而在今天我們將以 exec() 這個 System call 來追蹤實際 trap 發生的情況。 exec()...
前言 在前面我們介紹了 page fault 以及 lazy page allocation 的概念,而我們在 usertrap() 中通過 scause C...
前言 昨天我們簡單的介紹了 Thread 的一些基本概念,以及 Thread 是如何進行切換的,最後通過一個簡單的實驗去證明 compute bound th...
接續昨天的題目 原本今天打算寫完這題的,但一直卡在一個地方, 就先貼出我寫到一半的成果吧 // kernel/sysproc.c uint64 sys_sysi...
題目:https://pdos.csail.mit.edu/6.S081/2021/labs/util.html Write a concurrent ver...
這個題目一樣是需要新增一個 system call 一開始的步驟跟之前的這個題目差不多 這篇文章就先單純的紀錄一開始的幾個步驟 困難的地方就留到明天再說吧 Ma...
接續昨天寫到一半的題目, 昨天還留下了 sys_sysinfo() 沒有完成, 先來大致上分析一下這個 function 應該要做什麼, 首先他會接收到 u...
躺在床上滑 threads ( 脆 ) 的時候,看到有人在分享一個很酷的課程,教人怎麼撰寫一個簡易的作業系統。 這個課程就是 MIT 6.1810。來自聽起來就...
系列文章 : [6.1810] 跟著 MIT 6.1810 學習基礎作業系統觀念 我使用的作業系統是 Ubuntu,所以這邊的 command 不確定在其他的作...
系列文章 : [6.1810] 跟著 MIT 6.1810 學習基礎作業系統觀念 大綱 學習一些 RISC-V 的 CSRs QEMU rom code xv...
系列文章 : [6.1810] 跟著 MIT 6.1810 學習基礎作業系統觀念 大綱 RISC-V 的 Sv39 kernel/kalloc.c Summa...
系列文章 : [6.1810] 跟著 MIT 6.1810 學習基礎作業系統觀念 大綱 xv6-boot : ch3.6 Process address sp...
系列文章 : [6.1810] 跟著 MIT 6.1810 學習基礎作業系統觀念 大綱 kernel/proc.c/mycpu kernel/riscv.h/...