Patent ID: 7831973

Claim:
A task scheduling apparatus for parallel processing a plurality of tasks, each of the tasks being assigned a priority, and the plurality of tasks including one or more tasks each having one or more signal handlers, the one or more signal handlers each being assigned a priority, the task scheduling apparatus comprising: a processor; a signal-handler registering section for registering the one or more signal handlers of the one or more tasks, signals corresponding to the one or more signal handlers, and the priorities assigned to the one or more signal handlers while relating them to each other; a signal generating section for generating a signal for designating a signal handler; a priority table for recording the plurality of tasks and the priorities thereof while relating them to each other, wherein the plurality of tasks includes an ordinary task and a signal-handler processing task for executing at least one signal handler, the signal-handler processing task includes a queue in which at least one signal handler to be executed is registered, the signal-handler processing task includes a variable priority to be changed depending on a priority of at least one signal handler registered in the queue, and the signal-handler processing task causes to be executed a signal handler having a highest priority out of the at least one signal handler registered in the queue upon the signal-handler processing task being called and executed; and a selection executing section including a signal notifying section for specifying the signal handler designated by the generated signal as an object signal handler and assigning a priority to the object signal handler by referring to contents registered by the signal-handler registering section, and registering the object signal handler in the queue, a priority changing section for specifying the signal handler having the highest priority out of the at least one signal handler registered in the queue by referring to the contents registered by the signal-handler registering section when a signal handler registered in the queue has been changed such that content in the queue has been changed, and changing the variable priority of the signal-handler processing task recorded in the priority table to the priority of the specified highest priority signal handler, a selecting section for selecting a task from among the plurality of tasks corresponding to a highest priority of the plurality of priorities recorded in the priority table as an object to be executed by referring to the priority table, and an executing section for executing the task selected by the selecting section.