Patent ID: 7647594

Claim:
A computer processing system for scheduling execution of a plurality of task execution environments, the processing system comprising: means for executing a first task execution environment and a second task execution environment, the first task execution environment having a first critical program section that references and updates a value of a variable stored in memory, and the second task execution environment having a second critical program section that references and updates the value of the variable stored in memory; means for switching execution from the first task execution environment to the second task execution environment; means for determining a scheduled time at which execution switches from executing the first task execution environment to executing the second task execution environment; and means for managing execution of the first task execution environment based on the scheduled time, comprising: means for determining, when execution of the first environment reaches the first critical program section, whether sufficient time is available to complete execution of the first critical program section prior to the scheduled time; means for terminating execution of the first task execution environment without completing execution of the first critical program section, and for instructing the means for switching to switch from execution of the first task execution environment to execution of the second task execution environment, when it is determined that sufficient time is not available to complete execution of the first critical program section prior to the scheduled time; and means for allowing execution of the first critical program section when it is determined that sufficient time is available to complete execution of the first critical program section prior to the scheduled time.