学习笔记8
作者:互联网
第五章 定时器及时钟服务
5.1 硬件定时器
定时器是由时钟源和可编程计数器组成的硬件设备。
时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。
5.2 个人计算机定时器
基于Intel x86的个人计算机有数个定时器(Bovet和Cesati2005)
(1)实时时钟(RTC)
(2)可编程间隔定时器(PIT)
(3)多核CPU中的本地定时器()
(4)高分辨率定时器
5.3 CPU操作
对于每个CPU而言都拥有:
一个程序计数器(PC),也称为指令指针(IP)
一个标志或状态寄存器(SR)
一个堆栈指针(SP)
几个通用寄存器
在这里做一下CPU与GPU的对比
5.4 中断处理
中断处理总而言之分为以下五步
中断请求:请求触发器和允许触发器
中断判优:软件判优和硬件判优
中断响应:保护硬件现场、关中断、保护断点、获得中断服务程序的入口地址
中断服务:保护现场、开中断、中断服务、恢复现场、中断返回
中断返回:返回到原程序的断点处,恢复硬件现场,继续执行原程序
5.5 时钟服务函数
5.5.1 gettimeofday-seettimeofday
5.5.2 time系统调用
time系统调用
time_t time(time_t *t)
以秒为单位返回当前时间
如果参数t不是NULL,还会将时间存储在t指向的内存中
5.5.3 times系统调用
times系统调用
clock_t times(struct tms *buf);
用于获取某进程的具体执行时间
将进程时间存储在struct tms buf中,以时钟计时单元报告所有时间
5.5.4 time和date命令
date:打印或设置系统日期和时间
time:报告进程在用户模式和系统模式下的执行时间和总时间
hwclock:查询并设置硬件时钟(RTC),也可以通过BIOS来完成
5.6 间隔定时器
Linux为每个进程提供了三种不同类型的间隔计时器
间隔计时器由setitimer()系统调用创建。getitimer()系统调用返回间隔定时器的状态
分类:
(1)ITIMER_REAL:实时减少,在到期时生成一个SIGALRM(14)信号
(2)ITIMER_VIRTUAL:仅当进程在用户模式下执行时减少,在到期时生成一个SIGVTALRM(26)信号
(3)ITIMER_PROF:当进程正在用户模式和系统(内核)模式下执行时减少
5.7 REAL模式间隔定时器
VIRTUAL和PROF模式下的间隔计时器仅在执行进程时才有效
这类定时器的信息可保存在各进程的PROC结构体中
5.8 编程项目
5.8.1 系统基本代码
5.8.2 定时器中断
5.8.3 定时器队列
5.8.4 临界区
5.8.5 高级主题
标签:定时器,5.5,中断,间隔,笔记,学习,5.8,time 来源: https://www.cnblogs.com/Ye-fen/p/15519832.html