Steel Shadow

「芝士介绍」

OS lab6

lab6 实验报告 思考题 示例代码中,父进程操作管道的写端,子进程操作管道的读端。如果现在想让父进程作为“读者”,代码应当如何修改? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include <stdio.h>...

OS lab5

思考题 如果通过 kseg0 读写设备,那么对于设备的写入会缓存到 Cache 中。这是一种错误的行为,在实际编写代码的时候这么做会引发不可预知的问题。请思考:这么做这会引发什么问题?对于不同种类的设备(如我们提到的串口设备和 IDE 磁盘)的操作会有差异吗?可以从缓存的性质和缓存更新的策略来考虑。 在串口设备中,是通过物理内存实时响应的。若在串口设备中使用缓存,...

OO Unit3

架构设计 图模型构建和维护策略 我的类 UML 图如下。 由于课程组给出的 interface 中已给出清晰明确的工程结构,这里仅仅介绍我额外添加的内容。 style 由于 MyNetwork 方法过多,行数超过 checkStyle 500行限制,我将一些方法从 MyNetWork 提取出来,放在 style 文件夹中,提取方法中,第一个参数为 MyNetWork this。 ...

OS lab4

思考题 思考并回答下面的问题: 内核在保存现场的时候是如何避免破坏通用寄存器的? 进入内核态后,使用 SAVE_ALL (include/stackframe.h) 将原 sp 保存在 k0 中,再为 sp 赋为 KSTACKTOP。 将 k0(保存着原 sp)保存至 KSTACKTOP正确位置,将其余通用寄存...

LaTeX 学习摘要

占个坑 2024.1.9 \(\LaTeX\)

ssh连接虚拟机

引言 记录自己使用 ssh 登录 vmware 虚拟机的过程。 理论上可以连接任意远程服务器,此处仅使用虚拟机作为尝试。 本地机ssh配置 ~\.ssh\config 末尾添加 1 2 3 4 5 # 虚拟机ssh连接 Host vm HostName *.*.*.* 这里是远程端/虚拟机的ip地址 Port 22 User 这里是远程端的用户名 远程机...

OS lab3

谨记第一次exam爆零(课下不能有bug)

思考题 Thinking 3.1 请结合 MOS 中的页目录自映射应用解释代码中 e->env_pgdir[PDX(UVPT)] = PADDR(e->env_pgdir) | PTE_V 的含义。 UVPT 是该用户进程 e 的页表虚拟基地址,采用自映射方法,(进程 e 的)页表的第 PDX(UVPT) 个页目录项映射到进程 e 自身页目录的物理地...

OO Unit2

更新 2023.4.20 在复习操作系统期中考时,我终于明白了电梯设计时,与其说是“唤醒指定线程”,不如换个说法“决定线程调度顺序”。 ————线程同步! 在我的架构中,需要先同步各个空闲的电梯,再由调度器分配一个线程运行,指定线程调度顺序。 LockSupport 的实现和 信号量 Semaphore 是类似的,都是线程同步工具。包括 Lock 的 Condition,都可以解决此处...

OO Unit1

2023_BUAA_OO_Unit1_总结 本单元课程主要讲述了OO基本思想、递归下降法、正则表达式等内容。 作业为输入表达式,进行化简输出,第二次迭代添加了嵌套括号以及三角函数Tri,第三次迭代添加了自定义函数处理以及求导功能。 程序结构和架构设计体验 我的架构和程序结构思路是,先字符串层面预处理输入(删除空格符和\t,连续+/-合并为单个),递归下降法解析输入表达式结构为多叉树E...

OS lab2

思考题 请根据上述说明,回答问题:在编写的 C 程序中,指针变量中存储的地址是虚拟地址,还是物理地址?MIPS 汇编程序中 lw 和 sw 使用的是虚拟地址,还是物理地址? C 程序的指针变量存储的是虚拟地址。MIPS汇编中的也是虚拟地址。 请思考下述两个问题: 从可重用性的角度,阐述用宏来实现链表的好处。 ...