嵌入式sram操作系统进程优先权调度的实现方法

文档序号:6556519阅读:135来源:国知局
专利名称:嵌入式sram操作系统进程优先权调度的实现方法
技术领域
本发明涉及嵌入式系统进程调度领域,特别是涉及一种嵌入式SRAM操作系统进程优先权调度的实现方法。
背景技术
在计算机系统中,可能同时有数百个批处理作业存放在磁盘的作业队列中,或者有数百个终端与主机相连接。如何从这些作业中挑选作业进入主存运行、如何在进程之间分配处理器时间,无疑是操作系统资源管理中的一个重要问题。这一涉及处理机分配的问题,称之为处理机调度。
我们经常遇到两个或多个进程在逻辑上均可以运行的情况。当有多个进程就绪时,操作系统必须决定先运行哪一个。操作系统中作出这种决定的部分称作调度程序(Scheduler)。
早期以磁带上的卡片映像作为输入的批处理系统时代的调度算法很简单依次运行磁带上的下一个作业。对于分时系统,则调度算法要复杂一些即使在个人电脑上,也可能有若干用户启动的进程竞争CPU,更不要说还有后台作业,例如网络或收发电子邮件的精灵进程。
一个好的处理机调度应当考虑很多方面,其中可能有公平确保每个进程获得合理的CPU份额。
有效使CPU百分之百地忙碌。
响应时间使交互用户的响应时间尽可能短。
周转时间使批处理用户等待输出的时间尽可能短。
吞吐量使每小时处理的作业数最多。
对这些目标稍加思考便会发现其中有矛盾之处。可以证明任何一个偏向某些类型作业的调度算法必将损害另一些作业。毕竟可利用的CPU时间是有限的。
调度程序必须面对的另一个麻烦是每个进程都不一样,而且不可预测。有些进程花费很多时间等待I/O,而另一些进程在允许的条件下将连续使用CPU达几个小时。为了保证不让进程运行得太久,几乎所有的计算机都内置一个电子定时器或时钟,它将定期地发出中断。在许多计算机上,操作系统能够根据需要将时钟频率设置成任意值。每发生一次时钟中断,操作系统都将运行,并决定当前进程是否应继续运行,还是它已经占用了足够长的CPU时间,应该暂停让其他进程运行。
允许将逻辑上可运行的进程暂时挂起的策略称作可剥夺调度(PreemptiveScheduling)。运行直到结束的调度方式称作非剥夺调度(NonpreemptiveScheduling)。进程可在任意时刻被不加警告地挂起,以便让另一个进程运行。这导致了竞争条件以及防止竞争条件的信号量、管程、消息或其他复杂的方法。另一方面,允许一个进程运行它所希望的时间意味着一个计算圆周率小数点后边十亿位的进程将使其他进程永远得不到服务。
所以尽管非剥夺调度简单且易于实现,但它通常不适于具有多个竞争用户的通用系统。另一方面,对于专用系统,如一个数据库服务器,主进程在收到请求时启动一个子进程并让其运行直到结束或阻塞则是很合理的。
因此通常对于不同的任务进程,会采用不同的调度方法。作为嵌入式SRAM操作系统,其特点是操作系统位于SRAM中,因此也需要采用建立在SRAM基础的调度方法。
比较各种介质memory的通常性能参数,得到各种Memeory对比性能如表

分析上表数据,SDRAM功耗远比SRAM和flash的功耗高,所以常规嵌入式操作系统实际上是使用功耗很大的SDRAM作为嵌入式系统的唯一主存。我们发现若能让内核代码在SRAM或者支持XIP的flash作为指令内存,那么将大大提高系统的速度,降低系统的功耗。
相比基于目前常见的桌面计算机硬件配置和普通桌面操作系统的情况下,嵌入式SRAM操作系统是基于移动终端设备的嵌入式SRAM存储器的一种特别应用(具体性能对比请参见上表),嵌入式SRAM存储器对操作运行的限制或其特殊性主要表现是在SRAM的情况下,其响应时间要远比在SDRAM情况下快,由硬件支持的SRAM的操作与SDRAM的操作也并不一致,这样,嵌入式SRAM操作系统的调度方式由于面临不同的条件,必然要采用与通常的系统不同的实现方法。
由于目前在非嵌入式领域,其CPU运算速度足以满足需要,但是嵌入式系统往往要求更高的响应速度。因此,仅有嵌入式系统的CPU具有SRAM可操作的特性,并且能够在移动终端设备中得到了应用。本发明是立足于嵌入式移动设备的需要而为嵌入式SRAM操作系统实现了其进程调度方法。

