LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 917|回复: 1

task_struct中的start_time是相对什么时候来说的

[复制链接]
发表于 2006-6-2 08:50:32 | 显示全部楼层 |阅读模式
task_struct中的start_time是相对什么时候来说的呢,我用的是2.6的内核,里面start_time是一个结构体,我曾经打印过进程的start_time->tv_sec,获得的是很小的数字,可以肯定的是不是从1970年1月1号开始的时间滴答数。

在task_struct里的start_time是: struct timespec start_time;
在里是这样定义的:
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};

我用Jiffies/HZ去减start_time->tv_sec想获得一个进程运行的总时间,但是返回的却是个负数,有一段时间之后才能变为正的。
发表于 2006-6-24 19:59:56 | 显示全部楼层
do_acct_process(long exitcode, struct file *file)
{
...
/* calculate run_time in nsec*/
        do_posix_clock_monotonic_gettime(&uptime);
        run_time = (u64)uptime.tv_sec*NSEC_PER_SEC + uptime.tv_nsec;
        run_time -= (u64)current->start_time.tv_sec*NSEC_PER_SEC
                                        + current->start_time.tv_nsec;
...
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表