摘要: 思考题 Thinking 4.1 思考并回答下面的问题: 内核在保存现场的时候是如何避免破坏通用寄存器的? 通过SAVE_ALL将所有通用寄存器的值存入sp中 系统陷入内核调用后可以直接从当时的$a0-$a3 参数寄存器中得到用户调用msyscall 留下的信息吗? 可以 我们是怎么做到让sys 开 阅读全文
posted @ 2020-08-26 09:54 bl水滴 阅读(1254) 评论(0) 推荐(2) 编辑
摘要: 思考题 Thinking 3.1 为什么我们在构造空闲进程链表时必须使用特定的插入的顺序?(顺序或者逆序) 为了保证链表中Env块的顺序和在envs中的顺序相同 Thinking 3.2 思考env.c/mkenvid 函数和envid2env 函数: • 请你谈谈对mkenvid 函数中生成id 阅读全文
posted @ 2020-08-26 09:52 bl水滴 阅读(1558) 评论(0) 推荐(0) 编辑
摘要: 思考题 Thinking 2.1 请思考cache用虚拟地址来查询的可能性,并且给出这种方式对访存带来的好处和坏处。另外,你能否能根据前一个问题的解答来得出用物理地址来查询的优势? 用虚拟地址查询的好处是不需要经过tlb和页表查询,如果cache命中的话极大地提高了性能。坏处是多个虚拟地址有可能对应 阅读全文
posted @ 2020-08-26 09:50 bl水滴 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 一.实验思考题 Thinking 1.1 也许你会发现我们的readelf 程序是不能解析之前生成的内核文件(内 核文件是可执行文件) 的,而我们刚才介绍的工具readelf 则可以解析,这是为什么 呢?(提示:尝试使用readelf -h,观察不同) 数据一个是小端存储一个是大端存储 Thinki 阅读全文
posted @ 2020-08-26 09:48 bl水滴 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 实验思考题 思考0.1 通过你的使用经验,简单分析 CLI Shell,GUI Shell **在你使用过程中的各自优劣(**100 字以内) GUI界面清晰且易于理解,不需要太多专业知识的人也可以轻松使用,但是操作时无法得知背后的具体实现原理是什么。 CLI通过命令行控制程序,控制更为细致和具体, 阅读全文
posted @ 2020-08-26 09:45 bl水滴 阅读(1441) 评论(0) 推荐(0) 编辑
摘要: 第四单元作业架构梳理 第一次作业的时候一下子拿到官方包的一堆代码比较茫然,所以在设计的之后更偏向于完成任务而没有太重视设计是否符合oo的要求。总体上的思路有点像装饰者模式,因为官方包中每个UmlElement储存的信息用于查询需要反复沿着储存的树形结构遍历,效率十分低下,所以就想把每个元素相关的信息 阅读全文
posted @ 2020-06-16 14:48 bl水滴 阅读(223) 评论(0) 推荐(0) 编辑
摘要: JML语言基础 1.1原子表达式 \result表示方法执行后的返回值 \old(expr)表示表达式expr在相应方法执行前的取值,涉及到对象时只能判断对象引用是否发生变化,而不能判断引用所指向的对象实体内容是否发生变化 \not_assigned(x,y..)表示括号中变量是否在方法执行过程中被 阅读全文
posted @ 2020-05-22 09:28 bl水滴 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 设计策略 本单元作业最大的进步大概就是三次作业基本沿用了相同的设计架构,不再像第一单元一样每次作业基本都要重构才能实现相应功能,而是在前一次的作业基础上稍作修改即可。这一点我觉得很不错。 在设计第一次作业时,通过查看往年学长们的博客我了解到未来电梯可能会出现一部变为多部、并且只能停靠特殊楼层的情况。 阅读全文
posted @ 2020-04-16 09:03 bl水滴 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 第一单元作业总结 一.程序结构分析 第一次作业 第一次作业还完全没有面向对象的概念,仅有的常数和幂函数两种情况还被我和合并成一个Term类处理了。可以看到复杂度较高的分别是多项式转字符串、解析读入系数、项转字符串三个方法。 其中项转字符串确实是因为需要分类讨论的情况比较多导致复杂度高,不过感觉应该也 阅读全文
posted @ 2020-03-20 22:17 bl水滴 阅读(205) 评论(0) 推荐(0) 编辑