发明内容
本发明的目的在于提供一种嵌入式SRAM操作系统进程优先权调度的实现方法。
本发明解决其技术问题采用的技术方案如下本发明提供一种嵌入式SRAM操作系统进程优先权调度的实现方法,包括1)记录进程的状态将被加入就绪队列的进程信息录入该进程的进程控制块内,并装载到SRAM中,由于SRAM的容量较小,如果SRAM的容量不足,则在进程控制块中添加SRAM容量不足导致的进程状态为挂起的信息;(2)进程优先权划分对每一个进程进行优先等级划分,相同优先数的进程,被划分到同一个优先组;(3)进程选择读取进程进程控制块中记录的进程到达次序条目,将处理器分配给就绪队列中具有高优先权且存在于SRAM中的进程;对于同一个优先组内的进程,将先执行首进程;(4)处理器分配把选中进程的SPCB内有关现场的信息,尤其是SRAM容量的信息,送入处理器相应的寄存器中,使其占用处理器运行;(5)收回处理器当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的SPCB内的相应单元,从而使该进程让出处理器。
作为本发明的一种改进,所述录入进程控制块内的进程信息包括标识信息,用于唯一地标识一个进程;现场信息,用于保留进程在运行时存放在处理器现场中的各种信息,和控制信息,用于管理和调度一个进程。
本发明的有益的效果是该方法容易实现,并且对于优先级较高的进程,其占用CPU的时间也较长,有利于对于不同的进程进行分别处理,同时该方法有效利用当进程位于SRAM中时,当进程对于CPU的使用率较高时,SRAM对于进程调度响应速度快的特点。


