一种操作系统进程调度方法

文档序号:6548372阅读:169来源:国知局
一种操作系统进程调度方法
【专利摘要】本发明公开了一种操作系统进程调度方法,该方法通过对操作系统创建进程及主动释放CPU过程的接口进行封装,同时添加所需监控信息的数据表项,实现对非抢占式系统进程的有效监控。根据本发明,可以在不需要创建新的进程,且无需与其他进程间通信的前提下,能够对非抢占式系统的进程进行有效监控,降低系统资源开销,提高CPU的运行效率。
【专利说明】一种操作系统进程调度方法

【技术领域】
[0001]本发明涉及一种操作系统进程调度方法,特别的涉及一种非抢占式操作系统进程调度方法。

【背景技术】
[0002]操作系统调度进程的方式大体上分为抢占式和非抢占式,对于抢占式系统,正在运行的进程可以被系统强行调度走,即现行进程在运行过程中,如果有重要或紧迫的进程到达(其状态必须为就绪),则正在运行进程将被迫放弃,系统将处理新到达的进程。对于非抢占式系统,除非进程主动释放CPU,否则,进程将一直占用CPU。由于系统的非抢占式特性,某个进程可能应该I秒执行一次,但是可能由于某种错误,导致进程执行了 2秒还没有释放CPU,而此时系统并未发觉进程的执行异常。
[0003]因此,有必要提供一种进程监控的方法,对于进程的名称、运行状态、优先级和执行时间等信息进行实时有效的监控,帮助系统处理执行进程的异常信息。
[0004]目前,现有技术中的进程监控方法,需要创建一个新的监控进程,使用该监控进程来监控其他进程,需要通过与其他进程之间的通信才能获取其他进程信息,因此加大了整个系统的资源开销。在不需要创建新进程的前提下,对系统的进程信息进行有效监控,成为了一种新的技术需求。


【发明内容】

[0005]本发明的目的是提供一种操作系统进程调度方法,特别的涉及一种非抢占式操作系统进程调度方法,所述方法通过创建进程监控信息的数据表项,并封装系统创建进程的接口和主动释放CPU过程的接口,可以在不需要创建新的进程,且无需与其他进程间通信的前提下,对非抢占式系统的进程进行有效监控,降低系统资源开销,提高CPU的运行效率。
[0006]根据本发明的一个方面,提供了一种操作系统进程调度方法,包括进程创建和进程释放两个阶段,其中,所述进程创建阶段包括下述步骤:步骤S101,创建进程的数据表项;步骤S102,创建进程;步骤S103,填充进程的数据表项;步骤S104,封装数据表项至创建进程接口 ;所述进程释放阶段包括下述步骤:步骤S201,系统获取进程的数据表项信息;步骤S202,系统判断进程是否出现异常情况;步骤S203,调用进程释放接口。
[0007]其中,所述步骤S103中,根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中。
[0008]优选的,所述数据表项包括下述进程执行参数中的一种或多种:进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间和进程执行时间。
[0009]优选的,所述创建进程接口在非抢占式操作系统中调用以创建新的进程。
[0010]可选的,所述进程在达到进程释放CPU的时间之后释放CPU以中断自身运行。
[0011]其中,所述步骤S201中,操作系统获取当前执行进程的至少下述数据表项信息以监控进程是否按照预先设置的执行参数运行:进程获取CPU的时间、进程释放CPU的时间和进程执行时间。
[0012]可选的,如果操作系统监测到某个进程在达到进程释放CPU的时间后没有释放CPU,则跳转到步骤S203以调用进程释放接口,使该进程释放CPU。
[0013]可选的,所述进程释放接口在非抢占式操作系统中调用以使得当前执行进程释放出 CPU。
[0014]其中,所述步骤S202中,系统判断进程是否出现异常情况包括以下步骤:正常情况下,系统主动释放CPU,进程调度操作结束;异常情况下,系统强制释放CPU,并跳转到步骤 S203。
[0015]可选的,还包括重新激活进程的步骤S204,在其他进程运行结束或者其他进程释放CPU之后,原进程重新获得CPU资源,从而激活原进程以继续执行后续事件。
[0016]可选的,本方法根据实际需要可随时提取进程的监控信息。
[0017]根据本发明的操作系统进程调度方法,不需要创建新进程且不参与其他进程间通信的前提下,就可以对所需的进程信息进行有效监控,包括获取进程的名称、执行状态、执行时间、进程优先级等信息,降低了系统的资源开销,提高了 CPU工作效率。

【专利附图】

