Introduction
第零章:实验环境说明
第一章:独立式可执行程序
[安装 nightly rust]
使用包管理器 cargo 创建 rust binary 项目
移除标准库依赖
[移除 runtime 依赖]
总结与展望
第二章:最小化内核
使用目标三元组描述目标平台
编译、生成内核镜像
使用链接脚本指定内存布局
[重写程序入口点 -start]
[使用 Qemu 运行内核]
封装 SBI 接口
[实现格式化输出]
总结与展望
第三章:中断
rv64 中断介绍
[手动触发断点中断]
程序运行上下文环境
[实现上下文环境保存与恢复]
[时钟中断]
总结与展望
第四章:内存管理
[物理内存探测与管理]
[动态内存分配]
总结与展望
第五章:内存虚拟化
页表:从虚拟内存到物理内存
[内核初始映射]
内核重映射
内核重映射实现之一:页表
内核重映射实现之二:MemorySet
[内核重映射实现之三:完结]
总结与展望
第六章:内核线程
线程状态与保存
线程切换
内核线程初始化
[内核线程创建与切换测试]
总结与展望
第七章:线程调度
线程池与线程管理
内核调度线程 idle
线程调度之 Round Robin 算法
[线程调度测试]
总结与展望
第八章:进程
[编写用户程序]
合并内核与应用程序
在内核中实现系统调用
创建虚拟内存空间
[创建进程]
总结与展望
第九章:文件系统
[使用文件系统]
[实现记事本]
[实现终端]
[文件读写]
总结与展望
第十章:同步互斥
练习题
1. 中断异常
2. 物理内存管理
3. 虚拟内存管理
4. 线程管理
5. 用户进程(+ 虚拟内存管理 + 线程管理)
6. CPU 调度
7. 同步互斥
8. 文件系统
附录
内联汇编
安装 rust
Published with GitBook
4. 线程管理
4. 线程管理
实验要求
阅读文档第六章。
回答:详细描述第六章文档中
process::init
的执行过程。(4 分)
回答:给出
switch
时,重要寄存器的使用情况,画出栈的使用情况。(6 分)
本章无编程练习,将在下一节与用户进程一同考察。
实验指导
注意 RISCV 规范,程序在不同函数之间的跳转情况(关注 ra 寄存器的赋值)。
results matching "
"
No results matching "
"