《林宇轩-NPUcore分享内容.pdf》由会员分享,可在线阅读,更多相关《林宇轩-NPUcore分享内容.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、NPUCore基于RV平台和Rust的小型竞赛操作系统的设计与优化队员:黄赵翔(内存&进程)林宇轩(Fat32&扩展内容支持)管孙笛(文件系统&缓存)指导老师:张羽目录1NPUcore概述2资源受限问题&优化策略可靠性问题&优化策略3指导老师:张羽队员:黄赵翔,林宇轩,管孙笛NPUCoreNPUcore概述1功能功能 基于rCore-Tutorial迭代开发,重构90%模块以支持Linux接口 实现系统调用81个,满分通过libc-test 自编总代码量超过2万行 k210榜单上唯一功能完整(能够通过所有性能测试项)的队伍 命令行交互支持:bash shell&busybox 工具箱 开发环境
2、支持:vi,nano 编辑器&TCC(Tiny C Compiler)编译器运行平台运行平台 同时支持QEMU模拟器,K210/U740三个平台(到决赛二阶段仍支持双赛道的唯一队伍)性能性能 U740平台上80%性能测试项超越基准NPUcore概述(1)1K210最终测评榜单截图(8月21日)初赛(2022.01-2022.06)决赛一阶段(2022.06-2022.07)决赛二阶段(2022.08)K210赛道满分块缓存与页缓存ELF加载信号机制写时复制1.Fat32文件系统教程2.bash、busybox、lmbench支持3.反馈rCore漏洞多线程支持动态链接库加载vfs目录树架构sw
3、ap和zRAMK210 SD卡驱动修复U740适配K210&U740双赛道满分1.3份技术细节文档2.4份debug文档3.libc-test支持1.4份技术细节文档2.3份debug文档3.扩展内容(vi,nano,TCC)支持完善TTY功能支持优化页面置换vfs缓存优化减少拷贝K210赛道性能第四U740赛道性能第三NPUcore概述(2)参赛历程演示视频(bash,vi,nano,tcc)扩展内容Demo1资源受限问题&优化策略a时空优化 关键系统调用优化b时空优化 文件系统缓存优化c空间优化 内存管理空间优化2指导老师:张羽队员:黄赵翔,林宇轩,管孙笛NPUCore时空优化 关键系统调
4、用优化exec系统调用优化(1)20.5020280.6897120.006010.595360.0010.010.1110100读入ELF文件 打开ELF文件初始化参数压栈图a1 UltraOS队exec系统调用各部分耗时(单位:秒)实验方法:exec调用了10次busybox,在系统内插入采集时延的观测点,利用日志输出相应时延数据实验结果:发现“读入ELF文件的时延占整个系统调用时长的96.45%”a时空优化 关键系统调用优化exec系统调用优化(2)图a2 UltraOS与rCore加载ELF文件过程示意图ELF文件加载时延大的原因分析:发现“复制冗余”问题问题1(一次调用多次复制):E
5、LF文件内容多次Copy(Block Cache-ELF buffer-User Space),时延大问题2(重复调用多次复制):每次读取ELF文件时,存在重复读取,又进一步加大时延a时空优化 关键系统调用优化exec系统调用优化(3)复制次数多冗余巨大零拷贝直接映射.text段和.rodata段aELF Caching缓存ELF文件,将共享推广到时间维度每次要重复读取写时复制将数据段共享推广到父子进程间只读段占比高且对齐图a3 页缓存管理时空优化 关键系统调用优化exec系统调用优化(4)a2037630.75261.381145184.621729.7857663.437514199931
6、76.51364.751101001000100001000001000000UltraOS未实现零拷贝实现零拷贝零拷贝前后的时延性能对比(单位:ms)shellexecfork图a4 页缓存管理图a5 页缓存管理资源受限问题&优化策略a时空优化 关键系统调用优化b时空优化 文件系统缓存优化c空间优化 内存管理空间优化2指导老师:张羽队员:黄赵翔,林宇轩,管孙笛NPUCore图b1 UltraOS文件系统缓存过程示意图时空优化 文件系统缓存优化(1)问题b图b1 UltraOS文件系统缓存过程示意图图b2 NPUcore文件系统缓存优化方法(只复制一次)