CN101446909A - 用于管理任务事件的方法和系统 - Google Patents
用于管理任务事件的方法和系统 Download PDFInfo
- Publication number
- CN101446909A CN101446909A CNA2008101813403A CN200810181340A CN101446909A CN 101446909 A CN101446909 A CN 101446909A CN A2008101813403 A CNA2008101813403 A CN A2008101813403A CN 200810181340 A CN200810181340 A CN 200810181340A CN 101446909 A CN101446909 A CN 101446909A
- Authority
- CN
- China
- Prior art keywords
- shared resource
- task
- granted access
- record
- incident
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种用于管理任务事件的方法和系统。披露了一种用于在多处理器计算机的一个CPU上执行的任务的调度时段期间管理任务事件的方法、系统和计算机程序。仅记录其中已针对任务授权第一共享资源访问的调度时段的特定部分的事件,调度时段的此部分收集所有不能通过简单任务重新执行来重放的非确定性事件。当其他独立非确定性事件记录在为其创建记录的调度时段部分之外发生时,它们仍被照常记录。这限制了应用记录会话期间的记录事件数以及将事件从生产机器传输到重放机器的频率。
Description
技术领域
本发明一般地涉及执行应用的记录和重放;更具体地说,本发明提高了确定性事件的记录和重放的性能。
背景技术
使用应用的记录和重放,目的是允许例如在不同机器上同时以相同方式执行应用。这暗示所述执行不但必须被以相同方式再现,而且它必须在不同主机上几乎同时发生而不管远程约束(网络等待时间、带宽),并且具有最小程度的性能降低。
另一方面,在能够并行工作的多处理器机器上运行的操作系统必须进行适应以允许执行非确定性事件的应用的记录和重放。在这些事件之间,应用执行仅依赖于其初始状态和程序指令,并且因此是确定性的。如果为并行体系结构,例如多处理器计算机或包括多个并行运行的计算机的网络,使用可由多个任务访问的共享资源增加了非确定性的原因:并发任务访问共享资源的排序。在特定指令或系统调用返回不可预测结果的简单情况下,插装(instrument)此操作以便在最初执行期间记录其结果,并且在重放时模拟它并从记录值中强制其结果便已足够。当在共享存储器上工作时,在专用非共享存储器上是确定性的一组指令和系统调用变为完全非确定性的,因为由其他任务并发使用存储器导致初始状态不确定性,如上所述。不是插装每个程序指令,相同申请人已建议一种方法来确保单个任务在调度时段期间独占访问共享存储器,因此恢复指令块的确定性属性,如国际专利申请“Method for optimizing the logging and replay of multi-taskapplications in a mono-processor or multi-processor computer system”(公布号2006/077260)中所述。如此专利申请中所述,在记录会话期间,每个CPU使用一个先进先出fifo队列来记录每个任务调度时段信息,并且每个共享资源使用一个fifo队列来记录在任务执行时段对此共享资源的每个独占访问。在重放会话期间,传输到重放机器的fifo队列的记录数据被串行化以组成重放调度。针对来自生成相应任务执行停止的CPU fifo的每个记录,根据重放调度来重放事件。
一个CPU fifo中的任务调度时段的记录包含有关已导致任务中断的事件的信息:事件可以是系统调用中断、调度器中断或共享资源访问中断。在重放时,如果来自CPU fifo的事件是调度器中断(称为UIC,因为它使用用户指令计数),则中断被编程为强制任务在正确的指令计数处停止,然后继续任务。将由性能监视计数器寄存器溢出(PMC计数用户指令)或软件断点来触发中断。任务继续并再次暂停之后,将任务状态与预期停止条件进行匹配。匹配可以出现三种可能结果:
-在下一停止条件之前的意外调度器或断点中断:仅需继续任务。
-意外共享资源访问或系统调用中断。重放会话先前已偏离并且现在完全错误。这是重放错误。
-预期停止条件。重放可以继续,并且可以将下一事件从日志出队。
因此,使用现有技术专利申请的解决方案,在此类多处理器环境中准确地记录和重放多任务应用的所有中断。
但是,记录太多事件的成本很高,并且对性能具有负面影响,特别是对于远程记录:从存储量的角度以及对于将信息从记录机器传输到远程重放机器,事件记录的成本很高;对性能的影响来自记录和重放的时间以及传输事件信息的时间。
在此模型内,也不可能有效确保日志fifo中具有足够空间以存储所有必需的事件直到调度时段结束,因为无法预测在释放之前将执行多少系统调用或对共享资源的独占访问。
发明内容
本发明的一个目标是针对由于并行环境导致的非确定性事件,特别是针对多任务应用提供一种可靠的记录和重放功能。
本发明的另一个目标是通过减少在记录机器上记录、传输到重放机器(如果为远程),然后用于在重放机器上重放的事件信息量,来优化事件记录和重放的性能。
这些目标通过用于在多处理器计算机的一个CPU上执行的任务的调度时段期间管理任务事件的方法实现,所述方法包括:
-检测何时授权对共享资源的初次访问,将对共享资源的授权访问数的计数器设置为1,并将共享资源id和1保存为其中在此调度时段期间授权访问此共享资源的顺序;
-在阻止持有已为其授权访问的共享资源的事件被检测到一次之前,
-针对每个非确定性系统调用递增计数器;
-每次授权对共享资源的新访问时,递增对共享资源的授权访问数的计数器,并将所述共享资源id和1保存为其中在此调度时段期间授权访问此共享资源的顺序;
-在检测到阻止持有已为其授权访问的共享资源的事件时,
-释放持有的共享资源;
-在与其上执行所述任务的CPU关联的fifo队列中进行记录,记录包括:确定性系统调用数;共享资源访问授权数;对于每个授权的访问,所述共享资源id和授权访问的顺序;相对于最近发生的上次系统调用或对共享资源的授权访问,在所述任务的代码中具有校验和以及指令指针的指令数;以及阻止持有已为其授权访问的共享资源的事件的类型。
其中检测阻止持有已为其授权访问的共享资源的事件包括检测:
-时间片到期时所述任务的调度时段的结束;
-阻止系统调用;
-对已由并发任务持有的共享资源的阻止访问;
-fifo中空间不足。
这些目标还通过以下操作实现:还包括在所述任务的所述调度时段期间以及在尚未检测到对共享资源的第一授权访问的情况下,当发生非确定性事件时,在与其上执行所述任务的CPU关联的fifo队列中记录非确定性事件信息。
这些目标还通过以下操作实现:还包括使fifo队列内容可用于一个多处理器计算机以便重放。
这些目标还通过以下操作实现:其中所述使fifo队列内容可用于一个多处理器计算机以便重放的步骤包括将所述fifo队列内容传输到多处理器备用机器。
这些目标还通过以下操作实现:还包括在重放多处理器计算机的一个CPU上重放的任务的调度时段期间:
-检测何时针对所述任务授权对共享资源的初次访问并暂停所述任务;
-在所述fifo队列内容中读取在多处理器计算机的一个CPU上执行的任务的调度时段期间完成的当前记录中的对所述共享资源的相应授权访问,该记录不是非确定性事件记录;
-复制任务描述符中的记录内容;
-准备停止条件,所述停止条件对应于在所述记录中读取的阻止持有已为其授权访问的所述共享资源的事件的类型;
-递增对所述共享资源的授权访问的顺序;
-继续执行所述任务;
-授权共享资源访问;
-在达到所述停止条件之前,在每个对共享资源的授权访问或每个确定性系统调用时,递减所述任务描述符中的相应计数器;
-在检测到所述停止条件时,强制停止任务以停止任务执行,从而如所记录的结束调度时段的相应部分。
这些目标还通过以下操作实现:还包括
-在所述任务描述符中检测对共享资源的授权访问的计数器和系统调用的计时器在所述任务描述符中是否为空;
-如果所述停止条件不是时间片,则在执行与在所述任务描述符中读取的最近发生的上次系统调用或对共享资源的授权访问有关的指令数之后,停止任务执行;
-如果所述停止条件是时间片,则以准备停止条件时的步骤中设置的UIC溢出来结束所述任务的调度时段。
这些目标还通过以下操作实现:还包括
-如果在所述任务描述符中检测到对共享资源的授权访问的计数器大于1,则所述计数器递减并授权对共享资源的访问。
这些目标还通过以下操作实现:还包括
-如果在所述任务描述符中检测到对共享资源的授权访问的计数器为1并且系统调用的计数器大于0,则将对共享资源的授权访问的计数器置零并授权对共享资源的访问。
这些目标还通过以下操作实现:还包括每次由所述重放多处理器计算机的CPU上的调度器将所述任务暂停一时间片时,保存所述任务描述符并且当所述调度器继续所述任务时,重放将继续,直到所述重放多处理器计算机的CPU上的调度器出现新时间片或达到所述记录的停止条件。
这些目标还通过一种系统实现,所述系统包括适于执行上述方法权利要求中的方法的装置。
这些目标还通过一种计算机程序产品实现,所述计算机程序产品包括当在计算机上执行所述程序时,用于执行上述方法权利要求中的方法的步骤的编程代码指令。
本发明的原理是所述方法区分哪些中断是相关或不相关的,即哪些中断需要以相同方式被再现以确保确定性重放,并且哪些中断可以被忽略。仅以相同方式重放在独占访问资源之后发生的信号和调度事件。此外,将若干非确定性事件分组到唯一事件记录中。分组记录的最后一个事件是不可中止事件(NAE),所述不可中止事件是修改外部世界的状态的事件。
其他优点如下:
-本发明的实现需要更改操作系统而对硬件或记录机器和重放机器没有任何更改要求。
-此技术适合于通用容错系统。
本发明中所述的新体系结构改进了在本文档的背景技术中引用的国际专利申请中定义的现有技术体系结构,如下所示:
-使用此体系结构,仅记录与非确定性行为相关的中断事件。此类事件的区分基于所涉及的资源类型(共享或非共享),以及事件的上下文(在开始处还是在调度时段内),所述上下文用于仲裁是记录资源访问详细信息还是只是资源访问的发生次数。
-它不包括什么是要记录和重放的相关调度时段、不相关的调度时段。
-它选择什么是要记录的事件信息,以便每个调度时段仅具有一个事件而不是多个事件,这允许日志资源检查的健壮性。
-与在背景技术中引用的专利申请中所述的现有技术的解决方案相比,本发明的解决方案通过完全消除特定shm通道(现有技术的国际专利申请2006/077260的图9中的QJShMPi)而简化了体系结构。
如本文档后面所述,所述解决方案基于区分任务的调度时段中包括的“独占访问时段”和非独占访问时段。此类独占访问时段在任务被首次授予共享资源时开始,并且在在此时段期间获取的最后一个共享资源已被激活的任务释放时结束。
附图说明
图1示出了使用现有技术的方法的记录过程;
图2示出了根据优选实施例的任务执行时段期间的事件信息的记录,其中还示出了连续独占访问时段;
图3示出了根据优选实施例的任务执行时段期间的事件信息的重放,其中还示出了连续独占访问时段;
图4是根据优选实施例的EAP事件记录方法的流程图;
图5是根据优选实施例的EAP事件重放方法的流程图;
图6示出了根据优选实施例的如图2中所示的在记录会话期间记录的EAP事件。
具体实施方式
图1示出了使用现有技术的方法的记录过程。如现有技术的国际专利申请2006/077260(图9)中所示,在多处理器系统上执行的任务的记录会话期间,fifo队列用于存储事件信息。每个CPU(QJ μ ProX、QJ μ ProY)使用一个fifo队列记录每个任务调度时段信息事件,并且每个共享资源(QJhMPi)使用一个fifo队列记录在任务执行期间对此共享资源的每个独占访问。图1示出了每个CPU和每个共享资源队列中的记录频率的一个实例。
在此记录会话实例中,具有2个过程A和B的应用在包括处理器CPUi和CPUj的多处理器机器上运行。A和B使用共享资源SR1、SR2、SR3(例如,3个不同的共享存储器页)。在CPUi上,第一调度时段(100)在任务A继续时开始并在调度器暂停时结束。在此第一调度时段期间,访问第一共享资源并在第一共享资源队列(SR1)中记录有关此访问的信息,还访问第二共享资源并在第二共享资源队列(SR2)中记录有关此访问的信息。在此同一调度时段中,在执行相应系统调用的处理器的CPUi队列中记录系统调用中断(Syscall1)和暂停任务A的调度器的事件信息。在任务A的第二激活时段(110)期间,不访问共享资源,仅在执行相应系统调用的处理器的同一CPUi队列中记录系统调用中断(Syscall2)的第二事件信息。在第三激活时段(120)期间,将两个系统调用事件记录到CPUi队列中并在SR1队列中记录对第一共享资源的一个访问。Syscall4是使调度器暂停并释放SR1的阻止系统调用。在此时间内,在第二处理器上使用四个调度时段(130、140、150、160)调度任务B。在任务B的第一激活时段(130)期间,在相应SR3 fifo队列中记录有关对第三共享资源的访问的信息。任务B的第一激活时段在任务暂停时结束,因为此任务无法访问由任务A在其第一激活时段期间保留的第一共享资源。任务B在通过暂停任务A释放第一共享资源时继续。在SR1第一共享资源队列中记录第一共享资源保留给过程B的事件的信息。在过程B的激活时段期间,与在过程A的激活时段期间执行的操作类似,在执行过程B的第二处理器的CPUj队列中记录事件信息。
为了改进图1的用于记录在多处理器上执行的应用的体系结构,应指出的是,通常不需要记录和重放所有中断,而仅是在应用全局状态级别与相关非确定性事件有关的中断。例如,将此原理应用于现有技术的解决方案时,不需要记录和重放定义其中未访问共享资源的调度时段的调度器中断,因为它们不会对应用的非确定性具有任何影响。可以通过简单的任务代码重新执行来重放此类事件。
现在,仍从用于记录在多处理器上执行的应用的体系结构开始,考虑调度时段期间的共享存储器访问,仅需记录初次访问。所有后续访问(如果在同一调度时段内发生)都是隐式的,即使在不同页上也是如此。记录共享资源访问的发生次数便已足够,而不是记录所有的操作详细信息。
对于系统调用同样适用,其中仅需记录发生次数,而不是完整的系统调用详细信息。
在此定义了过程的重要时段,即独占访问时段(EAP)。EAP自任务继续以来初次成功访问共享资源时开始,并且在任务释放它已成功独占访问的最后一个共享资源时结束。EAP定义了在CPU上执行的任务在其间独占地持有一个或多个共享资源的时段。
通常在时间片到期时释放共享资源独占访问授权。但是如果发生不一定与共享资源相关的新的非确定性事件,也可以发生此情况。
在记录过程期间任意地结束EAP以确保可以记录下一个事件是有利的。另一方面,EAP可以累积许多中间非确定性事件,只要它们具有固定大小并且日志fifo中的空间可用。如果fifo变满,则EAP在其当前状态被关闭和提交,并且使用无法被记录的事件打开新的EAP。总之,每个调度时段具有一个已记录事件。在由通过fifo中的更改被通知的记录任务负责之前,事件首先被记录在本地fifo中。
图2示出了根据优选实施例的任务执行时段期间的事件信息的记录,其中还示出了连续独占访问时段(对于过程A具有阴影200、210、220并且对于过程B具有阴影230、240的矩形)。图2示出了与图1中的应用记录会话相同的实例,所述应用具有2个在包括处理器CPUi和CPUj的多处理器机器上运行的过程A和B。A和B使用共享资源SR1、SR2、SR3(例如,3个不同的共享存储器页)。在CPUi上,在过程A的第一调度时段期间,在对SR1的初次访问和调度器暂停之间定义第一EAP(200)。在过程A的此第一调度时段期间,使用记录每个中断的现有技术的解决方案仅生成一个记录的事件(而不是4个)。在A的第二调度时段期间,不访问共享资源并且系统调用Syscall2不承载非确定性信息。因此,不需要针对此调度时段记录事件。在过程A的第三调度时段期间,在CPUi队列中记录Syscall3系统调用,因为它是非确定性系统调用。
记录的事件信息具有可变大小,如以下更详细描述的那样。
可以具有若干原因以结束EAP,即释放持有的共享资源并在本地fifo中记录事件记录:
-调度的任务的时间片到期。
-阻止系统调用(例如,等待来自物理设备的响应)。
-阻止对已由并发任务持有的共享资源的访问。这通过获取独占访问锁失败来检测。
-本地fifo中没有可用空间以进行其他事件记录,因此引起任务阻止。在每个子事件开始时(进入系统调用、遇到新的共享资源)检查此条件,因此允许记录已执行的EAP。
-开始所指示的输入大小大于可用fifo空间的外部I/O系统调用。
图3示出了如图2中所示的已记录会话的有效重放会话。
在继续任务之前从fifo载入重放事件,因此可以设置停止(图3中的停止)条件。在每个中断时进行停止条件匹配。停止条件定义了重放期间必须在该处释放对共享资源的独占访问的执行点,以便精确匹配记录的EAP。将预先读取停止条件,因此允许编程中断(性能计数器溢出,或代码中特定地址处的断点)以强制执行在期望的点停止。如果停止条件对应于对系统资源的访问或系统调用,则不需要其他插装,因为任务执行已在正确位置暂停,并且内核处理机仅需检查是否达到停止条件。
图3示出了在重放时通过重新使用存储在处理器队列CPUi和CPUj中并传输到重放多处理器系统的事件信息的任务执行。从任务交织的方面看,重放的执行似乎不同于图2,但仍如图2中那样确定性地运行,因为仍保持对共享资源SR1至SR3的独占访问的排序。但是,重放的顺序将由新重放算法的说明解释,如本文档之后针对图5的说明所述。
通过使用新事件(EAP事件)并应用使用EAP事件信息的新记录和重放算法来获取图2和图3的EAP说明。
使用用于多处理器计算机上的过程的记录和重放执行的新方法,每个处理器仅使用一个fifo队列记录事件信息;在每个处理器队列中仅记录EAP事件,即在EAP结束时存储的信息以及EAP外部的某些非确定性事件。
-在记录时记录的EAP事件信息的内容包含所有必需信息,
-基于EAP事件信息的记录和重新使用此信息以重放来应用记录算法和重放算法。
当EAP结束时在CPU fifo中记录的EAP事件可变大小记录包含以下字段:
-在EAP期间发生的系统调用数,
-共享资源访问授权数,
-对于每个访问授权,共享资源唯一id(SRID)和共享资源序列号(SRSN),-具有校验和以及指令指针的用户指令数,用户指令数与最近发生的上次共享资源访问或系统调用相关,
-停止条件类型(指令计数停止、系统调用停止或共享资源访问停止)。
不再使用共享资源队列进行记录/重放。应指出的是,取消了现有技术的共享资源通道“shm”,其角色现在由共享资源序列号(SRSN)填补,后者存储相应CPU通道的EAP记录中的全局排序信息。
在记录期间,如上所定义的,针对每个新的EAP调度时段开始将SRSN递增1。
在重放期间,约束是每当发生涉及共享资源的事件时,维护SRSN的线性排序。这允许同步否则分离的CPU通道,完全如现有技术中的shm通道同步那样。
SRSN始于初次共享资源访问,它标志EAP的开始。SRSN在EAP事件信息中与共享资源ID关联。这允许真正的并行性,只要由同时发生的任务使用的共享资源是分离的。
需要在CPU日志通道中记录与其他非确定性源相关的事件:
-IO系统调用(管道、套接字、多路复用、...)
-存储访问
-外部网络事件
-时间、日期。
所有其他要考虑的事件(迄今为止)都与系统调用关联,除了某些用于读取时钟的机器指令(RDTSC)以外。
使用EAP的概念,所有非确定性事件都可以按以下方式分类:
-单个非确定性事件(NDE),它不涉及共享资源。例如读取时间或计算随机数。
-涉及对共享资源的访问的非确定性事件。此类事件是EAP的一部分,与可以是也可以不是EAP一部分的先前一类事件相反。
-如果事件涉及对不能回滚的外部系统(例如共享存储设备或网络客户机)的输出,则此事件被称为不可中止事件,并且2个不可中止事件(不包括最后一个)之间的事件顺序被称为可中止的事件顺序。
此设计的结果是事件记录不一定在每个系统中断时发生,而仅在相关调度时段结束(对于共享资源访问相关的事件)并已收集有关此调度时段的所有信息时发生。现有技术的重放机制在其检查停止条件的原理中保持有效。
不再具有共享资源通道,“CPU”通道现在足以独自存储所有类型的非确定性事件,每个事件都是完整和相关的。不会影响与资源虚拟化(Linux通过其知道进程的PID标识符以及标识Linux中的共享存储器段的SHMID)或其他资源相关的非确定性事件的处理(Linux是Linus Torvalds在美国和/或其他国家/地区的注册商标)。
在不中断服务(如果记录机器和重放机器都处于活动状态)的情况下提供容错的要求所带来的约束是:
-考虑在记录层控制下的任务(以内核模式中断),它不能被继续,直到导致当前状态的非确定性事件可以被本地记录为止。
-考虑外部通信在执行流中形成非返回点,将不能发送来自应用的外部输出,直到所有最多到输出事件本身的本地记录的事件被提交给将执行重放的备用机器为止。
根据优选实施例的方法的一个显著特性是所有非确定性事件在处于内核模式时通过中断(系统调用或异常)发生,其中可以针对应用以透明方式检测、记录和强制(在重放时)这些事件。如果此操作不是默认的,则操作系统被强制以此方式运行(不包括shm访问控制)。
内核空间中的非确定性事件的另一个有趣特性是可以在事件实际发生之前评估其性质。例如,可以使用一组给定参数标识下一个指令是共享存储器访问还是系统调用。这允许检查下一个NDE是否具有固定大小(因此允许EAP扩展)。
因而,在检测到下一个指令是非确定性时,最好使事件完全发生然后尝试记录它,而不是必须预先保留某些空间。
图4是根据优选实施例的EAP事件记录方法的流程图。
在初始状态(400),当调度任务时,其并非在扩展访问时段,因为所有共享资源均被释放。
如果当前共享资源访问授权数是0,并且任务获取对共享资源的独占访问(对测试410回答是),则这是EAP的开始。新记录开始(420)。
在针对任务开始EAP的情况下,如果授权新的共享资源独占访问(对测试440回答是),并且如果针对1个子记录(SRID、SRSN)具有足够的空间(对测试450回答是),则递增授权数,将子记录添加到CPU fifo(455),并且同一EAP继续。
如果没有可用空间(对测试450回答否),则EAP结束(460)。共享资源被释放并且当前EAP记录被提交(470)。停止条件类型因此被设置为“共享资源访问”。
在针对任务开始EAP的情况下,如果系统调用被截断,并且如果syscall(基于系统调用号)不需要特定处理,则递增被截断的系统调用数,并且同一EAP继续。
在针对任务开始EAP的情况下,如果具有不同类型需求的可变大小事件将开始(即存储输入系统调用或网络输入系统调用)(对测试480回答是),则首先关闭EAP并且记录所述事件(490)。记录停止条件(系统调用开始、共享资源访问或时间片到期)。
允许多个同时发生的记录和重放会话。每个会话针对系统资源Id(PID、SHMID、...)具有其自己的虚拟名称空间,允许在没有干扰的情况下重叠。
重放会话定义与所记录的一样多的虚拟CPU。在相应的会话虚拟CPU数据结构中,将事件从每个CPU日志中出队。例如对于Linux操作系统,初始开始事件是执行进程的execve系统调用,并且将每个任务序列号设置为0并且未虚拟化父PID(强制为1)。
物理CPU不一定匹配虚拟CPU。在重放期间(不是记录期间),不控制任务在CPU间的迁移。由于此原因,将扫描所有CPU日志队列以检索对应于虚拟任务的下一个事件。如果在日志期间任务在CPU之间迁移(两个或更多CPU日志匹配同一虚拟进程标识符(在Linux中为PID)),则每个任务序列号(在任务创建(Linux中的fork函数以创建新进程)时已在记录时被设置为0)在每个任务记录事件时递增,以提供必需的排序信息。
在日志事件扫描时,如果它匹配任务的虚拟pid和序列号,则将事件记录从会话的逻辑CPU记录复制到任务信息控制块,例如,Linux中的任务描述符“task_struct”的“cpulog_rec_t”数据结构。从此时起,可以使用来自虚拟CPU日志流的新记录。
图5是根据优选实施例的重放方法的流程图。被载入任务描述符的EAP事件记录允许确定任务的下一个停止条件(520)。在继续任务之前必须对此进行评估。停止条件指定自最近的先前停止条件以来需要由任务在处理下一个事件之前执行多少系统调用中断、独占共享资源访问授权以及用户指令数。
如果针对EAP剩余的系统调用和共享资源访问授权数是0(对测试585回答是),并且如果停止条件是用户指令计数,则必须在继续任务之前设置UIC溢出/断点过程(520)。任务将在正确数量的用户指令之后暂停。
对于共享资源访问顺序倒置:如果当前共享资源访问授权数是0(在任务结构中),则这是初次访问(500)并且任务被暂停(510),直到对(共享资源id、共享资源序列号)匹配虚拟CPU的当前日志记录。当达到匹配时,使用当前日志记录-复制到任务结构(520),当前共享资源序列号递增(530),并且任务被授权访问(540)。
如果当前共享资源访问授权数>1(对测试550回答是),则此数量在任务描述符中递减(560),并且任务被授权访问(570)。
如果当前共享资源访问授权数是1(对测试580回答是),并且当前系统调用数>0(在任务结构中)(对测试585回答否),则第一数量被置零(560)并且任务被授权访问。
如果当前共享资源访问授权数是1(对测试580回答是),并且当前系统调用数是0(对测试585回答是),则第一数量被置零并且任务在正确数量的用户指令(UIC)之后被设置为停止(590)。
图6示出了根据优选实施例的如图2中所示的在记录会话期间记录的EAP事件。在记录会话期间,记录的第一EAP事件(600)是CPUi上的任务A的EAP1(200),它具有一个确定性系统调用(Syscall1)、两个对共享存储器资源(此顺序中的SR1和SR2)的授权访问,并且调度器在时间片暂停,这将是重放时的停止条件。记录的第二EAP事件(610)是CPUi上的任务A的EAP2(220),它不包括确定性系统调用,并且包括一个授权共享资源SR1以及具有阻止系统调用(Syscall4)的停止条件。记录的第三EAP事件(620)是CPUj上的任务B的EAP3(230),它包括一个确定性系统调用(Syscall2)、一个授权共享资源SR3以及尝试访问第二共享资源SR1时的停止条件。将记录第二EAP(630),即CPUj上的任务B的EAP3(240),它不包括确定性系统调用,并且包括一个授权共享资源SR1以及用于时间片的停止条件。
通过理解用于重放EAP事件的方法,可以理解如图3中所示的重放顺序。例如,读取CPUi fifo内容并针对CPUi上的任务A重放在CPUi fifo中记录的每个EAP事件。将重放如图6中所述的EAP1。包含EAP事件计数器(在每次确定性系统调用或授权共享资源访问时递减)的任务描述符在调度器的每个时间片(300、310)或每次重放停止条件(320)时被保存。当重放机器的调度器继续任务A时,使用任务描述符中的EAP事件的已更新计数器来继续EAP顺序(210),直到在重放机器的CPU上出现新时间片或达到已重放的EAP事件的停止条件。
应指出的是,在没有授权任何共享资源访问的任务激活时段期间发生的常见非确定性事件独立于EAP事件存储在CPU fifo中并照常重放。一个实例是图3中所示的被记录为独立事件并在重放会话期间在EAP1之后且在EAP2之前重放的Syscall3。
此方法优选地实现为包括内核插装的记录和重放程序,满足通用容错系统的需要,允许在运行中将一个应用从一个生产机器切换到一个重放机器。这并不妨碍也使用此解决方案在同一机器上用于程序调试目的。
Claims (12)
1.一种用于在多处理器计算机的一个中央处理单元CPU上执行的任务的调度时段期间管理任务事件的方法,所述方法包括:
-检测何时授权对共享资源的初次访问,将对共享资源的授权访问数的计数器设置为1,并将共享资源id和1保存为其中在此调度时段期间授权访问此共享资源的顺序;
-在阻止持有已为其授权访问的共享资源的事件被检测到一次之前,
-针对每个非确定性系统调用递增计数器;
-每次授权对共享资源的新访问时,递增对共享资源的授权访问数的计数器,并将所述共享资源id和1保存为其中在此调度时段期间授权访问此共享资源的顺序;
-在检测到阻止持有已为其授权访问的共享资源的事件时,
-释放持有的共享资源;
-在与其上执行所述任务的CPU关联的先进先出fifo队列中进行记录,记录包括:确定性系统调用数;共享资源访问授权数;对于每个授权的访问,所述共享资源id和授权访问的顺序;相对于最近发生的上次系统调用或对共享资源的授权访问,在所述任务的代码中具有校验和以及指令指针的指令数;以及阻止持有已为其授权访问的共享资源的事件的类型。
2.如权利要求1中所述的方法,其中检测阻止持有已为其授权访问的共享资源的事件包括检测:
-时间片到期时所述任务的调度时段的结束;
-阻止系统调用;
-对已由并发任务持有的共享资源的阻止访问;
-fifo中空间不足。
3.如权利要求1或2中所述的方法,还包括在所述任务的所述调度时段期间以及在尚未检测到对共享资源的第一授权访问的情况下,当发生非确定性事件时,在与其上执行所述任务的CPU关联的fifo队列中记录非确定性事件信息。
4.如权利要求1至3中的任一权利要求所述的方法,还包括使fifo队列内容可用于一个多处理器计算机以便重放。
5.如权利要求4中所述的方法,其中所述使fifo队列内容可用于一个多处理器计算机以便重放的步骤包括将所述fifo队列内容传输到多处理器备用机器。
6.如权利要求1至5中的任一权利要求所述的方法,还包括在重放多处理器计算机的一个CPU上重放的任务的调度时段期间:
-检测何时针对所述任务授权对共享资源的初次访问并暂停所述任务;
-在所述fifo队列内容中读取在多处理器计算机的一个CPU上执行的任务的调度时段期间完成的当前记录中的对所述共享资源的相应授权访问,该记录不是非确定性事件记录;
-复制任务描述符中的记录内容;
-准备停止条件,所述停止条件对应于在所述记录中读取的阻止持有已为其授权访问的所述共享资源的事件的类型;
-递增对所述共享资源的授权访问的顺序;
-继续执行所述任务;
-授权共享资源访问;
-在达到所述停止条件之前,在每个对共享资源的授权访问或每个确定性系统调用时,递减所述任务描述符中的相应计数器;
-在检测到所述停止条件时,强制停止任务以停止任务执行,从而如所记录的结束调度时段的相应部分。
7.如权利要求6中所述的方法,还包括:
-在所述任务描述符中检测对共享资源的授权访问的计数器和系统调用的计时器在所述任务描述符中是否为空;
-如果所述停止条件不是时间片,则在执行与在所述任务描述符中读取的最近发生的上次系统调用或对共享资源的授权访问有关的指令数之后,停止任务执行;
-如果所述停止条件是时间片,则以准备停止条件时的步骤中设置的UIC溢出来结束所述任务的调度时段。
8.如权利要求6或7中的任一权利要求所述的方法,还包括:
-如果在所述任务描述符中检测到对共享资源的授权访问的计数器大于1,则所述计数器递减并授权对共享资源的访问。
9.如权利要求6至8中的任一权利要求所述的方法,还包括:
-如果在所述任务描述符中检测到对共享资源的授权访问的计数器为1并且系统调用的计数器大于0,则将对共享资源的授权访问的计数器置零并授权对共享资源的访问。
10.如权利要求6至9中的任一权利要求所述的方法,还包括:每次由所述重放多处理器计算机的CPU上的调度器将所述任务暂停一时间片时,保存所述任务描述符并且当所述调度器继续所述任务时,重放将继续,直到所述重放多处理器计算机的CPU上的调度器出现新时间片或达到所述记录的停止条件。
11.一种系统,包括适于执行根据权利要求1至10中的任一权利要求所述的方法的装置。
12.一种计算机程序产品,包括当在计算机上执行所述程序时,用于执行根据权利要求1至10中的任一权利要求所述的方法的步骤的编程代码指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07301604 | 2007-11-30 | ||
EP07301604.0 | 2007-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101446909A true CN101446909A (zh) | 2009-06-03 |
CN101446909B CN101446909B (zh) | 2011-12-28 |
Family
ID=40677120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101813403A Expired - Fee Related CN101446909B (zh) | 2007-11-30 | 2008-11-19 | 用于管理任务事件的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8370841B2 (zh) |
CN (1) | CN101446909B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262002A (zh) * | 2010-12-14 | 2013-08-21 | 超威半导体公司 | 优化系统调用请求通信 |
CN104541244A (zh) * | 2012-09-27 | 2015-04-22 | 英特尔公司 | 用于进行重放执行的方法和系统 |
WO2015139198A1 (zh) * | 2014-03-18 | 2015-09-24 | 华为技术有限公司 | 鉴权处理装置和方法 |
CN105991633A (zh) * | 2015-04-28 | 2016-10-05 | 杭州迪普科技有限公司 | 会话日志处理方法及装置 |
CN107770400A (zh) * | 2016-08-18 | 2018-03-06 | 柯尼卡美能达株式会社 | 图像处理装置、方法以及程序 |
CN109445950A (zh) * | 2018-09-30 | 2019-03-08 | 青岛海尔科技有限公司 | Ocf资源的互斥访问方法及系统、服务端、介质、设备 |
CN109614170A (zh) * | 2013-04-23 | 2019-04-12 | 起元科技有限公司 | 控制由计算系统执行的任务 |
CN110879747A (zh) * | 2018-09-05 | 2020-03-13 | 杭州海康威视系统技术有限公司 | 资源管理方法及装置 |
CN111078378A (zh) * | 2019-12-04 | 2020-04-28 | 青梧桐有限责任公司 | 任务调度方法、装置及电子设备 |
WO2020259146A1 (zh) * | 2019-06-26 | 2020-12-30 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984513B2 (en) * | 2006-08-28 | 2015-03-17 | International Business Machines Corporation | Transfer of event logs for replication of executing programs |
KR20080104591A (ko) * | 2007-05-28 | 2008-12-03 | 삼성전자주식회사 | 메모리 보호 방법 및 장치 |
US9928071B1 (en) | 2008-05-02 | 2018-03-27 | Azul Systems, Inc. | Enhanced managed runtime environments that support deterministic record and replay |
US8402318B2 (en) * | 2009-03-24 | 2013-03-19 | The Trustees Of Columbia University In The City Of New York | Systems and methods for recording and replaying application execution |
US8695002B2 (en) * | 2009-10-20 | 2014-04-08 | Lantiq Deutschland Gmbh | Multi-threaded processors and multi-processor systems comprising shared resources |
US8468501B2 (en) | 2010-04-21 | 2013-06-18 | International Business Machines Corporation | Partial recording of a computer program execution for replay |
US8732670B1 (en) * | 2010-06-29 | 2014-05-20 | Ca, Inc. | Ensuring determinism during programmatic replay in a virtual machine |
KR101686082B1 (ko) | 2010-07-22 | 2016-12-28 | 삼성전자주식회사 | 결정적 프로그레스 인덱스 기반 락 제어 및 스레드 스케줄링 방법 및 장치 |
US9063766B2 (en) * | 2011-03-16 | 2015-06-23 | Vmware, Inc. | System and method of manipulating virtual machine recordings for high-level execution and replay |
US9111034B2 (en) | 2013-02-27 | 2015-08-18 | International Business Machines Corporation | Testing of run-time instrumentation |
CN103257900B (zh) * | 2013-05-24 | 2016-05-18 | 杭州电子科技大学 | 减少cpu占用的多处理器上实时任务集资源预留方法 |
US10296449B2 (en) | 2013-10-30 | 2019-05-21 | Entit Software Llc | Recording an application test |
WO2016159943A1 (en) * | 2015-03-27 | 2016-10-06 | Hewlett Packard Enterprise Development Lp | Accessing a shared resource |
CN105991346A (zh) * | 2015-04-28 | 2016-10-05 | 杭州迪普科技有限公司 | 会话日志的处理方法及装置 |
US9852107B2 (en) * | 2015-12-24 | 2017-12-26 | Intel Corporation | Techniques for scalable endpoint addressing for parallel applications |
US10521272B1 (en) * | 2016-03-30 | 2019-12-31 | Amazon Technologies, Inc. | Testing in grid computing systems |
GB2552519A (en) | 2016-07-27 | 2018-01-31 | Undo Ltd | Debugging Systems |
US10031833B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10042737B2 (en) * | 2016-08-31 | 2018-08-07 | Microsoft Technology Licensing, Llc | Program tracing for time travel debugging and analysis |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10489273B2 (en) | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10310977B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10310963B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
US10324851B2 (en) | 2016-10-20 | 2019-06-18 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache |
US10540250B2 (en) | 2016-11-11 | 2020-01-21 | Microsoft Technology Licensing, Llc | Reducing storage requirements for storing memory addresses and values |
US10545952B2 (en) * | 2017-01-31 | 2020-01-28 | Xactly Corporation | Multitenant architecture for prior period adjustment processing |
US10579502B2 (en) | 2017-02-28 | 2020-03-03 | International Business Machines Corporation | Resuming applications using pass-through servers and trace data |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
US10296442B2 (en) | 2017-06-29 | 2019-05-21 | Microsoft Technology Licensing, Llc | Distributed time-travel trace recording and replay |
CN109308213B (zh) * | 2017-07-27 | 2021-10-01 | 南京南瑞继保电气有限公司 | 基于改进任务调度机制的多任务断点调试方法 |
US10459824B2 (en) | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
KR102442921B1 (ko) * | 2017-12-11 | 2022-09-13 | 삼성전자주식회사 | 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치 |
US10558572B2 (en) | 2018-01-16 | 2020-02-11 | Microsoft Technology Licensing, Llc | Decoupling trace data streams using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
US10642737B2 (en) | 2018-02-23 | 2020-05-05 | Microsoft Technology Licensing, Llc | Logging cache influxes by request to a higher-level cache |
US10496537B2 (en) | 2018-02-23 | 2019-12-03 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache |
US20210191752A1 (en) * | 2019-12-19 | 2021-06-24 | Seagate Technology Llc | Deterministic allocation of shared resources |
CN111736851B (zh) * | 2020-08-20 | 2020-11-17 | 南京云信达科技有限公司 | 提高用于linux系统的软件的兼容性的方法及系统 |
CN112650576B (zh) * | 2021-01-22 | 2023-12-29 | 百度在线网络技术(北京)有限公司 | 资源调度方法、装置、设备、存储介质及计算机程序产品 |
US11366705B1 (en) * | 2021-07-29 | 2022-06-21 | Apex.AI, Inc. | Deterministic replay of events between software entities |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4812968A (en) * | 1986-11-12 | 1989-03-14 | International Business Machines Corp. | Method for controlling processor access to input/output devices |
US5802265A (en) * | 1995-12-01 | 1998-09-01 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
US5895485A (en) * | 1997-02-24 | 1999-04-20 | Eccs, Inc. | Method and device using a redundant cache for preventing the loss of dirty data |
US6077260A (en) * | 1998-02-19 | 2000-06-20 | Target Therapeutics, Inc. | Assembly containing an electrolytically severable joint for endovascular embolic devices |
US6424655B1 (en) * | 1998-05-13 | 2002-07-23 | Compaq Computer Corporation | Transpose table-biased arbitration |
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US6832367B1 (en) | 2000-03-06 | 2004-12-14 | International Business Machines Corporation | Method and system for recording and replaying the execution of distributed java programs |
US6785893B2 (en) * | 2000-11-30 | 2004-08-31 | Microsoft Corporation | Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur |
AU2003210522A1 (en) * | 2002-01-15 | 2003-09-22 | Idetic, Inc. | Method and system of protecting shared resources across multiple threads |
WO2003083614A2 (en) * | 2002-03-25 | 2003-10-09 | Eternal Systems, Inc. | Transparent consistent active replication of multithreaded application programs |
US7047337B2 (en) * | 2003-04-24 | 2006-05-16 | International Business Machines Corporation | Concurrent access of shared resources utilizing tracking of request reception and completion order |
FR2881309B1 (fr) | 2005-01-21 | 2007-03-23 | Meiosys Soc Par Actions Simpli | Procede d'optimisation de la transmission de donnees de journalisation en environnement multi-ordinateurs et systeme mettant en oeuvre ce procede |
US20080270770A1 (en) | 2005-01-24 | 2008-10-30 | Marc Vertes | Method for Optimising the Logging and Replay of Mulit-Task Applications in a Mono-Processor or Multi-Processor Computer System |
ATE409909T1 (de) * | 2005-01-28 | 2008-10-15 | Ibm | Zählverfahren für anweisungen zur protokollierung und wiedergabe einer deterministischen ereignisabfolge |
US8984513B2 (en) * | 2006-08-28 | 2015-03-17 | International Business Machines Corporation | Transfer of event logs for replication of executing programs |
-
2008
- 2008-11-19 CN CN2008101813403A patent/CN101446909B/zh not_active Expired - Fee Related
- 2008-11-21 US US12/275,926 patent/US8370841B2/en not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262002B (zh) * | 2010-12-14 | 2015-08-05 | 超威半导体公司 | 优化系统调用请求通信 |
CN103262002A (zh) * | 2010-12-14 | 2013-08-21 | 超威半导体公司 | 优化系统调用请求通信 |
CN104541244A (zh) * | 2012-09-27 | 2015-04-22 | 英特尔公司 | 用于进行重放执行的方法和系统 |
CN104541244B (zh) * | 2012-09-27 | 2017-09-15 | 英特尔公司 | 用于进行重放执行的方法和设备 |
US10474471B2 (en) | 2012-09-27 | 2019-11-12 | Intel Corporation | Methods and systems for performing a replay execution |
CN109614170A (zh) * | 2013-04-23 | 2019-04-12 | 起元科技有限公司 | 控制由计算系统执行的任务 |
WO2015139198A1 (zh) * | 2014-03-18 | 2015-09-24 | 华为技术有限公司 | 鉴权处理装置和方法 |
CN105264494A (zh) * | 2014-03-18 | 2016-01-20 | 华为技术有限公司 | 鉴权处理装置和方法 |
CN105264494B (zh) * | 2014-03-18 | 2020-04-28 | 华为技术有限公司 | 鉴权处理装置和方法 |
CN105991633B (zh) * | 2015-04-28 | 2019-02-19 | 杭州迪普科技股份有限公司 | 会话日志处理方法及装置 |
CN105991633A (zh) * | 2015-04-28 | 2016-10-05 | 杭州迪普科技有限公司 | 会话日志处理方法及装置 |
CN107770400A (zh) * | 2016-08-18 | 2018-03-06 | 柯尼卡美能达株式会社 | 图像处理装置、方法以及程序 |
CN110879747A (zh) * | 2018-09-05 | 2020-03-13 | 杭州海康威视系统技术有限公司 | 资源管理方法及装置 |
CN110879747B (zh) * | 2018-09-05 | 2022-08-05 | 杭州海康威视系统技术有限公司 | 资源管理方法及装置 |
CN109445950A (zh) * | 2018-09-30 | 2019-03-08 | 青岛海尔科技有限公司 | Ocf资源的互斥访问方法及系统、服务端、介质、设备 |
WO2020259146A1 (zh) * | 2019-06-26 | 2020-12-30 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
CN111078378A (zh) * | 2019-12-04 | 2020-04-28 | 青梧桐有限责任公司 | 任务调度方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US8370841B2 (en) | 2013-02-05 |
CN101446909B (zh) | 2011-12-28 |
US20090144742A1 (en) | 2009-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101446909B (zh) | 用于管理任务事件的方法和系统 | |
JP5258019B2 (ja) | アプリケーション・プロセス実行の範囲内での非決定論的オペレーションを管理、ロギング、またはリプレイするための予測方法 | |
US10474471B2 (en) | Methods and systems for performing a replay execution | |
EP1856612B1 (en) | Method for counting instructions for logging and replay of a deterministic sequence of events | |
TWI498728B (zh) | 非搶占式圖形處理單元上互動除錯之方法和裝置 | |
US9268666B2 (en) | System and method for debugging of computer programs | |
US7613597B2 (en) | Non-intrusive method for simulation or replay of external events related to an application process, and a system implementing said method | |
JP5547373B2 (ja) | 単一プロセッサまたはマルチプロセッサ・コンピュータ・システムにおけるマルチタスク・アプリケーションのロギングおよび再生を最適化する方法 | |
US20090193298A1 (en) | System and method of fault detection, diagnosis and prevention for complex computing systems | |
US7464208B2 (en) | Method and apparatus for shared resource management in a multiprocessing system | |
JP5519909B2 (ja) | アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム | |
CN104205064A (zh) | 将程序事件记录事件向运行时间检测事件的变换 | |
US9632842B2 (en) | Exclusive access control method prohibiting attempt to access a shared resource based on average number of attempts and predetermined threshold | |
JP2008529114A5 (zh) | ||
US20150212835A1 (en) | Automatic identification of interesting interleavings in a multithreaded program | |
US10248354B2 (en) | Hypervisor enabling secure communication between virtual machines by managing exchanging access to read buffer and write buffer with a queuing buffer | |
US20220164507A1 (en) | Electronic system-level reproducible parallel simulation method implemented by way of a discrete event simulation multicore computing system | |
US7216252B1 (en) | Method and apparatus for machine check abort handling in a multiprocessing system | |
Marziale et al. | Granular time warp objects | |
CN106033368B (zh) | 一种多核虚拟机确定性重演的方法 | |
US20200387438A1 (en) | Tracking hardware events within a process on an instruction-level simulator | |
Chen et al. | MSRP-FT: Reliable resource sharing on multiprocessor mixed-criticality systems | |
Lim et al. | User-level Deterministic Replay via Accurate Non-deterministic Event Capture | |
US10528391B1 (en) | Execution manager for binary objects operating across private address spaces | |
JP6036504B2 (ja) | 情報処理装置、制御プログラム、制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20181119 |