s081
文章平均质量分 86
陆垚知马俐·
中国科学技术大学软件学院2020级硕士研究生。
展开
-
s081-2020 Lab5 lazy allocation
lazy page allocation所谓的lazy allocation就是当用户进程通过sbrk()申请内存时,内核不会立即为其分配内存,而只是简单的增加了用户进程内存地址范围(增加p->sz),也没有为其分配页表项。这主要是因为用户程序申请的内存量可能会超过其实际使用的量,另一方面可以加快sbrk()的执行速度。当cpu访问到lazy allocation的虚拟地址时,由于没有对应的页表项会触发缺页中断,我们要做的就是在缺页中断处理函数中为其分配物理内存。发生中断时,scause中存储的.原创 2021-12-21 23:44:30 · 516 阅读 · 0 评论 -
s081-2020 Lab4 traps
Lab4 trapsRISC-V assembly (easy)将问题的答案添加到answers-traps.txtQ: Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf?A: a0-a7; a2;Q: Where is the call to function f in the assembly code for main?原创 2021-12-08 11:20:38 · 336 阅读 · 0 评论 -
【无标题】
lab3: pgtbl[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g1VAtxqH-1638793994235)(/Users/liuzhilei/workspace-git/study-repo/6.S081/lab/pgtbl.assets/image-20211206202845356.png)]Print a page table(easy)添加一个打印页表的内核函数,以如如下格式打印出传进的页表,用于后面两个实验调试用:page table 0x00000原创 2021-12-06 20:35:02 · 161 阅读 · 0 评论 -
s081-2020 Lab2: system call
Lab2: system calllab2总体来说还是很简单的,只要我们打通system call的调用链路,就没有问题了。教材第四章中对于xv6处理trap的软硬件过程有详细的讲解,具体的执行流程这里不在赘述,简单讲解一下用户程序执行system call在函数级别的执行路径,当然知道这些已经能够完成该实验了。我们以System call tracing为例描述整个过程:首先要在Makefile文件中添加$U/_trace ,使得trace.c能给被正确编译连接到xv6中。trace.c中的ma原创 2021-12-06 20:32:20 · 349 阅读 · 0 评论