广东电缆厂有限公司,操作系统中的时钟管理(一)
国内的操作体系教材根本都不讲时钟办理的问题,而时钟不仅对整个计算机体系的完成是重要的(有人称“时钟是计算机体系的脉息”),对了解操作体系的理论相同很重要,比方讲时刻片轮转调度算法,假如没有对时钟机制的了解,就只能讲算法的概述,无法深入解释时刻片轮转调度算法在技术上究竟如何完成。本文简化具体的体系细节,先介绍计算机体系的时钟机制,再重点阐明操作体系时钟硬件和软件如何合作作业完结根据时刻片的进程调度功用。
一.时钟的重要性
计算机的许多活动都是经过守时丈量(timing measurement)来驱动的,计算机体系的守时丈量功用对用户一般是不行见的。例如,屏幕保护功用的完成,就是使用守时器。咱们可以让操作体系的内核跟踪用户最终一次按键或移动鼠标后经过了多少时刻,假如这个时刻到达一个用户设定的阈值,屏幕会自动进入被保护状态。
再比方编译程序,为了缩短一个比较大的工程文件从头编译和链接的时刻,关于一个工程文件中的一切源程序,并不是每次修改某一个源文件后都需求从头编译一切的源文件。一般,咱们只编译那些源文件的最终修改时刻晚于相应方针文件生成时刻的源程序。如:有一个文件a.c和它的方针文件a.obj,假如a.c的生成时刻晚于a.obj的生成时刻,需求从头编译a.c以构成新的a.obj。为了进行这些操作,程序必须能从每个文件中检索到文件的最终访问时刻,即时刻戳(timestamp),因此,这样的时刻标记必须由内核自动地设置。
此外,很重要的一个功用是:操作体系的内核可以使用时钟机制避免一个进程垄断CPU或其它资源。比方:体系可以使用时钟机制约束一个用户进程在CPU上接连履行的时刻,当进程一次接连运转的时刻超过限制的时刻时,由体系将CPU分配给其它进程。
计算机中当时时刻显示功用、即时通讯程序等与时刻相关的软件都需求时钟机制的支撑。
二.计算机体系中的时钟
大部分PC机中至少有两个时钟源,别离叫做RTC时钟和OS时钟。RTC时钟也叫CMOS时钟,是一块时钟芯片,靠电池供电,为计算机供给计时标准,是最原始、最底层的数据。OS时钟发生于PC主板上的守时/计数芯片,在开机时有效,由 OS操控。
计算机开机加电后,操作体系经过BIOS获取当时RTC时钟的值作为体系的初始时刻,操作体系初始化后启用自己的时钟硬件,一般叫做可编程距离守时器(programmable interval timer ,PIT),PIT可以依照必定的频率发生时钟中止(timer interrupt),以告知内核又一个时刻距离过去了。
三.操作体系的时钟机制
操作体系内核需求完结两种首要的守时丈量,一是保存当时的日期和时刻,以便能经过体系调用把它们返回给用户程序,让用户程序取得当时的日期和时刻。也可以由内核自身把当时时刻作为文件和网络包的时刻戳。二是维持守时器,这种机制可以告诉内核或用户程序某一时刻距离现已过去了。操作体系依托时钟硬件(可编程距离守时器)和时钟驱动程序完结上述两种守时丈量功能。
1.OS时钟办理硬件(可编程距离守时器PIT)
可编程距离守时器的功用是按指定的时刻距离发生时钟中止,丈量逝去的时刻,并触发与时刻有关的操作。首要由三部分构成:晶振、计数器、坚持寄存器。
晶振可以发生固定频率的脉冲,每发生一次脉冲,计数器的值减1,当计数器的值减为0时,发生一次时钟中止信号,坚持寄存器的值再次送计数器。由可编程距离守时器发生的时钟中止信号送到可编程中止操控器的时钟中止信号引脚上。
时钟中止的频率取决于硬件体系结构,在较快的机器上或许是1000Hz,即每1ms发生一次时钟中止。在较慢的机器上时钟中止的频率或许100Hz,即每10ms发生一次时钟中止。
2. 时钟软件—时钟中止处理程序
每发生一次时钟中止信号,操作体系内核要履行时钟中止处理程序,时钟中止处理程序完结比如下述功用:
(1)保护日期、时刻。
(2)递减时刻片并检查是否为零,避免进程运转超时。
(3)对 CPU的使用情况记帐。
(4)递减报警计数器。
四.时刻片轮转调度算法的完成
在早期的时刻片轮转调度算法中,体系将一切的安排妥当进程按先来先服务的准则,排成一个行列,每次调度时把CPU分配给队首进程,并令其履行一个时刻片,当时刻片用完时,调度程序停止当时进程的履行,并将它送到安排妥当行列的队尾。时刻片是一个较小的时刻单元,一般为10ms到100ms。现在许多操作体系内核对一般的分时进程采取的时刻片调度战略是:从安排妥当行列中选择优先权大的进程,为其分配CPU后,令其运转一个时刻片。
时刻片调度算法的思想很简单,但是其完成需求硬件和软件的互相合作。咱们在了解时钟机制的基础上,尽量简单地阐明时刻片轮转调度的完成进程。
在进程的操控块中设置记载进程在CPU上剩下运转时刻的字段,在进程处于履行态的进程中,每逢发生时钟中止信号时,内核履行时钟中止处理程序,在中止处理进程中对当时进程的进程操控块中记载剩下履行时刻的变量做递减操作,检测递减后的值是否为零,当检测到该变量值为零时转进程调度程序,从头进行CPU的分配。由此可见,完成时刻片轮转调度在硬件上需求可编程中止操控器、可编程距离守时器的支撑,内核在软件完成上需求设置记载进程在CPU上运转的剩下时刻值、完成时钟中止的处理程序。

