加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux的时钟处理机制

发布时间:2016-01-26 08:34:39 所属栏目:Linux 来源:网络整理
导读:在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理 等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统

2.3 时钟初始化

内核初始化部分( start_kernel 函数)和时钟相关的过程主要有以下几个 :

tick_init()

init_timers()

hrtimers_init()

time_init()

其中函数 hrtimers_init() 和高精度时钟相关(本文暂不介绍这部分内容) 。下面将详细介绍剩下三个函数。

2.3.1 tick_init 函数

函数 tick_init() 很简单,调用 clockevents_register_notifier 函数向 clockevents_chain 通知链注册元素: tick_notifier。这个元素的回调函数指 明了当时钟事件设备信息发生变化(例如新加入一个时钟事件设备等等)时,应 该执行的操作,该回调函数为 tick_notify (参见2.4节)。

2.3.2 init_timers 函数

函数 init_timers() 的实现如清单2-1(省略了部分和

主要功能无关的内容,以后代码同样方式处理)

清单2-1 init_timers 函数

void __init init_timers(void)
{
  int err = timer_cpu_notify(&timers_nb, (unsigned long) CPU_UP_PREPARE,
                    (void *)(long) smp_processor_id());
  ……
  register_cpu_notifier(&timers_nb);
  open_softirq(TIMER_SOFTIRQ,run_timer_softirq, NULL);
}

代码解释:

初始化本 CPU 上的软件时钟相关的数据结构,参见3.2节

向 cpu_chain 通知链注册元素 timers_nb ,该元素的回调函数用于初始化 指定 CPU 上的软件时钟相关的数据结构

初始化时钟的软中断处理函数

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读