Introduction
Lab 0
lab0 实验目的
lab0 准备知识
了解 OS 实验
设置实验环境
开发 OS 实验的简单步骤
通过虚拟机使用 Linux 实验环境(推荐:最容易的实验环境安装方法)
安装使用 Linux 实验环境(适合希望自己安装 Linux 系统的同学)
实验中可能使用的软件
了解编程开发调试的基本工具
gcc 的基本用法
编译简单的 C 程序
AT&T 汇编基本语法
GCC 基本内联汇编
GCC 扩展内联汇编
make 和 Makefile
gdb 使用
进一步的相关内容
基于硬件模拟器实现源码级调试
安装硬件模拟器 QEMU
Linux 运行环境
Linux 环境下的源码级安装过程
获得并应用修改
配置、编译和安装
使用硬件模拟器 QEMU
运行参数
常用调试命令
基于 qemu 内建模式调试 ucore
结合 gdb 和 qemu 源码级调试 ucore
编译可调试的目标文件
ucore 代码编译
使用远程调试
使用 gdb 配置文件
加载调试目标
设定调试目标架构
了解处理器硬件
Intel 80386 运行模式
Intel 80386 内存架构
Intel 80386 寄存器
了解 ucore 编程方法和通用数据结构
面向对象编程方法
通用数据结构双向循环链表
双向循环链表
附录 A.ucore 实验中的常用工具
附录 B.ucore 实验参考资料
Lab 1
lab1 实验目的
lab1 实验内容
lab1 练习
lab1 练习 1
lab1 练习 2
lab1 练习 3
lab1 练习 4
lab1 练习 5
lab1 练习 6
lab1 扩展练习
lab1 项目组成
从机器启动到操作系统运行的过程
BIOS 启动过程
bootloader 启动过程
保护模式和分段机制
地址空间
硬盘访问概述
ELF 文件格式概述
操作系统启动过程
函数堆栈
中断与异常
lab1 中对中断的处理实现
lab1 实验报告要求
附录 A “关于 A20 Gate”
附录 B “第一条执行指令”
Lab 2
lab2 实验目的
lab2 实验内容
lab2 练习
lab2 项目组成
物理内存管理
lab2 实验执行流程概述
探测系统物理内存布局
以页为单位管理物理内存
物理内存页分配算法实现
实现分页机制
段页式管理基本概念
建立段页式管理中需要考虑的关键问题
系统执行中地址映射的四个阶段
建立虚拟页和物理页帧的地址映射关系
lab2 实验报告要求
附录 A. 探测物理内存分布和大小的方法
附录 B. 实现物理内存探测
附录 C. 四类地址概念及 edata/end/text 的含义
附录 D. 自映射机制
Lab 3
lab3 实验目的
lab3 实验内容
lab3 练习
lab3 项目组成
虚拟内存管理
基本原理概述
lab3 实验执行流程概述
关键数据结构和相关函数分析
Page Fault 异常处理
页面置换机制的实现
页替换算法
页面置换机制
lab3 实验报告要求
Lab 4
lab4 实验目的
lab4 实验内容
lab4 练习
lab4 项目组成
内核线程管理
lab4 实验执行流程概述
设计关键数据结构 -- 进程控制块
创建并执行内核线程
创建第 0 个内核线程 idleproc
创建第 1 个内核线程 initproc
调度并执行内核线程 initproc
lab4 实验报告要求
附录 A:实验四的参考输出
附录 B:【原理】进程的属性与特征解析
Lab 5
lab5 实验目的
lab5 实验内容
lab5 练习
lab5 项目组成
用户进程管理
lab5 实验执行流程概述
创建用户进程
进程退出和等待进程
系统调用实现
lab5 实验报告要求
附录 A:【原理】用户进程的特征
Lab 6
lab6 实验目的
lab6 实验内容
lab6 练习
lab6 项目组成
调度框架和调度算法设计与实现
lab6 实验执行流程概述
进程状态
进程调度实现
内核抢占点
进程切换过程
调度框架和调度算法
设计思路
数据结构
调度点的相关关键函数
RR 调度算法实现
Stride Scheduling
基本思路
使用优先队列实现 Stride Scheduling
lab6 实验报告要求
Lab 7
lab7 实验目的
lab7 实验内容
lab7 练习
lab7 项目组成
同步互斥机制的设计与实现
lab7 实验执行流程概述
同步互斥机制的底层支撑
计时器
屏蔽与使能中断
等待队列
信号量
管程和条件变量
lab7 实验报告要求
lab7 附录
Lab 8
lab8 实验目的
lab8 实验内容
lab8 练习
lab8 项目组成
文件系统设计与实现
ucore 文件系统总体介绍
通用文件系统访问接口
文件系统抽象层 - VFS
file & dir 接口
inode 接口
Simple FS 文件系统
文件系统的布局
索引节点
设备层文件 IO 层
关键数据结构
stdout 设备文件
stdin 设备文件
lab8 实验执行流程概述
文件操作实现
打开文件
读文件
lab8 实验报告要求
Published with GitBook
lab6 实验目的
实验目的
理解操作系统的调度管理机制
熟悉 ucore 的系统调度器框架,以及缺省的 Round-Robin 调度算法
基于调度器框架实现一个(Stride Scheduling)调度算法来替换缺省的调度算法
results matching "
"
No results matching "
"