BUAA-OS-lab2
lab2 实验报告 思考题 Thinking 2.1 C 语言中指针变量储存的地址是虚拟地址,汇编代码中 lw 和 sw 指令中使用的地址也是虚拟地址。 Thinking 2.2 使用宏来实现链表的好处主要体现在以下几个方面: 代码复用:宏可以使链表的定义和操作变得通用,不受特定数据类型的影响。通过宏,可以在不同的数据结构中重用相同的链表实现代码,只需简单地将链表节点中的数...
lab2 实验报告 思考题 Thinking 2.1 C 语言中指针变量储存的地址是虚拟地址,汇编代码中 lw 和 sw 指令中使用的地址也是虚拟地址。 Thinking 2.2 使用宏来实现链表的好处主要体现在以下几个方面: 代码复用:宏可以使链表的定义和操作变得通用,不受特定数据类型的影响。通过宏,可以在不同的数据结构中重用相同的链表实现代码,只需简单地将链表节点中的数...
lab1 实验报告 思考题 Thinking 1.1 不妨先编写一个简单的 C 程序 helloworld.c。 #include <stdio.h> int main() { printf("hello world!\n"); return 0; } 然后,我们首先对这个文件进行预处理(不进行编译和链接),并将结果输出到一个文件 temp 里。 执...
lab0 实验报告 思考题 Thinking 0.1 执行 git status > Utracked.txt 后,观察文件内容不难发现,此时有两个文件 README.txt 和 Untracked.txt 是 Untracked 的,此时它们处于工作区,没有进入暂存区。 执行 git add . 和 git status > Stage.txt 之后,观察 Stage....
Challenge Sigaction 实现文档 代码改动与说明 include/env.h 在这里添加了新结构体定义、宏定义,并给 Env 进程块结构体添加新的必要信息。注意为了实现队列,在 sigset_t 结构体中添加了 TAILQ_ENTRY 成员变量。在进程块中添加的信息有:注册新号的信息、信号队列、掩码栈、信号处理函数入口、当前正在处理的信号。 ...
BUAA-OO-Unit4 本单元所实践的正向建模与开发 本单元主要是完成了一个图书管理系统的设计,实际上就是一个大模拟。 所谓 正 向设计简单来说就是从概念——实物,这一过程利用绘图或建模等手段预先做出产品设计原型,然后根据原型制造产品。 而在这一单元,课程组的目标也是鼓励我们借助 UML 图进行正向建模设计与开发。因此,整个单元作业的完成步骤也是,先画出大致的 UML 图,然后根...
BUAA-OO-Unit3 测试过程 这一单元的测试包括了课程组提供的 junit 测试练习,和课下对自己代码的测试。 junit 测试练习主要是使用随机数据生成后检查方法调用结果是否和 jml 语句预期相同,以及一开始往往被忽略掉的 pure 属性是否满足。 对自己代码的测试,正确性使用了随机生成数据并与同学对拍的方法来检验;时间复杂度则主要靠自己对代码方法的分析来把控(因为自己很...
BUAA-OO-Unit2 同步块的设置 在三次作业中,我都只使用了 synchronize 关键字来设置同步块、以及定义 synchronize 方法来进行多线程临界区的管理。 事实上,尽管经历了三次迭代,身边有的同学对代码架构进行了大刀阔斧的改动;但是我从头到尾都是以第一次作业建立起的生产者消费者模式为整体架构,以及多线程之间的实现。并没有在其它方面引入多线程,自然而然的,也就只有...
BUAA-OO-Unit1 度量分析 代码规模分析 先给出统计的三次作业每次的类数量、每个类的行数以及总代码行数。 和同学对比发现,我的代码结构总体控制的比较良好,总行数比较适中。在迭代中,主要的类始终都没有变化,都是分为Expression, Term, VariableFactor 三层结构。在第二次作业时,由于需要实现拓展函数功能,新增了 InputSolver 类...
构造,模拟 题目链接 智乃的“黑红树” 思路 用两个队列分别维护 当前可用 (当前仍是叶子节点)的红节点和黑节点,然后红节点不够就取出一个黑节点向下连接新的红节点,黑节点不够就取出一个红节点向下连接新的黑节点,最后检查红节点和黑节点的总数是否与给定的一致即可。 代码 #include <bits/stdc++.h> using namespace std; const...
01trie. 题目链接 Tokitsukaze and Min-Max XOR 思路 不难发现,如果有两个数异或起来小于等于 $k$,那么值位于这两个数之间的数选或不选都没有影响,选定两个异或起来小于等于 $k$ 的数,它的贡献为 $2^x$,$x$ 是两个数之间数的个数。 不妨将整个数组排序,对于每一个数,找到它前面所有与它异或起来小于等于 $k$ 的数,然后分别计算贡献。考虑...