-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rCore-Tutorial-Book-v3/chapter4/9answer #175
Comments
缺页异常是否有些不合适呢?题设给出的是访问超出当前程序逻辑地址范围内的地址,那么这种访问会在MMU进行逻辑地址检查时候就会出现异常,这种异常叫做内存异常是否会更好一些呢? |
为何使用虚拟内存之后 sys_get_time 会失效?我理解 sys_get_time 最终只是读取 0xC01 的CSR,并没有读写内存的操作,不太理解? |
我之前看漏了,原来 sys_get_time 是有一个指针参数的 😂 还有一个疑问就是编程题第二题 “任务和操作系统内核共用同一张页表的单页表机制”,按照我的理解是不是就只能放到同一个地址空间里了?让不同的任务用不同的区域,这样好像就变回了第四章之前的物理内存布局 |
@kayoch1n 不是的,是说每个进程一个页表,低地址空间为应用的数据,高地址空间为内核的数据。所有进程共享高地址空间的内核数据,但低地址空间的应用数据每个应用是不同的。 |
这个说法是否不太严谨?页式虚存能够解决外碎片,但是只能在一定程度上缓解内碎片的产生,但不能根治吧,它相对于固定分区的情形肯定是在内碎片上优化了很多,但还是会有内碎片。 |
@chestNutLsj 确实不太严谨,已修改。 |
问答题第五题,页目录表(一级页表)不应该一直长驻内存吗,二级、三级也变可能会缺页,但一级页表不会发生缺页吧 |
我想请问一下,我该怎么触发缺页异常呢,按照我的理解我们在qemu上模拟的时候都没有单独模拟磁盘,我现在想通过使用有效位和第54位(预留位)来表示页面是否位于内存中,但是使用预留位之后我在更新TLB的sfence.vma指令处,程序就没法执行了,感谢解答 |
第6题实现自映射页表
重新思考了下, 参考了rcore自映射和这里的实现, 都不太正确, 在L2页表里增加recursive_index+1的entry的方式只能提供L2页表本身的访问, 并不能访问L1和L0; 且这是在牺牲了整个(recursive_index+1, .., .., ..)的空间下做到的, 不太优雅(相比于x86的自映射) |
练习参考答案 - rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档
http://rcore-os.cn/rCore-Tutorial-Book-v3/chapter4/9answer.html
The text was updated successfully, but these errors were encountered: