首页 > 其他分享 >第五章知识点完整性总结

第五章知识点完整性总结

时间:2023-11-03 11:01:39浏览次数:27  
标签:知识点 定时器 中断 间隔 计数器 第五章 完整性 CPU 时钟

第五章 定时器及时钟服务

本章讨论了定时器和定时器服务;介绍了硬件定时器的原理和基于 Intel x86 的 PC 中的硬件定时器;讲解了 CPU 操作和中断处理;描述了 Linux 中与定时器相关的系统调用、库函数和定时器服务命令;探讨了进程间隔定时器、 定时器生成的信号


硬件定时器

定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。使用一个倒计时值对计数器进行编程,每个时钟信号减1。当计数减为0时,计数器向 CPU 生成一个定时器中断,将计数值重新加载到计数器中,并重复倒计时。计数器周期称为定时器刻度,是系统的基本计时单元。

个人计算机定时器

基千 Intel x86 的个人计算机有数个定时器 (Bovet 和 Cesati 2005) 。

  1. 实时时钟 (RTC): RTC 由一个小型备用电池供电。即使在个人计算机关机时,它也能连续运行。它用于实时提供时间和日期信息。当 Linux 启动时,它使用RTC更新系统时间变量,以与当前时间保待一致。在所有类 Unix 系统中,时间变量是一个长整数,包含从 1970 年 1 月 1 日起经过的秒数。
  2. 可编程间隔定时器 (PIT)(Wang 2015): PIT 是与 CPU 分离的一个硬件定时器。可对它进行编程,以提供以毫秒为单位的定时器刻度。在所有I/O设备中,PIT可以最高优先级 IRQ0 中断。PIT 定时器中断由 Linux 内核的定时器中断处理程序来处理,为系统操作提供基本的定时单元,例如进程调度、进程间隔定时器和其他许多定时事件。
  3. 多核 CPU 中的本地定时器 (Intel 1997 ; Wang 2015):在多核 CPU 中,每个核都是一个独立的处理器、它有自己的本地定时者片,由 CPU 时钟驱动。
  4. 高分辨率定时器:大多数电脑都有一个时间戳定时器 (TSC), 由系统时钟驱动。它的内容可通过 64 位 TSC 寄存器读取。 由千不同系统主板的时钟频率可能不同,TSC不适合作为实时设备,但它可提供纳秒级的定时器分辨率。

CPU操作

每个 CPU 都有一个程序计数器 (PC), 也称为指令指针 (IP), 以及一个标志或状态寄存器 (SR)、一个堆栈指针 (SP) 和几个通用寄存器, 当 PC 指向内存中要执行的下一条指令时, SR 包含 CPU 的当前状态, 如操作模式、 中断掩码和条件码, SP 指向当前堆栈栈顶。

中断处理

外部设备(如定时器)的中断被馈送到中断控制器的预定义输入行 (Intel 1990 ; Wang 2015), 按优先级对中断输入排序, 并将具有最高优先级的中断作为中断诸求(lRQ)路由 到 CPU。存每条指令执行结束时 ,如果 CPU 未处于接受中断的状态,即在 CPU 的状态寄存器中屏蔽了中断,它将忽略中断请求,使其处于挂起状态,并继续执行下一条指令。如果 CPU 处千接受中断状态,即中断未被屏蔽,那么 CPU 将会转移它正常的执行顺序来进行中 断处理乙 对于每个中断,可以编程中断控制器以生成一个唯一编号,叫作中断向量,标识中 断源。在获取中断向量号后,CPU 用它作为内存中中断向呈表 (AMD64 2011) 中的条目索引条目包含一个指向中断处理程序入口地址的指针米实际处理中断。


time系统调用

time_t time(time_t *t)

以秒为单位返回当前时间。如果参数t不是NULL,还会将时间存储在t指向的内存中。 time系统调用具有一定的局限性,只提供以秒为单位的分辨率,而不是以微秒为单位。

clock_t times(struct tms *buf);

可用于获取某进程的具体执行时间。它将进程时间存储在 struct tms buf 中。


间隔定时器

Linux为每个进程提供了三种不同类型的间隔计时器, 可用作进程计时的虚拟时钟。 间隔定时器由 setitimer() 系统洞用创建。 getitimer() 系统调用返回间隔定时器的状态。

