diff --git a/docs/OSTrain2018docs-g4/expr4/report.md b/docs/OSTrain2018docs-g4/expr4/report.md index ad42dfd..14007ab 100644 --- a/docs/OSTrain2018docs-g4/expr4/report.md +++ b/docs/OSTrain2018docs-g4/expr4/report.md @@ -50,7 +50,31 @@ Rust OS riscv32中之前并未实现page fault的异常处理, 目前已经加 ## 4 测试结果 ### 4.1 用户程序测试结果 -@刘辰屹 将最开始的RustOS版本与现在版本的用户程序运行结果进行对比 +目前用户程序测试结果如下: + +| 测试程序 | 原始RustOS是否通过 | 是否通过 | 错误原因分析 | +| :------: | :------: | :------: | : ------: | +| waitkill | 通过 | 通过 | | +| sleep | 通过 | 通过 | +| spin | 通过 | 通过 | +| sh | 未通过 | 未通过 | unknown syscall id: 0x66, args: [0, 7000ff97, 1, 7000ff70, 25, 73]
可能是由于尚未实现sh这一系统调用,用户进程正确终止 | +| forktest | 通过 | 通过 | | +| faultread | 通过 | 通过 | [INFO] open: path: "stdin:", flags: 0
[INFO] open: path: "stdout:", flags: 1
[ERROR] Process 2 error
系统似乎成功处理了该异常并正确结束该进程? | +| forktree | 未通过 | 通过 | | +| divzero | 通过 | 通过 | | +| yield | 通过 | 通过 | +| faultreadkernel | 通过 | 通过 | 原因同faultread | +| exit | 通过 | 通过 | | +| softint | 未实现? | 同上次 | 用户进程正确终止 | +| badsegment | 通过 | 通过 | | +| hello | 通过 | 通过 | | +| ls | 未实现 | 未实现 | | +| priority | 通过 | 通过 | | +| badarg | 未通过 | 未通过 | PANIC in /home/lcy1996/.rustup/toolchains/nightly-2018-09-18-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/slice/mod.rs at line 2046
index out of bounds: the len is 48 but the index is 4294967295
内核bug?错误原因需要进一步探索 | +| testbss | 未通过 | 未通过 | 程序未能输出完整运行结果,可能陷入了死循环,原因未知 | +| pgdir | 未通过 | 未通过 | [ERROR] unknown syscall id: 0x1f, args: [a, ffff6ad9, 2, 0, 15, ffffffff]
阅读syscall.rs推测原因是尚未实现0x1f(PGDIR)这个系统调用,用户进程正确终止 | +| matrix | 通过 | 通过 | | +| sleepkill | 未通过 | 通过 | | ### 4.2 同步互斥测试结果 目前进程相关系统调用与同步互斥测试未发现异常。