CN112711467A - 分区超时处理方法、装置、计算机设备及存储介质 - Google Patents

分区超时处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112711467A
CN112711467A CN202011495654.8A CN202011495654A CN112711467A CN 112711467 A CN112711467 A CN 112711467A CN 202011495654 A CN202011495654 A CN 202011495654A CN 112711467 A CN112711467 A CN 112711467A
Authority
CN
China
Prior art keywords
partition
overtime
timeout
current
current partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011495654.8A
Other languages
English (en)
Other versions
CN112711467B (zh
Inventor
李月花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Coretek Systems Technology Co ltd
Original Assignee
Beijing Coretek Systems Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Coretek Systems Technology Co ltd filed Critical Beijing Coretek Systems Technology Co ltd
Priority to CN202011495654.8A priority Critical patent/CN112711467B/zh
Publication of CN112711467A publication Critical patent/CN112711467A/zh
Application granted granted Critical
Publication of CN112711467B publication Critical patent/CN112711467B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种分区超时处理方法、装置、设备及存储介质。该方法包括:当应用程序运行到当前分区时,获取除当前分区之外其余各分区的超时标志状态;在其余各分区中任一分区的超时标志状态为超时的情况下,将当前分区的超时标志状态设置为不超时,将应用程序跳出当前分区并顺序运行至下一分区;在其余各分区的超时标志状态均为不超时的情况下,在当前分区中基于所述当前分区的超时状态执行与应用程序对应的任务,并设置当前分区的超时标志状态。本发明实施例能够保证应用软件共享区数据实时更新的正确性,提高了应用软件的强壮性和可靠性。

Description

分区超时处理方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种分区超时处理方法、装置、计算机设备及存储介质。
背景技术
许多应用程序是基于分时分区操作系统的时间片轮转调度的,通过一张静态配置主帧的时间调度表,在调度时使处理器反复根据相同的主帧运行应用程序。图1是现有技术中时间片轮转调度的示意图。如图1所示,在一个主帧内设有应用程序的各分区分别对应的时间窗口,还可以包括一个空闲时间窗口。各分区可以在其对应的时间窗口内被激活,以执行分区内的相应任务;时间窗口一旦结束,处理器使用权便被强制转交给下一个分区,从而使每个分区依次在分配给它的时间片内,分区内的各个任务可以不被打断的访问共享资源。
然而,在使用不当的情况下,一个分区中会出现处理器在分配给它的时间片内无法完成全部相应任务的执行的情况,而时间窗口一旦结束,处理器使用权便被强制转交给下一个分区。此时,共享区数据则有可能没有按预期全部更新完成,导致与之关联的其他分区通过访问共享区获取的资源不正确,从而导致应用程序出现不可预知的错误。
发明内容
本发明实施例提供一种分区超时处理方法、装置、计算机设备及存储介质,以保证应用软件共享区数据实时更新的正确性,提高应用软件的强壮性和可靠性。
第一方面,本发明实施例提供了一种分区超时处理方法,包括:
当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;
在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;
在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
第二方面,本发明实施例还提供了一种分区超时处理装置,包括:
超时标志状态获取模块,用于当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;
当前分区跳出模块,用于在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;
当前分区执行模块,用于在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的分区超时处理方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的分区超时处理方法。
本发明实施例通过给各分区设置超时标志,对各分区内的任务完成情况进行记录,在应用程序运行至任意分区后首先获取其余各分区的超时标志状态,如果存在任意分区中的任务未完成的情况,则优先跳转至任务未完成的分区继续运行,以保证应用程序各分区的共享区数据实时更新的正确性,避免由于其他分区任务未完成而导致共享区数据更新出现错误,以至于使应用程序出现不可预知错误的问题,以此提高了应用软件的强壮性和可靠性。
附图说明
图1为现有技术中时间片轮转调度的示意图。
图2为本发明实施例一提供的一种分区超时处理方法的流程图。
图3为本发明实施例二提供的一种分区超时处理方法的流程图。
图4为本发明实施例二提供的一种分区超时处理方法的流程示意图。
图5为本发明实施例二提供的又一种分区超时处理方法的流程示意图。
图6本发明实施例三提供的一种分区超时处理装置的结构示意图。
图7为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图2是本发明实施例一提供的一种分区超时处理方法的流程图,本实施例可适用于在应用程序中存在任意分区中的任务未完成的情况下确保程序正确运行的情况,该方法可以由本发明实施例提供的分区超时处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中。相应的,如图2所示,该方法包括如下操作:
S110、当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态。
其中,所述应用程序基于分时分区操作系统的时间片轮转调度,所述超时标志状态用于表示分区内的任务完成情况。
具体的,当前分区可以是处理器根据主帧运行应用程序时,在当前时间进入的时间窗口对应的分区。其余各分区可以是除当前时间进入的时间窗口外,主帧中的其余时间窗口分别对应的分区。超时标志可以是预先设置的用于表示各分区中的任务在其对应的时间窗口内是否完成的变量,各分区可以分别对应于一个超时标志。超时标志状态可以包括超时或不超时,若分区中的任务在其对应的时间窗口内执行完成,可以将分区对应的超时标志状态设置为不超时;若分区中的任务在其对应的时间窗口内没有执行完成,可以将分区对应的超时标志状态设置为超时。
相应的,可以在应用程序的共享区设置全局变量作为超时标志,可选的,可以为各分区分别设置一个全局变量作为各分区各自的超时标志,各全局变量的取值可以表示对应分区的超时标志状态;也可以设置一个全局变量作为全部分区的超时标志,该全局变量的取值可以表示各分区的超时标志状态。在应用程序初次运行时,各分区对应的超时标志状态可以被设置为不超时,而在应用程序运行的过程中,当任意分区中的任务在对应的时间窗口内没有被执行完成时,该分区对应的超时标志状态可以被设置为超时,进而在应用程序顺序运行至该分区的下一分区时,可以获取该分区的超时标志状态为超时。
可选的,超时标志可以是一个无符号bit数据类型的全局变量,其位数可以根据应用程序的分区数量确定,一个bit位可以作为一个分区对应的超时标志,用bit位取值表示超时标志状态。示例性的,可以用0表示不超时的超时标志状态,用1表示超时的超时标志状态。
S120、在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区。
其中,下一分区可以是当前分区对应的时间窗口的相邻的下一个时间窗口对应的分区。
相应的,其余各分区中任意分区的超时标志状态为超时,可以表明超时标志状态为超时的分区中的任务在应用程序上一次运行在该分区时没有被执行完成,则共享区中的数据有可能没有被更新完成,如果此时继续执行当前分区中的任务,会存在当前分区中的任务在共享区中获取到错误数据的可能,易导致应用程序运行错误。因此,可以将应用程序跳出当前分区,即不执行当前分区中的任务,而顺序运行至下一分区。在顺序运行至下一分区之前,还可以将当前分区的超时标志状态设置为不超时。
进一步的,在运行至下一分区时,下一分区即成为了当前分区,则继续获取其余各分区中任意分区的超时标志状态。此时,上一个分区的超时标志状态已经被设置为不超时,则如果其余各分区中任意分区的超时标志状态为超时,可以表明在当前分区和上一分区之外的分区中存在任意分区,在应用程序上一次运行在其中时,其中的任务在其对应的时间窗口内没有被执行完成。此时,再次将应用程序跳出当前分区,并顺序运行至下一分区,同时将当前分区的超时标志状态设置为不超时。以此方式,直至在应用程序运行到超时标志状态为超时的分区时,获取的其余各分区的超时标志状态均为不超时。
S130、在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
其中,与应用程序对应的任务可以是在应用程序的当前分区中处理器需要执行的任务。
相应的,其余各分区的超时标志状态均为不超时,可以表明在应用程序上一次运行在其余各分区中时,其余各分区中的任务均在其各自对应的时间窗口中被执行完成,则共享区中的数据已全部更新完毕,此时可以开始执行当前分区中的任务。
进一步的,当前分区的超时标志状态可以为超时或不超时。若当前分区的超时标志状态为不超时,则可以表明在应用程序上一次运行在全部分区中时,全部分区中的任务均在其各自对应的时间窗口中被执行完成,即应用程序正常运行。此时,可以开始执行当前分区中的任务,以使应用程序继续正常运行。若当前分区的超时标志状态为超时,则可以表明在应用程序上一次运行在当前分区中时,当前分区中的任务在其对应的时间窗口内没有被执行完成。此时,可以开始执行当前分区中的任务,以使当前分区中的任务可以被执行完成,从而使共享区中的数据正确更新,确保应用程序运行到下一分区中可以通过访问共享区获取正确的数据。
本发明实施例提供了一种分区超时处理方法,通过给各分区设置超时标志,对各分区内的任务完成情况进行记录,在应用程序运行至任意分区后首先获取其余各分区的超时标志状态,如果存在任意分区中的任务未完成的情况,则优先跳转至任务未完成的分区继续运行,以保证应用程序各分区的共享区数据实时更新的正确性,避免由于其他分区任务未完成而导致共享区数据更新出现错误,以至于使应用程序出现不可预知错误的问题,以此提高了应用软件的强壮性和可靠性。
实施例二
图3为本发明实施例二提供的一种分区超时处理方法的流程图。本发明实施例以上述实施例为基础进行具体化,在本发明实施例中,给出了在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态的具体可选的实现方式。
如图3所示,本发明实施例的方法具体包括:
S210、当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态。
其中,所述应用程序基于分时分区操作系统的时间片轮转调度,所述超时标志状态用于表示分区内的任务完成情况。
S220、判断所述其余各分区中是否存在任意分区的超时标志状态为超时,若是,则执行S230,否则,执行S240。
S230、在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区。
S240、在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
在本发明的一个可选实施例中,S240具体可以包括S241、S242和S244,或包括S241、S243和S244。其中:
S241、判断所述当前分区的超时标志状态是否为超时,若是,则执行S242,否则,执行S243;并在S242或S243执行结束后继续执行S244。
S242、在所述当前分区的超时标志状态为超时的情况下,获取所述当前区分在前一主帧中的超时位置,并跳转至所述超时位置处继续执行与所述应用程序对应的任务。
其中,前一主帧可以是应用程序上一次运行在当前分区中时对应的时间窗口所在的主帧。超时位置可以是在前一主帧中的当前分区对应的时间窗口结束时,处理器停止执行分区中的任务时所处的任务节点。
相应的,当前分区的超时标志状态为超时,可以表明当前分区中的任务在前一主帧中的对应时间窗口结束时没有被执行完成,则在当前时间下可以直接获取当前分区在前一主帧中的超时位置,并跳转至超时位置处继续执行与应用程序对应的任务,可以在当前时间对应的时间窗口中直接从前一主帧中未被执行的任务的起始处开始执行任务,避免前一主帧中已执行完成的任务被重复执行,造成资源的浪费。
S243、在所述当前分区的超时标志状态为不超时的情况下,将所述当前分区的超时标志状态设置为超时,并在所述当前分区内执行与所述应用程序对应的任务。
相应的,当前分区的超时标志状态为不超时,可以表明当前分区中的任务在前一主帧中的对应时间窗口结束时已被执行完成,则在当前时间下可以开始执行当前分区中的任务。同时,可以将当前分区的超时标志状态设置为超时,以表明当前分区中的任务在当前主帧中的对应时间窗口中处于执行中且尚未被执行完成。
S244、若所述当前分区调度时间窗口内分区执行的任务已完成,则将所述当前分区的超时标志状态设置为不超时。
其中,当前分区调度时间窗口可以是在当前主帧中分配给当前分区的时间窗口。
相应的,若当前分区调度时间窗口内,即当前主帧中的当前分区对应的时间窗口结束前,当前分区中的任务已被执行完成,可以将当前分区的超时标志状态设置为不超时,则在应用程序顺序运行至其余各分区或下一次运行至当前分区中时,可以获取当前分区的超时标志状态为不超时,从而确定当前分区中的任务在当前主帧中的对应时间窗口中已被执行完成。
反之,若当前分区调度时间窗口内,在当前分区内执行的任务没有完成,则当前分区的超时标志状态不会被设置为不超时,即保持为超时,则应用程序顺序运行至下一分区时,可以通过执行S210~S220获取当前分区的超时标志状态为超时,从而确定当前分区中的任务在当前主帧中的对应时间窗口中没有被执行完成,相应的可以执行S230,直至应用程序再次运行至当前分区,通过执行S241和S242,继续执行当前分区中未被执行完成的任务。
上述实施方式可以在应用程序跳转至任务未完成的分区中继续运行时,自动定位到前一主帧中未被执行的任务的起始处开始执行任务,避免前一主帧中已执行完成的任务被重复执行,造成资源的浪费。
在本发明的一个可选实施例中,若所述当前分区为起始分区,则在获取除所述当前分区之外其余各分区的超时标志状态之前,还包括:在确定存在分区超时故障时,将全部分区的超时标志状态设置为不超时,并对所述应用程序进行软复位。
其中,起始分区可以是主帧中的第一个时间窗口对应的分区,即应用程序基于分时分区操作系统的时间片轮转调度时,在每个主帧中首先运行的分区。分区超时故障可以是导致应用程序的分区中的任务无法在对应的时间窗口内完成的故障。软复位可以是清空应用程序运行的全部痕迹并重新启动应用程序,应用程序运行的全部痕迹例如可以包括应用程序运行时对共享区数据的更新。
相应的,在应用程序每次运行到起始分区时,可以判断应用程序是否存在分区超时故障。判断应用程序是否存在分区超时故障可以根据用户预设的标准或方法实现,本实施例对此不做限定。示例性的,可以获取各分区的超时标志状态,判断是否存在任意分区的超时标志状态为超时,若是,则表明应用程序在上一主帧中出现分区超时故障;也可以通过获取应用程序的运行日志,在运行日志中读取上一主帧中各分区内任务的执行信息,若执行信息中存在分区超时故障的记录信息,则判定出现分区超时故障。由于分区超时故障会导致应用程序的分区中的任务无法在对应的时间窗口内完成,则存在分区超时故障的分区的超时标志状态会一直保持为超时,进而会导致应用程序陷入反复跳转至该故障分区中运行的死循环中,导致应用程序卡死崩溃。因此,在确定存在分区超时故障时,对应用程序进行软复位。可选的,对应用程序进行软复位之前可以关闭应用程序中的watchdog timer(看门狗电路)。同时,可以将全部分区的超时标志状态设置为不超时,以使应用程序重新启动后,各分区对应的超时标志状态与各分区中的任务执行情况一致,使应用程序可以正确运行。
上述实施方式通过在确定存在分区超时故障时自动对应用程序进行软复位,可以避免应用程序陷入反复跳转至故障分区中运行的死循环中,导致应用程序卡死崩溃;同时,在对应用程序进行软复位时合理设置各分区的超时标志状态,确保应用程序进行软复位后的正确运行。
在本发明的一个可选实施例中,所述确定存在分区超时故障,包括:更新超时累计当前总次数;若所述超时累计当前总次数达到预设阈值,则确定存在分区超时故障。
其中,超时累计当前总次数可以是截至当前时间,应用程序运行中出现任意分区中的任务在对应的时间窗口内没有被执行完成的主帧的统计数量。可选的,超时累计当前总次数可以是一个无符号bit数据类型的全局变量。预设阈值可以是预设的可允许的超时累计当前总次数的最大值。
相应的,可以根据用户预设的规则获取超时累计当前总次数,例如可以是计算应用程序运行中出现任意分区中的任务在对应的时间窗口内没有被执行完成的主帧的总数量,也可以是计算应用程序运行中出现任意分区中的任务在对应的时间窗口内没有被执行完成的连续主帧的数量。若超时累计当前总次数达到预设阈值,可以表明应用程序在足够多个主帧中都发生分区中的任务没有被执行完成的运行错误,则可以确定应用程序出现了分区超时故障。
在本发明的一个可选实施例中,所述更新超时累计当前总次数,包括:获取全部分区的超时标志状态;在所述全部分区中任一分区的超时标志状态为超时的情况下,增加所述超时累计当前总次数;在所述全部分区的超时标志状态均为不超时的情况下,将所述超时累计当前总次数清零。
相应的,在应用程序运行至起始分区时,即为上一主帧结束时。此时获取全部分区的超时标志状态,可以确定出在上一主帧中是否存在任意分区中的任务没有被执行完成,即上一主帧中应用程序是否发生运行错误。若任一分区的超时标志状态为超时,则可以表明上一主帧中该分区中的任务没有被执行完成,此时应用程序发生运行错误的连续主帧的数量增加,可以相应的增加超时累计当前总次数,增加的数值可以根据用户设定的规则确定,例如可以是应用程序发生运行错误的连续主帧的数量增加1,则超时累计当前总次数的数值增加1,以使超时累计当前总次数的数值可以表征应用程序发生运行错误的连续主帧的数量。若全部分区的超时标志状态均为不超时,则可以表明上一主帧中全部分区中的任务均被执行完成,即应用程序在上一主帧中没有发生运行错误,此时应用程序发生运行错误的连续主帧的数量为0,可以将超时累计当前总次数清零,以使超时累计当前总次数的数值可以表征应用程序发生运行错误的连续主帧的数量。
上述实施方式通过设置超时累计当前总次数和合理的计数逻辑,实现对应用程序发生运行错误的连续主帧数量进行自动记录,可以自动判别出应用程序出现了分区超时故障。
在本发明的一个可选实施例中,在增加所述超时累计当前总次数之后,还包括:获取超时标志状态为超时的分区的故障信息,将所述故障信息存储至预设存储器中;在将所述超时累计当前总次数清零之后,还包括:将所述预设存储器中的故障信息清除。
其中,故障信息可以包括超时标志状态为超时的分区中的任务的执行情况,例如可以包括超时位置,还可以包括任务执行日志等。预设存储器可以是预先设置的可以用于读写数据的非易失性存储器,可选的,可以是MRAM(Magnetic Random Access Memory,磁性随机存储器)。
相应的,在增加超时累计当前总次数之后获取的故障信息可以是上一主帧中任务没有被执行完成的分区的任务执行情况对应的故障信息,将该故障信息存储在预设存储器中,可以在应用程序再一次运行到该分区时,在预设存储器中获取到故障信息,从而得知上一主帧中该分区中的任务的执行情况,例如可以是超时位置,从而实现从超时位置处继续执行任务。
进一步的,将超时累计当前总次数清零可以表明上一主帧中没有任何分区中存在任务没有被完成,因此可以在将超时累计当前总次数清零之后,将预设存储器中的故障信息清除,以使预设存储器中的故障信息与应用程序运行情况一致。
上述实施方式通过在预设存储器中存储或清除故障信息,实现对每个主帧中发生的故障情况进行记录,以便可以根据故障情况对应用程序进行调度。
本发明实施例还提供了一种具体实施方式。在配置主帧的时间调度表中,可以将主帧时间设置为20ms,设置应用分区4个,调度顺序依次为A1分区、A2分区、A3分区和A4分区。A1分区对应的时间窗口长度为2ms,A2分区对应的时间窗口长度为5ms,A3分区对应的时间窗口长度为7ms,A4分区对应的时间窗口长度为6ms。进一步的,可以在共享区内设置一个无符号8bit型的全局变量作为分区超时标志,一个bit位作为一个分区的超时标志,可以用0表示不超时的超时标志状态,用1表示超时的超时标志状态。还可以在共享区内设置一个无符号8bit型的全局变量作为超时累计当前总次数,用于记录应用程序发生运行错误的连续主帧的数量,对应的预设阈值可以是6,即应用程序连续在6个主帧中发送运行错误则对应用程序进行软复位。
相应的,图4是本发明实施例二提供的一种分区超时处理方法的流程示意图。如图4所示,应用程序运行至A1分区时,判断A1、A2、A3和A4分区中是否存在任意分区的超时标志状态为超时,若是,则增加超时累计当前总次数,并获取超时标志状态为超时的分区的故障信息,将故障信息存储至预设存储器中;否则,将超时累计当前总次数清零,并将预设存储器中的故障信息清除。继而判断超时累计当前总次数是否达到预设阈值,若是,则可以确定存在分区超时故障,则将全部分区的超时标志状态设置为不超时,并关闭看门狗电路,对应用程序进行软复位;否则,判断A2、A3和A4分区中是否存在任意分区的超时标志状态为超时,若是,则将A1分区的超时标志状态设置为不超时,跳出A1分区并顺序运行至A2分区;否则,判断A1分区的超时标志状态是否为超时,若是,则获取超时位置并跳转至超时位置处继续执行任务;否则,将A1分区的超时标志状态设置为超时,并开始执行任务。若A1分区调度时间窗口内,A1分区中的任务被执行完成,则将A1分区的超时标志状态设置为不超时,结束A1分区中的运行,顺序运行至A2分区。
图5是本发明实施例二提供的又一种分区超时处理方法的流程示意图。如图5所示,应用程序运行至A2分区后,判断A1、A3和A4分区中是否存在任意分区的超时标志状态为超时,若是,则将A2分区的超时标志状态设置为不超时,跳出A2分区并顺序运行至A3分区;否则,判断A2分区的超时标志状态是否为超时,若是,则获取超时位置并跳转至超时位置处继续执行任务;否则,将A2分区的超时标志状态设置为超时,并开始执行任务。若A2分区调度时间窗口内,A2分区中的任务被执行完成,则将A2分区的超时标志状态设置为不超时,结束A2分区中的运行,顺序运行至A3分区。
应用程序进入A3和A4分区后执行在A2分区中同样的步骤,直至再次运行至A1分区,执行上述在A1分区中执行的步骤,从而反复根据主帧运行应用程序。
本发明实施例提供了一种分区超时处理方法,通过给各分区设置超时标志,对各分区内的任务完成情况进行记录,在应用程序运行至任意分区后首先获取其余各分区的超时标志状态,如果存在任意分区中的任务未完成的情况,则优先跳转至任务未完成的分区继续运行,以保证应用程序各分区的共享区数据实时更新的正确性,避免由于其他分区任务未完成而导致共享区数据更新出现错误,以至于使应用程序出现不可预知错误的问题,以此提高了应用软件的强壮性和可靠性;进一步地,通过在确定存在分区超时故障时自动对应用程序进行软复位,可以避免应用程序陷入反复跳转至故障分区中运行的死循环中,导致应用程序卡死崩溃。
实施例三
图6为本发明实施例三提供的一种分区超时处理装置的结构示意图,如图6所示,所述装置包括:超时标志状态获取模块310、当前分区跳出模块320和当前分区执行模块330。
其中,超时标志状态获取模块310,用于当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态。
当前分区跳出模块320,用于在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区。
当前分区执行模块330,用于在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
在本发明实施例的一个可选实施方式中,当前分区执行模块330具体用于:在所述当前分区的超时标志状态为超时的情况下,获取所述当前区分在前一主帧中的超时位置,并跳转至所述超时位置处继续执行与所述应用程序对应的任务;若所述当前分区调度时间窗口内分区执行的任务已完成,则将所述当前分区的超时标志状态设置为不超时。
在本发明实施例的一个可选实施方式中,当前分区执行模块330具体用于:在所述当前分区的超时标志状态为不超时的情况下,将所述当前分区的超时标志状态设置为超时,并在所述当前分区内执行与所述应用程序对应的任务;若所述当前分区调度时间窗口内分区执行的任务已完成,则将所述当前分区的超时标志状态设置为不超时。
在本发明实施例的一个可选实施方式中,所述装置还包括:软复位模块,用于当应用程序运行到当前分区时,若所述当前分区为起始分区,在所述获取除所述当前分区之外其余各分区的超时标志状态之前,在确定存在分区超时故障时,将全部分区的超时标志状态设置为不超时,并对所述应用程序进行软复位。
在本发明实施例的一个可选实施方式中,软复位模块包括:次数更新子模块,用于更新超时累计当前总次数;故障确定子模块,用于若所述超时累计当前总次数达到预设阈值,则确定存在分区超时故障。
在本发明实施例的一个可选实施方式中,次数更新子模块具体用于:获取全部分区的超时标志状态;在所述全部分区中任一分区的超时标志状态为超时的情况下,增加所述超时累计当前总次数;在所述全部分区的超时标志状态均为不超时的情况下,将所述超时累计当前总次数清零。
在本发明实施例的一个可选实施方式中,次数更新子模块还具体用于:在增加所述超时累计当前总次数之后,获取超时标志状态为超时的分区的故障信息,将所述故障信息存储至预设存储器中;在将所述超时累计当前总次数清零之后,将所述预设存储器中的故障信息清除。
上述装置可执行本发明任意实施例所提供的分区超时处理方法,具备执行分区超时处理方法相应的功能模块和有益效果。
本发明实施例提供了一种分区超时处理装置,通过给各分区设置超时标志,对各分区内的任务完成情况进行记录,在应用程序运行至任意分区后首先获取其余各分区的超时标志状态,如果存在任意分区中的任务未完成的情况,则优先跳转至任务未完成的分区继续运行,以保证应用程序各分区的共享区数据实时更新的正确性,避免由于其他分区任务未完成而导致共享区数据更新出现错误,以至于使应用程序出现不可预知错误的问题,以此提高了应用软件的强壮性和可靠性。
实施例四
图7为本发明实施例四提供的一种计算机设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图7显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,实现本发明实施例所提供的分区超时处理方法:当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现本发明实施例所提供的分区超时处理方法:当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或计算机设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种分区超时处理方法,其特征在于,应用于分时分区操作系统,包括:
当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;
在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;
在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
2.根据权利要求1所述的方法,其特征在于,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态,包括:
在所述当前分区的超时标志状态为超时的情况下,获取所述当前区分在前一主帧中的超时位置,并跳转至所述超时位置处继续执行与所述应用程序对应的任务;
若所述当前分区调度时间窗口内分区执行的任务已完成,则将所述当前分区的超时标志状态设置为不超时。
3.根据权利要求1所述的方法,其特征在于,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态,包括:
在所述当前分区的超时标志状态为不超时的情况下,将所述当前分区的超时标志状态设置为超时,并在所述当前分区内执行与所述应用程序对应的任务;
若所述当前分区调度时间窗口内分区执行的任务已完成,则将所述当前分区的超时标志状态设置为不超时。
4.根据权利要求1所述的方法,其特征在于,若所述当前分区为起始分区,则在获取除所述当前分区之外其余各分区的超时标志状态之前,还包括:
在确定存在分区超时故障时,将全部分区的超时标志状态设置为不超时,并对所述应用程序进行软复位。
5.根据权利要求4所述的方法,其特征在于,所述确定存在分区超时故障,包括:
更新超时累计当前总次数;
若所述超时累计当前总次数达到预设阈值,则确定存在分区超时故障。
6.根据权利要求5所述的方法,其特征在于,所述更新超时累计当前总次数,包括:
获取全部分区的超时标志状态;
在所述全部分区中任一分区的超时标志状态为超时的情况下,增加所述超时累计当前总次数;
在所述全部分区的超时标志状态均为不超时的情况下,将所述超时累计当前总次数清零。
7.根据权利要求6所述的方法,其特征在于,在增加所述更新超时累计当前总次数之后,还包括:
获取超时标志状态为超时的分区的故障信息,将所述故障信息存储至预设存储器中;
在将所述更新超时累计当前总次数清零之后,还包括:将所述预设存储器中的故障信息清除。
8.一种分区超时处理装置,其特征在于,包括:
超时标志状态获取模块,用于当应用程序运行到当前分区时,获取除所述当前分区之外其余各分区的超时标志状态;
当前分区跳出模块,用于在所述其余各分区中任一分区的超时标志状态为超时的情况下,将所述当前分区的超时标志状态设置为不超时,将所述应用程序跳出所述当前分区并顺序运行至下一分区;
当前分区执行模块,用于在所述其余各分区的超时标志状态均为不超时的情况下,在所述当前分区中基于所述当前分区的超时标志状态执行与所述应用程序对应的任务,并设置所述当前分区的超时标志状态。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的分区超时处理方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的分区超时处理方法。
CN202011495654.8A 2020-12-17 2020-12-17 分区超时处理方法、装置、计算机设备及存储介质 Active CN112711467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011495654.8A CN112711467B (zh) 2020-12-17 2020-12-17 分区超时处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011495654.8A CN112711467B (zh) 2020-12-17 2020-12-17 分区超时处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112711467A true CN112711467A (zh) 2021-04-27
CN112711467B CN112711467B (zh) 2023-10-10

Family

ID=75544025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011495654.8A Active CN112711467B (zh) 2020-12-17 2020-12-17 分区超时处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112711467B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276293A (zh) * 2007-03-28 2008-10-01 国际商业机器公司 在逻辑分区之间平衡物理系统资源访问的方法和系统
CN103095607A (zh) * 2013-02-21 2013-05-08 南京磐能电力科技股份有限公司 一种实时优先级以太网控制器实现方法
US20140245311A1 (en) * 2005-03-14 2014-08-28 Qnx Software Systems Limited Adaptive partitioning for operating system
CN105335236A (zh) * 2015-12-10 2016-02-17 厦门市美亚柏科信息股份有限公司 一种分布式取证动态负载均衡调度方法和装置
CN105988867A (zh) * 2015-01-29 2016-10-05 北京科银京成技术有限公司 基于分时分区操作系统的速率组调度算法
CN109710416A (zh) * 2019-01-11 2019-05-03 银清科技(北京)有限公司 资源调度方法及装置
CN111190753A (zh) * 2019-12-30 2020-05-22 腾讯科技(深圳)有限公司 分布式任务处理方法、装置、存储介质和计算机设备
CN111382025A (zh) * 2018-12-28 2020-07-07 北京微播视界科技有限公司 应用程序的前后台状态的判断方法、装置及电子设备
CN111897635A (zh) * 2020-07-10 2020-11-06 中国航空工业集团公司西安飞行自动控制研究所 一种基于时间触发的硬实时和软实时的任务调度方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245311A1 (en) * 2005-03-14 2014-08-28 Qnx Software Systems Limited Adaptive partitioning for operating system
CN101276293A (zh) * 2007-03-28 2008-10-01 国际商业机器公司 在逻辑分区之间平衡物理系统资源访问的方法和系统
CN103095607A (zh) * 2013-02-21 2013-05-08 南京磐能电力科技股份有限公司 一种实时优先级以太网控制器实现方法
CN105988867A (zh) * 2015-01-29 2016-10-05 北京科银京成技术有限公司 基于分时分区操作系统的速率组调度算法
CN105335236A (zh) * 2015-12-10 2016-02-17 厦门市美亚柏科信息股份有限公司 一种分布式取证动态负载均衡调度方法和装置
CN111382025A (zh) * 2018-12-28 2020-07-07 北京微播视界科技有限公司 应用程序的前后台状态的判断方法、装置及电子设备
CN109710416A (zh) * 2019-01-11 2019-05-03 银清科技(北京)有限公司 资源调度方法及装置
CN111190753A (zh) * 2019-12-30 2020-05-22 腾讯科技(深圳)有限公司 分布式任务处理方法、装置、存储介质和计算机设备
CN111897635A (zh) * 2020-07-10 2020-11-06 中国航空工业集团公司西安飞行自动控制研究所 一种基于时间触发的硬实时和软实时的任务调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LANGFU CUI等: "A strategy of network bandwith scheduling based on time window partition for spacecraft platform", 《2017 IEEE INTERNATIONAL CONFERENCE ON CYBERNETICS AND INTELLIGENT SYSTEM(CIS) AND IEEE CONFERENCE ON ROBOTICS,AUTOMATION AND MECHATRONICS(RAM)》, pages 748 - 753 *
潘杰: "移动边缘计算中带软时间窗约束的任务卸载策略研究", 《CNKI优秀硕士学位论文全文库 信息科技辑》, no. 02, pages 136 - 1011 *

Also Published As

Publication number Publication date
CN112711467B (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
US7802147B1 (en) Method and apparatus for system status monitoring, testing and restoration
US7203881B1 (en) System and method for simulating system operation
US7120559B1 (en) System and method for performing automated system management
US7379846B1 (en) System and method for automated problem diagnosis
US7516025B1 (en) System and method for providing a data structure representative of a fault tree
US7200525B1 (en) System and method for generating a data structure representative of a fault tree
US8225142B2 (en) Method and system for tracepoint-based fault diagnosis and recovery
US8713578B2 (en) Managing job execution
CN103415840A (zh) 跨硬件层和软件层的错误管理
US20140068350A1 (en) Self-checking system and method using same
CN110908838B (zh) 一种数据处理方法、装置及电子设备和存储介质
CN108701055B (zh) 车辆控制装置和车辆系统
CN110673936B (zh) 编排业务的断点续作方法、装置、存储介质及电子设备
CN110704228A (zh) 一种固态硬盘异常处理方法及系统
CN115620799A (zh) 基于固件仿真的故障现场回溯方法、设备及可读存储介质
US20130047009A1 (en) Computing device, storage medium and method for testing stability of server
CN114168291A (zh) 一种主线程卡顿处理方法、装置、设备及存储介质
CN112711467B (zh) 分区超时处理方法、装置、计算机设备及存储介质
US10783027B2 (en) Preemptive crash data capture
US20130318310A1 (en) Processor processing method and processor system
CN104866380A (zh) 一种集群管理系统的状态转换的处理方法和装置
CN112783683B (zh) 数据处理方法、装置、设备及存储介质
JP5018140B2 (ja) マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
CN116991710B (zh) 自动测试方法及其系统、电子设备、存储介质
US11567751B2 (en) Providing system updates in automotive contexts

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant