2023年4月20日

摘要: 仅使用互斥保护每个成员函数 问题 1 尽管运用互斥保护共享数据,条件竞争仍然无法避免,考虑如下代码: if (!q.empty()) { const int value = q.front(); q.pop(); do_something(value); } 在 empty() 和 front() 阅读全文

posted @ 2023-04-20 16:43 lyc2002 阅读(189) 评论(0) 推荐(0) 编辑

2023年4月18日

摘要: Speed up system calls kernel.h/proc.h,在 struct proc 中添加 struct usyscall *usyscall kernel.h/proc.c,在 proc_pagetable() 中添加 USYSCALL 的 PTE kernel.h/proc. 阅读全文

posted @ 2023-04-18 19:02 lyc2002 阅读(22) 评论(0) 推荐(0) 编辑

2023年4月16日

摘要: System call tracing 修改 Makefile user 在 user/user.h 中添加系统调用声明 在 user/usys.pl 中添加桩程序,生成 user/usys.S 即真实的系统调用桩程序 kernel 在 kernel/syscall.h 中添加系统调用号 在 ker 阅读全文

posted @ 2023-04-16 18:07 lyc2002 阅读(21) 评论(0) 推荐(0) 编辑

2023年4月14日

摘要: Boot xv6 启动 xv6:make qemu 打印进程信息:ctrl-p 退出:ctrl-a x sleep 在 user 下创建编写 sleep.c,修改 Makefile pingpong 在 user 下创建编写 pingpong.c,修改 Makefile #include "kern 阅读全文

posted @ 2023-04-14 19:09 lyc2002 阅读(20) 评论(0) 推荐(0) 编辑

2023年4月6日

摘要: ~~~bash # 在 remote 端 sudo apt install openssh-server # 在 local 端 VSCode 点击新建 ssh,输入 ssh @ -A,修改 config,点击 connect # 在 local 端 cmd 运行 ssh-keygen -t rsa 阅读全文

posted @ 2023-04-06 22:12 lyc2002 阅读(58) 评论(0) 推荐(0) 编辑

摘要: 创建私人仓库管理 lab 代码 git clone git://g.csail.mit.edu/xv6-labs-2021 cd xv6-labs-2021 git checkout util make qemu # github 是可选的远程仓库名,由于 origin 被使用,此处用 github 阅读全文

posted @ 2023-04-06 21:25 lyc2002 阅读(40) 评论(0) 推荐(0) 编辑

2023年4月4日

摘要: [acwing]291. 蒙德里安的梦想 /* 横放的方案数就等于总方案数,因为横着放完后,再竖着放是唯一的 dp[i][j] 表示第 i 列状态为 j 的方案数 状态为 j 是指:各行用 0 或 1 表示摆放状态 :若某行为 0,表示竖放或由前一列伸出 :若某行为 1,表示横放并向后一列伸出 dp 阅读全文

posted @ 2023-04-04 22:00 lyc2002 阅读(13) 评论(0) 推荐(0) 编辑

2023年4月3日

摘要: [acwing]4405 .统计子矩阵 #include <cstdio> using namespace std; typedef long long LL; const int N = 510; int n, m, k; int s[N][N]; LL res; int main() { sca 阅读全文

posted @ 2023-04-03 22:02 lyc2002 阅读(10) 评论(0) 推荐(0) 编辑

2023年4月1日

摘要: 单例模式 在全局范围中,某个类的对象只有一个,通过这个唯一的实例向其他模块提供数据的全局访问。 需要: 默认构造函数私有化 因为使用者在类外部无法创建类对象,故在类内创建静态对象通过类名来访问 在类中只有静态成员函数才能访问静态成员变量,故提供一个静态成员函数提供该静态对象 拷贝构造函数私有化或禁用 阅读全文

posted @ 2023-04-01 20:37 lyc2002 阅读(13) 评论(0) 推荐(0) 编辑

摘要: 能解决什么问题 一般是给出 n 个递减的等差数列,要求对于所有等差数列中前 m 个大的数的和 时间复杂度 O(m * logn) [acwing]1262. 鱼塘钓鱼 #include <cstdio> #include <cstring> #include <algorithm> #include 阅读全文

posted @ 2023-04-01 17:19 lyc2002 阅读(16) 评论(0) 推荐(0) 编辑