2023-2024-1 20211327 信息安全系统设计与实现 学习笔记8(必做)

发布时间 2023-11-05 16:47:39作者: 沈楗翔

学习笔记8

  • 定时器及时钟
  • 时钟服务函数
  • 实践过程

定时器及时钟

计算机定时器和时钟是计算机系统中的关键组成部分,它们用于测量和控制时间,以执行各种任务,包括操作系统管理、任务调度、中断处理和性能监控。硬件定时器提供了时间基准,个人计算机定时器用于操作系统和RTC用于长期时间记录,CPU与定时器协作以执行时间相关的操作,而中断处理则用于处理定时器触发的中断事件。

硬件定时器

  • 硬件计时器是计算机系统中的专用硬件组件,用于生成精确的时间间隔。硬件计时器通常是由计算机的主板或外部设备集成的,它们的主要任务是提供一个稳定的时间基准,以便系统可以测量时间和执行特定的时间相关操作。
  • 硬件计时器通常以晶体振荡器为基础,通过计数振荡器的周期来测量时间。计时器可以以不同的频率运行,例如1毫秒、10毫秒或1秒等。

个人计算机定时器

  • 个人计算机通常具有多个定时器,其中最重要的是系统时钟和实时时钟(RTC,Real-Time Clock)。系统时钟用于操作系统的时间跟踪,而RTC用于长期时间的记录,如日期和时间。
  • 系统时钟通常以固定的频率运行,例如100赫兹或1000赫兹,以测量时间间隔并执行任务调度。它通常与操作系统的计时功能相关,例如定时器中断。
  • RTC是一个独立的硬件设备,用于在计算机关闭时仍然维持准确的日期和时间信息。它通常由电池供电,因此即使计算机关闭,也可以继续工作。

CPU操作

  • CPU可以与硬件定时器和个人计算机定时器一起工作,以执行时间相关的操作。例如,CPU可以设置一个计时器以在特定时间后触发中断。
  • CPU可以使用特定指令来读取和设置计时器的计数值,以测量时间间隔。这些操作通常需要操作系统支持。

中断处理

  • 中断是计算机系统中的一种机制,允许硬件或软件请求CPU的注意。计时器通常与中断处理相关,因为它们可以在达到特定时间间隔时生成中断请求。
  • 操作系统会为特定计时器设置中断处理程序,以在计时器触发中断时执行特定任务。这可以用于任务调度、定时事件触发和其他时间相关的操作。
  • 中断处理通常包括保存当前CPU状态、执行中断处理程序、然后恢复之前的状态以继续正常执行。

时钟服务函数

时钟服务函数和系统调用用于在Unix/Linux系统中获取和设置系统时间,以及获取进程的运行时间统计信息。gettimeofday 和 settimeofday 系统调用用于高精度的时间操作,time 系统调用用于获取Unix时间戳,times 系统调用用于获取进程的时间统计信息。另外,time 和 date 命令是用于在命令行中获取和设置系统时间的工具。

gettimeofday 和 settimeofday 系统调用

  • gettimeofday 是一个系统调用,用于获取当前系统时间,包括秒数和微秒数。它通常返回一个 timeval 结构,其中包含了秒数和微秒数的信息。这个函数在C语言中使用 #include <sys/time.h> 头文件。
  • settimeofday 也是一个系统调用,用于设置系统的时间。这通常需要超级用户权限,因为改变系统时间可能会影响系统的正常运行。在大多数情况下,只有系统管理员才能调用此函数。

time 系统调用

  • time是另一个系统调用,用于获取当前系统时间,但它返回的是一个表示自1970年1月1日以来经过的秒数的整数值(通常称为Unix时间戳)。这个时间戳可以用于时间日期的计算和比较。
  • time 函数通常在C语言中使用,它在头文件 #include <time.h> 中定义。

times 系统调用

  • times 是一个系统调用,用于获取进程的运行时间统计信息。它返回一个 tms 结构,其中包含了用户态和内核态时间的统计信息,以及进程创建后的累积时间等。
  • 这个函数通常在C语言中使用,它在头文件 #include <sys/times.h> 中定义。

time 和 date 命令:

  • time 命令用于在Unix/Linux系统中获取命令执行的时间统计信息。它显示了命令的用户态、系统态和实际时间。
  • date 命令用于显示或设置系统时间和日期。通过 date 命令,您可以查看当前时间和日期,也可以设置系统时间和日期。

实践过程