• 定时器和时间管理


    一、计时体系的目的—内核中有大量的函数都是基于时间驱动的:

     内核会周期性执行:

    • 更新系统运行时间(自系统启动以来所经过的时间)
    • 更新墙上时间(实际时间)
    • 确定当前进程占用CPU的时间
    • 更新资源使用数
    • 检查每个软定时器是否超时

    二、体系结构提供了两种设备进行计时:

     1)实时时钟(RTC):用来持久存放(即使系统关闭,也可靠主板上的电池保持系统的计时)系统时间的设备。系统启动时,内核通过读取RTC来初始化墙上时间。

     2)系统定时器:X86体系中,时钟中断源主要采用可编程中断时钟(PIT)、本地APIC、时间戳计数器(Time Stamp Counter)、电源管理定时器(ACPI PMT)、高精度时间定时器(HPET)

    •   PIT:一种可编程硬件设备,以固定频率(节拍率)自行触发定时器中断。系统启动时,内核对其进行编程初始化,设定其节拍率。通过节拍(节拍率的倒数),内核就可以知道两次时钟中断的间隔。

    三、定时器:

      流程:执行初始化,设定超时时间,指定超时发生后执行的函数,激活定时器。

      指定的函数在超时后自动执行,定时器则自行撤销。

      分类:linux提供两种定时器:动态定时器和间隔定时器。动态定时器由内核使用,间隔定时器由进程在用户态创建。

  • 相关阅读:
    指针
    初级程序员面试不靠谱指南(七)
    初级程序员面试不靠谱指南(六)
    Hadoop 中利用 mapreduce 读写 mysql 数据
    Mapreduce的文件和hbase共同输入
    mapreduce多文件输出的两方法
    mapreduce中一个map多个输入路径
    GDB介绍
    超强的指针学习笔记
    iOS开发之Appstore篇——版本更新
  • 原文地址:https://www.cnblogs.com/wenxuanguan/p/3164528.html
Copyright © 2020-2023  润新知