摘要: 目录预备知识trap机制RISC-V CPU硬件操作来自用户空间的trap来自内核空间的traptramponline.Suservec函数userret函数backtrace获取当前的调用函数栈帧实现backtrace()Alarm系统调用准备实现alarm 预备知识 trap机制 导致CPU将指 阅读全文
posted @ 2025-07-15 15:53 名字好难想zzz 阅读(47) 评论(0) 推荐(0)
摘要: 查看panic的调用栈 // kernel/printf.c void backtrace() { uint64 fp = r_fp(); // 读取帧指针寄存器 uint64 top = PGROUNDUP(fp); uint64 bottom = PGROUNDDOWN(fp); printf( 阅读全文
posted @ 2025-07-07 15:17 名字好难想zzz 阅读(16) 评论(0) 推荐(0)
摘要: 目录预备知识SATP寄存器基于Sv39 RSIC-V的页表内核地址空间与用户地址空间,及其映射内核地址空间用户地址空间部分Xv6源码解析虚拟地址解析到物理地址: walk()页表递归释放:freewalk()虚拟地址到物理地址的映射:mappages()解除映射函数:uvmunmap()Print 阅读全文
posted @ 2025-07-07 14:59 名字好难想zzz 阅读(60) 评论(0) 推荐(0)
摘要: 目录预备知识系统调用系统调用掩码System call tracingSysinfo实现系统调用实现获取空内存的字节数实现获取进程数实现sysinfo 预备知识 系统调用 对于一个同时运行多个程序的系统来说,我们希望某一个应用程序出错时不会影响其他应用和操作系统,并且,操作系统应该可以对其进行清理。 阅读全文
posted @ 2025-06-27 17:17 名字好难想zzz 阅读(24) 评论(0) 推荐(0)
摘要: 目录相关资料sleeppingpongprimesfind 相关资料 实验指导书:https://pdos.csail.mit.edu/6.S081/2020/labs/util.html 教材:https://pdos.csail.mit.edu/6.828/2020/xv6/book-riscv 阅读全文
posted @ 2025-06-20 10:51 名字好难想zzz 阅读(38) 评论(0) 推荐(0)
摘要: 字符串字面值 由单引号括起来的一个字符称为char型字面值,双引号括起来的零个或者多个字符则构成字符串字面值 'a'; //char型字面值 "a";//字符串字面值 字符串字面值的类型实质是const char类型的数组。C风格字符串是以空字符('\0')结束的字符数组,字符串字面值就是该类型的实 阅读全文
posted @ 2025-06-13 14:48 名字好难想zzz 阅读(44) 评论(0) 推荐(0)
摘要: 从协议标准上来看,GET 和 POST 的主要区别如下: GET 用于获取信息,是无副作用的,是幂等的,且可缓存 POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存 报文结构 实际上,GET 和 POST 只是 HTTP 协议中两种请求方式,而 HTTP 协议是基于 TCP/IP 的应用层 阅读全文
posted @ 2025-06-07 17:10 名字好难想zzz 阅读(101) 评论(0) 推荐(0)
摘要: 学会了怎么构建和使用优先队列后这题就比较简单了。 class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int, int> map; for(int i = 0; i < 阅读全文
posted @ 2025-03-05 20:28 名字好难想zzz 阅读(32) 评论(0) 推荐(0)
摘要: 主要是学习怎么使用单调队列,在这道题中,我们需要队列能够很快的输出最大值;同时还需要删除窗口移动后的不在窗口内的元素 接下来的问题就是实现push,pop,front。 push:逻辑上来说,当接收到一个新元素时,应该把它插入到队列中,因此需要出队比它小的,插入后再重新入队。但实际上,因为我们只需要 阅读全文
posted @ 2025-03-04 21:22 名字好难想zzz 阅读(10) 评论(0) 推荐(0)
摘要: 也是经典的编译题目 class Solution { public: int evalRPN(vector<string>& tokens) { stack<long long> stll; for( int i = 0; i < tokens.size(); i++ ) { if( tokens[ 阅读全文
posted @ 2025-03-03 21:18 名字好难想zzz 阅读(15) 评论(0) 推荐(0)