US20110167427A1 - Computing system, method and computer-readable medium preventing starvation - Google Patents
Computing system, method and computer-readable medium preventing starvation Download PDFInfo
- Publication number
- US20110167427A1 US20110167427A1 US12/907,639 US90763910A US2011167427A1 US 20110167427 A1 US20110167427 A1 US 20110167427A1 US 90763910 A US90763910 A US 90763910A US 2011167427 A1 US2011167427 A1 US 2011167427A1
- Authority
- US
- United States
- Prior art keywords
- task
- group
- tasks
- priority
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Definitions
- Example embodiments of the following description relate to a computing system, a digital TV (DTV), an MPEG Audio Layer-3 (MP3) player, a printer, and a Solid State Disk (SSD), which enable a priority-based task scheduling. More particularly, example embodiments of the following description relate to a method that may prevent occurrence of a starvation phenomenon while maintaining priorities of tasks through task scheduling.
- DTV digital TV
- MP3 MPEG Audio Layer-3
- SSD Solid State Disk
- the task may be scheduled to be processed earlier than other tasks.
- priority-based scheduling has a problem of a starvation phenomenon where a lower priority task will never be executed because a higher priority task continues to occupy resources.
- a computing system, method and computer-readable medium may prevent a starvation phenomenon of lower priority tasks while maintaining a resource occupancy rate based on task priorities in a priority-based task scheduling.
- a computing system including a task management unit to divide a plurality of tasks to be processed into a first group and a second group, the first group based on a priority and including a virtual task representing tasks in the second group, and a processing unit to process tasks in the first group according to the priority, wherein, when the virtual task is to be processed, the processing unit selects one of the tasks in the second group and processes the selected task.
- the processing unit may process one task that is selected from the tasks in the second group using a Round-Robin scheme.
- the processing unit may process one task that is randomly selected from the tasks in the second group.
- the computing system may further include a load rate measuring unit to measure a rate of a time taken to process the virtual task with respect to a time taken to process the tasks in the first group.
- the task management unit may move a lowest priority task among the tasks in the first group to the second group.
- the task management unit may move the new task to the first group.
- the task management unit may move the new task to the second group.
- the task management unit may manage a first pointer to point to a lowest priority task among the tasks in the first group.
- the task management unit may move the highest priority task among the tasks in the second group to the first group, and may adjust the first pointer to point to the moved task.
- the task management unit may manage a second pointer to point to a highest priority task among the tasks in the second group.
- the task management unit may move the lowest priority task among the tasks in the first group to the second group, and may adjust the second pointer to point to the moved task.
- the task management unit may manage a first pointer to point to a lowest priority task among the tasks in the first group, and a second pointer to point to a highest priority task among the tasks in the second group.
- the task management unit may move the new task to the first group.
- the priority of the new task is equal to or lower than the priority of the lowest priority task pointed to by the first pointer, the task management unit may move the new task to the second group.
- the task management unit may adjust the second pointer to point to a highest priority task among the tasks and the new task that are in the second group.
- a computing method including dividing, by a processor, a plurality of tasks to be processed into a first group and a second group, the first group based on a priority and including a virtual task representing tasks in the second group, and processing, by the processor, tasks in the first group according to the priority, wherein the processing includes selecting one of the tasks in the second group and processing the selected task when the virtual task is to be processed.
- FIG. 1 illustrates a block diagram of a computing system according to example embodiments
- FIG. 2 conceptually illustrates a plurality of tasks grouped by a computing method according to example embodiments
- FIG. 3 conceptually illustrates a result of a task promotion performed by a computing method according to example embodiments
- FIG. 4 conceptually illustrates an example where a task demotion is demanded, according to example embodiments
- FIG. 5 conceptually illustrates a result of a task demotion performed by a computing method according to example embodiments
- FIG. 6 conceptually illustrates an example where a new task is input to a computing system according to example embodiments
- FIG. 7 conceptually illustrates a result of grouping the tasks including the input new task shown in FIG. 6 by a computing method according to example embodiments;
- FIG. 8 illustrates a flowchart of a computing method according to example embodiments.
- FIG. 9 illustrates a flowchart of an operation of processing tasks contained in a first group in the computing method of FIG. 8 .
- FIG. 1 illustrates a block diagram of a computing system 100 according to example embodiments.
- the computing system 100 of FIG. 1 may include a processing unit 110 , a task management unit 120 , and a load rate measuring unit 130 .
- the processing unit 110 may process a plurality of tasks.
- the task management unit 120 may perform scheduling so that the plurality of tasks may be processed by the processing unit 110 .
- the load rate measuring unit 130 may improve scheduling efficiency.
- the task management unit 120 may divide the plurality of tasks to be processed by the processing unit 110 into a first group and a second group.
- a priority-based scheduling may be performed in the first group, and may not be performed in the second group.
- the first group may include a virtual task that represents tasks in the second group.
- the virtual task may have a lowest priority in the first group.
- the task management unit 120 may perform a task scheduling so that tasks in the first group may be processed sequentially according to their priorities, and that one of the tasks in the second group may be processed when the virtual task of the first group is to be processed.
- the load rate measuring unit 130 may periodically or continuously measure a load rate. In other words, a rate of a time taken to process the virtual task with respect to a time taken to process the plurality of tasks may be measured, based on the scheduling performed by the task management unit 120 .
- the measured load rate may be used to perform a task promotion or a task demotion.
- the task promotion will be further described with reference to FIGS. 2 and 3
- the task demotion will be further described with reference to FIGS. 4 and 5 .
- FIG. 2 conceptually illustrates a plurality of tasks grouped by a computing method according to example embodiments.
- the plurality of tasks to be processed in the computing system 100 may have their respective priority levels.
- the task T 0 has a highest priority level, and the tasks T 2 to T 5 are arranged in a descending priority order.
- a priority level may be typically determined depending on how many requests to process a task in real-time are received.
- a lowest priority task for example the task T 5
- the starvation phenomenon where no resources are allocated.
- resources may be allocated to the new task earlier than the task T 5 according to the descending priority order, and accordingly, no resources may be allocated to task T 5 .
- This conventional method fails to match the original intent of assigning priorities to tasks, even though the starvation phenomenon is prevented. In other words, it is not desirable to use the conventional method in the task scheduling.
- all of the tasks may be divided into at least two groups.
- the first group 210 includes a virtual task T v representing all of the tasks T 2 to T 5 in the second group 220 .
- the priority-based task scheduling may be performed in the first group 210 , so that the tasks T 0 and T v may be processed according to their priorities.
- a task demotion may occur due to a low load rate of the virtual task T v , and the highest priority task may be moved from the first group 210 to the second group 220 .
- the first group 210 may include only the virtual task T v
- the second group 220 may include the tasks except for the virtual task T v .
- the plurality of tasks may be scheduled using the Round-Robin scheme or a random scheduling scheme, for example.
- a task promotion may occur with respect to a highest priority task in the second group 220 , which will be described below.
- next index pointer 222 may point to a task among the tasks in the second group 220 , so that the task may be processed when the virtual task T v is to be processed.
- Round-Robin scheme is merely an example in the example embodiments, the example embodiments may be applied to schemes other than the Round-Robin scheme.
- the tasks in the first group 210 may be moved to the second group 220 , which is referred to as “task demotion”.
- the tasks in the second group 220 may be moved to the first group 210 , which is referred to as “task promotion”.
- a lowest pointer 211 may point to a task to be moved to the second group 220 .
- the lowest pointer 211 may point to a lowest priority task among the tasks in the first group 210 except for the virtual task T v .
- a highest pointer 221 may point to a task to be moved to the first group 210 .
- the highest pointer 221 may point to a highest priority task among the tasks in the second group 220 .
- a time taken to process the virtual task T v while processing the tasks in the first group 210 may be measured.
- a rate of a time taken to process a task selected from the second group 220 with respect to a time taken to process all the tasks in the first group 210 may be measured.
- the measured rate is referred to as the “load rate”.
- the load rate may be set to be a value between 0 and 1.
- a high load rate means that tasks are scheduled almost regardless of the priority. In this instance, the priority is to be more involved in scheduling of all the tasks.
- FIG. 3 conceptually illustrates a result of a task promotion performed by a computing method according to example embodiments.
- the task T 2 is in a first group 310 as a result of the task promotion.
- the task T 2 may have the lowest priority in the first group 310 , and thus, a lowest pointer 311 may be adjusted to point to the task T 2 .
- a highest pointer 321 may be adjusted to point to a highest priority task, for example, task T 3 among the tasks T 3 , T 4 , and T 5 remaining in a second group 320 .
- the tasks T 0 , T 2 , and T v in the first group 310 may be processed sequentially according to their priorities. As described above, when the virtual task T v is to be processed after the tasks in the first group 310 are sequentially processed according to their priorities, the task T 5 pointed to by a next index pointer 322 may be processed.
- the first threshold set in the initial setting may remain unchanged, and may be adaptively controlled based on an amount of remaining computing resources.
- the task demotion needs to be performed with respect to a part of the tasks in the first group 310 .
- FIG. 4 conceptually illustrates an example where the task demotion is demanded.
- a first group 410 may include a large number of tasks as a result of the task promotion performed as described above.
- a low load rate may be measured.
- the load rate refers to a rate of a time taken to process the virtual task T v with respect to a time taken to process all the tasks in the first group 410 .
- the load rate may be periodically or continuously measured. When the load rate is equal to or less than a second threshold, the task demotion may be performed.
- task T 4 pointed to by a lowest pointer 411 among the tasks in the first group 410 may be moved to a second group 420 .
- the lowest pointer 411 may be adjusted to point to a lowest priority task, for example, task T 3 .
- the task T 4 may have the highest priority in the second group 420 , and thus, a highest pointer 421 may be adjusted to point to the task T 4 .
- a next index pointer 422 may be adjusted to point to the task T 4 moved by the task demotion to the second group 420 . While the next index pointer 422 is adjusted in this example embodiment, other example embodiments may be applied to an example where the next index pointer 422 is not adjusted.
- FIG. 5 conceptually illustrates a result of a task demotion performed by a computing method according to example embodiments.
- the task T 4 is moved to a second group 520 , as a result of the task demotion performed as described above. Also, a highest pointer 521 and a next index pointer 522 may be adjusted to point to the task T 4 .
- a lowest pointer 511 may be adjusted to point to the task T 3 in a first group 510 .
- tasks in the first group 510 may be processed in a descending priority order.
- the task T 4 may be processed, and the next index pointer 522 may then be adjusted to point to the task T 5 .
- the new task when a new task is input, the new task may be input into one of the first group and the second group after a determination.
- the new task will be given with reference to FIGS. 6 and 7 .
- FIG. 6 conceptually illustrates an example where a new task 630 is input to a computing system according to example embodiments.
- a first group 610 contains tasks T 0 , T 2 , and T v , and a lowest pointer 611 currently points to task T 2 .
- a second group 620 contains tasks T 3 , T 4 , and T 5 , and a highest pointer 621 and a next index pointer 622 currently point to the task T 3 and the task T 5 , respectively.
- the new task 630 may be inserted in the second group 620 .
- the highest pointer 621 may be adjusted to point to a highest priority task among the tasks T 3 , T 4 , and T 5 and the new task 630 that are in the second group 620 .
- FIG. 7 A result of the above-described operation is shown in FIG. 7 .
- FIG. 7 conceptually illustrates a result of grouping the tasks including the input new task 630 .
- a first group 710 contains tasks T 0 , T 2 , and T v , and a lowest pointer 711 currently points to the task T 2 in the same manner as the lowest pointer 611 of FIG. 6 .
- a second group 720 further includes the new task 630 , and a highest pointer 721 currently points to the new task 630 .
- two different tasks with the same priority level are in the second group 720 .
- the tasks in the first group 710 may be processed according to their priorities.
- task T 5 pointed to by a next index pointer 722 may be processed.
- FIG. 8 illustrates a flowchart of a computing method according to example embodiments.
- a plurality of tasks to be processed may be divided into a first group and a second group.
- tasks in the first group may be processed according to their priorities.
- a task promotion may be performed in operation 850 .
- the task promotion has been described above with reference to FIGS. 2 and 3 .
- the current load rate may be compared with a second threshold.
- the operations 840 to 870 may be repeated until the processing of all the tasks in the first group is determined to be completed.
- FIG. 9 further illustrates a flowchart of processing tasks in the first group according to their priorities of FIG. 8 .
- the tasks in the first group may be processed according to their priorities.
- operation 920 it may be determined whether the virtual task is currently to be processed.
- a task pointed to by a next index pointer among the tasks in the second group may be processed in operation 930 .
- next index pointer may be adjusted to point to another task in the second group.
- the next index pointer may be adjusted using a fairness scheduling scheme such as Round-Robin scheme, or in a random manner or the like.
- the above-described embodiments may be recorded in non-transitory computer-readable media including program instructions to implement various operations embodied by a computer.
- the media may also include, alone or in combination with the program instructions, data files, data structures, and the like.
- the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
- non-transitory computer-readable media examples include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like.
- the computer-readable media may be a plurality of computer-readable storage devices in a distributed network, so that the program instructions are stored in the plurality of computer-readable storage devices and executed in a distributed fashion.
- the program instructions may be executed by one or more processors or processing devices.
- the computer-readable media may also be embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA).
- ASIC application specific integrated circuit
- FPGA Field Programmable Gate Array
- Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
- the described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described embodiments, or vice versa.
Abstract
Description
- This application claims the benefit of Korean Patent Application No. 10-2010-0001101, filed on Jan. 7, 2010, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.
- 1. Field
- Example embodiments of the following description relate to a computing system, a digital TV (DTV), an MPEG Audio Layer-3 (MP3) player, a printer, and a Solid State Disk (SSD), which enable a priority-based task scheduling. More particularly, example embodiments of the following description relate to a method that may prevent occurrence of a starvation phenomenon while maintaining priorities of tasks through task scheduling.
- 2. Description of the Related Art
- In a computing system using a Central Processing Unit (CPU), a Direct Memory Access (DMA), and a network, and in a variety of electronic products, several processes or threads (hereinafter, referred to as “tasks”) may be executed. In this instance, there is a demand to schedule tasks to determine an order of processing the tasks using limited resources.
- Typically, priorities may be respectively set to tasks, and the tasks may be scheduled, so that a higher priority task may be processed first among the tasks having different priorities. This operation is called “priority-based scheduling”.
- For example, when a task associated with multimedia applications to be processed in real-time is set to have a relatively higher priority, the task may be scheduled to be processed earlier than other tasks.
- However, priority-based scheduling has a problem of a starvation phenomenon where a lower priority task will never be executed because a higher priority task continues to occupy resources.
- Accordingly, it is an aspect of example embodiments to provide a computing system, method and computer-readable medium that may prevent a starvation phenomenon of lower priority tasks while maintaining a resource occupancy rate based on task priorities in a priority-based task scheduling.
- Also, it is another aspect of example embodiments to provide an efficient computing system, method and computer-readable medium that may schedule tasks adaptively depending on whether sufficient resources are available, so that a higher priority task may be executed more frequently.
- The foregoing and/or other aspects are achieved by providing a computing system, including a task management unit to divide a plurality of tasks to be processed into a first group and a second group, the first group based on a priority and including a virtual task representing tasks in the second group, and a processing unit to process tasks in the first group according to the priority, wherein, when the virtual task is to be processed, the processing unit selects one of the tasks in the second group and processes the selected task.
- When the virtual task is to be processed, the processing unit may process one task that is selected from the tasks in the second group using a Round-Robin scheme.
- Also, when the virtual task is to be processed, the processing unit may process one task that is randomly selected from the tasks in the second group.
- The computing system may further include a load rate measuring unit to measure a rate of a time taken to process the virtual task with respect to a time taken to process the tasks in the first group.
- When the measured rate is equal to or greater than a first threshold, the task management unit may move a highest priority task among the tasks in the second group to the first group.
- When the measured rate is equal to or less than a second threshold, the task management unit may move a lowest priority task among the tasks in the first group to the second group.
- When a new task to be processed is generated in the computing system, and when a priority of the new task is higher than a priority of a lowest priority task among the tasks in the first group, the task management unit may move the new task to the first group. When the priority of the new task is lower than the priority of the lowest priority task, the task management unit may move the new task to the second group.
- The task management unit may manage a first pointer to point to a lowest priority task among the tasks in the first group. When the measured rate is equal to or greater than the first threshold, the task management unit may move the highest priority task among the tasks in the second group to the first group, and may adjust the first pointer to point to the moved task.
- The task management unit may manage a second pointer to point to a highest priority task among the tasks in the second group. When the measured rate is equal to or less than the second threshold, the task management unit may move the lowest priority task among the tasks in the first group to the second group, and may adjust the second pointer to point to the moved task.
- The task management unit may manage a first pointer to point to a lowest priority task among the tasks in the first group, and a second pointer to point to a highest priority task among the tasks in the second group. When a new task to be processed is generated, and when a priority of the new task is higher than a priority of the lowest priority task pointed to by the first pointer, the task management unit may move the new task to the first group. When the priority of the new task is equal to or lower than the priority of the lowest priority task pointed to by the first pointer, the task management unit may move the new task to the second group. When the priority of the new task moved to the second group is compared with a priority of the highest priority task pointed to by the second pointer, the task management unit may adjust the second pointer to point to a highest priority task among the tasks and the new task that are in the second group.
- The foregoing and/or other aspects are achieved by providing a computing method, including dividing, by a processor, a plurality of tasks to be processed into a first group and a second group, the first group based on a priority and including a virtual task representing tasks in the second group, and processing, by the processor, tasks in the first group according to the priority, wherein the processing includes selecting one of the tasks in the second group and processing the selected task when the virtual task is to be processed.
- According to another aspect of one or more embodiments, there is provided at least one computer readable medium including computer readable instructions that control at least one processor to implement methods of one or more embodiments.
- Additional aspects, features, and/or advantages of embodiments will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the disclosure.
- These and/or other aspects, features, and advantages of embodiments will become apparent and more readily appreciated from the following description, taken in conjunction with the accompanying drawings of which:
-
FIG. 1 illustrates a block diagram of a computing system according to example embodiments; -
FIG. 2 conceptually illustrates a plurality of tasks grouped by a computing method according to example embodiments; -
FIG. 3 conceptually illustrates a result of a task promotion performed by a computing method according to example embodiments; -
FIG. 4 conceptually illustrates an example where a task demotion is demanded, according to example embodiments; -
FIG. 5 conceptually illustrates a result of a task demotion performed by a computing method according to example embodiments; -
FIG. 6 conceptually illustrates an example where a new task is input to a computing system according to example embodiments; -
FIG. 7 conceptually illustrates a result of grouping the tasks including the input new task shown inFIG. 6 by a computing method according to example embodiments; -
FIG. 8 illustrates a flowchart of a computing method according to example embodiments; and -
FIG. 9 illustrates a flowchart of an operation of processing tasks contained in a first group in the computing method ofFIG. 8 . - Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. Embodiments are described below to explain the present disclosure by referring to the figures.
-
FIG. 1 illustrates a block diagram of acomputing system 100 according to example embodiments. - The
computing system 100 ofFIG. 1 may include aprocessing unit 110, atask management unit 120, and a loadrate measuring unit 130. Theprocessing unit 110 may process a plurality of tasks. Thetask management unit 120 may perform scheduling so that the plurality of tasks may be processed by theprocessing unit 110. Also, the loadrate measuring unit 130 may improve scheduling efficiency. - The
task management unit 120 may divide the plurality of tasks to be processed by theprocessing unit 110 into a first group and a second group. - A priority-based scheduling may be performed in the first group, and may not be performed in the second group. In this instance, the first group may include a virtual task that represents tasks in the second group. The virtual task may have a lowest priority in the first group.
- Also, the
task management unit 120 may perform a task scheduling so that tasks in the first group may be processed sequentially according to their priorities, and that one of the tasks in the second group may be processed when the virtual task of the first group is to be processed. - Accordingly, it is possible to process the plurality of tasks according to the priorities, and to prevent a starvation phenomenon. Hereinafter, this operation will be further described with reference to
FIG. 2 . - The load
rate measuring unit 130 may periodically or continuously measure a load rate. In other words, a rate of a time taken to process the virtual task with respect to a time taken to process the plurality of tasks may be measured, based on the scheduling performed by thetask management unit 120. - The measured load rate may be used to perform a task promotion or a task demotion. The task promotion will be further described with reference to
FIGS. 2 and 3 , and the task demotion will be further described with reference toFIGS. 4 and 5 . -
FIG. 2 conceptually illustrates a plurality of tasks grouped by a computing method according to example embodiments. - The plurality of tasks to be processed in the
computing system 100 may have their respective priority levels. - Referring to
FIG. 2 , five tasks T0, T2, T3, T4, and T5 are to be processed. The task T0 has a highest priority level, and the tasks T2 to T5 are arranged in a descending priority order. - A priority level may be typically determined depending on how many requests to process a task in real-time are received.
- However, in this instance, when resources are allocated to the tasks T0 to T5 in the descending priority order, a lowest priority task, for example the task T5, may be subjected to the starvation phenomenon where no resources are allocated.
- Specifically, when a new task with a higher priority than the task T5 is input, resources may be allocated to the new task earlier than the task T5 according to the descending priority order, and accordingly, no resources may be allocated to task T5.
- To prevent the starvation phenomenon from occurring due to the task scheduling based on only the priority, various conventional methods for equally allocating resources to tasks in task scheduling have been proposed.
- For example, there is proposed a method of processing a highest priority task for a predetermined time slice and of processing other tasks for other time slices using a Round-Robin scheme.
- However, in this instance, priorities of tasks other than the highest priority task may be disregarded, and thus, all of the tasks may be processed regardless of the priorities.
- This conventional method fails to match the original intent of assigning priorities to tasks, even though the starvation phenomenon is prevented. In other words, it is not desirable to use the conventional method in the task scheduling.
- According to example embodiments, all of the tasks may be divided into at least two groups.
- During initial setting, the highest priority task T0 is classified in a
first group 210, and the other tasks T2 to T5 are classified in asecond group 220, as shown inFIG. 2 . - The
first group 210 includes a virtual task Tv representing all of the tasks T2 to T5 in thesecond group 220. - Here, the priority-based task scheduling may be performed in the
first group 210, so that the tasks T0 and Tv may be processed according to their priorities. - A task selected from the
first group 210 may enter a sleep state for a predetermined period of time. When the predetermined period of time elapses, a current state of the selected task may be changed to a ready state and the selected task may be moved to a ready queue where the tasks in thefirst group 210 are ready to be processed. Accordingly, the selected task may be set as a candidate of the priority-based task scheduling. When another task enters the sleep state, another higher priority task may be selected from the ready queue of thefirst group 210, and the selected task may be processed. - When a highest priority task continues to be processed, rather than entering the sleep state, a task demotion may occur due to a low load rate of the virtual task Tv, and the highest priority task may be moved from the
first group 210 to thesecond group 220. Accordingly, thefirst group 210 may include only the virtual task Tv, and thesecond group 220 may include the tasks except for the virtual task Tv. The plurality of tasks may be scheduled using the Round-Robin scheme or a random scheduling scheme, for example. - When the load rate of the virtual task Tv increase after a predetermined period of time elapses, a task promotion may occur with respect to a highest priority task in the
second group 220, which will be described below. - When the virtual task Tv is to be processed after the tasks in the
first group 210 are sequentially processed, the task T4 pointed to by anext index pointer 222 may be processed. - In other words, the
next index pointer 222 may point to a task among the tasks in thesecond group 220, so that the task may be processed when the virtual task Tv is to be processed. - The
next index pointer 222 may be adjusted in thesecond group 220 using the Round-Robin scheme. - When the task T4 pointed to by the
next index pointer 222 is completely processed, thenext index pointer 222 may be adjusted to point to the next task T5. Thus, when the virtual task Tv is to be processed, the task T5 pointed to by thenext index pointer 222 may be processed. - While the Round-Robin scheme is merely an example in the example embodiments, the example embodiments may be applied to schemes other than the Round-Robin scheme.
- For example, when the virtual task Tv is to be processed after the tasks in the
first group 210 are sequentially processed according to their priorities, a task may be randomly selected from among the tasks in thesecond group 220, and the selected task may be processed. - As described above, the tasks in the
first group 210 may be moved to thesecond group 220, which is referred to as “task demotion”. Alternatively, the tasks in thesecond group 220 may be moved to thefirst group 210, which is referred to as “task promotion”. - When the task demotion is performed in the
first group 210 at a predetermined time, alowest pointer 211 may point to a task to be moved to thesecond group 220. Thelowest pointer 211 may point to a lowest priority task among the tasks in thefirst group 210 except for the virtual task Tv. - When the task promotion is performed in the
second group 220 at a predetermined time, ahighest pointer 221 may point to a task to be moved to thefirst group 210. Thehighest pointer 221 may point to a highest priority task among the tasks in thesecond group 220. - A time taken to process the virtual task Tv while processing the tasks in the
first group 210 may be measured. In other words, a rate of a time taken to process a task selected from thesecond group 220 with respect to a time taken to process all the tasks in thefirst group 210 may be measured. The measured rate is referred to as the “load rate”. The load rate may be set to be a value between 0 and 1. - A high load rate means that tasks are scheduled almost regardless of the priority. In this instance, the priority is to be more involved in scheduling of all the tasks.
- When the measured load rate is equal to or greater than a first threshold, the task promotion may be performed to move a task pointed to by the
highest pointer 221 in thesecond group 220 to thefirst group 210. - Accordingly, the task T2 pointed to by the
highest pointer 221 may be moved to thefirst group 210, and such a result of the task promotion will be shown inFIG. 3 . -
FIG. 3 conceptually illustrates a result of a task promotion performed by a computing method according to example embodiments. - Referring to
FIG. 3 , the task T2 is in afirst group 310 as a result of the task promotion. The task T2 may have the lowest priority in thefirst group 310, and thus, alowest pointer 311 may be adjusted to point to the task T2. - Also, a
highest pointer 321 may be adjusted to point to a highest priority task, for example, task T3 among the tasks T3, T4, and T5 remaining in asecond group 320. - The tasks T0, T2, and Tv in the
first group 310 may be processed sequentially according to their priorities. As described above, when the virtual task Tv is to be processed after the tasks in thefirst group 310 are sequentially processed according to their priorities, the task T5 pointed to by anext index pointer 322 may be processed. - The first threshold set in the initial setting may remain unchanged, and may be adaptively controlled based on an amount of remaining computing resources.
- When the task promotion is repeated in such a manner as described above, a number of tasks in the
first group 310 may be greater than a number of tasks in thesecond group 320. - Accordingly, a large number of tasks among all the tasks may be scheduled and processed, however, task efficiency may be rather reduced or other unexpected problems may occur.
- In this instance, the task demotion needs to be performed with respect to a part of the tasks in the
first group 310. - The task demotion will be described with reference to
FIGS. 4 and 5 . -
FIG. 4 conceptually illustrates an example where the task demotion is demanded. - In
FIG. 4 , afirst group 410 may include a large number of tasks as a result of the task promotion performed as described above. In this instance, a low load rate may be measured. The load rate refers to a rate of a time taken to process the virtual task Tv with respect to a time taken to process all the tasks in thefirst group 410. - The load rate may be periodically or continuously measured. When the load rate is equal to or less than a second threshold, the task demotion may be performed.
- During the task demotion, task T4 pointed to by a
lowest pointer 411 among the tasks in thefirst group 410 may be moved to asecond group 420. - After the task T4 is moved to the
second group 420, thelowest pointer 411 may be adjusted to point to a lowest priority task, for example, task T3. - The task T4 may have the highest priority in the
second group 420, and thus, ahighest pointer 421 may be adjusted to point to the task T4. - Also, a
next index pointer 422 may be adjusted to point to the task T4 moved by the task demotion to thesecond group 420. While thenext index pointer 422 is adjusted in this example embodiment, other example embodiments may be applied to an example where thenext index pointer 422 is not adjusted. -
FIG. 5 conceptually illustrates a result of a task demotion performed by a computing method according to example embodiments. - In
FIG. 5 , the task T4 is moved to asecond group 520, as a result of the task demotion performed as described above. Also, ahighest pointer 521 and anext index pointer 522 may be adjusted to point to the task T4. - A
lowest pointer 511 may be adjusted to point to the task T3 in afirst group 510. - Accordingly, tasks in the
first group 510 may be processed in a descending priority order. When the virtual task Tv is to be processed, the task T4 may be processed, and thenext index pointer 522 may then be adjusted to point to the task T5. - In this instance, when a new task is input, the new task may be input into one of the first group and the second group after a determination. Hereinafter, descriptions regarding the new task will be given with reference to
FIGS. 6 and 7 . -
FIG. 6 conceptually illustrates an example where anew task 630 is input to a computing system according to example embodiments. - In
FIG. 6 , afirst group 610 contains tasks T0, T2, and Tv, and alowest pointer 611 currently points to task T2. - A
second group 620 contains tasks T3, T4, and T5, and ahighest pointer 621 and anext index pointer 622 currently point to the task T3 and the task T5, respectively. - In this instance, the
new task 630 is assumed to have a priority level of 3, which is equal to a priority level of the task T3 in thesecond group 620. - The priority level of the
new task 630 may be compared with a priority level of the task T2 pointed to by thelowest pointer 611 in thefirst group 610. - As a result of the comparing, when the priority level of the
new task 630 is less than or equal to than the priority of task T2 pointed to by thelowest pointer 611, thenew task 630 may be inserted in thesecond group 620. - In this instance, the
highest pointer 621 may be adjusted to point to a highest priority task among the tasks T3, T4, and T5 and thenew task 630 that are in thesecond group 620. - A result of the above-described operation is shown in
FIG. 7 . -
FIG. 7 conceptually illustrates a result of grouping the tasks including the inputnew task 630. - Referring to
FIG. 7 , afirst group 710 contains tasks T0, T2, and Tv, and alowest pointer 711 currently points to the task T2 in the same manner as thelowest pointer 611 ofFIG. 6 . - A
second group 720 further includes thenew task 630, and ahighest pointer 721 currently points to thenew task 630. In other words, two different tasks with the same priority level are in thesecond group 720. - After the plurality of tasks is grouped, the tasks in the
first group 710 may be processed according to their priorities. When the virtual task Tv is to be processed, task T5 pointed to by anext index pointer 722 may be processed. -
FIG. 8 illustrates a flowchart of a computing method according to example embodiments. - In
operation 810, a plurality of tasks to be processed may be divided into a first group and a second group. - In
operation 820, tasks in the first group may be processed according to their priorities. Inoperation 830, it may be determined whether processing of all the tasks in the first group is completed. - A load rate may be periodically or continuously measured. As described above, the load rate refers to a rate of a time taken to process the virtual task with respect to a time taken to process all the tasks in the first group. When determining that the processing of all the tasks in the first group is not completed in
operation 830, a current load rate may be compared with a first threshold inoperation 840. - When the current load rate is equal to or greater than the first threshold, a task promotion may be performed in
operation 850. The task promotion has been described above with reference toFIGS. 2 and 3 . - In
operation 860, the current load rate may be compared with a second threshold. - When the current load rate is less than or equal to the second threshold, a task demotion may be performed in
operation 870. The task demotion has been described above with reference toFIGS. 4 and 5 . - The
operations 840 to 870 may be repeated until the processing of all the tasks in the first group is determined to be completed. -
FIG. 9 further illustrates a flowchart of processing tasks in the first group according to their priorities ofFIG. 8 . - In
operation 910, the tasks in the first group may be processed according to their priorities. - In
operation 920, it may be determined whether the virtual task is currently to be processed. When the virtual task is determined to be processed, a task pointed to by a next index pointer among the tasks in the second group may be processed inoperation 930. - In
operation 940, the next index pointer may be adjusted to point to another task in the second group. In this instance, the next index pointer may be adjusted using a fairness scheduling scheme such as Round-Robin scheme, or in a random manner or the like. - The above-described embodiments may be recorded in non-transitory computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of non-transitory computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. The computer-readable media may be a plurality of computer-readable storage devices in a distributed network, so that the program instructions are stored in the plurality of computer-readable storage devices and executed in a distributed fashion. The program instructions may be executed by one or more processors or processing devices. The computer-readable media may also be embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA). Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described embodiments, or vice versa.
- Although embodiments have been shown and described, the present disclosure is not limited to the described embodiments. Instead, it should be appreciated by those skilled in the art that changes may be made to these embodiments without departing from the principles and spirit of the disclosure, the scope of which is defined by the claims and their equivalents.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2010-0001101 | 2010-01-07 | ||
KR1020100001101A KR101644800B1 (en) | 2010-01-07 | 2010-01-07 | Computing system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110167427A1 true US20110167427A1 (en) | 2011-07-07 |
US8799913B2 US8799913B2 (en) | 2014-08-05 |
Family
ID=44225472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/907,639 Active 2031-07-10 US8799913B2 (en) | 2010-01-07 | 2010-10-19 | Computing system, method and computer-readable medium for managing a processing of tasks |
Country Status (2)
Country | Link |
---|---|
US (1) | US8799913B2 (en) |
KR (1) | KR101644800B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317578A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Scheduling Execution of Complementary Jobs Based on Resource Usage |
US20160077870A1 (en) * | 2014-09-16 | 2016-03-17 | Freescale Semiconductor, Inc. | Starvation control in a data processing system |
CN109408215A (en) * | 2018-11-07 | 2019-03-01 | 郑州云海信息技术有限公司 | A kind of method for scheduling task and device of calculate node |
US20190384637A1 (en) * | 2017-09-26 | 2019-12-19 | Mitsubishi Electric Corporation | Controller |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424102B2 (en) * | 2014-05-14 | 2016-08-23 | International Business Machines Corporation | Task grouping by context |
CN106991013B (en) * | 2017-04-18 | 2018-09-07 | 腾讯科技(深圳)有限公司 | A kind of method and device that resource request is handled |
RU2718215C2 (en) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Data processing system and method for detecting jam in data processing system |
RU2714219C1 (en) | 2018-09-14 | 2020-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for scheduling transfer of input/output operations |
RU2731321C2 (en) | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Method for determining a potential fault of a storage device |
RU2714602C1 (en) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for data processing |
RU2721235C2 (en) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for routing and execution of transactions |
RU2711348C1 (en) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for processing requests in a distributed database |
RU2714373C1 (en) | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for scheduling execution of input/output operations |
RU2749649C2 (en) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for scheduling processing of i/o operations |
RU2720951C1 (en) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Method and distributed computer system for data processing |
RU2746042C1 (en) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Method and the system for message transmission |
Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247677A (en) * | 1992-05-22 | 1993-09-21 | Apple Computer, Inc. | Stochastic priority-based task scheduler |
US5623672A (en) * | 1994-12-23 | 1997-04-22 | Cirrus Logic, Inc. | Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment |
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
US6341303B1 (en) * | 1998-08-28 | 2002-01-22 | Oracle Corporation | System and method for scheduling a resource according to a preconfigured plan |
US6496871B1 (en) * | 1998-06-30 | 2002-12-17 | Nec Research Institute, Inc. | Distributed agent software system and method having enhanced process mobility and communication in a computer network |
US20030037091A1 (en) * | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US20040194097A1 (en) * | 2003-03-28 | 2004-09-30 | Emulex Corporation | Hardware assisted firmware task scheduling and management |
US20050050552A1 (en) * | 2003-08-29 | 2005-03-03 | Microsoft Corporation | System and method for increasing data throughput using thread scheduling |
US20050125789A1 (en) * | 2002-01-24 | 2005-06-09 | Koninklijke Philips Electronics N.V. Groenewoudseweg 1 | Executing processes in a multiprocessing environment |
US7047322B1 (en) * | 2003-09-30 | 2006-05-16 | Unisys Corporation | System and method for performing conflict resolution and flow control in a multiprocessor system |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US7159221B1 (en) * | 2002-08-30 | 2007-01-02 | Unisys Corporation | Computer OS dispatcher operation with user controllable dedication |
US7321965B2 (en) * | 2003-08-28 | 2008-01-22 | Mips Technologies, Inc. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US7360219B2 (en) * | 2002-12-13 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Systems and methods for facilitating fair and efficient scheduling of processes among multiple resources in a computer system |
US20080115143A1 (en) * | 2006-11-10 | 2008-05-15 | International Business Machines Corporation | Job Execution Method, Job Execution System, and Job Execution Program |
US7376954B2 (en) * | 2003-08-28 | 2008-05-20 | Mips Technologies, Inc. | Mechanisms for assuring quality of service for programs executing on a multithreaded processor |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7526767B1 (en) * | 1998-08-28 | 2009-04-28 | Oracle International Corporation | Methods for automatic group switching according to a resource plan |
US20090122766A1 (en) * | 2007-10-01 | 2009-05-14 | Hughes Timothy J | Nested weighted round robin queuing |
US7548335B2 (en) * | 2005-02-25 | 2009-06-16 | Microsoft Corporation | Print job queuing and scheduling systems and methods |
US20090217273A1 (en) * | 2008-02-26 | 2009-08-27 | Microsoft Corporation | Controlling interference in shared memory systems using parallelism-aware batch scheduling |
US20090300637A1 (en) * | 2008-06-02 | 2009-12-03 | Microsoft Corporation | Scheduler instances in a process |
US7761875B2 (en) * | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
US7840966B2 (en) * | 2005-03-14 | 2010-11-23 | Qnx Software Systems Gmbh & Co. Kg | Process scheduler employing adaptive partitioning of critical process threads |
US20110161973A1 (en) * | 2009-12-24 | 2011-06-30 | Delphix Corp. | Adaptive resource management |
US8020163B2 (en) * | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US8194658B2 (en) * | 2007-01-05 | 2012-06-05 | Samsung Electronics Co., Ltd. | Transmitting and receiving method and apparatus in real-time system |
US8205205B2 (en) * | 2007-03-16 | 2012-06-19 | Sap Ag | Multi-objective allocation of computational jobs in client-server or hosting environments |
US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263359B1 (en) * | 1997-05-22 | 2001-07-17 | International Business Machines Corporation | Computer resource proportional utilization and response time scheduling |
US6427161B1 (en) * | 1998-06-12 | 2002-07-30 | International Business Machines Corporation | Thread scheduling techniques for multithreaded servers |
US6871011B1 (en) | 2000-09-28 | 2005-03-22 | Matsushita Electric Industrial Co., Ltd. | Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority |
KR100636272B1 (en) | 2005-01-10 | 2006-10-19 | 삼성전자주식회사 | Apparatus for port scheduling and method thereof |
US7613904B2 (en) * | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
-
2010
- 2010-01-07 KR KR1020100001101A patent/KR101644800B1/en active IP Right Grant
- 2010-10-19 US US12/907,639 patent/US8799913B2/en active Active
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247677A (en) * | 1992-05-22 | 1993-09-21 | Apple Computer, Inc. | Stochastic priority-based task scheduler |
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US5623672A (en) * | 1994-12-23 | 1997-04-22 | Cirrus Logic, Inc. | Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment |
US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
US6496871B1 (en) * | 1998-06-30 | 2002-12-17 | Nec Research Institute, Inc. | Distributed agent software system and method having enhanced process mobility and communication in a computer network |
US6341303B1 (en) * | 1998-08-28 | 2002-01-22 | Oracle Corporation | System and method for scheduling a resource according to a preconfigured plan |
US7526767B1 (en) * | 1998-08-28 | 2009-04-28 | Oracle International Corporation | Methods for automatic group switching according to a resource plan |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US20030037091A1 (en) * | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US20050125789A1 (en) * | 2002-01-24 | 2005-06-09 | Koninklijke Philips Electronics N.V. Groenewoudseweg 1 | Executing processes in a multiprocessing environment |
US7159221B1 (en) * | 2002-08-30 | 2007-01-02 | Unisys Corporation | Computer OS dispatcher operation with user controllable dedication |
US7360219B2 (en) * | 2002-12-13 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Systems and methods for facilitating fair and efficient scheduling of processes among multiple resources in a computer system |
US20040194097A1 (en) * | 2003-03-28 | 2004-09-30 | Emulex Corporation | Hardware assisted firmware task scheduling and management |
US8020163B2 (en) * | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US7321965B2 (en) * | 2003-08-28 | 2008-01-22 | Mips Technologies, Inc. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US7376954B2 (en) * | 2003-08-28 | 2008-05-20 | Mips Technologies, Inc. | Mechanisms for assuring quality of service for programs executing on a multithreaded processor |
US20050050552A1 (en) * | 2003-08-29 | 2005-03-03 | Microsoft Corporation | System and method for increasing data throughput using thread scheduling |
US7047322B1 (en) * | 2003-09-30 | 2006-05-16 | Unisys Corporation | System and method for performing conflict resolution and flow control in a multiprocessor system |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7548335B2 (en) * | 2005-02-25 | 2009-06-16 | Microsoft Corporation | Print job queuing and scheduling systems and methods |
US7840966B2 (en) * | 2005-03-14 | 2010-11-23 | Qnx Software Systems Gmbh & Co. Kg | Process scheduler employing adaptive partitioning of critical process threads |
US7761875B2 (en) * | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
US20080115143A1 (en) * | 2006-11-10 | 2008-05-15 | International Business Machines Corporation | Job Execution Method, Job Execution System, and Job Execution Program |
US8219997B2 (en) * | 2006-11-10 | 2012-07-10 | International Business Machines Corporation | Execution the job that is divided into job tasks based on the estimated completion time |
US8194658B2 (en) * | 2007-01-05 | 2012-06-05 | Samsung Electronics Co., Ltd. | Transmitting and receiving method and apparatus in real-time system |
US8205205B2 (en) * | 2007-03-16 | 2012-06-19 | Sap Ag | Multi-objective allocation of computational jobs in client-server or hosting environments |
US20090122766A1 (en) * | 2007-10-01 | 2009-05-14 | Hughes Timothy J | Nested weighted round robin queuing |
US20090217273A1 (en) * | 2008-02-26 | 2009-08-27 | Microsoft Corporation | Controlling interference in shared memory systems using parallelism-aware batch scheduling |
US8271741B2 (en) * | 2008-02-26 | 2012-09-18 | Microsoft Corporation | Prioritization of multiple concurrent threads for scheduling requests to shared memory |
US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
US20090300637A1 (en) * | 2008-06-02 | 2009-12-03 | Microsoft Corporation | Scheduler instances in a process |
US20110161973A1 (en) * | 2009-12-24 | 2011-06-30 | Delphix Corp. | Adaptive resource management |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317578A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Scheduling Execution of Complementary Jobs Based on Resource Usage |
US8959526B2 (en) * | 2011-06-09 | 2015-02-17 | Microsoft Corporation | Scheduling execution of complementary jobs based on resource usage |
US20160077870A1 (en) * | 2014-09-16 | 2016-03-17 | Freescale Semiconductor, Inc. | Starvation control in a data processing system |
US9639396B2 (en) * | 2014-09-16 | 2017-05-02 | Nxp Usa, Inc. | Starvation control in a data processing system |
US20190384637A1 (en) * | 2017-09-26 | 2019-12-19 | Mitsubishi Electric Corporation | Controller |
CN109408215A (en) * | 2018-11-07 | 2019-03-01 | 郑州云海信息技术有限公司 | A kind of method for scheduling task and device of calculate node |
Also Published As
Publication number | Publication date |
---|---|
US8799913B2 (en) | 2014-08-05 |
KR101644800B1 (en) | 2016-08-02 |
KR20110080735A (en) | 2011-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799913B2 (en) | Computing system, method and computer-readable medium for managing a processing of tasks | |
US8307370B2 (en) | Apparatus and method for balancing load in multi-core processor system | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
US20170255496A1 (en) | Method for scheduling data flow task and apparatus | |
US8627330B2 (en) | Workload manager managing a workload of an enterprise data warehouse | |
US9742869B2 (en) | Approach to adaptive allocation of shared resources in computer systems | |
US8479205B2 (en) | Schedule control program and schedule control method | |
US8875146B2 (en) | Systems and methods for bounding processing times on multiple processing units | |
US8627325B2 (en) | Scheduling memory usage of a workload | |
JP2009245047A (en) | Memory buffer allocation device and program | |
US8505016B2 (en) | Enhanced shortest-job-first memory request scheduling | |
US9047138B2 (en) | Apparatus and method for thread scheduling and lock acquisition order control based on deterministic progress index | |
US10884667B2 (en) | Storage controller and IO request processing method | |
CN110018781B (en) | Disk flow control method and device and electronic equipment | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
CN113312323A (en) | IO (input/output) request scheduling method and system for reducing access delay in parallel file system | |
CN106293917A (en) | The optimization method of a kind of I O scheduling cfq algorithm and system | |
US11194619B2 (en) | Information processing system and non-transitory computer readable medium storing program for multitenant service | |
CN117234691A (en) | Task scheduling method and device | |
KR101541156B1 (en) | Apparatus and method for multi dimensional time and space deterministic task schedul | |
CN115202842A (en) | Task scheduling method and device | |
US11294724B2 (en) | Shared resource allocation in a multi-threaded microprocessor | |
CN115269118A (en) | Scheduling method, device and equipment of virtual machine | |
CN106155810B (en) | The input/output scheduling device of workload-aware in software definition mixing stocking system | |
JP2023032163A (en) | Information processing apparatus and job scheduling method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOO, JEONG JOON;LEE, SHI HWA;LEE, SEUNG WON;AND OTHERS;REEL/FRAME:025191/0333 Effective date: 20100927 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |