20191323王予涵第五章学习笔记
一、知识点归纳
定时器及时钟服务
个人计算机定时器
-
实时时钟(RTC):
小型备用电池供电。即使在个人计算机关机时,它也能继续运行。它用于实时提供时间和日期信息。
时间变量是一个长整数,包含从1970年7月1日起经过的秒数。
-
可编程间隔定时器(PIT):
PIT是与CPU分离的一个硬件定时器。
可对它进行编程,以提供以毫秒为单位的定时器刻度。
-
多核CPU中的本地定时器:
在多核CPU中,每个核都是一个独立的处理器,它有自己的本地定时器,由CPU时钟驱动。4.高分辨率定时器:
-
高分辨率定时器:
大多数电脑都有一个时间戳定时器(TSC),由系统时钟驱动,提供纳秒级定时器分辨率
CPU操作
- 当cpu遇到异常时,它会根据内存中预先安装的指针来执行软件中的异常处理程序,在每条指令结束时,cpu会检查挂起的中断。
- 中断是I/O设备或协处理器发送给cpu的外部信号
时钟服务函数
-
gettimeofday-settimeofday
#include <sys/time.h>
int gettimeofday(struct timeval *tv,struct timezone *tz);//返回当前时间
int settimeofday(const struct timeval *tv,const struct timezone *tz);//设置当前时间
第二个参数timezone已过期,应设置为NULL
-
time系统调用
time_t time(time_t *t);//返回当前时间
以秒为单位返回当前时间。
具有一定的局限性,只提供以秒为单位的分辨率,而不是以微秒为单位。
-
times系统调用
clock_t times(struct tms *buf)
该函数可用于获取某进程的具体执行时间。它将进程时间存储在struct tms buf中
struct tms{
clock_t tms_utime;
clock_t tms_stime;
clock_t tms_cutime;
clock_t tms_cstime;
}
time和date命令
-
date:打印或设置系统日期和时间。
-
time:报告进程在用户模式下和系统模式下的执行时间和总时间。
-
hwclock:查询并设置硬件时钟(RTC),也可以通过BIOS来完成。