Patent ID: 8793695

Claim:
An information processing apparatus, comprising: a task processing unit configured to process application program tasks as user-level tasks; a processing requesting unit configured to issue a conditional processing request for a system-level task of a system program that is called by the application program, where the conditional processing request includes a time limit from issuance within which the system-level task must be initiated by the task processing unit; a task allocation unit configured to incorporate the system-level task into a scheduling mechanism of the user-level tasks, such that the scheduling mechanism determines an execution order of the user-level tasks and the system-level task within the task processing unit; an execution monitoring unit configured to determine whether or not the task processing unit initiates the system-level task within the time limit; and an execution control unit configured to force the task processing unit to process the system-level task irrespective of the scheduling mechanism when the execution monitoring unit determines that the task processing unit has not initiated the system-level task within the time limit, wherein: the scheduling mechanism of user-level tasks includes the task allocation unit storing the user-level tasks to be processed in a user-level task queue in memory, when the processing requesting unit issues the conditional processing request for the system-level task, the task allocation unit: (i) converts a data format of the system-level task into a data format of the user-level tasks, and (ii) inserts the system-level task having the data format converted into the data format of the user-level tasks amongst the user-level tasks within the user-level task queue, the task processing unit selects and processes the system-level task from among the tasks stored in the task queue in a same manner as the user-level tasks, and the conversion of the data format of the system-level task to the data format of the user-level tasks includes adding at least one of: (i) a priority level to the system-level task, and (ii) a number of task processing units assignable to process the system-level task, which are set by the application program that calls the system-level task.