图1是本发明过程的示意图;图2是进程控制块的示意图;图3是进程状态队列的示意图。
具体实施例方式
下面结合附图对本发明作进一步的说明。
一种嵌入式SRAM操作系统进程优先权调度的实现方法,附图1是本发明实施过程的整体示意图,其具体实施方法如下1)记住进程的状态在进程被创建进入就绪态,或者从其他状态进入到就绪状态,它们会被加入到一个就绪队列,对于每一个,记住进程的状态,这个信息一般记录在一个进程的进程控制块内;每一个进程都有一个也只有一个SRAM进程控制块Process ControlBlock,简称SPCB,是嵌入式SRAM操作系统用于记录和刻划进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。一般说,SPCB包含三类信息标识信息,用于唯一地标识一个进程,常常分由用户使用的外部标识符和被系统使用的内部标识号,几乎所有操作系统中进程都被赋予一个唯一的、内部使用的数值型的进程号,操作系统的其他控制表可以通过进程号来交叉引用进程控制表。常用的标识信息包括进程标识符、父进程的标识符、用户进程名等;现场信息,用于保留一个进程在运行时存放在处理器现场中的各种信息,任何一个进程在让出处理器时必须把此时的处理器现场信息保存到进程控制块中,而当该进程重新恢复运行时也应恢复处理器现场,常用的现场信息包括通用寄存器的内容、控制寄存器(如PSW寄存器)的内容、用户堆栈指针、系统堆栈指针等;控制信息,用于管理和调度一个进程。常用的控制信息包括进程的调度相关信息,如状态、等待事件或等待原因、优先级、采用的进程调度算法、队列指引元等;进程间通信相关信息,如消息队列指针、信号量;进程在二级存储器内的地址;资源的占用和使用信息,如已进程占用CPU的时间、进程已执行的时间总和;进程特权信息,如在内存访问和处理器状态方面的特权;资源清单,包括进程所需全部资源、已经分得的资源;此外,对于针对SRAM容量较小的特点,位于SRAM中的进程必然不能过多,因此,需要在进程的SPCB中记录下当前SRAM的容量,挂起原因,尤其是由于SRAM容量不足导致的某些进程被挂起或者是换出SRAM进入SDRAM;SPCB是嵌入式SRAM操作系统中最为重要的数据结构,每个SPCB包含了操作系统管理所需的所有进程信息,SPCB的集合事实上定义了一个操作系统的当前状态,进程控制块使用或修改权仅属于操作系统程序,包括调度程序、资源分配程序、中断处理程序、性能监视和分析程序等,有了SPCB位于SRAM中的进程才能被调度执行,如图2。
2)进程优先权划分每一个进程给出一个优先数,相同优先数的进程,被划分到同一个优先组,对于具有高优先权且存在于SRAM中的进程,将首先被分配执行;怎样确定优先数呢?可以有以下几种考虑,使用外围设备频繁者优先数大,这样有利于提高效率;重要算题程序的进程优先数大,这祥有利于用户;进入计算机时间长的进程优先数大,这样有利于缩短作业完成的时间;交互式用户的进程优先数大,这样有利于终端用户的响应时间等等。
为了防止高优先级进程无休止地运行下去,调度程序可能在每个时钟滴答降低当前进程的优先级。如果这个动作导致其优先级低于次高优先级,则将进行进程切换。或者给每个进程设定一段它能够连续使用CPU的时间片,一旦这段时间用完,则运行次高优先级的进程。优先级可以为静态或动态。
3)进程选择对于每个进入到就绪队列的进程,它的SPCB中都记录了该进程的详细信息,处理器在调度之前,读取进程SPCB中记录的进程优先权的条目,首先处理器将根据SPCB,判断SPCB中该进程是否位于SRAM中,或者SRAM的容量是否能够进行调度,如果满足条件,把CPU分配给就绪队列中优先权值相同的进程中的首进程;一般说来,处于同一状态,例如就绪态的所有进程控制块是连接在一起的,这样的数据结构称为进程队列,简称队列,对于等待态的进程队列可以进一步细分,每一个进程按等待的原因进入相应的队列;当发生的某个事件使一个进程的状态发生变化时,这个进程就要退出所在的某个队列而排入到另一个队列中去;一个进程从一个所在的队列中退出的工作称为出队,相反,一个进程排入到一个指定的队列中的工作称为入队;处理器调度中负责入队和出队工作的功能模块称为队列管理模块,简称队列管理,如图3。
4)处理器分配把选中进程的SPCB内有关现场的信息,送入处理器相应的寄存器中,从而让它占用处理器运行;5)收回处理器当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的SPCB内的相应单元,从而使该进程让出处理器。
最后,还需要注意的是,以上列举的仅是本发明的具体实施例子。显然,本发明不限于以上实施例子,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
权利要求
1.一种嵌入式SRAM操作系统进程优先权调度的实现方法,包括(1)记录进程的状态将被加入就绪队列的进程信息录入该进程的进程控制块内,并装载到SRAM中,由于SRAM的容量较小,如果SRAM的容量不足,则在进程控制块中添加SRAM容量不足导致的进程状态为挂起的信息;(2)进程优先权划分对每一个进程进行优先等级划分,相同优先数的进程,被划分到同一个优先组;(3)进程选择读取进程进程控制块中记录的进程到达次序条目,将处理器分配给就绪队列中具有高优先权且存在于SRAM中的进程;对于同一个优先组内的进程,将先执行首进程;(4)处理器分配把选中进程的SPCB内有关现场的信息,尤其是SRAM容量的信息,送入处理器相应的寄存器中,使其占用处理器运行;(5)收回处理器当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的SPCB内的相应单元,从而使该进程让出处理器。
2.根据权利要求1所述的嵌入式SRAM操作系统进程优先权调度的实现方法,其特征在于,所述录入进程控制块内的进程信息包括标识信息,用于唯一地标识一个进程;现场信息,用于保留进程在运行时存放在处理器现场中的各种信息,和控制信息,用于管理和调度一个进程。
全文摘要
本发明涉及嵌入式系统进程调度领域,旨在提供一种嵌入式SRAM操作系统进程优先权调度的实现方法。该方法包括记录进程的状态;进程优先权划分,对每一个进程进行优先等级划分,相同优先数的进程,被划分到同一个优先组;进程选择;处理器分配和收回处理器的步骤。该方法容易实现,并且对于优先级较高的进程,其占用CPU的时间也较长,有利于对于不同的进程进行分别处理,同时该方法有效利用当进程位于SRAM中时,当进程对于CPU的使用率较高时,SRAM对于进程调度响应速度快的特点。
文档编号G06F9/46GK1851651SQ200610050880
公开日2006年10月25日 申请日期2006年5月23日 优先权日2006年5月23日
发明者陈天洲, 胡威, 谢斌, 赵懿 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1