「操作系统」BUAA-OS-2023

浅浅放个 github 仓库以供参考,后期可能会完善(鸽),并写一些 OS 比赛的东西

发布于 课程备忘

「编译原理」文法

文法 \(G=(V_n, V_t, P, Z)\) \(G\) 文法 \(V_n\) 非终结符号集 \(V_t\) 终结符号集 \(P\) 产生式或规则的集合 \(Z\) 开始符号(识别符号) \(V\) 词汇表,\(V=V_n\cup V_t\) 规则是一个有序对,通常写为 \(U\rightarrow x\),其中 \(U\in V_n,x\in V^{*}\) 类...

发布于 课程备忘

「面向对象」Unit-4

最折磨的一集 建模 为了完成作业,我采取了先写代码再反向完成类图的方式。 架构思想 这几次代码我都是按照生活中的常识进行的架构设计, 但是在后期发现了许多的冗余类,于是进行了简化设计。 迭代过程中基本上没有进行大的架构变革, 而是基于几次测试新增的要求进行更新。 与设计要求不太相同的是, 我设计中的「书」更像是单纯的实体, 它本身没有状态, 所谓的「状态」由书在前所在的位置决定。 这样的...

发布于 课程备忘

「数学」生成函数

组合排列 核心:数列卷积转化为多项式卷积转化为函数乘法 设集合 A 的 n 组合方案数为 \(a(n)\), 集合 B 的 n 组合方案数为 \(b(n)\), 同时 \(A\cap B=\emptyset\), 那么集合 \(H=A\cup B\) 的 \(n\) 组合方案数为两者的卷积: \[ h(n)=\sum_{k=0}^{n}a(k)*b(n-k) \] 这符合多项式乘法的形式,对...

发布于 课程备忘

「面向对象」Unit-3

分析本单元的测试过程 测试类型 黑箱测试 测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。 在本单元的课程中就是根据 JML 规范来制定相应的测试用例,比如调用的 OKTest 方...

发布于 课程备忘

「面向对象」Unit-2

第五次作业 本次作业由两个大的任务组成: 电梯运行策略 多线程设计 电梯运行策略 想必大家在等电梯的时候,都会疑惑电梯是怎么调度的,甚至想「这方案太()了,假如(),肯定效率更高」 原本想实现一个最优方案,在尝试查找电梯调度方面的论文后, 却发现不同的策略在不同的情况下有不同的优势,很难说有一种最优的方案。 仔细想想也确实如此。电梯是一个实时响应的系统,它不能预测未来,故只能选择当前条件...

发布于 课程备忘

「面向对象」Unit-1

第一次作业 整体架构 整体架构 形式化表述 原始规则 \[ \begin{align*} \texttt{Expr}\rightarrow\ &\texttt{White}\ [\texttt{PlusMinus}\ \texttt{White}]\ \texttt{Term}\ \texttt{White} \\ |\ &\texttt{Expr}\...

发布于 课程备忘

「计算机组成」P7 支持异常的流水线 CPU

P7 中最重要的概念就是 异常,本文的全部内容都将围绕 异常 一词进行叙述 而系统桥等内容在本文中不会提及,请结合教程自行学习 什么是异常 在 MIPS 体系结构中,中断、自陷、系统调用以及其他打断程序正常执行流的事件统称为异常 See MIPS Run Linux 本文中的 异常 与 See MIPS Run Linux 中的定义一致。 需要注意到异常是一个中性词 为何要有异常 异常的...

发布于 课程备忘

「计算机组成」P6 支持更多指令的流水线 CPU

结构 CPU 数据通路结构 设计思路 实际上,从 P5 到 P6 是一个轻松而惬意的过程。 因为大部分的数据通路在 P5 时已经设计完成,在 P6 只需要针对新增指令修修补补即可 唯一需要稍微注意的是新增的乘除模块 乘除模块和 ALU 模块并没有本质上的区别。不过 CPU 实现乘除操作需要进行的操作复杂,关键路径较长,其耗时比加减法要高出一个数量级 那么,如果将乘法操作直接加入到 ALU 中...

发布于 课程备忘

「计算机组成」P5 流水线 CPU

结构 CPU 数据通路结构 设计思路 从单周期到流水线 首先需要明白的是,单周期 CPU 和多周期 CPU 并没有本质上的区别 CPU 处理指令时,由于数据操作逻辑上的先后,不同的元件难以并行运行同一条指令 但如果将指令抽象地划分为几个互不影响的阶段, 不同的阶段便可以并行地运行不同的指令,也就是所谓的多周期 CPU 既然需要同时运行不同的指令,每个流水级就必须保存当前处理指令的信息。 这里...

发布于 课程备忘