您当前所在的位置是 : 首页 >> 新闻中心
操作系统中的时钟管理

发布时间:2023-04-28 作者: 来源: 阅读量:0

[摘要]时钟不仅对整个计算机系统的实现是重要的,对理解操作系统的理论同样很重要,计算机的很多活动都是通过定时测量来驱动的,计算机系统的定时测量功能对用户通常是不可见的。例如,荧幕保护功能的实现,就是利用定时器。我们可以让操作系统的内核跟踪用户最后一次按键或移动鼠标后经过了多少时间,如果这个时间达到一个用户设定的阈值,荧幕会自动进入被保护状态。

时钟不仅对整个计算机系统的实现是重要的,对理解操作系统的理论同样很重要,计算机的很多活动都是通过定时测量来驱动的,计算机系统的定时测量功能对用户通常是不可见的。例如,荧幕保护功能的实现,就是利用定时器。我们可以让操作系统的内核跟踪用户最后一次按键或移动鼠标后经过了多少时间,如果这个时间达到一个用户设定的阈值,荧幕会自动进入被保护状态。

 

  计算机中当前时间显示功能、实时通讯程序等与时间相关的软件都需要时钟机制的支持。

 

  大部分PC机中至少有两个时钟源,分别叫做RTC时钟和OS时钟。RTC时钟也叫CMOS时钟,是一块时钟芯片,靠电池供电,为计算机提供计时标准,是最原始、最底层的数据。OS时钟产生于PC主板上的定时/计数芯片,在开机时有效,由OS控制。

 

  计算机开机加电后,操作系统通过BIOS获取当前RTC时钟的值作为系统的初始时间,操作系统初始化后启用自己的时钟硬件,通常叫做可编程间隔定时器,PIT可以按照一定的频率产生时钟中断,以告知内核又一个时间间隔过去了。

 

  操作系统内核需要完成两种主要的定时测量,一是保存当前的日期和时间,以便能通过系统调用把它们返回给用户程序,让用户程序获得当前的日期和时间。也可以由内核本身把当前时间作为档和网络包的时间戳。二是维持定时器,这种机制能够告诉内核或用户程序某一时间间隔已经过去了。操作系统依靠时钟硬件(可编程间隔定时器)和时钟驱动程序完成上述两种定时测量功能。

 

  可编程间隔定时器的功能是按指定的时间间隔产生时钟中断,测量逝去的时间,并触发与时间有关的操作。主要由三部分构成:晶振、计数器、保持寄存器。

 

  每产生一次时钟中断信号,操作系统内核要执行时钟中断处理程序,时钟中断处理程序完成诸如下述功能:

 

  维护日期、时间;递减时间片并检查是否为零,防止进程运行超时;对CPU的使用情况记帐;递减报警计数器。

 

  在早期的时间片轮转调度算法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时把CPU分配给队首进程,并令其执行一个时间片,当时间片用完时,调度程序终止当前进程的执行,并将它送到就绪队列的队尾。时间片是一个较小的时间单元,通常为10ms到100ms。现在很多操作系统内核对一般的分时进程采取的时间片调度策略是:从就绪队列中选择优先权大的进程,为其分配CPU后,令其运行一个时间片。

 

  时间片调度算法的思想很简单,但是其实现需要硬件和软件的互相配合。我们在理解时钟机制的基础上,尽量简单地说明时间片轮转调度的实现过程。

  在进程的控制块中设置记录进程在CPU上剩余运行时间的字段,在进程处于执行态的过程中,每当产生时钟中断信号时,内核执行时钟中断处理程序,在中断处理过程中对当前进程的进程控制块中记录剩余执行时间的变量做递减操作,检测递减后的值是否为零,当检测到该变量值为零时转进程调度程序,重新进行CPU的分配。由此可见,实现时间片轮转调度在硬件上需要可编程中断控制器、可编程间隔定时器的支持,内核在软件实现上需要设置记录进程在CPU上运行的剩余时间值、实现时钟中断的处理程序。


本文标签 :