Lab1: bootloader / interrupt / device driver
啟動(dòng)OS的bootloader归敬,
了解操作系統(tǒng)啟動(dòng)前的狀態(tài)和要做的準(zhǔn)備工作,
了解運(yùn)行OS的硬件支持携添,
OS如何加載到內(nèi)存中袍睡,
理解兩類中斷:外設(shè)中斷创泄、陷阱中斷
- 基于分段機(jī)制的存儲(chǔ)管理
- 設(shè)備管理的基本概念
- PC啟動(dòng)bootloader的過(guò)程
- bootloader的文件組成
- 編譯運(yùn)行bootloader的過(guò)程
- 調(diào)試bootloader的方法
- 在匯編級(jí)了解棧的結(jié)構(gòu)和處理過(guò)程
- 中斷處理機(jī)制
- 通過(guò)串口/并口/CGA輸出字符的方法
Lab2: 物理內(nèi)存管理
理解x86分段/分頁(yè)模式艺玲,
了解OS如何管理連續(xù)空間的物理內(nèi)存。
- 理解內(nèi)存地址的轉(zhuǎn)換和保護(hù)
- 實(shí)現(xiàn)頁(yè)表的建立和使用方法
- 實(shí)現(xiàn)物理內(nèi)存的管理方法
- 了解常用的減少碎片的方法
Lab3: 虛擬內(nèi)存管理
了解頁(yè)表機(jī)制和換出(swap)機(jī)制鞠抑,
以及中斷-“故障中斷”饭聚、缺頁(yè)故障處理等,
基于頁(yè)的內(nèi)存替換方法
- 理解換頁(yè)的軟硬件協(xié)同機(jī)制
- 實(shí)現(xiàn)虛擬內(nèi)存的Page Fault異常處理
- 實(shí)現(xiàn)頁(yè)替換算法
Lab4: 內(nèi)核線程管理
了解如果利用CPU來(lái)高效地完成各種工作的設(shè)計(jì)與實(shí)現(xiàn)基礎(chǔ)搁拙,
如何創(chuàng)建相對(duì)與用戶進(jìn)程更加簡(jiǎn)單的內(nèi)核態(tài)線程秒梳,
如果對(duì)內(nèi)核線程進(jìn)行動(dòng)態(tài)管理等法绵;
- 建立內(nèi)核線程的關(guān)鍵信息
- 實(shí)現(xiàn)內(nèi)核線程的管理方法
Lab5: 用戶進(jìn)程管理
了解用戶態(tài)進(jìn)程創(chuàng)建、執(zhí)行酪碘、切換和結(jié)束的動(dòng)態(tài)管理過(guò)程朋譬,
了解在用戶態(tài)通過(guò)系統(tǒng)調(diào)用得到內(nèi)核態(tài)的內(nèi)核服務(wù)的過(guò)程;
- 建立用戶進(jìn)程的關(guān)鍵信息
- 實(shí)現(xiàn)用戶進(jìn)程管理
- 分析進(jìn)程和內(nèi)存管理的關(guān)系
- 實(shí)現(xiàn)系統(tǒng)調(diào)用的處理過(guò)程
Lab6:進(jìn)程調(diào)度
用于理解OS的調(diào)度過(guò)程和調(diào)度算法
- 熟悉ucore的系統(tǒng)調(diào)度器框架兴垦,以及內(nèi)置的Round-Robin調(diào)度算法
- 基于調(diào)度器框架實(shí)現(xiàn)一個(gè)調(diào)度器算法
Lab7: 同步互斥
了解進(jìn)程間如何進(jìn)行信息交換和共享徙赢,
并了解同步互斥的具體實(shí)現(xiàn)以及對(duì)系統(tǒng)性能的影響,
研究死鎖產(chǎn)生的原因探越,
以及如何避免死鎖狡赐;
- 熟悉ucore的同步互斥機(jī)制
- 理解基本的spinlock,semphpore钦幔,condition variable的實(shí)現(xiàn)
- 用各種同步機(jī)制解決同步問(wèn)題
Lab8: 文件系統(tǒng)
了解文件系統(tǒng)的具體實(shí)現(xiàn)枕屉,
與進(jìn)程管理等的關(guān)系,
了解緩存對(duì)OS IO訪問(wèn)的性能改進(jìn)鲤氢,
了解虛擬文件系統(tǒng)(VFS)搀擂、buffer cache和disk driver之間的關(guān)系
- 掌握基本的文件系統(tǒng)系統(tǒng)調(diào)用的實(shí)現(xiàn)方法;
- 了解一個(gè)基于索引節(jié)點(diǎn)組織方式的Simple FS 文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)铜异;
- 了解文件系統(tǒng)抽象層-VFS的設(shè)計(jì)與實(shí)現(xiàn)