第五章学习笔记

第五章:定时器及时钟服务

  • 5.1 硬件定时器
    通过硬件实现

  • 5.2 个人计算机定时器
    (1)实时时钟
    TRC,由计算机中的小型备用电池为其供电。在所有Unix中时间变量是一个长整数。
    (2)可编程间隔定时器
    PIT是与CPU分离的硬件定时器。可以对其进行编程,达到毫秒级。
    (3)多核CPU中的本地定时器
    每个CPU都有自己独立的处理器,本地时钟器由CPU时钟驱动。
    (4)高分辨定时器
    TSC由系统时钟驱动。大多数电脑都有,这个叫时间戳定时器。

  • 5.3 CPU操作
    包含: PC程序计数器(指令指针IP)
    标志或状态寄存器(SR)
    一个栈指针(SP)
    几个通用寄存器
    CPU通常无限循环一下操作

遇到无效地址、非法指令、越权行为,可能会出现错误状态成为异常(陷阱)

  • 5.4 中断处理
    中断控制器

  • 5.5 时钟服务函数
    5.5.1 gettimeofday-settimeofday

结构体

参数一:tv
参数二:timezone 设置为NULL

库函数ctime(&time)转化为日历形式
实例

5.5.2 time系统调用

实例

5.5.3 times系统调用

结构体

5.5.4 time、date和hwclock命令

  • 5.6 间隔定时器
    系统调用

结构体

时间间隔器
(1)ITIMER_REAL:实时减少,到期生产一个SIGALRM(14)信号
(2)ITIME_VIRTUAL:仅当进程在用户模式下执行时减少,到期产生信号SIGALRM(26)
(3)ITIME_PROF:当进程在用户和内核模式下执行时减少。与(2)结合使用,来判断程序在内核和用户模式下使用的时间。到期生成信号SIGALRM(27)

实例

  • 5.7 REAL模式间隔定时器
    VIRTUAL和PROF模式下的间隔定时器仅在执行进程是才有效。保存在各进程的PROC结构体内。
    操作系统内核需要使用额外的数据结构来处理进程中的REAL模式定时器。
  • 5.8 系统基本代码
    使用gcc-m32编译
    ts.s

t.c





5.8.2 定时器中断

拓展代码

5.8.3 定时器队列

5.8.4 临界区
基本代码系统中,只有一个执行实体,即任务,一次执行一个。

posted @ 2022-10-23 22:23  岳华  阅读(26)  评论(0编辑  收藏  举报