IP Library Granted Patent US 7,559,060
Granted Patent B2
US 7,559,060 · App. 10/784,866 · Granted Jul 7, 2009

Time-bounded program execution

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,559,060
App. No.
10/784,866
Granted
Jul 7, 2009
Kind
B2
Abstract

System and method for performing time-bounded execution of a program. A timed program execution process is initiated, and a timeout process is initiated. A timeout condition is configured in the timeout process at a first priority level, and a rollback state determined for the program. Execution of the program is initiated in the timed program execution process at a second priority level below the first priority level. During execution of the program, the timeout process determines if the timeout condition has occurred, and if so, the timeout process restores the execution of the program to the rollback state, and the timed program execution process resumes execution of the program from the rollback state with the timeout condition. The program exits in the timed program execution process in response to the timeout condition, and the timeout event disabled. The timeout process is terminated, and the timed program execution process is terminated.

Claims (135)

1. A computer-accessible memory medium that stores program instructions for performing time-bounded execution of a program, wherein the program instructions are executable by a processor to perform:

1) initiating a timed program execution process, wherein the timed program execution process is configured to execute a program in a time-bounded manner;

2) initiating a timeout process, wherein the timeout process is configured to preempt the execution process to interrupt execution of the program;

3) configuring a timeout event, wherein the timeout event is an event indicating a timeout condition for the program;

4) the timed program execution process performing a time-bounded execution of the program, comprising:

a) determining and storing a rollback state for the program;

b) if the timeout event has not occurred, executing the program, wherein, during said executing, if the timeout event occurs,

c) the timeout process setting the timed program execution process to the rollback state, and disabling the timeout event; and

d) the timed program execution process resuming executing the program based on the rollback state with a timeout condition in preparation to perform a program exit procedure; and

e) performing the program exit procedure, thereby terminating execution of the program;

5) disabling the timeout event;

6) terminating the timeout process; and

7) terminating the timed program execution process.

2. The memory medium of claim 1 , wherein e) further comprises:

clearing the rollback state.

3. The memory medium of claim 2 , wherein the program instructions are further executable to perform:

iteratively performing said time-bounded execution of a plurality of programs.

4. The memory medium of claim 3 , wherein said iteratively performing comprises:

for each of the plurality of programs, performing a) through e).

5. The memory medium of claim 4 , wherein e) further comprises:

if the timeout event has occurred, storing an indication of a timeout condition; and

wherein the timed program execution process performing a time-bounded execution of the program comprises:

performing a) through e) if the timeout condition is not indicated.

6. The memory medium of claim 2 , wherein the program instructions are further executable to iteratively perform:

setting a timeout event;

the timed program execution process performing a time-bounded execution of the program; and

disabling the timeout event.

7. The memory medium of claim 2 , wherein the timeout process executes at a first priority level, and wherein the program instructions are further executable to perform:

setting an execution priority level of the timed program execution process to a second priority level, wherein the second priority level is below the first priority level.

8. The memory medium of claim 7 , wherein said performing a time-bounded execution of the program further comprises:

storing an original execution priority level of the timed program execution process prior to said setting the execution priority level of the timed program execution process; and

wherein e) further comprises:

restoring the execution priority level of the timed program execution process to the original execution priority level.

9. The memory medium of claim 2 ,

wherein said initiating the timeout process comprises:

acquiring one or more resources for the time-bounded execution of the program; and

initializing one or more resource managers for the one or more resources; and

wherein said terminating the timeout process comprises:

releasing the one or more resources for the time-bounded execution of the program; and

un-initializing the one or more resource managers for the one or more resources.

10. The memory medium of claim 9 ,

wherein said initiating the timeout process further comprises:

creating each of the one or more resource managers; and

wherein said terminating the timeout process further comprises:

deleting each of the one or more resource managers.

11. The memory medium of claim 9 ,

wherein said initiating the timeout process further comprises:

enabling each of the one or more resource managers; and

wherein said terminating the timeout process further comprises:

disabling each of the one or more resource managers.

12. The memory medium of claim 9 , wherein said one or more resources comprises:

one or more memory pools for memory allocations during the time-bounded execution of the program.

13. The memory medium of claim 9 ,

wherein, prior to a), the program instructions are farther executable to perform:

storing a respective resource state for each of the one or more resources; and

enabling each of the one or more resource managers,

wherein e) further comprises:

if the timeout event has occurred,

restoring the respective resource state for each of the one or more resources; and

disabling each of the one or more resource managers.

14. The memory medium of claim 1 , wherein said initiating the timeout process is performed during said executing.

15. The memory medium of claim 1 ,

wherein the program comprises one or more sub-programs; and

wherein b) further comprises:

performing a) through e) for each of the one or more sub-programs.

