[BUAA-OO] Unit 1 总结

架构简介 在本单元中,作业要求我们对提供了形式化表述的复杂表达式进行解析和化简,并要求尽可能简短的输出以度量性能分数。 而经过三次作业迭代(其中包含一次重构),最终架构设计图如下: ...

2025年3月22日 · 8 min · 3912 words · oNya

用Condition干掉notifyAll

synchronized关键字修饰的局部代码块内,我们能通过wait(), notify(), notifyAll()方法来调控线程之间的协作。 notify()和notifyAll()是什么? 我们先定义两个概念,一个是等待池,一个是锁池,它们都是随一个锁而形成的暂存线程的容器。具体来说: ...

2025年3月17日 · 7 min · 3302 words · oNya

[BUAA-OS] Lab 0 实验报告

一、思考题 Thinking 0.1 思考下列有关Git的问题: 在前述已初始化的~/learnGit 目录下,创建一个名为README.txt的文件。执行命令git status > Untracked.txt(其中的 > 为输出重定向,我们将在0.6.3中详细介绍)。 在README.txt 文件中添加任意文件内容,然后使用add命令,再执行命令git status > Stage.txt。 提交README.txt,并在提交说明里写入自己的学号。 执行命令cat Untracked.txt 和cat Stage.txt,对比两次运行的结果,体会README.txt两次所处位置的不同。 修改README.txt 文件,再执行命令git status > Modified.txt。 执行命令cat Modified.txt,观察其结果和第一次执行add命令之前的status是否一样,并思考原因。 1. Untracked.txt $ cat Untracked.txt 位于分支 master 未跟踪的文件: (使用 "git add <文件>..." 以包含要提交的内容) README.txt Untracked.txt 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪) 新建了README.txt文件,处于Untracked状态。 ...

2025年3月16日 · 6 min · 2960 words · oNya

[BUAA-OS] 理论作业 1

点此查看作业源文件 1.什么是多道程序设计?多道程序设计与分时系统的区别是什么? 多道程序设计技术,是指允许多个程序同时进⼊内存并运⾏。即同时把多个程序放⼊内存中,并允许它们交替在CPU中运⾏,共享系统中的各种硬、软件资源,当⼀道程序因I/O请求⽽暂停运⾏时,CPU便⽴即转去运⾏另⼀道程序。多道程序设计技术提⾼了CPU、I/O设备和内存的利⽤率,从⽽提⾼了整个系统的资源利⽤率和系统吞吐量,最终提⾼了整个系统的效率。 ...

2025年3月16日 · 4 min · 1594 words · oNya

[BUAA-OO] Unit 1 递归函数调用的解析与计算

函数调用处理机制 核心思路 实参与形参分离:通过assignment哈希表实现参数映射,实现形参(函数定义时的参数名)与相对实参(调用时传入的具体因子)的对应关系。 递归替换:通过assign方法逐层展开函数调用 终止条件:当递归到初始定义表达式时完成解析 关键实现步骤 数据结构 为函数调用因子引入通过HashMap<String, Factor>实现的新成员变量assignment,并在为语素实现的assign方法中作为传入参数。 ...

2025年3月5日 · 3 min · 1230 words · oNya