0> 前言:
时间管理非常重要,内核有大量的函数基于时间驱动的,现在我知道的有:
1》进程调度
2》实现阻塞I/O的:等待队列
3》实现中断下半部,用到的workqueue, tasklet,
内核通过---->内核定时器de------->中断---->来管理时间。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1>内核(系统)定时器:
内核定时器我假想为一个类似于Exynos4412的timer定时器,上电开机就开始运行。我只需知道:
HZ:中断频率(节拍率),可make menuconfig 设置。Tiny4412中默认200(.config),周期就是5ms(时间片)。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2> jiffies:
是全局unsigned long变量,用来记录系统启动以来的节拍总数(jiffies一秒内增加的值等于Hz的值)。
计算开机时间: jiffies/Hz 。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3> jiffies_64:
64位的全局变量:32位机上:jiffies是jiffies_64的低32位,获得64位必须用get_jiffies_64();
64位机上:jiffies==jiffies_64;
/linux-3.5/arch/arm/kernel/vmlinux.lds.S"
阅读(2578) | 评论(0) | 转发(0) |