这部分阅读xv6手册才能方便理解

System call tracing

trace接收一个整数mask,其二进制表示是否追踪某个系统调用。这个进程及子进程执行系统调用中如果使用到了某个系统调用,就会打印该进程的pid、该系统调用的名字name以及返回值return value
系统调用的编号位于kernel/syscall.h
函数原型位于user/user.h
系统调用代码生成指令调用位于user/usys.pl
kernel/proc.h中的proc结构体用于维护一个进程的状态
寄存器a7存储系统调用,a0表示系统调用存储返回值

Sysinfo

kalloc.c中维护着一个空闲链表freelist,每个节点对应着PGSIZE大小的空闲内存
proc.c中所有进程保存在proc[NPROC]数组中,遍历数组统计出状态不是UNUSED的进程数量