+ -
当前位置:首页 → 问答吧 → task_struct中的start_time是相对什么时候来说的

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

时间:2006-06-02

来源:互联网

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想获得一个进程运行的总时间,但是返回的却是个负数,有一段时间之后才能变为正的。

作者: ljy634   发布时间: 2006-06-02

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;
...
}

作者: LaKes   发布时间: 2006-06-24