Linux原理与结构 作者 郭玉东 全书 第5章.pptVIP

Linux原理与结构 作者 郭玉东 全书 第5章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  在所有的外部中断中,时钟中断是最特别、最重要的一种。时钟中断驱动着操作系统中的时间与定时器,是系统中与时间相关的所有操作的基础,是必须由操作系统内核处理的最基本的外部中断。   时钟中断来源于计算机系统中的时钟设备。时钟设备是一种特殊的外部设备,其主要作用是产生时钟中断。传统的时钟设备常用于产生周期性的时钟中断,被看作是计算机系统的心跳与脉搏。老版本的Linux在时钟中断处理中完成所有与时间相关的管理工作,包括计时与定时,未形成独立的时钟管理系统。 这种嵌入在中断处理中的时钟管理方案虽然简单,但却存在一些问题,如与时钟设备硬件绑定过紧,难以维护;增加新的时钟设备时需重写管理程序,代码重复量大;难以提供高精度定时、周期性时钟中断暂停等新型服务等,因而有必要对系统中的时钟管理部分进行重新设计。   2005年以后,随着高精度时钟设备的引入,出现了多种时钟管理改进方案,这些方案被逐渐集成到了新的Linux版本中,逐步形成了独立的时钟管理系统。以时钟管理系统为基础,当前的Linux已可提供多种优质的计时与定时服务。      时钟管理系统负责管理时钟设备和计时器,处理系统中与时间相关的工作。Linux中的时钟管理系统由两大部分组成,其基础是时钟设备管理和计时器管理,建立在该基础上的是基于时间的服务,其组织结构如图5.1所示。 图5.1 时钟管理系统的组织结构   时钟设备管理子系统负责管理系统中的时钟设备,其中包含一个管理框架和一组通用操作,支持时钟设备的注册、选用、模式设置及时钟中断的处理。每一个时钟设备都需要向该子系统注册一个管理结构。时钟设备可工作在周期中断模式、高精度单发中断模式或低精度单发中断模式。但在一个特定的时间点上,一个时钟设备只能工作一种中断模式。   计时器管理子系统负责管理系统中的计时器设备。系统中可能同时存在多种计时器设备,每一种计时器都需要注册一个管理结构。以高精度计时器和时钟设备为基础,可为用户提供更加精确、平滑的时间服务。   时钟管理系统提供的服务包括时间管理(更新墙上时间并为用户提供时间服务)、定时管理(管理各类定时器并为用户提供定时服务)、进程账务管理(统计进程的时间消耗信息并在需要时启动进程调度)、负载管理(统计系统负载并进行必要的平衡)等。   老版本的Linux仅提供了两种定时器,即核心定时器和时间间隔定时器。新版本的Linux增加了一个管理框架,专门用于管理系统中的高精度定时器。核心定时器和时间间隔定时器可建立在周期性时钟中断之上,但高精度定时器只能建立在高精度单发式时钟中断之上。   单发式时钟中断仅在需要时产生,不需要时可以暂停。通过暂停空闲处理器上的周期性时钟中断,可极大地减少时钟中断的次数,改善系统的节能效果。      早期的系统中只有一个时钟设备,即PIT(Programmable Interval Timer)。目前的系统中通常配置有多种时钟设备,如Local APIC Timer、HPET(High Precision Event Timer)、ACPI的电源管理定时器(Power Management Timer)等。 其中的PIT和HPET属于全局时钟设备,Local APIC Timer属于局部时钟设备。每类全局时钟设备的配置量一般不会超过1个,但每个处理器都可能配置有自己的局部时钟设备。全局时钟设备所产生的时钟中断可以被递交给系统中任意一个处理器,局部时钟设备所产生的时钟中断仅会递交给与之相连的处理器。   时钟设备通常支持两种中断模式。工作在周期(Period)模式的时钟设备会产生周期性的时钟中断,工作在单发(One shot)模式的时钟设备每启动一次仅会产生一个时钟中断。 5.2.1 时钟设备管理结构   显然,不同的时钟设备具有不同的特性、不同的状态和不同的操作方法。为了统一管理,Linux定义了结构clock_event_device用来描述时钟设备,每种时钟设备一个。   结构clock_event_device中包含以下一些属性域:   (1) 时钟设备特性features,如是否支持周期中断模式、是否支持单发中断模式、是否会在处理器睡眠(C3状态)时停止产生中断、是否为哑设备等。   (2) 设备当前中断模式mode,如未用、已关闭、周期模式、单发模式等。   (3) 下一次时钟中断发生时间next_event,仅用于单发中断模式。next_event的取值范围在min_delta_ns和max_delta_ns之间,单位为纳秒。   (4) 转换关系mult和shift,用于时钟中断周期(纳秒)和输入脉冲数之间的相互转换。通常情况下,时钟设备在收到多个输入脉冲后会产生1个时钟中断。   (5) 时钟设备优先级rating,值越大

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档