Zhixin Cai

BUAA-OS-lab2

lab2 实验报告 思考题 Thinking 2.1 C 语言中指针变量储存的地址是虚拟地址,汇编代码中 lw 和 sw 指令中使用的地址也是虚拟地址。 Thinking 2.2 使用宏来实现链表的好处主要体现在以下几个方面: 代码复用:宏可以使链表的定义和操作变得通用,不受特定数据类型的影响。通过宏,可以在不同的数据结构中重用相同的链表实现代码,只需简单地将链表节点中的数...

BUAA-OO-Unit4

BUAA-OO-Unit4 本单元所实践的正向建模与开发 本单元主要是完成了一个图书管理系统的设计,实际上就是一个大模拟。 所谓 正 向设计简单来说就是从概念——实物,这一过程利用绘图或建模等手段预先做出产品设计原型,然后根据原型制造产品。 而在这一单元,课程组的目标也是鼓励我们借助 UML 图进行正向建模设计与开发。因此,整个单元作业的完成步骤也是,先画出大致的 UML 图,然后根...

BUAA-OO-Unit3

BUAA-OO-Unit3 测试过程 这一单元的测试包括了课程组提供的 junit 测试练习,和课下对自己代码的测试。 junit 测试练习主要是使用随机数据生成后检查方法调用结果是否和 jml 语句预期相同,以及一开始往往被忽略掉的 pure 属性是否满足。 对自己代码的测试,正确性使用了随机生成数据并与同学对拍的方法来检验;时间复杂度则主要靠自己对代码方法的分析来把控(因为自己很...

BUAA-OO-Unit2

BUAA-OO-Unit2 同步块的设置 在三次作业中,我都只使用了 synchronize 关键字来设置同步块、以及定义 synchronize 方法来进行多线程临界区的管理。 事实上,尽管经历了三次迭代,身边有的同学对代码架构进行了大刀阔斧的改动;但是我从头到尾都是以第一次作业建立起的生产者消费者模式为整体架构,以及多线程之间的实现。并没有在其它方面引入多线程,自然而然的,也就只有...