自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 BUAA OS Lab6 实验笔记

示例代码中,父进程操作管道的写端,子进程操作管道的读端。如果现在想让父进程作为“读者”,代码应当如何修改?

2024-06-13 13:22:50 1305

原创 BUAA OS Lab5 实验笔记

如果通过kseg0读写设备,那么对于设备的写入会缓存到Cache中。这是一种错误的行为,在实际编写代码的时候这么做会引发不可预知的问题。请思考:这么做这会引发什么问题?对于不同种类的设备(如我们提到的串口设备和IDE磁盘)的操作会有差异吗?可以从缓存的性质和缓存更新的策略来考虑。​ 操作系统通过对kseg0的地址进行写入来操作外设,但是最新的数据写入了cache,这一部分数据在下一次TLB Miss时才会写回主存,使得kseg0内的数据同步。但是在cache。

2024-06-13 13:21:10 893

原创 BUAA OS Lab4 实验笔记

思考并回答下面的问题:• 内核在保存现场的时候是如何避免破坏通用寄存器的?• 系统陷入内核调用后可以直接从当时的$a0$a3参数寄存器中得到用户调用msyscall留下的信息吗?• 我们是怎么做到让sys开头的函数“认为”我们提供了和用户调用msyscall时同样的参数的?• 内核处理系统调用的过程对Trapframe做了哪些更改?这种修改对应的用户态的变化是什么?1.内核保存现场使用了中的SAVE_ALL宏,其中将除了k0的所有通用寄存器按照顺序放入了栈帧,从而避免了破坏。k0及k1。

2024-06-13 13:20:05 1041

原创 BUAA OS Lab3 实验笔记

​是当前进程对应的页目录初始地址,PDX(UVPT)是UVPT地址所对应的页目录号,我们想要共享的区域正是从UVPT开始的。是页目录的物理地址,即页表里将要存放的内容,之后在通过| PTE_V设置该项的访问权限。这样,当我们通过页目录访问UVPT时可以得到页目录自身的地址,页目录中就必然有一项映射到页目录自身,即实现了页目录自映射。通过访问PDX(UVPT)开头的地址可以访问到所有二级页表项。

2024-06-13 13:18:37 1515

原创 BUAA OS Lab2 实验笔记

虚拟地址。因为C程序中指针的值被视作虚拟地址。虚拟地址。lw和sw为访存指令,访存目标地址均为虚拟地址。

2024-06-13 13:16:57 1414

原创 BUAA OS Lab1 实验笔记

预处理后:编译后进行反编译:发现main段的所对应的机器码为,说明此时地址还未填入。链接后进行反编译:经过链接后,此时的main中call一句变为,左侧机器码部分也填入了具体地址,说明完成了重定位操作。预处理后:编译后进行反编译:此时可以看到,jalr指令的位置$t9尚未初始化,$v0的值为0。链接后进行反编译:此时jalr指令的位置$t9已经成功初始化,完成了重定向工作,$v0的值不再为0。有关objdump的作用是反编译出目标文件的全部节;-S。

2024-06-13 13:13:00 774

原创 BUAA OS Lab0 实验笔记

在执行后,README.txt处在的位置是,表示当前的文件尚未被所在的git仓库追踪,处于未追踪状态。在执行add命令后,README.txt被仓库追踪,此时处于暂存状态,存于本地仓库中。因此显示README.txt处在的位置是,即该变化尚未被提交到远程仓库中。对README.txt进行修改后,该文件的状态就变为被修改状态,且该修改尚未被同步到本地仓库中。因此显示其处于。

2024-06-13 13:06:48 773

原创 北航面向对象设计与构造第四单元总结

OO课程马上就要结束了,接下来对我这一学期的整体学习情况和学习收获做一个简要总结。

2024-06-11 21:45:59 1029 1

原创 北航面向对象设计与构造第三单元总结

面向对象设计与构造课程的第三单元终于结束了。这一单元专注于培养学生的规格化设计能力。接下来我将基于我的个人代码进行一些介绍分析,并对个人第三单元的学习状况进行简要总结与分享。

2024-05-17 15:32:50 705

原创 北航面向对象设计与构造第二单元总结

面向对象设计与构造课程的第二单元终于结束了。这一单元专注于培养学生线程并发处理相关与线程安全相关的设计构造能力。接下来我将基于我的个人代码进行一些介绍分析,并对个人第二单元的学习状况进行简要总结与分享。

2024-04-16 17:26:20 896 8

原创 北航面向对象设计与构造第一单元总结

如下方的UML类图所示:代码的整体结构分为六个部分(不同的部分在上方UML类图中用不同的颜色进行标识):主函数部分,预处理部分,计算逻辑部分,文法分析部分,工具部分以及输出部分。主函数部分(即Main类)是程序的入口。预处理部分包含Preprocess类,Function类和BraketFinder类。Preprocess类的作用是在具体进行文法分析之前对输入的字符串进行预处理工作,这其中包括去除空白字符,替换多余的正负号,记录自定义函数信息,化简自定义函数之间的嵌套等等。

2024-03-20 09:08:26 1166 6

原创 oopre总结反思

由于本学期一开始对oopre相关思想的不适应,以及对Java中部分内容的不熟悉,本项目的代码并未实现良好的层次化管理,逻辑不够清晰,各部分出现了强耦合的情况。应当将其封装起来作为一个新的类。在面向对象编程中,应该考虑更多的是类与类间的逻辑,类与类如何更加高效地协作,类与类之间也会有机地影响彼此。此外,我体会到根据待解决的问题的特点,以及问题可能的变化,时刻考虑进行代码的重构是很重要的,这有助于减少代码的腐化。可以先在较顶层的方法中测试,如果出现测试未通过的现象,则再对其调用的方法进行逐一测试排查问题。

2023-11-04 20:54:15 231 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除