BUAA OO Unit 2 总结博客HW2-1题目要求与分析本次作业的基本目标是模拟单部多线程电梯的运行。第一次作业只要是起到多线程入门的作用,让我们初步了解多线程的实现方法以及注意事项。数据结构为了让作业有更好的扩展性(其实并没有),我将电梯与调度器分离开,调度器采用工厂模式,分为 Morning, Random 和 Night 三种策略去实现。用 Request 存储所有输入的
转载
2021-05-13 20:17:04
132阅读
2评论
面向对象设计与构造 第二单元总结本单元三次作业内容为模拟电梯的运行,主要涉及的知识点为多线程。第一次作业为单部电梯,需要模拟电梯的开关门、上下行、乘客的进出等;第二次作业增加为3部电梯,并可以根据指令动态增加电梯;第三次作业在第二次作业的基础上设置了不同的电梯类型,不同的电梯运行速度、可到达楼层不同,并且乘客在运送的过程中允许换乘。总体来说,三次作业都侧重于多线程的处理,并且每次作业都是在上一次的
转载
2021-05-13 20:37:39
109阅读
2评论
BUAA OO 第二单元总结 线程架构 以下为各个线程类的作用及含义: 类名含义 inputThread 输入线程,将输入乘客加入waitQueue schedulerThread 调度线程,通过调度策略,将waitQueue分配到多个processQueue中 elevatorThread 处理p ...
转载
2021-04-23 16:27:00
78阅读
2评论
实 验 报 告课程:计算机网络 班级:1753 姓名:江野 学号:20175319 成绩: 指导教师:池亚平 实验日期:2019.4.27实验密级: 预习程度: 实验时间:10:00—12:15仪器组次 必修/选修:选修 实验序号:课外实验一实验名称:计算机网络课外微实验一级实验目的与要求:加强我们对计算机网络的实际功能的了解;增强我们的自
BUAA_OO_UNIT2一、同步块和锁第一次作业: 第一次作业比较简单,锁作用的对象只有一个schedule,它是仅有的两个线程输入线程和电梯线程的共享对象,这次作业并未设置调度器。 输入线程只有向schedule中加人和为schedule设置结束位的时候需要拿到锁,加人时拿锁是为了防止电梯线程取人的过程和加人的过程出现冲突,造成线程安全问题。而设置终止的时候加锁,是为了防止电梯线程读取sc
转载
2021-05-13 20:33:29
103阅读
2评论
题目描述 gg最近想给女友送两个精美的小礼品:两个底面半径分别为R1和R2的圆柱形宝石,并想装在一个盒子里送给女友。 好不容易找到了一个长方体的盒子,其底面为A*B的矩形,他感觉好像宝石装不进去,但又不敢轻易塞进去试试。 现请你帮他判断两个宝石能否放进盒子里(宝石只能竖直放置,且不能堆叠)。 输入
原创
2021-07-15 11:44:25
68阅读
BUAA_OO_UNIT3 简述 这一单元是整个学期的第三单元,第三单元是JML契约式编程。JML语法和高级语言语法类似,学习起来比较容易,上手比较快,参考课程组发布的JML Level 0手册,可以毫无障碍地理解JML的语义。本单元的任务是将助教们书写的JML转化成为自己的程序代码,和课程组下发的 ...
转载
2021-05-30 23:36:00
209阅读
2评论
OO第一单元总结一、程序结构分析第一次作业设计:设计思路:第一次作业的表达式的基本形式较为简单,只有很简单的求导模式,对每一个项,不论因子有多少,总可以写成axb形式,而其求导的结果是ab****x****(b-1),是一个相对固定的结果,因此不必再建立乘法求导法则或是链式求导法则,而是直接按照公式根据项的系数和指数,直接输出求导后项的结果,再利用输出的方法来输出符合格式要求的表达式。UML类图:
转载
2021-03-27 09:57:29
128阅读
2评论
BUAA_OO_2021_Unit2_Summary(1)基于度量来分析自己的程序结构第一次作业第一次作业为单部电梯,不需要调度器,故基于多线程的考虑,构造接收请求的Dispatch类和实现请求的电梯elevator类,两者均继承Thread类且并行;另外出于线程安全的考虑,构造了WaitingPassenger类封装请求,Dispatch和elevator接收同一个waitingPassenge
转载
2021-05-13 20:37:58
168阅读
2评论
OO-Blogs Unit2单元简介本单元通过迭代开发,最终实现了多种类多电梯(可换乘)调度管理。HW1要求单电梯,有载客量限制,调度无要求但性能不应低于ALS调度。思路和实现这次的需求不算复杂,只需要一个输入线程和一个电梯线程即可实现。为了扩展性,我在输入线程和电梯线程中间插了一个调度器,为后面多电梯的场景留出修改的空间。然而由于这时我并没有感受到到调度器线程的意义所在,故我将调度器和输入线程串
转载
2021-05-13 20:19:11
167阅读
2评论
OO第二单元博客总结 引言 第二单元的作业以Java多线程设计为重点,通过电梯调度的设计,来掌握多线程的设计与处理,以及理解生产者—消费者模式、多个线程的交互、线程安全等方面的知识。 这一次的作业,对我来说是难度逐步递减的,第一次因为对多线程不熟悉,写的很慢,同时线程安全性也存在问题,导致最终到了d ...
转载
2021-04-25 00:28:00
310阅读
2评论
BUAA_OO_第四单元总结(UML) 第四单元架构设计 本单元作业由于并没有什么迭代难度,只需要根据新需求添加相应的解决方案即可,因此并没有出现像第一单元,第二单元那样难以预测新增需求导致重构的问题。因此,这里只选取本单元最后一次作业的架构来说明。 架构图 架构说明 在本单元实现时,我选择了按需架 ...
转载
2021-06-23 23:36:00
188阅读
2评论
Lab0实验报告 一、思考题部分 思考0.1 关于GUI Shell的优势的地方是:拥有好看的用户界面,并且很大程度上方便用户进行简易的操作,具有很好的用户体验。相对劣势的地方:对于程序员或者系统开发人员,对深入理解计算机系统原理没有很大的帮助。 关于CLI Shell的优势的地方是:对于系 ...
转载
2021-08-15 17:09:00
733阅读
2评论
JML单元,对 JML 规格的理解和代码实现
BUAA 面向对象课程 第三单元总结
JML单元,对 JML 规格的理解和代码实现
一、实现规格所采取的设计策略
JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。JML是一种行为接口规格语言(Behavior Interface Specification Language, BISL),基于L
转载
2021-05-30 12:11:00
233阅读
2评论
1.总结本单元作业的架构设计 本次作业三种UML图:类图,顺序图和状态图。三次作业的架构几乎是一致的,有的只是对前一次架构的添加,很少有对前一次架构的修改,就直接拿最后一次作业的架构来讲好了。 整个的架构十分简洁(简单),没有根据三种图的类型再进行整合,直接根据需要从哈希表或者是列表中取出。自己编写 ...
转载
2021-06-22 23:41:00
151阅读
2评论
lab2实验报告 实验思考题 2.1 请思考cache用虚拟地址来查询的可能性,并且给出这种方式对访存带来的好处和坏处。另外,你能否能根据前一个问题的解答来得出用物理地址来查询的优势? 使用虚拟地址的cache时,优点在于查询cache前不用访问TLB和二级页表进行地址转换。 缺点在于一旦cache ...
转载
2021-08-15 17:12:00
1135阅读
2评论
lab4实验报告 思考题 4.1 思考并回答下面的问题: 内核在保存现场的时候是如何避免破坏通用寄存器的? 系统陷入内核调用后可以直接从当时的$a0-$a3 参数寄存器中得到用户调用msyscall 留下的信息吗? 我们是怎么做到让sys 开头的函数“认为”我们提供了和用户调用msyscall 时同 ...
转载
2021-08-15 17:18:00
1446阅读
2评论
lab3实验报告 思考题 3.1 为什么我们在构造空闲进程链表时必须使用特定的插入的顺序?(顺序或者逆序) 完成空闲链表的插入后,envs数组下标正好对应链表中的由前到后的顺序,因此调用空闲进程数组时优先调用下标最小的。 3.2 思考env.c/mkenvid 函数和envid2env 函数: 请你 ...
转载
2021-08-15 17:13:00
1563阅读
2评论
lab5实验报告 思考题 5.1 查阅资料,了解 Linux/Unix 的 /proc 文件系统是什么?有什么作用?Windows 操作系统又是如何实现这些功能的?proc 文件系统的设计有哪些好处和不足? 与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统)。 存储的是当前 ...
转载
2021-08-15 17:20:00
1161阅读
2评论
lab1实验报告 实验思考题 1.1 也许你会发现我们的readelf程序是不能解析之前生成的内核文件(内核文件是可执行文件)的,而我们之后将要介绍的工具readelf则可以解析,这是为什么呢?(提示:尝试使用readelf -h,观察不同) 通过linux内置的readelf工具即使用read ...
转载
2021-08-15 17:11:00
1331阅读
2评论