| 欄位 | 內容 |
|---|---|
| 學期 | 110 學年度下學期 |
| 學生 | 魏仲彥 |
| 學號末兩碼 | 41 |
| 教師 | 陳鍾誠 |
| 學校科系 | 金門大學資訊工程系 |
| 課程內容 | https://gitlab.com/ccc110/sp/ |
| 教材網址 | 陳鍾誠的系統程式課程 |
| 期中作業 | 研究 rubi 編譯器 後寫成報告 |
| 期末作業 | 課堂筆記 |
| 課堂加分題 | HW1、HW2、HW3 |
| week | content | date |
|---|---|---|
| week01 | 環境設定 使用GCC執行C 使用g++執行C++ 反組譯目的碼 使用GDB進行Debug |
2022/02/14 |
| week02 | C<ul><li>C 常錯寫法</li><li>動態分配空間 </li><li>C-陣列陷阱</li><li>微積分程式碼</li><li>C 觀念</li></ul>CPU0處理器<ul><li>CPU0 暫存器 </li><li>CPU0 指令集 </li><li>CPU0指令格式 </li><li>CPU0 狀態暫存器 </li><li>定址模式 </li><li>CPU0的程式執行 </li></ul>組譯器<ul><li>映像檔 </li><li>組譯器演算法</li></ul>連結與載入<ul><li>簡介 </li><li>載入器</li></ul> | 2022/02/23 |
| week03 | 語法理論 正規表達式 C0語言 程式碼解說 03-compiler<ul><li>gen </li><li>exp0</li></ul> |
2022/03/02 |
| week04 | 程式碼解說 03-compiler(續)<ul><li>exp0 </li><li>lexer</li><li>03a-compiler</li></ul> | 2022/03/09 |
| week05 | C6 <ul><li>自我編譯</li><li>asm<ul><li>sum</li><li>fib</li></ul></li><li>遞迴下降</li></ul> |
2022/03/16 |
| week06 | gcc x86組合語言<ul><li>hello.s</li><li>foobar.c</li><li>esp、ebp圖解</li></ul>內嵌式組合語言<ul><li>inline.c</li><li>jit.c快速編譯</li></ul> |
2022/03/21 |
| week07 | C函式庫 Makefile寫法 |
2022/03/30 |
| week08 | 放假! | 2022/04/06 |
| week09 | 作業系統<ul><li>作業系統的五大功能模組<ul><li>行程管理</li><li>記憶體管理</li><li>輸出入系統</li><li>檔案系統</li><li>使用者介面</li></ul></li><li>行程<ul><li>行程的資料共享方法</li><li>執行緒(Thread)</li><li>競爭狀況與臨界區間</li></ul></li><li>多工</li><li>排程<ul><li>排程的方法</li><li>內文切換</li></ul></li><li>記憶體管理<ul><li>記憶體分配策略</li><li>堆積空間不足時的處裡方法</li><li>記憶體管理單元(MMU)</li><li>磁區結構</li><li>輸出入系統</li><li>驅動系統</li></ul></li></ul><li>Linux<ul><li>Linux 行程管理</li><li>Slab 記憶體配置器</li><li>Linux的驅動程式</li></ul></li></ul>Linux 指令 | 2022/04/13 |
| week10 | 函數式編成 pair map lisp |
2022/04/20 |
| week11 | race condition<ul><li>race.c</li><li>norace.c</li></ul>生產者消費者問題 哲學家用餐問題 fork<ul><li>posix</li><li>process</li><li>多工處裡</li><li>exec</li><li>system</li><li>zombie</li></ul> |
|
| week12 | FileSystem<ul><li>IO</li><li>echo</li><li>stderr</li><li>shell</li></ul>Net<ul><li>timer</li><li>server</li><li>client</li><li>connetion</li></ul> | 2022/05/04 |
| week13 | HTTPServer<ul><li>Hello World!</li><li>connect</li><li>response</li><li>thread</li></ul>提升程式效能 | 2022/05/11 |
| week14 | Inter-Process Communication<ul><li>fifo</li><li>mmap</li><li>msgQ</li><li>udp</li><li>tcp</li><li>thread</li></ul>LinuxNet<ul><li>poll</li><li>epoll</li><li>msgQ</li></ul>特殊函數<ul><li>strcmp</li><li>fgets</li><li>fopen</li><li>mmap</li><li>msgget</li><li>msgsnd</li><li>msgrcv</li></ul> | 2022/05/18 |
| week15 | mini-riscv-os<ul><li>HelloOs</li><li>ContextSwitch</li><li>MultiTasking</li></ul> | 2022/05/25 |
| week16 | mini-riscv-os-續<ul><li>TimerInterrupt</li><li>Preemptive</li></ul> | 2022/06/01 |
| week17 | xv6<ul><li>啟動程式</li><li>行程控制</li><li>行程初始化</li><li>設定虛擬機</li><li>init</li><li>cat 指令</li></ul> | 2022/06/08 |
| week18 | xv6-續<ul><li>cat.c</li><li>open()</li><li>read()</li><li>inode,-superblock-與檔案系統</li><li>緩衝模組-bio.c</li><li>虛擬硬碟存取-virtio.h/virtio-disk.c</li><li>file</li><li>整體的檔案系統結構</li><li>xv6:-中斷-Interrupt-Trap<ul><li>重要觀念</li><li>main.c</li></ul></li><li>xv6:-平行與鎖-lock—-多核心的控管<ul><li>xv6:-磁碟驅動與-virtio-交互協議</li><li>參考</li><li>簡介</li><li>運作方式</li></ul></li><li>xv6:-分頁表與-MMU<ul><li>riscv.h</li></ul></li><li>Q</li></ul> | 2022/06/15 |