Minix调度程序 - 如何检查系统时间?

时间:2017-05-11 11:06:45

标签: time scheduler scheduling minix

我试图在Minix 3中修改schedule.c文件(/usr/src/minix/servers/sched/schedule.c)。对于每个使用它量程的进程,我想要看看系统时间过去了多少。所以我想在do_noquantum()中添加以下行:

...
rmp = &schedproc[proc_nr_n];
minix_time_type curr_time = minix_function_to_get_curr_time();
minix_time_type time_passed = curr_time - last_time[proc_nr_n];
//last_time[NR_PROCS] is a global array
last_time[proc_nr_n] = curr_time;
do_something_with_this_knowledge(time_passed);
...

但我不知道正确的类型和功能。此外 - 也许还有另一种更好的方法。

1 个答案:

答案 0 :(得分:2)

您可以在MINIX中使用syslib.h中的sys_times()函数。 它有以下声明:

int sys_times(endpoint_t proc_ep, clock_t* user_time, clock_t* sys_time, clock_t* uptime, clock_t* boottime)

您可以将其提供给流程的端点,并指向您感兴趣的clock_t参数,并使用正确的信息填充指针。