
计算机系统
要做好青年
一位有梦想的青年学生
展开
-
计算机系统第八次小班(选题三)
Part2:分析新版本的 tfgets 函数的超时处理功能,以及程序判断输入和错误处理等功能。Part3:个性化先前的代码,增加趣味性以增强用户的尝试欲望。Part1:简要介绍 fgets 函数的相关知识。Part4:展示进一步个性化后的最终代码。原创 2024-11-23 17:33:37 · 180 阅读 · 0 评论 -
HNU计算机系统第七次小班(选题一)
Part1:实现题目所需功能的C代码,并将不同功能写在不同的.C文件,感受分离编译的优势。Part2:演示在gcc环境下的debug过程,并观察相应的.i,.s和.o文件内容。Part3:分析代码形成的目标文件的ELF各部分都有什么内容。Part5:简析链接前的.o 文件和链接后的可执行文件。Part6:尝试分析可执行文件的进程映射虚存空间的内容。Part4:分析一下ELF文件的更多内容。原创 2024-11-23 17:17:45 · 162 阅读 · 0 评论 -
HNU计算机系统第六次小班(选题一)
Part1(b):利用反汇编技术,比较使用gcc汇编器 从-O0到-O3四级优化等级之间的差异。Part1(a):利用反汇编技术,比较使用gcc汇编器从-O0到-O3四级优化等级之间的差异。Part3(a):使用向量化优化来优化程序性能。Part4:简要介绍Duff‘s Device。Part3(b):通过增加并行来优化程序性能。Part2:比较循环展开次数对性能的影响。原创 2024-11-23 16:44:13 · 222 阅读 · 0 评论 -
HNU计算机系统第五次小班(选题二)
Part1:重新排列循环以提高空间局部性。Part3:将矩阵相乘再细分成向量乘法。Part2:分介绍分块矩阵优化方法。Part4:核函数编程。原创 2024-11-23 16:27:14 · 179 阅读 · 0 评论 -
HNU计算机系统第四次小班(选题一)
Part3:简要介绍64位Windows下的 函数调用过程。Part1:简要回顾32位Ubuntu下的函数调用过程。Part2:详细介绍64位Ubuntu下的函数调用过程。Part4:简要介绍FreeBSD下的函数调用过程。原创 2024-11-22 09:29:24 · 279 阅读 · 0 评论 -
HNU计算机系统第三次小班(选题三)
Question 3(a):举出能生成跳转表和不生成跳转表的分支条件组合的例子。分析编译器在哪些情况下更有可 能采用跳转表来实现switch功能。Question 3(b):不同编译器处理相同代码时, 是否会有不同行为?Question 1:分析汇编代码如何通过跳转表来完成switch功能。Question 2:调整分支,观察跳转表变化情况。原创 2024-11-22 09:21:17 · 449 阅读 · 0 评论 -
HNU计算机系统第二次小班(选题三)
Question 2:编写代码,输入一个长度小于12的字符串, 输出其对应的浮点数数组及整数数组。Question 6:一切皆bit。B中能嵌入A,做出某种标记, 但又不影响人类理解B?Question 3:举例说明是否存在某个字符串对应着的是 一条或多条指令的组合。Question 5:一切皆bit。既能解释成A,又能解释成B?Question 4:一切皆bit。看上去是A,实际上却是B?Question 1:运行并分析程序,解释输出结果。原创 2024-11-22 08:26:06 · 370 阅读 · 0 评论 -
HNU计算机系统第一次小班(选题一)
原创 2024-11-21 19:51:40 · 517 阅读 · 0 评论 -
HNU计算机系统作业四
然后父进程运行,输出 “b” 后调用 waitpid 等待子进程,由于子进程此时已经结束了,所以父进程会直接获取子进程的退出状态并从 waitpid 返回继续执行,输出 “c” 然后退出。在测试程序中,子进程很快地连续发送五个 SIGUSR2 信号到父进程,但如果信号处理器还在处理前一个信号,与正在处理的信号相同类型的待处理信号会被阻塞,后续的同类型信号不会排队等待处理,而是简单地丢失,从而会导致错误。当子进程输出 “a” 并退出后,父进程从 waitpid 返回继续执行,输出 “c” 后退出。原创 2024-11-06 15:24:07 · 314 阅读 · 0 评论 -
HNU计算机系统作业三
原创 2024-11-06 15:22:00 · 113 阅读 · 0 评论 -
HNU计算机系统作业二
原创 2024-11-06 15:18:36 · 270 阅读 · 0 评论 -
HNU计算机系统作业一
只留了PDF,仅供学习使用哦~原创 2024-11-06 15:17:02 · 275 阅读 · 0 评论 -
HNU计算机系统实验四 BufLab
1. 在一开始不清楚运行这个实验的各种代码以及这个实验每一级到底要求我们做什么,通过仔细阅读提供的PDF文档以及上网查询后成功理清思路,并成功一步步完成实验。2. 在做题过程中,遇到很多只通过阅读汇编代码以及手写分析很难解决的问题,于是借助gdb调试工具,最终成功获得所需要的数据。3. 反汇编实验文件得到的汇编代码非常多,然而,其实不需要去全部阅读,只需要阅读关键函数如test和getbuf的关键部分即可,这样可以让实验过程变得更高效。4. 在刚开始做level2时,我不知道该如何修改全局变量。原创 2024-09-22 15:19:18 · 1580 阅读 · 0 评论 -
HNU计算机系统实验三 BombLab
1. 在一开始运行bomb的时候,遇到权限不够的问题。于是使用chmod更改bomb的权限,最终成功运行。2. 在做题过程中,遇到很多只通过阅读汇编代码以及手写分析很难解决的问题,于是借助gdb调试工具,最终成功获得所需要的数据。比如在寻找隐藏关卡的入口时,只阅读汇编代码其实并不能知道应该在哪里多输入一个字符串才能进入。而使用gdb查看相应参数所在的内存地址中存储的值,就能够很清楚的知道入口到底在我们的哪个输入了。3. 实验所给的汇编代码非常多,其中有很多函数调用。原创 2024-09-22 14:48:14 · 2702 阅读 · 0 评论 -
HNU计算机系统实验二 DataLab
1.在一开始dlc的时候,遇到权限不够的问题。于是使用chmod更改dlc的权限,最终成功运行dlc。2. 在执行./dlc bits.c时,提示遇到了语法错误。说我有两个函数里的变量没有声明。报错截图如下:但在回去检查后发现,变量是声明了的。认真观察其他声明变量正确的函数,发现在没有报错的函数中,变量声明都是在函数最开始。因此,推测此dlc工具检查时,只有声明在最开始的变量才能被检测到,而在其他操作之后再声明的变量无法被检测到。于是,更改函数代码,先声明接下来会用到的变量,再进行其他操作。原创 2024-09-21 21:15:02 · 1379 阅读 · 0 评论 -
HNU计算机系统实验一 原型机
hnu的计算机系统这门课程教的还是挺好的,几个实验也很好玩,认真做也能学到很多东西。从这篇开始记录22级这门课的四个实验,仅供学习交流使用哦。实验一用的是学校老师自己设计的一个原型机,而后面的三个实验都是书本配套的实验(和卡内基梅隆大学的学生做的一样,只不过他们还有很多其他实验,而教学组只挑选了其中三个布置)。在实验任务A中,出现的问题有:1.一开始无法运行vspm程序,终端出现错误信息。上网查询以后发现是因为java版本过低的原因。更新java并配置好环境变量以后,成功运行了vspm。原创 2024-09-20 23:55:53 · 3507 阅读 · 3 评论