《一种操作系统进程调度方法.pdf》由会员分享,可在线阅读,更多相关《一种操作系统进程调度方法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104050030A43申请公布日20140917CN104050030A21申请号201410239702522申请日20140530G06F9/46200601G06F9/5020060171申请人汉柏科技有限公司地址300384天津市西青区华苑产业区海泰西18号西3楼104室72发明人李鹏74专利代理机构北京天奇智新知识产权代理有限公司11340代理人谢磊54发明名称一种操作系统进程调度方法57摘要本发明公开了一种操作系统进程调度方法,该方法通过对操作系统创建进程及主动释放CPU过程的接口进行封装,同时添加所需监控信息的数据表项,实现对非抢占式系统进程的有效监控。根据本。
2、发明,可以在不需要创建新的进程,且无需与其他进程间通信的前提下,能够对非抢占式系统的进程进行有效监控,降低系统资源开销,提高CPU的运行效率。51INTCL权利要求书1页说明书6页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书6页附图4页10申请公布号CN104050030ACN104050030A1/1页21一种操作系统进程调度方法,包括进程创建和进程释放两个阶段,其中,所述进程创建阶段包括下述步骤步骤S101,创建进程的数据表项;步骤S102,创建进程;步骤S103,填充进程的数据表项;步骤S104,封装数据表项至创建进程接口;所述进程释放阶段包括下述步骤步骤。
3、S201,系统获取进程的数据表项信息;步骤S202,系统判断进程是否出现异常情况;步骤S203,调用进程释放接口。2根据权利要求1所述的方法,所述步骤S103中,根据所创建的进程以及对应的数据表项,将有关该进程的执行参数输入到数据表项中。3根据权利要求1所述的方法,所述数据表项包括下述进程执行参数中的一种或多种进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间和进程执行时间。4根据权利要求13中任一项所述的方法,所述创建进程接口在非抢占式操作系统中调用以创建新的进程。5根据权利要求13中任一项所述的方法,所述进程在达到进程释放CPU的时间之后释放CPU以中断自身。
4、运行。6根据权利要求13中任一项所述的方法,所述步骤S201中,获取当前执行进程的至少下述数据表项信息以监控进程是否按照预先设置的执行参数运行进程获取CPU的时间、进程释放CPU的时间和进程执行时间。7根据权利要求6所述的方法,如果监测到某个进程在达到进程释放CPU的时间后没有释放CPU,则跳转到步骤S203以调用进程释放接口,使该进程释放CPU。8根据权利要求13中任一项所述的方法,所述进程释放接口在非抢占式操作系统中调用以使得当前执行进程释放出CPU。9根据权利要求13中任一项所述的方法,所述步骤S202中,系统判断进程是否出现异常情况包括以下步骤正常情况下,系统主动释放CPU,进程调度操。
5、作结束;异常情况下,系统强制释放CPU接口,并跳转到步骤S203。10根据权利要求13中任一项所述的方法,还包括重新激活进程的步骤S204,在其他进程运行结束或者其他进程释放CPU之后,原进程重新获得CPU资源,从而激活原进程以继续执行后续事件。权利要求书CN104050030A1/6页3一种操作系统进程调度方法技术领域0001本发明涉及一种操作系统进程调度方法,特别的涉及一种非抢占式操作系统进程调度方法。背景技术0002操作系统调度进程的方式大体上分为抢占式和非抢占式,对于抢占式系统,正在运行的进程可以被系统强行调度走,即现行进程在运行过程中,如果有重要或紧迫的进程到达其状态必须为就绪,则正。
6、在运行进程将被迫放弃,系统将处理新到达的进程。对于非抢占式系统,除非进程主动释放CPU,否则,进程将一直占用CPU。由于系统的非抢占式特性,某个进程可能应该1秒执行一次,但是可能由于某种错误,导致进程执行了2秒还没有释放CPU,而此时系统并未发觉进程的执行异常。0003因此,有必要提供一种进程监控的方法,对于进程的名称、运行状态、优先级和执行时间等信息进行实时有效的监控,帮助系统处理执行进程的异常信息。0004目前,现有技术中的进程监控方法,需要创建一个新的监控进程,使用该监控进程来监控其他进程,需要通过与其他进程之间的通信才能获取其他进程信息,因此加大了整个系统的资源开销。在不需要创建新进程。
7、的前提下,对系统的进程信息进行有效监控,成为了一种新的技术需求。发明内容0005本发明的目的是提供一种操作系统进程调度方法,特别的涉及一种非抢占式操作系统进程调度方法,所述方法通过创建进程监控信息的数据表项,并封装系统创建进程的接口和主动释放CPU过程的接口,可以在不需要创建新的进程,且无需与其他进程间通信的前提下,对非抢占式系统的进程进行有效监控,降低系统资源开销,提高CPU的运行效率。0006根据本发明的一个方面,提供了一种操作系统进程调度方法,包括进程创建和进程释放两个阶段,其中,所述进程创建阶段包括下述步骤步骤S101,创建进程的数据表项;步骤S102,创建进程;步骤S103,填充进程。
8、的数据表项;步骤S104,封装数据表项至创建进程接口;所述进程释放阶段包括下述步骤步骤S201,系统获取进程的数据表项信息;步骤S202,系统判断进程是否出现异常情况;步骤S203,调用进程释放接口。0007其中,所述步骤S103中,根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中。0008优选的,所述数据表项包括下述进程执行参数中的一种或多种进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间和进程执行时间。0009优选的,所述创建进程接口在非抢占式操作系统中调用以创建新的进程。0010可选的,所述进程在达到进程释放CPU的时间。
9、之后释放CPU以中断自身运行。0011其中,所述步骤S201中,操作系统获取当前执行进程的至少下述数据表项信息以说明书CN104050030A2/6页4监控进程是否按照预先设置的执行参数运行进程获取CPU的时间、进程释放CPU的时间和进程执行时间。0012可选的,如果操作系统监测到某个进程在达到进程释放CPU的时间后没有释放CPU,则跳转到步骤S203以调用进程释放接口,使该进程释放CPU。0013可选的,所述进程释放接口在非抢占式操作系统中调用以使得当前执行进程释放出CPU。0014其中,所述步骤S202中,系统判断进程是否出现异常情况包括以下步骤正常情况下,系统主动释放CPU,进程调度操作。
10、结束;异常情况下,系统强制释放CPU,并跳转到步骤S203。0015可选的,还包括重新激活进程的步骤S204,在其他进程运行结束或者其他进程释放CPU之后,原进程重新获得CPU资源,从而激活原进程以继续执行后续事件。0016可选的,本方法根据实际需要可随时提取进程的监控信息。0017根据本发明的操作系统进程调度方法,不需要创建新进程且不参与其他进程间通信的前提下,就可以对所需的进程信息进行有效监控,包括获取进程的名称、执行状态、执行时间、进程优先级等信息,降低了系统的资源开销,提高了CPU工作效率。附图说明0018图1显示了现有技术中操作系统的单一进程运行原理示意图;0019图2显示了现有技术。
11、中操作系统的多进程运行原理示意图;0020图3显示了本发明操作系统中改进后的进程创建方法示意图;0021图4显示了本发明操作系统中进程创建的方法流程图;0022图5显示了本发明操作系统中进程释放的方法示意图;0023图6显示了本发明操作系统中进程释放的方法流程图;0024图7显示了本发明技术方案的整体结构示意图;0025图8显示了本发明整体方法流程图。具体实施方式0026为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混。
12、淆本发明的概念。0027本发明的目的是提供一种操作系统进程调度方法,其通过对操作系统创建进程及主动释放CPU过程的接口进行封装,同时添加所需监控信息的数据表项,不需要创建新进程且不参与其他进程间通信的前提下,实现对非抢占式系统进程的有效监控,降低系统资源开销,提高CPU的工作效率。0028图1显示了现有技术中操作系统的单一进程运行原理示意图。0029如图1所示,在现有技术的操作系统进程运行过程中,单个进程通常采用顺序执行方式,即在某个进程中,系统按时间顺序先执行事件1,完成之后执行事件2,最后执行事件3,顺序完成所有的事件。说明书CN104050030A3/6页50030图2显示了现有技术中操。
13、作系统的多进程运行原理示意图。0031如图2所示,在现有技术的操作系统多进程运行过程中,任一单个进程默认情况下都是顺序执行。在非抢占式操作系统中,除非进程主动释放CPU,否则进程将一直占用CPU。由于系统的非抢占式运行方式,某个进程可能应该是1秒执行一次,但是可能由于某种错误,导致进程执行了2秒还没有释放CPU。0032具体来说,参见图2,当执行进程1时,按照时间顺序先后执行事件1和事件2,在监控进程的作用下,进程1释放CPU,此时,事件3将无法得到执行。进一步,在监控进程的作用下,进程2会获得运行权,从而能够占用CPU资源,进程2执行工作1,然后在监控进程的作用下释放CPU,然后由进程1获得。
14、执行权,进程1继续占用CPU,可以接着执行事件3,然后继续执行事件1、事件2,释放CPU,如此反复循环。0033由上可见,现有技术中通常是创建一个监控进程,使用该进程来监控其他进程,通过和其他进程的通信来获取其他进程的信息,以便达到监控的目的,这样会导致增加整个系统的开销。0034图3显示了本发明操作系统中改进后的进程创建CREATE的方法示意图。0035如图3所示,在本发明的操作系统中,将现有的进程创建方法进行改进,对系统创建进程的接口进行封装,使得在创建进程的过程中增加一个创建数据表项的过程。具体来说,在某个进程创建时,首先根据该进程的创建信息创建一数据表项,该数据表项包括进程名称、进程号。
15、、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息。其次,由非抢占式操作系统执行进程创建;最后,进行数据表项填充,将有关进程的各项参数输入到数据表项的各个项目中,从而完成了创建进程的全部流程。上述三个步骤封装到一个进程创建接口中,便于系统调用。0036图4显示了本发明操作系统中进程创建CREATE的方法流程图。0037如图4所示,本发明优选实施例的进程创建方法用于非抢占式操作系统中,所述方法包括下述步骤0038步骤S101,创建进程的数据表项。0039在系统创建某个进程之前,根据所创建的进程的相关信息,针对该进程创建一数据表项,以监控并记录该进程的各项执行参。
16、数。具体来说,与进程对应的数据表项包括进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,这些参数记录并预先设置了进程的执行状态,便于系统调用进程时按照预定的执行参数执行。0040步骤S102,创建进程。0041操作系统创建新的进程。0042步骤S103,填充进程的数据表项。0043根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中,使得数据表项中记录了所创建进程的多项执行参数,例如进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等,再对非抢占式操作系统提供的进程。
17、进行接口封装,之后完成进程的数据表项填充工作。0044步骤S104,封装数据表项至创建进程接口。0045根据进程的监控信息创建完数据表项之后,对非抢占式操作系统提供的创建进程说明书CN104050030A4/6页6接口进行接口封装,之后完成进程的数据表项填充工作,至此完成了进程的创建过程,即CREATE过程。0046非抢占式的操作系统都提供了进程接口,在进程创建完毕之后,封装该进程接口。然后,通过调用该接口,可以让正在执行的进程中断执行,并释放CPU,使其他进程可以得到执行。0047图5显示了本发明操作系统中进程释放YIELD的方法示意图。0048某个进程在运行过程中,可能需要在中途释放CPU。
18、,以便其他进程使用CPU资源。如图5所示,进程执行事件1结束后,系统通过调用进程释放CPU,对非抢占式操作系统提供的主动释放CPU的接口进行封装,即通过YIELD接口使得该进程释放CPU。当该进程再次获得执行权限后,进程会继续执行事件2。同时,进程的数据表项记录进程的相关信息,以便最终获取进程的监控信息。0049下面以进程状态、进程调度时间、进程执行时间为例进行详细说明00501在事件1处,记录系统的当前时间T1,在事件2处记录系统的当前时间T2,那么进程被调度走的时间就是T2T1,这些信息都保存在创建的表项里。00512在事件1处,进程马上就要进入非执行状态了,因此可以在表项里记录进程状态为。
19、非执行状态。而在事件2处,由于进程又得到了执行,那么可以在数据表项里面记录进程状态为执行状态。00523进程是个死循环,如果一个进程里面如果只有一个进程释放YIELD接口的话,T2记录了本次进程的开始时间,那么系统下次调用进程释放YIELD接口前记录时间T3,此时T3T2就是系统的本次执行时间。0053图6显示了本发明操作系统中进程释放的方法流程图。0054步骤S201,系统获取进程的数据表项信息。0055对于某个正在运行的进程来说,系统可以获取该进程的数据表项信息,从而获取该进程的进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,特别是能。
20、够获取进程获取CPU的时间、进程释放CPU的时间、进程执行时间等重要信息。0056这样,系统可以监控该进程是否按照预先设置的执行参数运行。正常情况下,该进程在达到进程释放CPU的时间之后,会主动释放CPU,中断自身运行,从而将CPU让给其他进程运行。0057步骤S202,系统判断进程是否出现异常情况。0058有些情况下,进程因为各种原因没有按照预先设置主动释放CPU,此时需要系统介入,通过调用进程释放接口来促使进程强制中断并释放出CPU。具体来说,系统判断进程是否主动释放CPU,如果进程不主动释放CPU,则跳转到步骤S203。如果进程主动释放CPU,则进程调度操作结束。0059步骤S203,调。
21、用进程释放接口。0060非抢占式的操作系统通常提供了进程创建接口和进程释放接口释放进程所占用的CPU资源。本步骤中,操作系统通过调用进程释放接口YIELD,使得正在执行的进程中断执行,释放CPU,使其他进程可以获得CPU资源而运行。相对于现有技术来说,可以不用另外创建监控进程,而是通过调用已有的进程释放接口实现进程的CPU释放,从而节省说明书CN104050030A5/6页7了系统资源。0061可选的,本实施例的方法还包括步骤S204,重新激活进程。0062在其他进程运行结束,或者其他进程释放CPU之后,原进程可以重新获得CPU资源,从而可以激活原进程,使原进程继续执行后续事件。0063图7显。
22、示了本发明方案的整体结构示意图。0064首先,进行进程CREATE过程1,主要包括监控信息的数据表项设计,封装操作系统进程接口,填充进程数据表项;其次,进行进程YIELD过程2,主要包括顺序执行事件1,当存在主动释放CPU进程时,完成YIELD接口封装,并重新调度进程,否则继续执行事件2;最后完成监控信息分析过程3。0065图8显示了本发明的进程监控方法的整体流程图。0066本实施例的进程监控方法用于非抢占式操作系统中,所述方法包括下述步骤0067步骤S101,创建进程的数据表项。0068在系统创建某个进程之前,根据所创建的进程的相关信息,针对该进程创建一数据表项,以监控并记录该进程的各项执行。
23、参数。具体来说,与进程对应的数据表项包括进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,这些参数记录并预先设置了进程的执行状态,便于系统调用进程时按照预定的执行参数执行。0069步骤S102,创建进程。0070操作系统创建新的进程。非抢占式的操作系统都提供了进程接口,通过调用该接口,可以让正在执行的进程中断执行,并释放CPU,使其他进程可以得到执行,在创建完数据表项之后,系统创建新的进程。0071步骤S103,填充进程的数据表项。0072根据所创建的进程以及对应的数据表项,操作系统将有关该进程的执行参数输入到数据表项中,使得数据表项中记录。
24、了所创建进程的多项执行参数,例如进程名称、进程号、进程优先级、进程状态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等。再对非抢占式操作系统提供的进程进行接口封装,之后完成进程的数据表项填充工作。0073步骤S104,封装数据表项至创建进程接口。0074根据进程的监控信息创建完数据表项之后,对非抢占式操作系统提供的创建进程进行接口封装,之后完成进程的数据表项填充工作,至此完成了进程的创建过程,即CREATE过程。0075步骤S201,系统获取进程的数据表项信息。0076对于某个正在运行的进程来说,系统可以获取该进程的数据表项信息,从而获取该进程的进程名称、进程号、进程优先级、进程状。
25、态、进程获取CPU的时间、进程释放CPU的时间、进程执行时间等信息,特别是能够获取进程获取CPU的时间、进程释放CPU的时间、进程执行时间等重要信息。0077这样,系统可以监控该进程是否按照预先设置的执行参数运行。正常情况下,该进程在达到进程释放CPU的时间之后,会主动释放CPU,中断自身运行,从而将CPU让给其他进程运行。0078步骤S202,系统判断进程是否出现异常情况。说明书CN104050030A6/6页80079有些情况下,进程因为各种原因没有按照预先设置主动释放CPU,在此种异常情况下,需要系统介入,通过调用进程释放接口来促使进程强制中断并释放出CPU。具体来说,系统判断进程是否主。
26、动释放CPU,如果进程不主动释放CPU,则跳转到步骤S203。如果进程主动释放CPU,则进程调度操作结束。0080步骤S203,调用进程释放接口。0081非抢占式的操作系统通常提供了进程创建接口和进程释放接口释放进程所占用的CPU资源。本步骤中,操作系统通过调用进程释放接口YIELD,使得正在执行的进程中断执行,释放CPU,使其他进程可以获得CPU资源而运行。相对于现有技术来说,可以不用另外创建监控进程,而是通过调用已有的进程释放接口实现进程的CPU释放,从而节省了系统资源。0082可选的,本实施例的方法还包括步骤S204,重新激活进程。0083在其他进程运行结束,或者其他进程释放CPU之后,。
27、原进程可以重新获得CPU资源,从而可以激活原进程,使原进程继续执行后续事件。0084步骤S301,提取进程监控信息。0085下面以进程调度时间为例,具体说明如何提取进程监控信息0086在执行事件1处,记录系统的当前时间T1,在执行事件2处,记录系统的当前时间T2,那么进程被调度走的时间就是T2T1,这些信息都保存在创建的表项里。0087本实施例的操作系统进程调度方法,不需要创建新进程且不参与其他进程间通信的前提下,能够实现对非抢占式操作系统进程的有效监控,降低系统资源开销,提高CPU的工作效率。0088应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。说明书CN104050030A1/4页9图1图2说明书附图CN104050030A2/4页10图3图4说明书附图CN104050030A103/4页11图5图6说明书附图CN104050030A114/4页12图7图8说明书附图CN104050030A12。