【附图说明】
[0018]图1显示了现有技术中操作系统的单一进程运行原理示意图;
[0019]图2显示了现有技术中操作系统的多进程运行原理示意图;
[0020]图3显示了本发明操作系统中改进后的进程创建方法示意图;
[0021]图4显示了本发明操作系统中进程创建的方法流程图;
[0022]图5显示了本发明操作系统中进程释放的方法示意图;
[0023]图6显示了本发明操作系统中进程释放的方法流程图;
[0024]图7显示了本发明技术方案的整体结构示意图;
[0025]图8显示了本发明整体方法流程图。

【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0027]本发明的目的是提供一种操作系统进程调度方法,其通过对操作系统创建进程及主动释放CPU过程的接口进行封装,同时添加所需监控信息的数据表项,不需要创建新进程且不参与其他进程间通信的前提下,实现对非抢占式系统进程的有效监控,降低系统资源开销,提高CPU的工作效率。
[0028]图1显示了现有技术中操作系统的单一进程运行原理示意图。
[0029]如图1所示,在现有技术的操作系统进程运行过程中,单个进程通常采用顺序执行方式,即在某个进程中,系统按时间顺序先执行事件1,完成之后执行事件2,最后执行事件3,顺序完成所有的事件。
[0030]图2显示了现有技术中操作系统的多进程运行原理示意图。
[0031]如图2所示,在现有技术的操作系统多进程运行过程中,任一单个进程默认情况下都是顺序执行。在非抢占式操作系统中,除非进程主动释放CPU,否则进程将一直占用CPU。由于系统的非抢占式运行方式,某个进程可能应该是I秒执行一次,但是可能由于某种错误,导致进程执行了 2秒还没有释放CPU。
[0032]具体来说,参见图2,当执行进程I时,按照时间顺序先后执行事件I和事件2,在监控进程的作用下,进程I释放CPU,此时,事件3将无法得到执行。进一步,在监控进程的作用下,进程2会获得运行权,从而能够占用CPU资源,进程2执行工作1,然后在监控进程的作用下释放CPU,然后由进程I获得执行权,进程I继续占用CPU,可以接着执行事件3,然后继续执行事件1、事件2,释放CPU,如此反复循环。
[0033]由上可见,现有技术中通常是创建一个监控进程,使用该进程来监控其他进程,通过和其他进程的通信来获取其他进程的信息,以便达到监控的目的,这样会导致增加整个系统的开销。
[0034]图3显示了本发明操作系统中改进后的进程创建(CREATE)的方法示意图。
[0035]如图3所示,在本发明的操作系统中,将现有的进程创建方法进行改进,对系统创建进程的接口进行封装,使得在创建进程的过程中增加一个创建数据表项的过程。具体来说,在某个进程创建时,首先根据该进程的创建信息创建一数据表项,该数据表项包括进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息。其次,由非抢占式操作系统执行进程创建;最后,进行数据表项填充,将有关进程的各项参数输入到数据表项的各个项目中,从而完成了创建进程的全部流程。上述三个步骤封装到一个进程创建接口中,便于系统调用。
[0036]图4显示了本发明操作系统中进程创建(CREATE)的方法流程图。
[0037]如图4所示,本发明优选实施例的进程创建方法用于非抢占式操作系统中,所述方法包括下述步骤:
[0038]步骤S101,创建进程的数据表项。
[0039]在系统创建某个进程之前,根据所创建的进程的相关信息,针对该进程创建一数据表项,以监控并记录该进程的各项执行参数。具体来说,与进程对应的数据表项包括进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,这些参数记录并预先设置了进程的执行状态,便于系统调用进程时按照预定的执行参数执行。
[0040]步骤S102,创建进程。
[0041]操作系统创建新的进程。
[0042]步骤S103,填充进程的数据表项。
[0043]根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中,使得数据表项中记录了所创建进程的多项执行参数,例如进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等,再对非抢占式操作系统提供的进程进行接口封装,之后完成进程的数据表项填充工作。
[0044]步骤S104,封装数据表项至创建进程接口。
[0045]根据进程的监控信息创建完数据表项之后,对非抢占式操作系统提供的创建进程接口进行接口封装,之后完成进程的数据表项填充工作,至此完成了进程的创建过程,即CREATE 过程。
[0046]非抢占式的操作系统都提供了进程接口,在进程创建完毕之后,封装该进程接口。然后,通过调用该接口,可以让正在执行的进程中断执行,并释放CPU,使其他进程可以得到执行。
[0047]图5显示了本发明操作系统中进程释放(YIELD)的方法示意图。
[0048]某个进程在运行过程中,可能需要在中途释放CPU,以便其他进程使用CPU资源。如图5所示,进程执行事件I结束后,系统通过调用进程释放CPU,对非抢占式操作系统提供的主动释放CPU的接口进行封装,即通过YIELD接口使得该进程释放CPU。当该进程再次获得执行权限后,进程会继续执行事件2。同时,进程的数据表项记录进程的相关信息,以便最终获取进程的监控信息。
[0049]下面以进程状态、进程调度时间、进程执行时间为例进行详细说明:
[0050](I)在事件I处,记录系统的当前时间Tl,在事件2处记录系统的当前时间T2,那么进程被调度走的时间就是T2-T1,这些信息都保存在创建的表项里。
[0051](2)在事件I处,进程马上就要进入非执行状态了,因此可以在表项里记录进程状态为非执行状态。而在事件2处,由于进程又得到了执行,那么可以在数据表项里面记录进程状态为执行状态。
[0052](3)进程是个死循环,如果一个进程里面如果只有一个进程释放(YIELD)接口的话,T2记录了本次进程的开始时间,那么系统下次调用进程释放(YIELD)接口前记录时间T3,此时T3-T2就是系统的本次执行时间。
[0053]图6显示了本发明操作系统中进程释放的方法流程图。
[0054]步骤S201,系统获取进程的数据表项信息。
[0055]对于某个正在运行的进程来说,系统可以获取该进程的数据表项信息,从而获取该进程的进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,特别是能够获取进程获取CPU的时间、进程释放CPU的时间、进程执行时间等重要信息。
[0056]这样,系统可以监控该进程是否按照预先设置的执行参数运行。正常情况下,该进程在达到进程释放CPU的时间之后,会主动释放CPU,中断自身运行,从而将CPU让给其他进程运行。
[0057]步骤S202,系统判断进程是否出现异常情况。
[0058]有些情况下,进程因为各种原因没有按照预先设置主动释放CPU,此时需要系统介入,通过调用进程释放接口来促使进程强制中断并释放出CPU。具体来说,系统判断进程是否主动释放CPU,如果进程不主动释放CPU,则跳转到步骤S203。如果进程主动释放CPU,则进程调度操作结束。
[0059]步骤S203,调用进程释放接口。
[0060]非抢占式的操作系统通常提供了进程创建接口和进程释放接口(释放进程所占用的CPU资源)。本步骤中,操作系统通过调用进程释放接口(YIELD),使得正在执行的进程中断执行,释放CPU,使其他进程可以获得CPU资源而运行。相对于现有技术来说,可以不用另外创建监控进程,而是通过调用已有的进程释放接口实现进程的CPU释放,从而节省了系统资源。
[0061]可选的,本实施例的方法还包括步骤S204,重新激活进程。
[0062]在其他进程运行结束,或者其他进程释放CPU之后,原进程可以重新获得CPU资源,从而可以激活原进程,使原进程继续执行后续事件。
[0063]图7显示了本发明方案的整体结构示意图。
[0064]首先,进行进程CREATE过程I,主要包括监控信息的数据表项设计,封装操作系统进程接口,填充进程数据表项;其次,进行进程HELD过程2,主要包括顺序执行事件I,当存在主动释放CPU进程时,完成HELD接口封装,并重新调度进程,否则继续执行事件2 ;最后完成监控信息分析过程3。
[0065]图8显示了本发明的进程监控方法的整体流程图。
[0066]本实施例的进程监控方法用于非抢占式操作系统中,所述方法包括下述步骤:
[0067]步骤S101,创建进程的数据表项。
[0068]在系统创建某个进程之前,根据所创建的进程的相关信息,针对该进程创建一数据表项,以监控并记录该进程的各项执行参数。具体来说,与进程对应的数据表项包括进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,这些参数记录并预先设置了进程的执行状态,便于系统调用进程时按照预定的执行参数执行。
[0069]步骤S102,创建进程。
[0070]操作系统创建新的进程。非抢占式的操作系统都提供了进程接口,通过调用该接口,可以让正在执行的进程中断执行,并释放CPU,使其他进程可以得到执行,在创建完数据表项之后,系统创建新的进程。
[0071]步骤S103,填充进程的数据表项。
[0072]根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中,使得数据表项中记录了所创建进程的多项执行参数,例如进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等。再对非抢占式操作系统提供的进程进行接口封装,之后完成进程的数据表项填充工作。
[0073]步骤S104,封装数据表项至创建进程接口。
[0074]根据进程的监控信息创建完数据表项之后,对非抢占式操作系统提供的创建进程进行接口封装,之后完成进程的数据表项填充工作,至此完成了进程的创建过程,即CREATE过程。
[0075]步骤S201,系统获取进程的数据表项信息。
[0076]对于某个正在运行的进程来说,系统可以获取该进程的数据表项信息,从而获取该进程的进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,特别是能够获取进程获取CPU的时间、进程释放CPU的时间、进程执行时间等重要信息。
[0077]这样,系统可以监控该进程是否按照预先设置的执行参数运行。正常情况下,该进程在达到进程释放CPU的时间之后,会主动释放CPU,中断自身运行,从而将CPU让给其他进程运行。
[0078]步骤S202,系统判断进程是否出现异常情况。
[0079]有些情况下,进程因为各种原因没有按照预先设置主动释放CPU,在此种异常情况下,需要系统介入,通过调用进程释放接口来促使进程强制中断并释放出CPU。具体来说,系统判断进程是否主动释放CPU,如果进程不主动释放CPU,则跳转到步骤S203。如果进程主动释放CPU,则进程调度操作结束。
[0080]步骤S203,调用进程释放接口。
[0081]非抢占式的操作系统通常提供了进程创建接口和进程释放接口(释放进程所占用的CPU资源)。本步骤中,操作系统通过调用进程释放接口(YIELD),使得正在执行的进程中断执行,释放CPU,使其他进程可以获得CPU资源而运行。相对于现有技术来说,可以不用另外创建监控进程,而是通过调用已有的进程释放接口实现进程的CPU释放,从而节省了系统资源。
[0082]可选的,本实施例的方法还包括步骤S204,重新激活进程。
[0083]在其他进程运行结束,或者其他进程释放CPU之后,原进程可以重新获得CPU资源,从而可以激活原进程,使原进程继续执行后续事件。
[0084]步骤S301,提取进程监控信息。
[0085]下面以进程调度时间为例,具体说明如何提取进程监控信息
[0086]在执行事件I处,记录系统的当前时间Tl,在执行事件2处,记录系统的当前时间T2,那么进程被调度走的时间就是T2-T1,这些信息都保存在创建的表项里。
[0087]本实施例的操作系统进程调度方法,不需要创建新进程且不参与其他进程间通信的前提下,能够实现对非抢占式操作系统进程的有效监控,降低系统资源开销,提高CPU的工作效率。
[0088]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【权利要求】
1.一种操作系统进程调度方法,包括进程创建和进程释放两个阶段,其中,所述进程创建阶段包括下述步骤: 步骤S101,创建进程的数据表项; 步骤S102,创建进程; 步骤S103,填充进程的数据表项; 步骤S104,封装数据表项至创建进程接口 ; 所述进程释放阶段包括下述步骤: 步骤S201,系统获取进程的数据表项信息; 步骤S202,系统判断进程是否出现异常情况; 步骤S203,调用进程释放接口。
2.根据权利要求1所述的方法,所述步骤S103中,根据所创建的进程以及对应的数据表项,将有关该进程的执行参数输入到数据表项中。
3.根据权利要求1所述的方法,所述数据表项包括下述进程执行参数中的一种或多种:进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间和进程执行时间。
4.根据权利要求1-3中任一项所述的方法,所述创建进程接口在非抢占式操作系统中调用以创建新的进程。
5.根据权利要求1-3中任一项所述的方法,所述进程在达到进程释放CPU的时间之后释放CPU以中断自身运行。
6.根据权利要求1-3中任一项所述的方法,所述步骤S201中,获取当前执行进程的至少下述数据表项信息以监控进程是否按照预先设置的执行参数运行:进程获取CPU的时间、进程释放CPU的时间和进程执行时间。
7.根据权利要求6所述的方法,如果监测到某个进程在达到进程释放CPU的时间后没有释放CPU,则跳转到步骤S203以调用进程释放接口,使该进程释放CPU。
8.根据权利要求1-3中任一项所述的方法,所述进程释放接口在非抢占式操作系统中调用以使得当前执行进程释放出CPU。
9.根据权利要求1-3中任一项所述的方法,所述步骤S202中,系统判断进程是否出现异常情况包括以下步骤: 正常情况下,系统主动释放CPU,进程调度操作结束; 异常情况下,系统强制释放CPU接口,并跳转到步骤S203。
10.根据权利要求1-3中任一项所述的方法,还包括重新激活进程的步骤S204,在其他进程运行结束或者其他进程释放CPU之后,原进程重新获得CPU资源,从而激活原进程以继续执行后续事件。
【文档编号】G06F9/46GK104050030SQ201410239702
【公开日】2014年9月17日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】李鹏 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1