1. A program execution apparatus that determines an execution sequence of tasks and executes the tasks according to the execution sequence, each task being given a target completion time before which execution of the task is to be completed, the program execution apparatus comprising: a storing unit operable to store at least one identifier of at least one task that is already in existence, at a memory position therein determined based upon a plurality of types of priorities set for the task, the plurality of types of priorities having a hierarchical relationship; a receiving unit operable to receive an identifier of a new task and a plurality of types of priorities set for the new task; a writing unit operable to write the identifier received by the receiving unit, at a memory position in the storing unit determined based upon the plurality of types of priorities received by the receiving unit; and a determining unit operable to determine an execution sequence of the tasks whose identifiers are stored in the storing unit, according to an arrangement sequence of the identifiers in the storing unit.