有三类间隔定时器

  1. ITIMER _ REAL : 实时减少, 在到期时生成一个 SIGALRM (14) 倌号。
  2. ITIMER_ VIRTUAL: 仅当进程在用户模式下执行时减少, 在到期时生成一个SIGVTALRM (26) 信号。
  3. ITIMER_PROF: 当进程正在用户模式和系统(内核)模式下执行时减少。这类间隔定时器与ITIMER_VIRTUAL结合使用, 通常用千分析应用程序在用户模式和内核模式下花费的时间。 它在到期时生成一个 SIGPROF (27) 信号。

标签:知识点,定时器,中断,间隔,计数器,第五章,完整性,CPU,时钟
From: https://www.cnblogs.com/sjd-sr/p/17807118.html

相关文章

  • Golang中Defer知识点
    1:defer的执行顺序多个defer出现的时候,它是一个“栈”的关系,也就是先进后出。一个函数中,写在前面的defer会比写在后面的defer调用的晚packagemainimport"fmt"funcmain(){deferfunc1()deferfunc2()deferfunc3()}funcfunc1(){fmt.Println("A")......
  • JavaScript知识点
    new操作符1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型2、属性和方法被加入到this引用的对象中3、新创建的对象由this所引用,并且最后隐式的返回thisAjax原理1、Ajax的原理简单来说是在用户和服务器之间加了一个中间层(AJAX引擎),通过XmiHttpRequest对象来向服......
  • map知识点总结
    map是STL的一个关联容器,它提供一对一的hash(哈希表)第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部......
  • sql语句性能进阶必须了解的知识点——索引失效分析
    在前面的文章中讲解了sql语句的优化策略https://blog.51cto.com/liwen629/8146651sql语句的优化重点还有一处,那就是——索引!好多sql语句慢的本质原因就是设置的索引失效或者根本没有建立索引!今天我们就来总结一下那些无效的索引设置方式进而避免大家踩坑!看到这里有的同学会问:what?......
  • Java语言基础知识点梳理与总结
    Java语言基础知识点梳理与总结Java是一种广泛应用于软件开发的编程语言,具有丰富的特性和功能。在学习Java语言时,了解以下基础知识点对于建立坚实的编程基础非常重要。本博客将介绍Java语言中的标识符、运算符、流程控制、循环结构、分支结构、数组、方法、类与对象等主要知识点。......
  • java语言基础数组,方法,类相关知识点的梳理总结
     Java是一种强大的面向对象编程语言,具有丰富的语法和功能。以下是Java语言的一些基础知识点的总结:数组(Arrays):数组是一种用于存储相同数据类型元素的数据结构。声明数组:int[]numbers=newint[5];,这创建了一个包含5个整数的数组。访问数组元素:intfirstNumber=......
  • 第五章学习笔记
    一、硬件定时器硬件定时器是计算机内部的硬件组件,用于生成定时中断信号。它通常由CPU或主板集成,可用于测量时间和执行定时操作。以下是一个简单的示例,演示如何在Linux上使用硬件定时器:include<stdio.h>include<stdlib.h>include<signal.h>include<sys/time.h>voidtimer......
  • Raid阵列中硬盘损坏后,新硬盘可以直接换上吗? 及更换新硬盘方法 RAID学习与知识点
    RAID(RedundantArrayofIndependentDisks)是一种磁盘阵列技术,它通过将多个独立的硬盘组合成一个具有冗余能力的磁盘阵列,以实现提高存储性能和数据安全性的目的。在RAID中,多个硬盘被组合成一个逻辑单元,数据会被分布在各个硬盘上,从而提高了数据的读写速度和可靠性。同时,RAID还提供了......
  • 【每日三十六记 —— BGP知识点汇总大全】(第一弹)
    个人名片:......
  • 物理层知识点提要
    @目录基本概念奈斯/香农定理编码与调制电路交换、报文交换、分组交换传输介质设备自用,所以有些概念重点等是我个人比较看重的,具有强烈的主观性,如果有其他见解或是有误还请不吝赐教基本概念数据与信号:数据是发送信息的实体,信号是数据的电气或电磁表现。码元:一个波形(简单来说)。k......