- 博客(56)
- 收藏
- 关注
原创 dangzero环境配置问题
需要注意ubuntu的版本,readme中的是20.04.5,但是官网找不到这个版本,所以就用了20.04.6的,经过实验也是可行的。,则QEMU上会出现一个新的Ubuntu界面,在QEMU中我擅自做了以下1、2步(可能没有必要,但总之我做了这个工作)编辑/etc/default/grub,以在启动QEMU时不出现GUI界面,命令行比较舒服!测试成功的结果是,在QEMU虚拟机的/trusted目录下为ring0,而在其他目录下为ring 3。:此节均是在QEMU中执行!,其他命令均在QEMU中执行!
2024-03-12 21:46:18 994
原创 6.s081操作系统Lab4: trap
在进入用户空间之前,内核会分配1页TRAPFRAME,专门用来暂存trap发生时需要的东西,这个TRAPFRAME的地址放在sscratch寄存器中,TRAPFRAME页还会预先放着开始就已经知道且在trap发生时需要用到的东西:usertrap的地址(进行trap类型判断并调用相应处理函数)、cpu的hartid(TODO,还不知道作用,可能是CPU的id,可以记录处理trap的CPU)、内核页表地址(uservec需要进行用户态页表到内核态页表的切换)。这里会判断trap的原因,以调用合适的处理函数。
2023-12-18 22:00:37 964
原创 MIT 6.s081操作系统实验 Lab2: system calls
首先是定义了1个run的极简链表,用来串起空闲内存,其次是kmem结构体,用来放1个锁,还有空闲内存链表的表头。系统调用的流程,但还不了解具体是如何从用户态陷入内核态(TODO)xv6使用隐式链表数据结构来进行空闲内存的分配和回收,同时加锁防止多个进程使用此临界资源进程管理是是1个进程结构体数组维护,可通过遍历获取每个进程的状态内核态要将数据返回给用户态,因为用户态有自己的进程空间,使用的虚拟地址无法直接在内核态解引用,所以在内核态需要实现。
2023-10-22 15:15:21 355
原创 MIT 6.s081课程实验 Lab1
实验1是最简单的,让我们先对文件系统,进程通信,系统调用,内存管理这4个部分都有了一定了解,接下来就继续看每个小部分了。
2023-10-21 15:47:42 246 1
原创 操作系统简陋复习
在用户态进行系统调用时,比如使用open(filename)打开一个文件,filename是1个char*类型,它存放在内存中,虚拟地址到物理地址的映射关系由用户的进程页表维护,因此在用户态可以直接解引用获得它的值。但是因为发生系统调用后,进入了内核态,此时无法直接解引用,因此需要使用copyin函数,将用户态的数据复制到内核态,以在内核态中访问用户态的数据。进程的内存分配从下到上:代码区,数据区(初始化全局变量和静态变量),BSS区(未初始化全局变量和静态变量)、堆区(从低到高增长,用户手动申请),
2023-09-16 21:58:30 132
原创 被问实习最大的收获是什么可以怎么回答?
在实际开发时,在编码时可能无法完全按照方案设计走,或者有一些特殊情况不在方案设计中涉及。:总工程师给开发和测试串讲需求->开发编写需求的特性说明书,完成需求方案设计和评审->编码完成后对各个场景进行自测,上库后给相关模块人进行代码检视后并修改检视意见->在每个迭代转测试后,在下个迭代解决本次迭代提出的问题单。二分/顺藤摸瓜:在写代码出现bug时,应该缕顺从bug出现的地方到正常的地方,二分打印其中的输出值;在后面上传的版本出现问题时,也从正常的版本二分到出bug的版本,找到错误发生那天的相关上库记录。
2023-09-12 00:07:12 587
原创 mysql leetcode打题记录
因为上过的数据库课实在太水了,所以打算先在菜鸟教程/CSDN/leetcode先学一下基本语法,然后去做Stanford数据库原理的课程CS145。小目标:把leetcode上不用钱的mysql的题先做一次,对数据库语法有个基本概念。
2023-09-11 21:59:53 225
原创 关于CS144的小总结
第三次握手原因:如果没有第3次握手,则服务端无法确认本身的发送能力和客户端的接收能力。TCP报文中均携带了确认号,若客户端因为网络拥塞,SYN报文很长时间才到达服务端,则客户端会超时重传SYN报文。而在结束后,客户端重发的SYN报文才到达,如果是2次握手,则服务端也会痛快地决定建立连接,给客户端发送信息,等待客户端的信息等等,浪费自身和网络资源。TCP是累计确认,若ackno是新的,则将发送但未确认队列中的报文段末尾比ackno更早的都弹出,表示均已确认。目的:双方均确认双方具有发送能力和接收能力。
2023-09-03 20:43:43 615
原创 win10如何使用wsl配置Ubuntu并使用vscode连接
然后再打开PowerShell,重新输入wsl,又出现新的提示:适用于 Linux 的 Windows 子系统没有已安装的分发”,按照给的提示继续在终端输入。大概是等了30min,最后按照成功,输入用户名和密码。wsl为适用于 Linux 的 Windows 子系统,可参考以下微软的官方文档。执行结果如上,因此我继续按照其指示,试图按照Ubuntu-20.04版本。猜测可能是网络问题,打开了可爱的科学上网软件,就可以执行命令了。希望能帮助到有需要的人,有问题可以在评论区讨论哦~
2023-07-16 09:55:22 1651
原创 概率DP(洛谷/CF题目)
文章目录P3802 小魔女帕琪(简单排列组合)P1365 WJMZBMR打osu! / Easy(简单期望)P2634 [国家集训队]聪聪可可(树上期望)CF804D Expected diameter of a tree(树的直径+期望)CF16E Fish(简单状压+概率)P4562 [JXOI2018]游戏(质因数分解+组合数)P3802 小魔女帕琪(简单排列组合)所有的排列情况为(S=∑ai)!(S=\sum{a_i})!(S=∑ai)!。因此接下来考虑可以形成一个大招的情况数量即可。大招是
2023-03-23 16:38:10 389
原创 操作系统页表
CPU向虚拟地址va加载或写入数据–>CPU将va交给内存管理单元MMU–>SATP寄存器存放着内存中存放虚拟地址到物理地址的表单–>MMU通过SATP查找表单获得va的物理地址–>完成物理地址的加载或写入。PTE中存放着PPN,PPN表示1个物理页号,在此物理页号后补12个0,相当于offset为0,则可得到真正的物理地址,以此进入下一个。加上va的offset就是查找的真正的物理地址;PTE可以看成从虚拟地址到物理地址的分级索引。的首地址,则可得到1个64bit的PTE的。的首地址,当然最后1个。
2023-03-22 19:19:58 728 1
原创 CS144 Lab4 实现TCPConnection组件
在Lab2和Lab3实现了TCP的Sender和Receiver,但是在建立TCP连接时,每个TCP实体既是Sender,又是Receiver,因此在Lab4的主要工作就是在一个TCP实体中统筹Receiver和Sender,同时完成建立连接和关闭连接的工作。
2023-03-16 20:38:11 250
原创 算法实验报告1
排序问题要求我们按照升序排列给定列表中的数据项,目前为止,已有多种排序算法提出。本实验要求掌握选择排序、冒泡排序、合并排序、快速排序、插入排序算法原理,并进行代码实现。通过对大量样本的测试结果,统计不同排序算法的时间效率与输入规模的关系,通过经验分析方法,展示不同排序算法的时间复杂度,并与理论分析的基本运算次数做比较,验证理论分析结论的正确性。
2023-03-16 19:35:43 1322
原创 The 2022 ICPC Asia Regionals Online Contest (II) 2022ICPC第二场网络赛 ABEFGJKL题解
ICPC
2022-09-27 20:19:49 1336
原创 深入理解计算机系统第三章
3.3 数据格式因为是从16位扩展成32位的,所以命名时将16位的类型作为基准,成为word。字节数汇编代码后缀1b2w4l8q3.4 访问信息2条小规则:生成1字节和2字节高位不变,生成4字节高位置0。%rsp作为栈指针指明运行时栈结束的位置。3.4.1 操作数指示符指令的源数据值可以是常数,或者存储在寄存器和内存中,结果可以存储在寄存器和内存中。操作数的三种类型:$+十六进制数字:表示立即数R[ra]R[r_a]R[ra
2022-06-24 12:52:29 922
原创 c++深拷贝 浅拷贝 重载赋值运算
拷贝构造深拷贝何时使用对象作为值传递作为函数参数对象作为值传递作为函数返回值创建对象使用方法参数:const & 对象const 是因为要求传进来的对象不可改变,必须使用&是因为当我们使用值传递的时候,因为深拷贝的第一种使用情况:“对象作为值传递作为函数参数”,拷贝构造函数也是一个函数,若传入参数是值传递而不是引用传递,则会再次调用一个拷贝构造函数,新的拷贝构造函数会调用一个新的拷贝构造函数…然后就炸了。返回:无返回值赋值重载...
2022-05-25 13:54:56 206
原创 SZUACM week4-3 题目及题解
文章目录题1 P4999 烦人的数学作业StatementInputFileOutputFileExampleInput #1Output #1Note题1 P4999 烦人的数学作业Statement有TTT组数据,每组数据给出一个区间LLL~RRR,求LLL到RRR区间内每个数的数字和,如123123123这个数的数字和为1+2+3=61+2+3=61+2+3=6。 (1≤L≤R≤1018)(1\le L\le R\le10^{18})(1≤L≤R≤1018)InputFile第一行一个整数
2022-03-27 21:25:22 636
原创 二分图洛谷习题
文章目录KM算法KM算法参考题解,可以跳题解看我只是在尝试理解求完美匹配的最大值。其实可以理解为一个相亲问题,有n男n女,女生i对每个男生j有一个好感度love[i][j]love[i][j]love[i][j],而男生对女生的好感度不重要,全部设置为0。每个女生i都对自己的爱情有一个期望值ex_girl[i]ex\_girl[i]ex_girl[i],最理想的情况每个女生都希望自己可以和最有好感度的男生在一起,因此她们对爱情的初始期待值ex_girl[i]=max(love[i][j])ex\_g
2022-03-10 21:40:54 109
原创 图论洛谷简单习题
文章目录并查集并查集//此处优化为更新x的祖先时顺便更新了x父亲的祖先也为x的祖先int ff(x){return fa[x]==x?x:fa[x]=ff(fa[x]);}int join(int x,int y){x=ff(x),y=ff(y);x=fa[y];}P2661 [NOIP2015 提高组] 信息传递用并查集难的地方是在寻找父亲和合并过程的变化。要了解合并和寻找过程对题目变量的影响。一旦iii查询的xxx和iii不是直接父子关系,继续向上查找合并就应该算成另外一轮,并且是当前轮
2022-02-25 10:55:58 675
原创 tarjan理解与洛谷习题[习题链接](https://www.luogu.com.cn/problem/P2921)
文章目录tarjan理解与模板相关概念和变量强连通分量和缩点习题洛谷 P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 Gtarjan理解与模板相关概念和变量强连通分量:在一个有向图中,某一些点(整个图的一部分,因此称作分量)之间可以互相到达(强连通)。这些点就组成了强连通分量。如下图中1,2,3,41,2,3,41,2,3,4组成一个强连通分量,而555单独一点成一个强连通分量,666也是单独一点作为一个强连通分量。时间戳dfn[u]dfn[u]dfn[u]:在dfs
2022-02-25 00:17:08 942
原创 状态压缩习题
文章目录洛谷P2704 [NOI2001] 炮兵阵地洛谷 P1879 [USACO06NOV]Corn Fields G洛谷 P1896 [SCOI2005]互不侵犯洛谷P2704 [NOI2001] 炮兵阵地题目链接因为列数仅为10,考虑使用状态压缩,用一个数字sss表示某行的炮兵放置情况,当sss二进制的kkk位为1,该行的kkk列就放置了炮兵。预处理: 因为要计算炮兵的数量,先计算每个状态sss的炮兵个数(即二进制中111的数量)sum[s]sum[s]sum[s]。状态设计: dp[i][
2022-02-19 13:20:46 483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人