信息安全系统设计与实现 学习笔记8

发布时间 2023-11-02 16:46:59作者: 20211412赖加奕

定时器及时钟服务

硬件定时器

定时器:时钟源和可编程计数器组成的硬件设备。
时钟源:通常是一个晶体振荡器,产生周期性电信号。
使用倒计时值对计数器进行编程,每个时钟信号减1,当计数减为0时,计数器向CPU生成一个定时器中断,重复倒计时。

个人计算器定时器

  1. 实时时钟
  2. 可编程间隔定时器
  3. 多核CPU中的本地定时器
  4. 高分辨率定时器

CPU操作和中断处理

程序计数器(PC)获指令指针(IP)
标志或状态寄存器(SR)
堆栈指针(SP)
通用寄存器

中断是I/O设备或协处理器发送给CPU的外部信号,请求CPU服务。

时钟服务函数

gettimeofday-settimeofday

对linux内核的系统调用

struct timeval{
     time_t tv_sec;
     suseconds_t tv_usec;
}

实例:通过gettimeofday()获取系统时间

编译后报错

缺少头文件#include <time.h>
以及将格式字符串中的%d改为%ld
修改后仍报错

查询后发现第二个printf函数传递了一个字符串字面量,这是安全漏洞的一种常见来源。如果字符串由用户输入,则可能会被用于执行任意代码。因此系统报错
用以下函数代替

time_t curtime;
time(&curtime);
printf("%s", ctime(&curtime));
return(0);

编译通过

Linux中定时器相关的系统调用、库函数和定时器服务命令

进程间隔定时器

定时器生成的信号