6.S081课程涵盖了操作系统的各个方面,包括但不限于:
- 系统调用:了解如何在操作系统中实现和使用系统调用。
- 进程管理:学习进程的创建、调度、同步和终止。
- 内存管理:理解内存分配、分页机制和虚拟内存的实现。
- 文件系统:深入研究文件系统的设计和实现。
- 设备驱动:了解如何编写和管理设备驱动程序。
- 中断处理:学习中断处理机制和其在操作系统中的应用。
该课程通过一系列实验,基于 xv6 操作系统框架,通过为 xv6 实现各种功能来深入理解和掌握操作系统的概念。以下是一些主要实验:
- 系统调用实验:增加和实现新的系统调用,理解系统调用的工作流程。
- 虚拟内存实验:探索页表机制,修改和简化用户空间和内核空间之间的数据传递流程。
- 中断处理实验:实现基于中断机制的系统调用,例如alarm系统调用。
- 懒分配和写时复制:利用缺页故障,在xv6上实现内存页面的懒分配和写时复制。
- 用户态协程:理解进程调度和上下文切换过程,并在用户态实现协程。
- 锁策略优化:更改数据结构和锁策略,降低内存空闲页分配与释放、磁盘块缓存块使用过程中的锁争用。
- 文件系统扩展:修改xv6的文件系统,使单个文件的大小限制从268KB增加到65803KB。
- 内存映射文件:实现内存映射文件,将文件映射到内存中,以减少访问磁盘的次数。
我将各个实验的实现思路以及实验代码根据实验安排放到了仓库中对应名称的分支中。
如 : 系统调用实验 <-> syscall分支