- 博客(138)
- 收藏
- 关注
原创 HNU计算机系统课程总结与反思
HNU计算机系统这门课程用的是《深入理解计算机系统》第三版,作业题用的是第二版(据说23届可能会全面改为第三版...)。第三版对应64位系统,第二版对应32位系统,学了64位的反正没有坏处,是向下兼容的。这门课程和408的计组很像,但又不是同一个东西。同时,CS这门课更偏应用,趋向于上手做,去尝试,学好了对你的Linux非常有帮助。强烈安利卡耐基梅隆大学的CSAPP(也就是教材《深入理解计算机系统》)这本书,个人认为讲解的非常好。即使你是喜欢看着网课、PPT复习形式预习复习的同学,也建议过一遍这本书。
2024-07-09 09:03:38
856
原创 HNU操作系统课程总结与反思
HNU操作系统这门课程用的教材是《操作系统导论》,408必考科目,重要程度不言而喻。单从课程来讲,相比于计算机系统那种偏实验的课程,操作系统更偏理论一些。这门课程在计科拔尖班占4学分,在计科、软件、智能专业占5学分。
2024-07-08 09:11:54
996
原创 HNU-计算机系统(CSAPP)实验四 BufLab
1.刚开始计算esp时候经常忘记把push进来的4个字节给加上,后来经过重新看了一遍CSAPP第三章之后,遗忘的知识点大多都被复习起来了,做后面的level就顺手多了。2.在level4的将汇编指令转换成机器码那一部分,因为忘记给我的cookie立即数加上“$”符号了,导致这个mov的机器码从b8变成了a1,也就是本来是取立即数的,结果取成了内存地址,导致输出错误。而且这个bug找了很长时间,所以说在徒手写汇编时还是要小心为上,一个符号都不能错。A1MOV ax,[16位内存数值]B8。
2024-06-20 17:38:54
1238
原创 HNU-计算机系统(CSAPP)实验三 BombLab
来自《深入理解计算机系统》(CSAPP)一书的第三章“程序的机器级表示”的配套实验,该实验的目的是通过反汇编可执行程序bomb,来反推出程序执行内容,进而能够正确破解“密码”,拆除“炸弹”。具体的bomb压缩包会由助教发给大家,每个人独一份,确保不重样。其他外校的uu也可以去官网搜索下载,享受拆炸弹的乐趣(bushi)
2024-06-20 17:38:34
960
原创 HNU操作系统2022期中考试试卷及参考答案
(1)通过多任务共享实现的虚拟化CPU与通常虚拟机(VMware等)里所使用的虚拟化技术有什么不一样?(源自文心一言3.5)(2)试描述进程的所有状态,其中进程在哪些状态只出现一次,哪些会出现多次?(3)创建新进程的系统调用fork()和exec()有什么区别?(4)简述周转时间和响应时间的定义,并解释它们在不同调度算法(FIFO,SJF,RR)中的表现。
2024-06-20 17:35:33
529
原创 第二十四讲 链接 课程随手记
在main.c中,整形全局变量d被初始化为100,作为强符号;在p1.c中,双精度浮点型全局变量d没有初始化,作为弱符号。链接时链接器选择强符号而不是弱符号。而在函数p1中,d被赋值为双精度型1.0,二进制数表示为0 01111111111 0…0。因为(int)d是强符号,(double)d是弱符号,所以赋值给(int)d。又因为d为int类型,占32位,而double 1.0占64位,按照小端格式存储时,这个64位的二进制数会向高地址溢出,造成写覆盖
2024-05-22 13:56:32
309
原创 VMware Ubuntu虚拟机开机黑屏的解决方法
由于不知名原因,我的VMware虚拟机隔三差五会出现开机即黑屏的现象。经过查阅资料和摸索,发现其中一种方法可以很好地解决我虚拟机的问题。
2024-05-20 22:58:13
2417
4
原创 Linux修改文件权限命令 chmod
chmod是 "change mode" 的缩写,用于改变文件或目录的权限。777是一个三位数的八进制数,每一位数字代表一组不同的用户组对文件的权限。这三位数字分别代表:文件所有者的权限与文件所有者同组的用户的权限系统中其他用户的权限每一位数字都是0到7之间的一个数,代表不同的权限组合:4 代表读取权限(r)2 代表写入权限(w)1 代表执行权限(x)0 代表没有任何权限
2024-04-30 22:31:20
170
原创 Windows和Linux系统下查看CPU架构信息的方法
lscpu是一个在 Linux 系统中常用的命令行工具,用于显示关于 CPU 架构的信息。该命令提供了关于 CPU 的详细概述,包括其型号、内核数、线程数、缓存大小、指令集支持等。这对于系统管理员、软件开发人员以及任何需要了解系统硬件配置的人来说都是非常有用的。
2024-04-19 16:27:05
2220
原创 Windows系统下查看C语言文件反汇编
MinGW 的全称是:Minimalist GNU on Windows ,MinGW 就是 GCC 的 Windows 版本 。MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。MinGW-w64是2005年为了将ObjectiveC程序移植到64位Windows问题,由OneVision Software根据 净室设计原则 (ReactOS是一个逆向工程Windows而净室实现的开源操
2024-04-17 22:32:02
1235
原创 【计算机系统】缓冲区溢出攻击概念、演示及防御
是一种常见的安全漏洞,也被称为缓冲区溢出。它发生在程序尝试向缓冲区写入数据时,。这种溢出可能破坏程序的堆栈,使程序转而执行其它指令,从而达到攻击的目的。缓冲区溢出攻击的原理主要是利用程序中存在的缓冲区溢出漏洞。当程序没有仔细检查用户输入的参数时,攻击者可以通过输入超出缓冲区边界的恶意数据来破坏程序的正常执行流程。这些数据可以,导致程序。例如,在一个简单的C语言程序中,如果程序使用固定大小的缓冲区来接收用户输入,而攻击者输入的数据超过该缓冲区的容量,就会发生缓冲区溢出。
2024-04-12 02:22:56
4164
原创 蓝桥杯刷题 二分-[364]跳石头(C++)
一年一度的「跳石头」比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走M 块岩石(不能移走起点和终点的岩石)。
2024-04-11 13:55:15
615
原创 洛谷刷题 深度优先搜索-[P1025]数的划分(C++)
将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,51,5,15,1,1问有多少种不同的分法。
2024-04-11 00:51:04
397
原创 蓝桥杯刷题 二分-[99]分巧克力(C++)
儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:1.形状是正方形,边长是整数2.大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?
2024-04-10 23:57:31
284
原创 【计算机系统】汇编指令 lea 和 mov 的区别
在学习计算机系统这门课程时,很多同学可能会把 lea 和 mov 指令弄混,误认为这两条指令是一个意思。并且,卡耐基梅隆大学的这本《深入理解计算机系统》黑皮书上也讲的比较模糊。其实,单从表面上理解汇编代码意思的话,这两条指令确实非常相像。但是实际上这两者有很大的差别,需要仔细区分和体会
2024-04-09 23:43:09
4674
1
原创 蓝桥杯刷题 深度优先搜索-[NewOJ P1158]N皇后(C++)
n皇后问题:n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上面布局用序列2 4 6 1 3 5表示,第i个数字表示第i行皇后放的列号。按照这种格式输出前3个解,并统计总解数。
2024-04-08 22:32:07
294
1
原创 蓝桥杯刷题 深度优先搜索-[178]全球变暖(C++)
你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:.##….##……##.…####.…###.其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:…#…
2024-04-08 19:49:20
478
原创 蓝桥杯刷题 深度优先搜索-[2410]最大连通(C++)
小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1。如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。请问矩阵中最大的连通分块有多大?
2024-04-08 17:15:44
231
原创 洛谷刷题 DFS/素数-[P1036]选数(C++)
已知 n 个整数 1,2,⋯ ,x1,x2,⋯,xn,以及 11 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,44 个整数分别为 3,7,12,193,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。
2024-04-08 09:10:33
436
原创 洛谷刷题 快速幂-[P3197]越狱(C++)
监狱有 n 个房间,每个房间关押一个犯人,有 m 种宗教,每个犯人会信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。答案对 100,003 取模。
2024-04-06 20:41:22
310
原创 蓝桥杯刷题 前缀和与差分-[NewOJ P1819]推箱子(C++)
在一个高度为H的箱子前方,有一个长和高为N的障碍物。障碍物的每一列存在一个连续的缺口,第i列的缺口从第l各单位到第h个单位(从底部由0开始数)。现在请你清理出一条高度为H的通道,使得箱子可以直接推出去。请输出最少需要清理的障碍物面积。如下图为样例中的障碍物,长和高度均为5,箱子高度为2。(不需要考虑箱子会掉入某些坑中)最少需要移除两个单位的障碍物可以造出一条高度为2的通道。
2024-04-06 16:26:43
407
原创 蓝桥杯刷题 前缀和与差分-[2128]重新排序(C++)
给定一个数组 A 和一些查询 L**i, R**i,求数组中第 L**i 至第 R**i 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
2024-04-06 15:57:27
340
原创 洛谷刷题 前缀和与差分-[P2004]领地选择(C++)
作为在虚拟世界里统帅千军万马的领袖,小 Z 认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小 Z 来说是非常重要的。小 Z 希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。对于 100%100% 的数据,1≤N,M≤1e3,1≤C≤min(N,M)。接下来 N 行每行 M 个整数,表示了地图上每个地块的价值。第一行三个整数 N,M,C,表示地图的宽和长以及首都的边长。对于 90%90% 的数据,N,M≤300。对于 60%60% 的数据,N,M≤50。
2024-04-06 01:49:05
365
原创 蓝桥杯刷题 前缀和与差分-[3507]异或和之和(C++)
给定一个数组 Ai,分别求其每个子段的异或和,并求出它们的和。或者说,对于每组满足 1≤L≤R≤n 的 L,R求出数组中第 L 至第 R 个元素的异或和。然后输出每组 L,R 得到的结果加起来的值。
2024-04-06 01:02:16
505
原创 蓝桥杯刷题 前缀和与差分-[3142]可获得的最小取值(C++)
妮妮学姐手头有一个长度为n的数组a,她想进行次操作来取出数组中的元素。每次操作必须选择以下两种操作之一:取出数组中的最大元素取出数组中的最小元素和次小元素妮妮学姐希望在进行完 次操作后,取出的数的和最小。她感觉有些困难,于是请擅长贪心的你帮助她解决这个问题。
2024-04-05 02:04:28
393
原创 蓝桥杯刷题 前缀和与差分-[2080]求和(C++)
给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an。
2024-04-05 01:56:39
321
mingw64.rar
2024-04-17
小班作业-MyString类
2022-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人