█████████ ███████ █████████
███░░░░░███ ███░░░░░███ ███░░░░░███
░███ ░░░ █████ ████ ████████ ████████ ██████ █████████████ ██████ ███ ░░███░███ ░░░
░░█████████ ░░███ ░███ ░░███░░███░░███░░███ ███░░███░░███░░███░░███ ███░░███ ░███ ░███░░█████████
░░░░░░░░███ ░███ ░███ ░███ ░███ ░███ ░░░ ░███████ ░███ ░███ ░███ ░███████ ░███ ░███ ░░░░░░░░███
███ ░███ ░███ ░███ ░███ ░███ ░███ ░███░░░ ░███ ░███ ░███ ░███░░░ ░░███ ███ ███ ░███
░░█████████ ░░████████ ░███████ █████ ░░██████ █████░███ █████░░██████ ░░░███████░ ░░█████████
░░░░░░░░░ ░░░░░░░░ ░███░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░ ░░░░░ ░░░░░░ ░░░░░░░ ░░░░░░░░░
░███
█████
░░░░░
- 比赛类型:OS原理赛道:模块实验创新赛道
- 学校名称:杭州电子科技大学
- 队伍编号:T202410336994460
- 队伍名称:进栈不排队-SupremeOS
- 队伍成员:
- 温学周
- 林灿
- 指导老师:杨浩
本项目完整的文档目录为 doc/初赛文档.pdf,其中包含了详细的比赛报告,包括项目设计、实现、测试、评估等各个方面的内容。
SupremeOS
基于 MIT
开源的 Xv6
操作系统框架,构建 RISC-V
架构的类 Unix
操作系统。截至初赛,总共新增了19个系统调用,总计40个系统调用。
提升了三大模块相关内容:
-
内存管理模块优化: 我们对内存管理模块进行了深度改进,实现了更高效、更智能的内存分配与回收策略,有效提升了系统资源的利用率和整体性能。
-
进程通信模块升级: 在进程通信模块方面,我们引入了创新的通信机制,增强了进程间的交互能力,为多任务处理和并发执行提供了更稳固的支撑。
-
进程管理模块强化: 我们对进程管理模块进行了全面强化,优化了进程调度算法,提高了进程的创建、切换和终止效率,进一步确保了系统的稳定性和响应速度。
SupremeOS
在深入研发与精心设计的基础上,共计新增了 2000+
行的高质量代码,并引入了 10+
种核心数据结构。在确保与现有系统组件实现无缝集成的同时,我们成功拓展了多样化的接口,显著增强了系统的功能性与扩展性,有效提高了内存的分配效率与回收速度,大幅提升了进程的创建、切换和终止效率,进一步优化了系统的响应速度和多任务处理能力。实现了内存管理性能与进程管理效率的显著提升,为构建更加高效、可靠的系统环境奠定了坚实基础。
文件名 | 描述 |
---|---|
mkfs | 构建和运行Xv6内核 |
README | 项目简介和说明 |
doc | 项目的比赛报告 |
kernel | 内核源代码目录 |
user | 用户源代码目录 |
dockerfile | docker编译相关文件 |
docker-compose.yml | docker编译相关文件 |
start_docker.sh | 快速启动docker环境 |
LICENSE | 项目的许可证文件 |
Makefile | 项目的Makefile文件 |
- Ubuntu 22.04 & Arch
- gcc RISC-V 交叉编译器,QEMU模拟器
本项目配置了docker
包,可以快速一键启动:
# 拉取 docker 包
docker pull linermao/xv6-riscv-env:latest
# 快速启动,进入 docker 环境
./start_docker.sh
也可以本地编译:
# 修改 docker-compose.yml
..
# dockerfile: linermao/xv6-riscv-env
dockerfile: dockerfile
..
# learnos/
make qemu
make qemu-gdb
-
实现基于优先级的多级反馈队列调度算法,允许抢占式调度,提高系统的响应速度和吞吐量
-
引入
CPU
亲和性的进程调度,并对内存管理模块的buddy
和slab
进行优化,为每个CPU
引进缓存,提高cache
的命中率 -
引入线程概念,实现用户级线程和内核级线程
-
为信号量集引入内核级别的死锁的检测与预防机制
-
实现内存的页缓存
-
实现信号机制
-
实现文件映射和匿名映射
-
实现虚拟文件系统
-
实现基于
FAT32
的文件系统 -
提供除串口I/O设备以外的更多的设备支持
-
完善网络模块,提供本地socket接口和与硬件接口交互的网络驱动程序
-
完善用户态应用程序的生态,引入代码编辑器,编译器等工具链