Method for scheduling operations called by a task on a real-time or non-real time processor
AssigneeInternational Business Machines Corporation
InventorPaul Edward McKenney
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorPaul Edward McKenney
Estimating the term…
Provided is a method for scheduling operations called by a task on a real-time or non-real-time processor. Execution durations are provided for operations. A call is received from a task for an operation. A determination is made of a latency requirement for a first processor and of the execution duration of the called operation. The called operation is executed on the first processor in response to determining that the determined execution duration is less than the latency requirement. The called operation is executed on a second processor in response to determining that the determined execution duration is greater than the latency requirement.
A method, comprising:
An article of manufacture including code executed to perform operations to schedule tasks between a first processor and a second processor, the operations comprising:
A system comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
The resource being a machine, e.g. CPUs, Servers, Terminals: considering the execution order of a plurality of tasks, e.g. taking priority or time…
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues: involving deadlines, e.g. rate based, periodic
Indexing scheme relating to G06F9/50: constraint
Computing and data processing
About 1 year 8 months of term left · ends 14 Jun 2028 (estimated)
1. Field of the Invention
The present invention relates to a method, system, and program for scheduling operations called by a task on a real-time or non-real-time processor.
2. Description of the Related Art
FIG. 1 illustrates an embodiment of a computing environment.
FIG. 2 illustrates an embodiment of task information.
FIG. 3 illustrates an embodiment of operation information.
FIG. 1 illustrates a computing system 2 including processors 4a and 4b and memory 6 including programs executed by the processors 4a, 4b. FIG. 1 shows real-time processor 4a representing one or more processors. The memory 6, which may comprise one or more physical memory devices, includes an operating system 8, a scheduler 10 to schedule tasks to execute on a real-time 4a or non-real time processor 4b, and a real-time 12a and non-real-time 12b runqueues used to queue tasks for the real-time 4a and non-real-time 4b processors, respectively. A shared queue 14 is used for transferring tasks between the real-time 4a and non-real-time 4b processors. The scheduler 14 uses task information 16 on tasks executed in the operating system 8 and operation information 18 on operations (also known as processing steps) invoked by tasks executing in the operating system 8 on one of the processors 4a, 4b. The scheduler 14 may be executed by one or multiple processors 4a, 4b. In one embodiment, the scheduler may execute on the real-time processor 4a.
The processors 4a, 4b may comprise separate physical central processing units (CPUs) in a multi-processor system. Alternatively, the processors 4a, 4b may comprise separate hardware threads executing concurrently in a one or more physical CPU devices or virtual processors implemented in a virtual layer within one or more physical CPU devices. A task comprises an application or code executed as a sequence of operations in a thread or process implemented in the processor 4a, 4b. An operation is code called by a task executing on a thread, such as a system call, interrupt, exception or other operation. The operation may be called directly by the task or invoked as a result of execution of the task, such as an exception or interrupt. The scheduler 10 may schedule tasks executed by a processor 4a, 4b, where the tasks are queued in the processor runqueues 12a, 12b. The scheduler 10 may be part of a kernel of the operating system 8 and initiates and terminates threads and processes that execute the tasks. The scheduler 10 may initially assign a task upon task initialization to the processor 4a, 4b associated with the priority 34 of the task, where the task priority 34 may be used to distinguish between real-time tasks executed by a real-time processor 4a and a non-real-time task executed by a non-real-time processor 4b. In this way, tasks identified as real-time priority 34 are assigned to the real-time processor 4a and tasks identified as a non-real-time priority 34 are assigned to the non-real-time processor 4b. There may be multiple levels of real-time priority indicated in the priority 34 if there are multiple real-time processors.
FIG. 2 illustrates an embodiment of a task information entry 30 maintained in the task information 16 for a task capable of executing in the operating system 8. The task information entry 30 includes a task identifier 32, a priority indicator 34 (e.g., real-time or non-real-time) of the task, and a delay tolerance 36 for real-time priority tasks indicating a maximum amount of delay that is allowed before execution of the task must begin. In one embodiment, the priority indicator 34 associates the task with one or more processors handling tasks of the given priority (e.g., real-time or non-real-time). For instance, a real-time priority (e.g., hard real time) designation may indicate that the task is executed by the real-time (e.g., hard real-time) processor 4a, whereas a non-real-time (e.g., non-hard real time) designation may indicate that the task is executed by the non-real-time priority (non-hard real time) processor 4b.