linux内核设计与实现---定时器和时间管理(11)

  • 相对于事件驱动(事件驱动其实也是一种事件驱动,但发生频率非常高,对内和至关重要)而言,内核中有大量的函数都是基于事件驱动的。其中有些函书是周期性执行。

    • 周期性产生的事件—–由系统定时器驱动。系统定时器是一种可编程硬件控制芯片,它能以固定频率产生中断。就是所谓的定时器中断。它所对应的中断处理程序负责更新系统时间,也负责执行需要周期运行的任务。
    • 系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢
    • 动态定时器—-一种用来推迟执行程序的工具。比如说,软驱马达在一定时间内都为活动,那么软驱驱动程序会使用动态定时器关闭软驱马达。动态定时器可由内核动态创建和撤销。
  • 内核中的时间概念
    • 内核必须在硬件的帮助下才能计算和管理时间。系统定时器用于计算流逝的时间。
    • 系统定时器以某种频率自行触发(击中–hitting或射中—popping)时钟中断,频率可通过编程预设,称为节拍率(tick rate)。
    • 内核通过预编的节拍率得知连续两次时钟中断的间隔时间,间隔时间称为节拍(tick),为节拍率分之一秒。来更新墙上时间和系统运行时间
    • 墙上时间—实际时间,对用户空间的应用程序最重要。通过控制时钟中断维护。提供API for 用户空间。
    • 系统运行时间—-自系统启动开始所经历的时间,对用户空间和内核都很有用。
  • 节拍率:HZ
    • 通过静态预处理定义的,也就是HZ(赫兹)。
    • 无节拍的OS
  • jiffies
    • 全局变量jiffies用来记录自系统启动以来产生的节拍总数。一秒内时钟中断产生的次数等于HZ,jiffies增加的值就是HZ。
    • 系统运行时间以秒为单位,就等于jiffies/HZ
    • jiffies的回绕—-(warp around)提供了四个宏.
    • 用户空间和HZ—-改变内核HZ的值,会给用户空间的某些程序造成异常结果。因为内核是以节拍数/秒的形式给用户空间的,如果更改HZ的定义值,用户并不知道新的HZ值,就会出现错误。因此内核必须导出所有更改的jiffies值。因而内核定义了USER_HZ来代表用户空间看到的HZ值。
  • 硬时钟和定时器
    • 体系结构提供了两种设备进行计时:系统定时器和实时时钟。
    • 实时时钟(RTC)—是用来持久存放系统时间的设备,即使系统关闭后,它也可以靠主板上的微型电池提供的电力保持系统的计时。
    • 当系统启动时,内核通过读取RTC来初始化墙上时间,该时间存放在xtime变量中。内核一般不会在系统启动后再读取xtime变量,但是有时会周期性的将当前时间值存回RTC中。RTC最主要的作用仍是在启动时初始化xtime变量。
    • 系统定时器:内核定时机制中最重要的角色。—-提供一种周期性触发中断机制。
      • x86中主要采用可编程中断时钟(PIT)。
      • 其他的时钟资源包括:APIC(高级可中断终端控制器)和TSC(时间戳计数)
    • 时钟中断处理程序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值