rCore Lab2(Chapter4)
刚开始像做 Lab1
那样随便看了看,结果看完立马就忘了,概念有点多,于是认真记一下。
基础概念
分页内存管理
页表实现
Page Table
页面(Page):每个应用的地址空间被分成的小块
页帧(Frame):可用的物理内存被分成的小块
虚拟页号(VPN, Virtual Page Number)
物理页号(PPN, Physical Page Number)
页表(Page Table):每个应用有一个页表,用于 VPN 与 PPN
转换,其中每个 VPN
也有一组保护位(rwx)表示权限。页表同样存放在内存中
逻辑段:由多个虚拟页面组成,在应用视角是一块连续内存
多级页表:Trie 实现
默认 MMU(Memory Management Unit)未启用,需修改 CSR
satp
satp
MODE:页表模式,0 表示访问物理地址,8 表示 SV39 虚拟地址
PPN:根页表的物理页号
地址格式
Address Format
单个页面大小设置为 4KiB,则如图 Page Off ...
rCore Lab1(Chapter3)
Lab1 编程作业
读完前 3 章终于迎来了第一个 Lab,感觉前面都忘完了
先跟着敲了一遍第 3
章(os3-ref)的代码,稍微对代码框架了解了一点
首先考虑实现获取
syscall_times,注意是查询当前任务的调用次数,不是所有任务调用的总和
在 TaskControlBlock 中维护,调用 syscall
的时候修改即可。
1234567// os/src/task/task.rspub struct TaskControlBlock { pub task_status: TaskStatus, pub task_cx: TaskContext, pub syscall_times: [u32; MAX_SYSCALL_NUM],}
12345678910// os/src/syscall/mod.rsuse crate::task::count_syscall;pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize { coun ...
[C++]CS 106L: Standard C++ Programming 学习笔记
前言
五一比较闲,就看了看 CS106L 这门课
懒得等今年的课,看的是 Spring
2021 的,因为没代码就只看了课件
记一点学到的新东西(其实只是凑篇blog)
std::optional (C++17)
类似于一个普通变量,但有一个“没有值”的状态
std::variant (C++17)
类似
std::optional,但可选择含多种类型(同一时刻只有一种值,类似
union)
std::any (C++17)
类似 std::any,可含任意类型的值
统一初始化(Uniform Initialization)(C++11)
内部实现为 std::initializer_list
结构化绑定(Structured binding) (C++17)
语法糖,简单例子:
123456789101112std::pair<int, double> v{1, 3.14};auto [x, y] = v;std::cout << x << ...
Python-Ramune-D v1.0 简单弹幕软件
Github地址
Ramune-D
这是什么? 刚开学闲着没事干写出来的小东西 使用Python+Qt编写
碎碎念
本来就没学过Python,一开始想用C++的,但一想到C++处理编码太麻烦就放弃了
然后Python0基础来写Qt踩了一堆坑。。。最后还是勉强做出个这东西
以后看看能不能加新功能(
使用方法
服务器 py Server/main.py
Windows可运行Server.exe
(服务器默认使用端口为11235,可在main.py中进行修改)
弹幕发送端 py Client_Sender.py
Windows可运行Client_Sender.exe
若服务器在本地则IP填写127.0.0.1,端口填写11235,否则填写相应地址
在"Ramune-D"一栏填写弹幕后点击Send发送
弹幕接收端 py Client_Receiver.py
Windows可运行Client_Receiver.exe
若服务器在本地则IP填写127.0.0.1,端口填写11235,否则填写相应地址
点击Start开始接收弹幕,Stop停止
Danma ...
[UE4]简单小游戏 MoeSurv 开发日志
前言
假期闲着没事干,就打算学学做游戏,选了UE4做引擎。
想着写个小游戏试试,才发现整个假期都在颓,根本没学成什么东西(
0.0.0:Github
Log
2022.1.25
初始关卡场景(直接网上找资源)
2022.1.26
人物基本功能(移动/跳跃)
2022.1.27
开关门功能
2022.1.29
新增速度/跳跃增益道具
2022.1.30
完成道具随机生成机制
2022.1.31
增加血量/护盾/Walk_Lv/Jump_Lv UI 修复场景穿模 修复无法上楼梯问题
新增场景炸弹 添加空气墙 添加自动回血功能
2022.2.1
新增回血/盾牌道具 新增角色死亡后旁观者功能 新增主菜单/结束菜单
0.0.0完成
2022.9.28
发现代码找不到了 反正也没更新
[AFO]NOI 2020 游记/退役记
NOI 2020 游记/退役记
Day -?
NOI 2019 Cu WC 2020 Cu
多学了一年还是不变的Cu(
Day -?
UOJ NOI Round #4 Cu
... 也就这水平吧
Day -3
打模拟赛,只会签到
刷模板...
Day -2
继续刷模板,感觉好多都忘得差不多了
发现根本不会非传统题...有时连暴力分都拿不到
只求最少AG保底(
Day -1
坐一早上车
扛不住长沙这天气,被热傻
不过志愿者小哥哥小姐姐好热情啊/se
宿舍挺不错,至少比之前几次好多了,只有信号是一致的差(
又是女生宿舍
感觉没救了,索性颓了一下午
食堂日常吊打本校的
Day 0
早上开幕式,节目都挺正常
和去年NOI一样的公开处刑
又到了我最喜欢的d*d金句时间(
1 0 0 0 多 万
一 ...
CSP-S 2019 游记
NOIP
CSP-S 2019 游记
第一次参加CSP好激动,我就是萌新中的萌新了
现在写会不会被禁赛呀(
Day
-
CSP-S 2019 Round 1
初赛在本校考。。整个市加起来不过20人吧。
大课间考试听着外面吵嚷简直毫无气氛(
题也不是很难,错了2个sb题,最后只有97
走了走了,回去颓废(x)
Day -7
Gal真好玩
还没有复习模板。。
下午考一套CSP-S Day2模拟:40+100+30
晚上Comet OJ - Contest #14: 只会 T1 T2 T2看错题了还WA一次
要AFO了8
Day -6
装了一早上的NOI Linux
COJ的短裙终于到了!
下午 GZ联考 全是卡常水题,T3
O(n^4)过1000(
晚上 Comet OJ - 模拟赛 #1 Day1,AK,rk4
RP花 ...
[GZOI2019&GXOI2019]省选GG记
GZOI=贵州OI
题目
ecr1欢迎AK)题解
4hac
Update:我省的题终于上OJ了好感动
Luogu P5300
[GXOI/GZOI2019]与或和
Luogu P5301
[GXOI/GZOI2019]宝牌一大堆
Luogu P5302
[GXOI/GZOI2019]特技飞行
Luogu P5303
[GXOI/GZOI2019]逼死强迫症
Luogu P5304
[GXOI/GZOI2019]旅行者
Luogu P5305
[GXOI/GZOI2019]旧词
DAY0
上一次的普及难度成功地让我体验到了省选500+的快感。
然后今年又来混2天半的假期(
然后就被两套省选模拟搞到自闭
坐了大半天的车,难受得要死,去试机,敲了3k(FTT,NTT,平衡树-树状数组版)的模板就溜了。。
到宾馆就开始打Arcaea,完全不想复习QWQ
Arc真好玩,我推荐你们都去玩一玩
DA ...
PKUWC2019游记
PKUWC2019游记
前言
NOIPRP爆发,混到分数线,估计去THU也是爆0的份,就去PKU耍几天
Day0
早上在机房颓了一个上午。。。
下午昏昏沉沉的报了道,跑去试机
去了机房,键盘还是挺好用的 毕竟用了2个星期了
考试在openjudge上考,先上去看了一看,一共2道题,一个10分,一个100分,看着都毒瘤
T1
求有多少对(a,b)满足ab=(a|b)(a&b),0a,b
。。。暴力就好
T2
#6433. 「PKUSC2018」最大前缀和
试机题日常原题,一个水水的状压DP
瞎分析了一下就过了
然后坐不住就溜了
晚上打了一场CF Div.2
A:暴力,秒了
B:贪心,秒了
C:一个递推题,瞎写写水了
D:模拟,秒了
E:WDM这什么啊好难不会QAQ
Day1
早上ci玩早餐匆匆赶往纪中参加开营仪式,先吹了一波纪中,再吹了一波P ...
CentOS7下重装Python2.7与yum并安装Python3
在搭建Calibre-web的时候遇到了一点问题,pip老是出错,看了一下腾讯云CentOS7自带的Python是2.7,打算给它升个Python3,不小心把Python2.7和yum
pip给一起删了,草 因为一些东西是依赖Python2的,装Python3的时候不能删
删除原环境
删除pip 1python -m pip uninstall pip
删除Python 123rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps # 删除Python,解除关联whereis python |xargs rm -frv # 删除残余文件whereis python # 检查是否完全删除
删除yum 123rpm -qa|grep yum|xargs rpm -ev --allmatches --nodepswhereis yum |xargs rm -frvwhereis yum
配置新环境
从网上找教程要么是依赖yum安装Python,要么是依赖Python安装yum。。。
首先查看CentO ...