16. The memory medium of claim 1 , wherein said initiating the timeout process is performed by the timed program execution process.

17. The memory medium of claim 1 , wherein the rollback state comprises:

a rollback point, comprising an execution point in the program, and

an execution state of the timed program execution process at the rollback point.

18. The memory medium of claim 1 , wherein the program comprises a subprogram, and wherein said executing the program further comprises:

8) initiating another timeout process;

9) configuring another timeout event;

10) the timed program execution process performing a time-bounded execution of the subprogram, comprising:

f) determining and storing another rollback state for the subprogram;

g) if the another timeout event has not occurred, executing the subprogram, wherein, during said executing the subprogram, if the another timeout event occurs,

h) the another timeout process setting the timed program execution process to the another rollback state, and disabling the another timeout event; and

i) the timed program execution process resuming executing the subprogram based on the another rollback state with another timeout condition; and

j) performing a subprogram exit procedure, thereby terminating execution of the subprogram;

11) disabling the another timeout event; and

12) terminating the another timeout process.

19. The memory medium of claim 18 , wherein j) further comprises e).

20. The memory medium of claim 1 , wherein the program instructions are further executable to perform time-bounded execution of another program substantially in parallel with the time-bounded execution of the program by:

8) initiating another timeout process;

9) configuring another timeout event;

10) the timed program execution process performing a time-bounded execution of the another program, comprising:

f) determining and storing another rollback state for the another program;

g) if the another timeout event has not occurred, executing the another program, wherein, during said executing the another program, if the another timeout event occurs,

h) the another timeout process setting the timed program execution process to the another rollback state, and disabling the another timeout event; and

i) the timed program execution process resuming executing the another program based on the another rollback state with another timeout condition; and

j) performing another program exit procedure, thereby terminating execution of the other program;

11) disabling the another timeout event; and

12) terminating the another timeout process.

21. The memory medium of claim 1 , wherein said executing the program further comprises:

receiving a disable request from the program to disable the rollback state;

disabling the rollback state in response to said disable request;

receiving an enable request from the program to enable the rollback state;

enabling the rollback state in response to said enable request; and

updating the rollback state for the program.

22. The memory medium of claim 1 ,

wherein the program comprises a machine vision application.

23. The memory medium of claim 1 ,

wherein the program comprises a numerical analysis application.

24. The memory medium of claim 1 ,

wherein the program comprises a text-based program.

25. The memory medium of claim 1 , wherein the program comprises a graphical program.

26. A system for performing time-bounded execution of a program, wherein the system comprises:

a processor; and

a memory coupled to the processor, wherein the memory stores program instructions executable by the processor to:

1) initiate a timed program execution process, wherein the timed program execution process is configured to execute a program in a time-bounded manner;

2) initiate a timeout process, wherein the timeout process is configured to preempt the execution process to interrupt execution of the program;

3) set a timeout event, wherein the timeout event is an event indicating a timeout condition for the program;

wherein the timed program execution process is configured to:

4) perform a time-bounded execution of the program, wherein, in performing the time-bounded execution, the timed program execution process is configured to:

a) determine and store a rollback state for the program;

b) if the timeout event has not occurred, execute the program, wherein, during said executing, if the timeout event occurs,

c) the timeout process is configured to set the timed program execution process to the rollback state, and disable the timeout event; and

d) the timed program execution process is configured to resume executing the program based on the rollback state with a timeout condition in preparation to perform a program exit procedure; and

e) perform the program exit procedure, thereby terminating execution of the program;

wherein the program instructions are further executable by the processor to:

5) disable the timeout event;

6) terminate the timeout process; and

7) terminate the timed program execution process.

27. A computer system for performing time-bounded execution of a program, comprising:

1) means for initiating a timed program execution process, wherein the timed program execution process is configured to execute a program in a time-bounded manner;

2) means for initiating a timeout process, wherein the timeout process is configured to preempt the execution process to interrupt execution of the program;

3) means for setting a timeout event, wherein the timeout event is an event indicating a timeout condition for the program;

4) means for the timed program execution process performing a time-bounded execution of the program, comprising:

a) means for determining and storing a rollback state for the program;

b) means for: executing the program if the timeout event has not occurred, wherein, during said executing, if the timeout event occurs,

c) the timeout process setting the timed program execution process to the rollback state, and disabling the timeout event; and

d) the timed program execution process resuming executing the program based on the rollback state with a timeout condition in preparation to perform a program exit procedure; and

e) means for performing the program exit procedure to terminate execution of the program;

5) means for disabling the timeout event;

6) means for terminating the timeout process; and

7) means for terminating the timed program execution process.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2004
From: SCHMIDT, DARREN R.; VRANCIC, ALJOSA; KUMAR, SATISH
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 015020/0263 →