01 2024 档案
[MIT 6.S081] Lab: traps
摘要:Lab: traps RISC-V assembly 在这个任务中我们需要观察 call.asm 汇编。 int g(int x) { 0: 1141 addi sp,sp,-16 2: e422 sd s0,8(sp) 4: 0800 addi s0,sp,16 return x+3; } 6:
[MIT 6.S081] Lab: page tables
摘要:Lab: page tables 前言 这个实验比较困难(指单纯上机 22 个小时,还不断重复看一遍和调 bug ,以及重新配置环境等等),其中的第一个小实验是带一遍理解 RISC-V 中的 page table ,而第二个小实验则是为每个进程附加一个 kernel page table ,并为第三
[MIT 6.S081] Lab: system calls
摘要:Lab: system calls 前言 这次实验是实现内核中的两个 syscall :trace 和 sysinfo 。 回顾一下第三节课,用户态的进程想要执行某个系统调用,例如 exex(init, argv) ,首先会将 init 和 argv 的地址分别存放在 a0 和 a1 寄存器中,然后
[MIT 6.S081] Lab: Xv6 and Unix utilities
摘要:Lab: Xv6 and Unix utilities Grade sleep sleep 格式如下 sleep 5 这边需要使用 kernal/stat.h 中的 sleep 系统调用,并将参数转化为传入。 #include "kernel/types.h" #include "kernel/st
[操作系统] 打印进程树 pstree
摘要:打印进程树 简介 这是 jyy 老师的操作系统课程的 M1 实验,为了弥补一些欠缺的操作系统相关的知识。在这里实现的的 pstree 并不是严格的按照实验要求而设计的(一个原因是按要求实现的代码不可以公开),这里会看到一些不一样的简单实现,比如直接运行,没有命令行可选参数,输出格式会有所不同,编程语