
操作系统
文章平均质量分 79
Horizon_ys
这个作者很懒,什么都没留下…
展开
-
【操作系统】MIT 6.S081 LAB8
重新设计代码以提高并行性性能原创 2022-02-22 15:29:53 · 797 阅读 · 0 评论 -
【操作系统】MIT 6.S081 LAB7
实验目的:学习进程间切换流程,实现用户线程切换,学习使用pthread。原创 2022-02-19 11:29:09 · 559 阅读 · 0 评论 -
【操作系统】MIT 6.s081 LAB6
在本次实验中需要实现cow(copy-on-write),当创建子进程时,并不实际对父进程进行拷贝,而是将页表项改为只读,在父/子进程第一次对页面进行写操作时才进行内存的拷贝,从而节约实际使用内存空间。原创 2022-02-04 14:58:03 · 1763 阅读 · 1 评论 -
【操作系统】MIT 6.s081 LAB5
实现延迟分配用户空间堆内存,在调用`sbrk()`的时候,不立即分配内存,而是当内存页面真正被访问时才进行实际的物理内存分配。原创 2022-02-02 13:56:18 · 5163 阅读 · 0 评论 -
【操作系统】MIT 6.s081 LAB4
LAB 4: Traps原文地址:YSBLOG参考:[mit6.s081] 笔记 Lab4: Traps | 中断陷阱实验目的:探索如何通过trap实现系统调用。RISC-V assembly (easy)阅读call.asm函数代码,回答一下问题:1、哪些寄存器保存函数的参数?例如,在main对printf的调用中,哪个寄存器保存13?在risc-v中a0-a7寄存器保存函数参数,如果函数参数超过8个,则保存在内存中,函数调用的默认第一个参数为函数本身名字,存放在a0寄存器,所以13作为pr原创 2022-01-11 13:01:16 · 1443 阅读 · 6 评论 -
【操作系统】MIT 6.s081 LAB3
LAB 3: Page tables原文地址:YSBLOG参考:[mit6.s081] 笔记 Lab3: Page tables | 页表 | Miigon’s blog实验目的:学习页表的实现机制,简化用户态拷贝数据到内核态的方法。在xv6原本的设计中,用户进程在用户态使用各自的用户态页表,当需要进入内核态时(例如执行系统调用),则切换到内核页表(修改SATP寄存器的值),这个内核页表是全局共享的,在xv6源码中的定义在vm.c中。本次实验中,将其称之为全局内核页表。// vm.cpage原创 2021-12-30 19:02:55 · 2186 阅读 · 1 评论 -
【操作系统】MIT 6.s081 LAB1
原文地址:YSBLOGsleepsleep 延迟times时间(在xv6中 10 times 为 1s)在user/user.h中定义了sleep函数,只需将参数转为int类型直接传入即可#include "kernel/types.h"#include "user/user.h"int main(int argc, char* argv[]) { int i; if (argc < 2) { printf("sleep : tick number is not sp原创 2021-11-22 21:14:48 · 666 阅读 · 0 评论