Homework: xv6 CPU alarm
这个作业的要求是让我们添加一个alarm(interval, handler) 系统调用,使CPU定时提醒进程。这对那些计算绑定的应用程序有用,这样可以监控他们消耗了多少CPU时间,或者是在计算的过程中可以做一些其他的事情。
在进行修改以前先用grep -n uptime *.[chS]这个命令搜索出所有包含uptime系统调用的文件,这样我们就可以仿照uptime系统调用实现alarm系统调用。
接下来进行这些文件的修改。
- 先在syscall.c中添加函数外部声明。
代码分别为
[SYS_alarm] sys_alarm,
和
extern int sys_alarm(void);
- 在syscall.h中添加系统调用号。
#define SYS_alarm 23
- 在sysproc.c中添加系统调用函数sys_alarm()的实现:
int
sys_alarm(void)
{
int ticks;
void (*handler)();
if(argint(0, &ticks) < 0)
return -1;
if(argptr(1