一种分析嵌入式设备实时性的方法
技术领域
本发明涉及用于嵌入式设备的实时性分析技术领域,具体涉及的是,一种分析嵌入式设备实时性的方法。
背景技术
内嵌于嵌入式设备中的软件程序在运行过程中,必须满足严格的实时性要求,某些业务必须在指定时间内开始,并且要在指定时间内完成并给出响应,否则就不能满足用户的需求。
通常分析嵌入式设备实时性的方法是:在软件发起一项业务申请后,设置一个“开始定时器”和一个“完成定时器”,如果开始定时器超时后,业务仍然未开始,则认为不满足实时性要求;如果完成定时器超时后,业务仍然未完成,也认为不满足实时性要求。这种分析方法的缺点是:每项业务都要自行设置定时器,设计的工作量很大,流程复杂,占用的资源也很大。可见,现有技术中存在一定的问题,需要开拓新的方法对嵌入式设备的实时性进行分析。
发明内容
本发明的目的在于提供一种分析嵌入式设备实时性的方法,其可以自动分析哪些业务没有满足实时性要求,并自动上报到网管系统。
为了实现上述目的,本发明提供了一种分析嵌入式设备实时性的方法,该方法包括目的进程分析过程,其包括以下步骤:
A、在嵌入式设备中设置一时钟中断,记录系统的工作时间;
B、高层应用软件层发起一项业务时,控制进程给目的进程发送一条消息,所述消息中记录有发送消息时刻、用于表明业务在发送消息后多长时间内开始的开始时间、用于表明业务在发送消息后多长时间内完成的完成时间;
C、底层操作系统软件层读取当前时钟中断记录的时钟数,并根据目的进程接收到的消息,分析业务运行是否满足实时性需求,具体过程为:
当所述目的进程开始运行所述消息时,底层操作系统软件层用读取的当前时钟中断记录的时钟数减去所述目的进程中当前消息记录的发送消息时刻,如果计算结果大于该消息中记录的开始时间,则认定业务开始时间不满足实时性需求;
当所述目的进程运行完毕所述消息时,底层操作系统软件层用读取的当前时钟中断记录的时钟数减去所述目的进程中当前消息记录的发送消息时刻,如果计算结果大于该消息中记录的完成时间,则认定业务完成时间不满足实时性需求。
其中,所述方法还包括:与所述目的进程分析过程并行运行的监控任务,其包括以下步骤:
A1、读取当前时钟中断记录的时钟数;
A2、检查所有业务的当前进程;
A3、根据所述目的进程接收到的消息,分析业务运行是否满足实时性需求。
其中,所述步骤A3按照以下过程分析业务运行的实时性:
将读取的当前时钟数减去所述目的进程中当前消息记录的发送消息时刻,如果计算结果大于该消息中记录的完成时间,则认定业务完成时间不满足实时性需求。
其中,所述开始时间和完成时间的字段初始值由高层应用软件层在调用操作系统提供的发送消息的接口函数时,根据需求来填入。
其中,所述发送消息时刻的字段初始值由底层操作系统软件层读取当前时钟中断记录的时钟数,并自动填入。
其中,所述步骤A中,所述时钟中断的精度与业务要求的时钟精度相同。
其中,所述步骤A中还包括以下步骤:在嵌入式设备中设置一内存区,用于记录不满足实时性需求的业务信息。并且,所述步骤C中,当认定业务不满足实时性需求时,将当前进程处理的消息的相关信息记录到所述内存区中存储,并修改消息中用于记录时间的字段。
其中,当内存区写满数据时,判断网管系统是否已经接入嵌入式系统;
如果是,则将内存区中的内容上报给网管系统,并清空内存区,然后从内存区的首地址开始记录信息;
如果否,则自动从内存区的首地址开始记录信息,覆盖内存区中原有的记录。
本发明所提供的一种分析嵌入式设备实时性的方法,当业务不满足时实行需求时,可以自动记录,而不需要人工处理,并且可以将记录的结果上报给网管系统进行分析;还通过设立监控任务,保证了在系统运行的特殊情况,仍能完成实时性分析的任务。
附图说明
图1为本发明分析嵌入式设备实时性的流程图。
具体实施方式
以下结合附图详细说明本发明的技术方案。
本发明所应用的嵌入式设备上运行的软件包括底层操作系统软件层和高层应用软件层两个部分,下面将结合图1,说明本发明的方法是如何实现实时性自动分析的,其包括以下步骤:
步骤200,本发明需要让嵌入式设备提供一个时钟中断,该时钟中断的精度应当满足业务的需求,并与业务要求的时钟精度相同。例如:业务要求时钟精度为100毫秒,那么这个时钟中断的精度也应是100毫秒,即1秒有10个时钟中断。
步骤201,当高层应用软件层发起一项业务时,控制进程给目的进程(即,执行处理这项业务的进程)发送一条消息,并在该消息体中记录有:发送消息时刻、开始时间、完成时间,以及该消息的记录标志。
这里的“发送消息时刻”记录是表征该业务发起时的消息发送时刻,其字段初始值由底层操作系统软件层读取当前时钟中断记录的时钟数,并自动填入。而这里的“开始时间”用于表明业务在发送消息后多长时间内开始,“完成时间”用于表明业务在发送消息后多长时间内完成,这两个时间字段的初始值是预先设定的,具体可以由高层应用软件层在调用操作系统提供的发送消息的接口函数时,根据需求来填入。“开始时间”和“完成时间”字段记录的可以是具体的时钟中断数,例如,1秒有10个时钟中断,当前时钟数为10000,某个业务要求在发起业务申请后,2秒内开始业务,3秒内业务执行完毕,那么消息的开始时间”和“完成时间”字段分别填入20和30,“发送消息时刻”填入10000。其也可以记录表示“永久”标志的字段。例如:定义“永久”字段为TIME FOREVER,那么可以这样定义:
#define TIME_FOREVER 0xffffffff。
当“开始时间”和“完成时间”被定义为“永久”标志后,则表示该业务的处理不需要实时性要求,那么本发明的实时性分析流程将不予考虑。
步骤202,目的进程收到上述消息,并开始运行该消息,表征业务开始。
步骤203,当目的进程开始运行上述消息时,底层操作系统软件层读取当前时钟中断记录的时钟数,并用读取的当前时钟数减去目的进程中当前消息记录的发送消息时刻,如果计算结果大于该消息中记录的开始时间,则认定业务开始时间不满足实时性需求,否则,则认定业务开始时间满足实时性需求,并执行步骤204。根据上述步骤201中的例子,假如,此时时钟数为10050,那么10050-10000=50,大于开始时间20,则证明开始时间超过了实时性要求,应该进行记录。
步骤204,消息运行完成。
步骤205,当目的进程运行完毕所述消息时,底层操作系统软件层读取当前时钟中断记录的时钟数,并用读取的当前时钟数减去目的进程中当前消息记录的发送消息时刻,如果计算结果大于该消息中记录的完成时间,认定业务完成时间不满足实时性需求,否则,则认定业务完成时间满足实时性需求,并执行步骤206。根据上述步骤201中的例子,假如,此时时钟数为10080,那么10080-10000=80,大于完成时间30,则证明完成时间超过了实时性要求,应该进行记录。
步骤206,业务结束。
当然,如果消息体中“开始时间”和“完成时间”字段记录的是“永久”标志,则在上述步骤203和205中,目的进程开始运行上述消息或运行完毕时,需要对该消息体中“开始时间”或“完成时间”是否存在“永久”标志进行一个判断,如果“开始时间”字段记录的是“永久”标志,则上述步骤203中,则不予处理;如果“完成时间”字段记录的是“永久”标志,则上述步骤205中,则不予处理。
对于上述对实时性的分析,本发明还可以对分析结构进行自动记录,这就需要在上述步骤200中要求嵌入式设备提供一内存区,用于记录不满足实时性需求的业务信息,例如:使用100KB的内存区用于记录信息。那么,在上述步骤203或205中,当认定业务开始时间或完成时间不满足实时性需求时,将该消息的相关信息记录到所述内存区中存储。当内存区写满数据时,判断网管系统是否已经接入嵌入式系统;如果是,则将内存区中的内容上报给网管系统,并清空内存区,然后从内存区的首地址开始记录新的信息;如果否,则自动从内存区的首地址开始记录新的信息,覆盖内存区中原有的记录。
为了避免内存区中重复记录信息,则需要在相关信息记录到内存区后修改消息中用于记录相应时间的字段信息。比如,在上述步骤203时,当认定业务开始时间不满足实时性需求时,在内存区中记录相关信息,并同时将目的业务处理的当前消息中记录的开始时间字段设置为永久标志。而,当认定业务完成时间不满足实时性需求时,在内存区中记录相关信息,并同时将目的业务处理的当前消息中记录的完成时间字段设置为永久标志。
上述分析方法是目的进程分析过程,由每个各个业务的目的进程来完成的,但是,一旦系统出现死循环,当前进程无法运行时,则不能执行完成消息的任务,也就是无法执行上述步骤205的过程,那么,这是就需要由另一个任务来做实时性记录。所以,本发明还提供了一个与所述目的进程分析过程并行运行的用于监控所有业务的监控任务,该监控任务的优先级高于所有业务任务,可以由底层操作系统软件层来提供。监控任务每隔一个监控周期运行一次,首先读取当前时钟中断记录的时钟数,并遍历所有业务进程,检查所有业务的当前进程,如果各个业务的目的进程当前消息的完成时间字段不是“永久”,则将读取的当前时钟数减去目的进程中当前消息体中记录的发送消息时刻,如果计算结果大于该消息体中记录的完成时间,则认定业务完成时间不满足实时性需求,那么这时可以将相关信息记录到上述步骤200所提供的内存区中,并将“完成时间”字段填入“永久”标志,避免重复记录;否则,则认定业务完成时间满足实时性需求。举个例子,假设上述监控任务每隔2秒运行一次。当监控任务运行时,如果时钟数为10060,那么恰好此时目的进程还没有执行完消息,所以利用10060-10000=60,该结果大于完成时间30,从而证明完成时间超过了实时性要求,记录到内存区里,并将“完成时间”字段填入“TIME_FOREVER”标志。那么,当目的进程运行完消息时,执行上述步骤205,发现“完成时间”的字段为“永久”,则不会继续记录,从而就避免了重复记录。
本发明通过嵌入式设备提供的一个时钟中断,来实时分析嵌入式设备的实时性,嵌入式设备上运行的软件层包含底层操作系统软件层和高层应用软件层两个层次;并且,嵌入式设备采用消息驱动机制,当高层应用软件层需要发起一项业务时,控制进程给处理这项业务的进程(以下称为目的进程)发送一条消息,而本发明就可以将该消息中记录四个字段的内容,即开始时间(Time To Start)、完成时间(Time To Finish)、发送消息时刻、记录标志,通过比较业务开始时刻或完成时刻与该消息体中预设时间的大小,来分析判断该业务的开始或完成是否不具有实时性要求。
本发明还通过嵌入式设备提供的一块内存区,自动记录不满足实时性需求的业务信息,并自动上报给网管系统,为网管对各个业务的运行监控提供了准确的依据。
从上述技术方案可知,本发明主要可以用于分析嵌入式设备中的哪些业务和操作没有满足实时性要求,并能够自动记录并上报给网管,从而为设计者优化软件的执行效率提供依据。
应当理解的是,上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。