KR101644800B1 - Computing system and method - Google Patents

Computing system and method Download PDF

Info

Publication number
KR101644800B1
KR101644800B1 KR20100001101A KR20100001101A KR101644800B1 KR 101644800 B1 KR101644800 B1 KR 101644800B1 KR 20100001101 A KR20100001101 A KR 20100001101A KR 20100001101 A KR20100001101 A KR 20100001101A KR 101644800 B1 KR101644800 B1 KR 101644800B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
group
priority
task
operation
included
Prior art date
Application number
KR20100001101A
Other languages
Korean (ko)
Other versions
KR20110080735A (en )
Inventor
유정준
신용삼
이시화
이승원
손민영
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

컴퓨팅 시스템이 제공된다. The computing system is provided. 복수 개의 태스크 간에 우선순위 기반의 스케줄링을 함에 있어서, 기아(Starvation) 현상을 방지하기 위해 태스크들은 우선 순위 기반의 그룹(Priority-based Group)과 그 외의 그룹으로 나뉠 수 있다. In making priority based scheduling between a plurality of tasks, in order to prevent starvation (Starvation) developing task can be divided into priority groups (Priority-based Group) and other groups of the rank-based. 그리고 태스크들의 그룹은 변경될 수 있다. And a group of tasks can be changed.

Description

컴퓨팅 시스템 및 방법{COMPUTING SYSTEM AND METHOD} Computing systems and methods {COMPUTING SYSTEM AND METHOD}

우선순위 기반 태스크 스케줄링(scheduling)이 수행될 수 있는 컴퓨팅 시스템, 디지털 텔레비전, MP3 플레이어, 프린터, SSD(Solid State Disk) 등에 연관되며, 보다 특정하게는 태스크 스케줄링을 통해 작업 간의 우선 순위를 유지하면서 기아(Starvation) 현상을 방지하는 방법에 연관된다. First, it is associated, etc. The rank-based task scheduling (scheduling) may have to be performed computing systems, digital televisions, MP3 players, printers, SSD (Solid State Disk), which, while more than maintain a particular make priorities between tasks through the task scheduling starvation (Starvation) is related to a method for preventing the phenomenon.

CPU, DMA, Network 등을 사용하는 컴퓨팅 시스템, 또는 다양한 종류의 전자제품들에서는 여러 개의 프로세스(process) 또는 쓰레드(thread)(이하에서는 작업(Task)이라고 한다)가 수행되는데, 한정된 자원(resource)을 이용하여 여러 개의 작업을 어떤 순서로 처리할 것인지 스케줄링(scheduling)할 필요가 있다. CPU, DMA, multiple processes (process) or thread (thread) (hereinafter tasks (referred to as Task)) that, with limited resources (resource) is performed in those that use the Network, including computing systems, or various kinds of electronic products the scheduling, it is necessary to (scheduling) whether to process multiple tasks in any order using.

통상적으로 작업들에는 우선순위(Priority)가 지정되며, 서로 다른 우선 순위를 갖는 작업들 중에서는 우선 순위가 높은 작업이 먼저 처리되도록 스케줄링을 한다. Typically, the operation of the first and assigned a priority (Priority), and the scheduled tasks having different with each other among the priorities is priority is processed first high working. 이를 우선순위 기반의 스케줄링(priority-based scheduling)이라 한다. This is referred to as a scheduling priority (priority-based scheduling) based on the ranking.

이를테면, 실시간 처리가 요구되는 멀티미디어 응용(multi-media application)들에 연관된 작업의 경우 우선순위가 비교적 높게 설정되어서, 다른 작업들에 우선하여 처리되도록 스케줄 될 수 있다. For example, if the action associated to the real-time multimedia application processing request (multi-media application) that is be priority is set relatively high, it can be scheduled to be processed in preference to other tasks.

그런데 이러한 우선순위 기반의 스케줄링에서는, 우선순위가 높은 작업이 자원(resource)을 계속 점유함으로써 우선순위가 낮은 주체가 자원을 점유하지 못해서 영원히 수행이 불가능하게 되는 기아(starvation) 현상이 문제된다. However, in these priority-based scheduling, hunger (starvation) development priorities that higher job by continuing to occupy the resources (resource) priority can not be done forever failing to occupy the lower principal resource is the problem.

우선순위 기반의 작업 스케줄링에 있어서 우선순위가 낮은 작업에 대한 기아(starvation) 현상을 방지하면서도, 전체 작업들 사이의 우선순위에 따른 자원 점유율을 유지할 수 있는 컴퓨팅 시스템 및 방법이 제공된다. First, according to the rank-based job scheduling priority while ranked avoid starvation (starvation) developer for low operation, the computing system and method capable of maintaining the resource share, according to the priority among the entire operation is provided.

또한, 자원이 여유가 있는지의 여부에 따라 적응적으로 작업 스케줄링을 변경함으로써 우선순위가 높은 작업에게 더 많은 수행 기회를 보장하는 효율적인 컴퓨팅 시스템 및 방법이 제공된다. In addition, resource efficient computing systems and how to ensure the priority, the more opportunities for high-performing work by changing the work schedule adaptively according to whether the allowance is provided.

본 발명의 일측에 따르면, 처리되어야 할 복수 개의 작업을 우선순위 기반의 제1 그룹과 우선순위에 기반하지 않는 제2 그룹으로 나누어 관리하는 작업 관리부 - 단, 상기 제1 그룹에는 상기 제2 그룹에 포함되는 작업들을 대표하는 가상의 작업이 함께 포함됨 -, 및 상기 제1 그룹에 속하는 작업들을 우선순위에 기초한 순서에 따라 처리하는 처리부 - 단, 상기 처리부는 상기 가상의 작업이 처리되는 순서에는 상기 제2 그룹에 속하는 작업 중 어느 하나를 선택하여 처리함 -를 포함하는, 컴퓨팅 시스템이 제공된다. According to the aspect of the present invention, by dividing managing a plurality of tasks to be processed first in the second group that are not based on the first and second group of priority-based ranking job management-stage, wherein the first group to the second group included with the virtual work representing the work involved -, and processing unit for processing the order based on the priority operation belonging to the first group-stage, the processing unit has the first order in which the virtual operation process also processed by selecting one of the operation belonging to the second group - is provided, the computing system including a.

본 발명의 일 실시예에 따르면, 상기 프로세서는, 상기 가상의 작업이 처리되는 순서에, 상기 제2 그룹에 포함되는 작업 중 라운드 로빈(Round Robin) 기법에 의해 선택되는 작업을 처리할 수 있다. According to one embodiment of the invention, the processor, the sequence of the virtual work to be processed, wherein it is possible to process the job selected by the round robin (Round Robin) method of operation included in the second group.

그러나 본 발명의 다른 일 실시예에 따르면, 상기 프로세서는, 상기 가상의 작업이 처리되는 순서에, 상기 제2 그룹에 포함되는 작업 중 랜덤하게(randomly) 선택되는 작업을 처리할 수도 있다. However, according to another embodiment of the invention, the processor is in the order of the virtual work to be processed, it is also possible to process a job that is randomly (randomly) choose between tasks included in the second group.

한편, 상기 컴퓨팅 시스템은, 상기 제1 그룹에 속하는 작업들을 처리하는 시간 중, 상기 가상의 작업이 처리되는 시간이 차지하는 비율을 측정하는 부하 율 측정부를 더 포함할 수 있다. On the other hand, the computing system, wherein the may further comprise of time for processing operations belonging to the first group, the ratio of time of the virtual work to be treated occupied by parts of the load rate measurement to measurement.

그리고 상기 작업 관리부는, 상기 측정된 비율이 제1 임계치 이상인 경우, 상기 제2 그룹에 포함되는 작업 중 우선순위가 가장 높은 작업을 상기 제1 그룹에 포함시킨다. Further, the operation management unit, include if the measured ratio greater than the first threshold value, the highest priority task of the operation included in the second group to the first group.

또한, 상기 작업 관리부는, 상기 측정된 비율이 제2 임계치 이하인 경우, 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업을 상기 제2 그룹에 포함시킨다. Further, the operation management unit, to include the case where the ratio is not more than a measured second threshold value, the priority of the lowest working operations included in the first group to the second group.

한편, 상기 컴퓨팅 시스템에 처리되어야 할 새로운 작업이 생성되는 경우, 상기 새로운 작업의 우선순위가 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업의 우선순위보다 높다면 상기 작업 관리자는 상기 새로운 작업을 상기 제1 그룹에 포함시키고, 그렇지 않다면 상기 새로운 작업을 상기 제2 그룹에 포함시킬 수 있다. On the other hand, when a new task to be processed on the computing system generating, if the priority of the new task is higher than the priority of the lowest priority of the tasks task included in the first group, the task manager is the new the task was included in the first group, otherwise it is possible to include the new operation to the second group.

그리고 상기 작업 관리부는, 상기 제1 그룹에 속하는 작업들 중 우선순위가 가장 낮은 작업을 가리키는 제1 포인터를 관리하고, 상기 측정된 비율이 제1 임계치 이상인 경우, 상기 제2 그룹에 포함되는 작업 중 우선순위가 가장 높은 작업을 상기 제1 그룹에 포함시키고, 상기 제1 포인터가 상기 포함되는 작업을 가리키도록 수정할 수 있다. And of the actions contained in the case it is greater than or equal to the work management unit manages the first pointer the first of the tasks belonging to the first group ranking points to the lowest operation, and the said measured rate a first threshold value, the second group priority and contains the highest operation to the first group, can be modified to point to the work by the first pointer including the.

또한, 상기 작업 관리부는, 상기 제2 그룹에 속하는 작업들 중 우선순위가 가장 높은 작업을 가리키는 제2 포인터를 관리하고, 상기 측정된 비율이 제2 임계치 이하인 경우, 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업을 상기 제2 그룹에 포함시키고, 상기 제2 포인터가 상기 포함되는 작업을 가리키도록 수정할 수 있다. Further, the job management module, the task included in the second of the tasks belonging to the group management a second pointer to a priority indicating a highest action and, in the case where the measured rate less than or equal to the second threshold value, the first group of priority for inclusion in the second group, the lowest work, it can be modified to point to the task by the second pointer including said.

한편, 상기 작업 관리부는, 상기 제1 그룹에 속하는 작업들 중 우선순위가 가장 낮은 작업을 가리키는 제1 포인터 및 상기 제2 그룹에 속하는 작업들 중 우선순위가 가장 높은 작업을 가리키는 제2 포인터를 관리하고, 처리되어야 할 새로운 작업이 생성되는 경우, 상기 새로운 작업의 우선순위가 상기 제1 포인터가 가리키는 작업의 우선순위보다 높다면 상기 새로운 작업을 상기 제1 그룹에 포함시키고 상기 제1 포인터가 상기 포함되는 작업을 가리키도록 수정하고, 그렇지 않다면 상기 새로운 작업을 상기 제2 그룹에 포함시키고, 상기 제2 포인터가 상기 포함되는 작업을 가리키도록 수정할 수 있다. On the other hand, the job management unit, wherein the managing the second pointer priority of the tasks belonging to the first pointer and the second group has the priority of the tasks belonging to the first group points to the lowest work points to the highest working If, and where a new task to be processed produced, the surface of the new task priority is higher than the priority of the task pointed to by the first pointer and including the new operation to the first group of the first pointer contains the modified to point to a task which is, otherwise the new work was included in the second group, it can be modified to point to the task by the second pointer including said.

본 발명의 다른 일측에 따르면, 처리되어야 할 복수 개의 작업을 우선순위 기반의 제1 그룹과 우선순위에 기반하지 않는 제2 그룹으로 나누는 단계 - 단, 상기 제1 그룹에는 상기 제2 그룹에 포함되는 작업들을 대표하는 가상의 작업이 함께 포함됨 -, 및 상기 제1 그룹에 속하는 작업들을 우선순위에 기초한 순서에 따라 처리하는 단계 - 단, 상기 가상의 작업이 처리되는 순서에는 상기 제2 그룹에 속하는 작업 중 어느 하나를 선택하여 처리함 - 를 포함하는, 컴퓨팅 방법이 제공된다. According to another aspect of the present invention, dividing a plurality of operations to be processed first in the second group that are not based on the first group of the rank-based priority level - However, in the first group included in the second group a task belonging to a stage, in the order of the virtual work to be processed and the second group comprising: - processing the order based on the priority job that belongs to, and the first group - with the virtual work included representing the operation also of processing by selecting one-, there is provided a computing method comprising the.

우선순위 기반의 작업 스케줄링에 따라, 우선순위가 높은 작업에는 더 많은 자원 점유를 보장하면서도, 기아(starvation) 현상이 방지될 수 있다. First, according to the rank-based job scheduling, while ensuring more resources occupied, the high-priority tasks can be starvation (starvation) phenomenon is prevented.

자원을 사용하는 부하 량에 따라, 적응적으로 작업 스케줄이 변경됨으로써 전체 작업 처리의 효율성이 높아질 수 있다. According to the load amount of use of resources, to adaptively change the work schedule it can thereby increase the efficiency of the entire working process.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 도시한다. Figure 1 illustrates a computing system in accordance with one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 복수 개의 작업들이 그룹핑 되는 모습을 설명하기 위한 개념도이다. 2 is a conceptual diagram illustrating a state that they grouping a plurality of tasks by a computing method in accordance with one embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 작업 프로모션이 수행된 결과를 도시하는 개념도이다. 3 is a conceptual diagram showing the results of this work promotional performed by a computing method in accordance with one embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따라, 작업 디모션이 필요한 경우를 설명하기 위한 개념도이다. 4 is a conceptual diagram for explaining the case in accordance with an embodiment of the invention, the task required di motion.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 작업 디모션이 수행되는 과정을 설명하기 위한 개념도이다. 5 is a conceptual diagram illustrating a process of de-motion operation performed by the computing method in accordance with one embodiment of the present invention.
도 6은 본 발명의 일 실시예에 다른 컴퓨팅 시스템에 새로운 작업이 입력되는 경우를 설명하기 위한 개념도이다. 6 is a conceptual diagram illustrating a case in which a new operation input to another computing system in one embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 도 6에서 입력된 새로운 작업을 그룹핑한 결과를 도시하는 개념도이다. 7 is a conceptual diagram illustrating a result of grouping a new input operation in Figure 6 by a computing method in accordance with one embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시하는 흐름도이다. 8 is a flow chart showing a computing method in accordance with one embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시하는 흐름도이다. 9 is a flowchart showing a computing method in accordance with one embodiment of the present invention.

이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. In the following, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. However, it is not the present invention is not limited or restricted to the embodiments. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)을 도시한다. Figure 1 illustrates a computing system 100 according to one embodiment of the present invention.

컴퓨팅 시스템(100)은 복수 개의 작업을 처리하는 처리부(110), 복수 개의 작업이 처리부(110)에서 처리되기 위한 스케줄링을 수행하는 작업 관리부(120) 및 스케줄링의 효율 개선을 위한 부하 율 측정부(130)를 포함할 수 있다. Computing system 100 includes a load ratio measurer for efficiency improvement of the job management module 120 to perform the scheduling for a plurality of operation processing unit 110, for processing a plurality of tasks being processed by the processor 110, and scheduling ( 130) may include.

본 발명의 일 실시예에 따르면, 작업 관리부(120)는 처리부(110)에서 처리되어야 할 복수 개의 작업을 제1 그룹과 제2 그룹으로 분류한다. According to one embodiment of the invention, the job management unit 120 classifies the plurality of tasks to be processed by the processor 110 in the first and second groups.

제1 그룹은 우선순위 기반(priority-based) 스케줄링이 이루어지는 그룹이고, 상기 제2 그룹은 그렇지 않는 그룹이다. The first group is the first group and the rank-based (priority-based) composed of scheduling, and the second group is a group that does not. 이 경우, 상기 제1 그룹에는 상기 제2 그룹의 작업들을 대표하는 가상 작업(Virtual Task)(이하에서는 Tv라고 한다)이 포함되며, 이 Tv의 우선순위는 제1 그룹 내에서 가장 낮은 것으로 간주될 수 있다. In this case, the first group includes the virtual action (referred to hereinafter Tv) (Virtual Task) representing the operation of the second group, the priority of the Tv is to be considered to be the lowest in the first group can.

그리고, 작업 관리부(120)는 작업 스케줄링을 수행함에 있어서, 제1 그룹에 포함된 작업들을 우선순위에 따라 순서대로 처리하도록 하되, Tv의 처리 순서에서는 제2 작업 그룹에 포함된 작업들 중 하나가 처리되도록 한다. And, in carrying out the job scheduling job management module 120, but the so processed in the order according to the priority of the tasks included in the first group priority, the processing procedure of the Tv is one of the tasks it included in the second task group to be processed.

그러면, 전체 작업들 간에 우선순위에 따른 처리가 이루어지며, 기아 현상도 예방될 수 있다. Then, becomes a priority according to rank among the total work done, starvation can also be prevented. 이러한 과정은 도 2 이하를 참조하여 보다 상세히 후술한다. This process, see the following Figure 2 and described further below.

그리고, 부하 율 측정부(130)는 주기적으로, 또는 계속하여 상기 작업 관리부(120)의 스케줄링에 따라 전체 작업 처리 시간 중 상기 Tv의 처리 시간의 비율인 부하 율(Load rate)을 측정한다. Then, the load rate measuring section 130 periodically, or continuously measuring the load rate ratio of the processing time of the Tv of the total work process time (Load rate) in accordance with the scheduling of the task management unit 120.

이렇게 측정된 부하 율은, 작업 프로모션(Task promotion) 또는 작업 디모션(Task demotion)에 활용된다. Thus the measured load rate, is utilized for promotion action (Task promotion) or di-motion operation (Task demotion). 작업 프로모션은 도 2 내지 도 3을 참조하여 상세히 후술하며, 작업 디모션은 도 4 내지 도 5를 참조하여 상세히 후술한다. Promotion operation is also discussed in detail below and with reference to Figures 2 to 3, the working directory is the motion will be described hereinafter with reference to FIG. 4 to FIG.

도 2는 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 복수 개의 작업들이 그룹핑 되는 모습을 설명하기 위한 개념도이다. 2 is a conceptual diagram illustrating a state that they grouping a plurality of tasks by a computing method in accordance with one embodiment of the present invention.

컴퓨팅 시스템(100)에서 처리되기 위해 입력되는 복수 개의 작업들은 각각 우선순위(priority) 레벨을 갖는다. A plurality of operation input to be processed by the computing system 100 has a respective priority (priority) level.

본 실시예에서 T0, T2, T3, T4 및 T5의 다섯 개의 작업이 처리되어야 하는데, 여기서 T0는 우선순위가 가장 높은 작업이고, 다음은 T2, T3, T4 그리고 T5 순서로 우선순위가 높다. To the five operations of T0, T2, T3, T4 and T5 to be processed in the present embodiment, in which T0 is the highest priority and the priority job, the next T2, T3, T4 and T5 in order of higher priority.

통상적으로 이러한 우선순위는, 작업의 실시간 처리 요구의 정도에 따라 결정될 수 있다. Typically this priority may be determined according to the degree of real-time processing needs of the job.

그런데, 이러한 다섯 개의 작업들 중 우선순위가 가장 높은 작업의 순서대로 자원을 할당하면, 우선순위가 낮은 작업, 이를테면 T5는 계속하여 자원을 할당 받지 못하는 기아(starvation) 현상을 겪게 될 수 있다. However, if the priority of these five tasks are assigned a resource highest order of operation, a low-priority tasks, such as T5 can continue to be subjected to starvation (starvation) phenomenon does not allocate resources.

우선순위에 따라 T5가 자원을 할당 받기 전에 그보다 우선순위가 더 높은 새로운 작업이 입력되는 등의 이유로 T5에는 자원 할당이 되지 않을 수 있기 때문이다. T5, the first such two euros, depending on the position in which T5 is a higher priority than new work entered before allocating resources because the resources can not be allocated.

이처럼 우선순위에만 기초한 작업 스케줄링에 의한 기아 현상을 방지하기 위해, 종래의 작업 스케줄 방법에서는 공평한 자원 할당을 위한 여러 가지 방법이 제시되었다. Thus, first to prevent starvation due to job scheduling based only on position, in the conventional operation schedule method has been proposed a number of methods for the fair resource allocation.

이를 테면, 전체 작업 중에 우선순위가 가장 높은 작업을 소정의 시간 슬라이스(time slice) 동안 처리하고, 그 다음 시간 슬라이스에서는 나머지 작업들을 라운드 로빈(Round Robin) 방법에 의해 처리하는 방법이 제시된 바 있다. For instance, the bar during the entire operation the priority of the highest priority job for a predetermined time slice (time slice), and proposed a method for treatment by the method the next time round the rest Robin (Round Robin) in the slice.

그러나, 이러한 방법에 의하면, 우선순위가 가장 높은 하나의 작업을 제외한 나머지 전체 작업의 우선순위들은 무시되므로, 전체 작업 처리에서 우선순위가 고려되지 못할 수 있다. However, according to this method, since the first ranking priority except the highest one task remaining total works are ignored, it can not be a priority in the entire work process is not considered.

이러한 현상은 기아 현상을 예방하는 데에는 효과가 있을지 모르나, 작업들 간에 우선순위를 지정한 원래의 취지를 살리지 못하므로, 오히려 작업 스케줄로서는 바람직하지 못한 면이 있다. This phenomenon moreuna There would work to prevent starvation, because it did not revive the original intent of the specified priority among the tasks, there is a rather undesirable side as the work schedule.

따라서, 본 발명의 일 실시예에 따르면, 전체 작업을 적어도 두 개의 그룹으로 나눈다. Thus, according to one embodiment of the present invention, it divides the total work by at least two groups.

먼저, 초기 설정에서는 상기 복수 개의 작업들 중 우선순위가 가장 높은 T0을 제1 그룹(210)에 포함시킨다. First, the initial setting, including the priority of the plurality of operation with the highest T0 in the first group (210). 그리고 나머지 작업들 T2, T3, T4 및 T5는 제2 그룹(220)에 포함시킨다. And the rest T2, T3, T4 and T5 are then included in a second group (220).

그리고, 제1 그룹(210)에는 상기 제2 그룹(220)에 포함된 작업들 전체를 대표하는 가상 작업(Virtual Task)이 함께 포함된다. And, it is the first group (210) included with the virtual workspace (Virtual Task) representative of the whole of the operations included in the second group 220.

여기서, 상기 제1 그룹(210)의 작업들에 대해서는 우선순위에 따른 작업 스케줄이 이루어져서 제1 그룹(210) 내에 포함된 작업들을 우선순위 순서에 따라 차례로 처리한다. Here, the processing of the first group 210, the task scheduling according to priority yirueojyeoseo for the operation of the operation included in the first group 210, first according to the priority order of the turn.

제1 그룹(210)에서 선택된 작업은 어느 순간 특정 시간 동안 대기(Sleep) 상태로 들어가게 된다. The first action selected from the group 210 is put in any particular moment during the standby time (Sleep) state. 특정 대기 시간이 지나면 준비(Ready) 상태로 변화하여 제1 그룹(210)의 작업들이 준비하고 있는 준비 큐 (Ready Queue)로 이동하여 또 다시 우선순위 기반 스케쥴링 후보가 된다. See the ready queues (Ready Queue) that are on a specific atmosphere The first group 210 is changed over to the ready (Ready) state is the time to prepare to re-priority-based scheduling candidates again. 작업이 대기(Sleep) 상태로 들어간 경우 제1 그룹(210)의 준비 큐 (Ready Queue) 내에 있는 또 다른 우선순위가 높은 작업이 선택되어 수행된다. If the operation enters the standby (Sleep), the state is performed again by another higher priority task in the ready queues (Ready Queue) in the first group 210 is selected.

우선순위가 가장 높은 작업이 대기(Sleep) 상태로 가지 않고 무한 수행될 경우 가상 작업의 부하 율이 작기 때문에 해당 작업은 후술되는 작업 디모션 (제1 그룹(210)에서 제2 그룹(220)으로 소속을 이동)이 일어나며, 제1 그룹(210)에는 가상 작업만이 존재하고, 모든 작업들은 제2 그룹(220) 내에 존재하여 라운드 로빈(Round-Robin) 방식이나 랜덤(Random) 방식의 스케쥴링 방식을 이용하는 형태가 된다. First, the second group 220 in the task operation to be described later de-motion (first group 210 is small, the load rate of the virtual operation if priority is performed highest infinite operation is not going to standby (Sleep), the state moving the position) is occurs, the first group 210 there is only a virtual work, and all operations are a second group 220 exists in the round robin (round-Robin) method or random (Random) scheme scheduling scheme in is a form of using a.

일정 시간이 지나 가상 작업의 부하 율이 커지면, 후술되는 바와 같이 제2 그룹(220) 내에 있는 우선순위가 가장 높은 작업에 대해 작업 프로모션이 발생한다. Over a period of time larger the load rate of the virtual work, the priority job for promotion to the highest working in the second group 220. As will be described later is generated.

한편, 제1 그룹(210)에 포함된 작업들이 순서대로 처리되다가 가상 작업 Tv가 처리될 차례에서는 제2 그룹(220) 내에 next Index 포인터(222)가 가리키는 작업 T4를 처리하게 된다. On the other hand, the operations included in the first group 210 are sequentially processed doedaga in turn be a virtual operation Tv processing it is to process the task pointed to by the next T4 Index pointer 222 in the second group 220.

따라서 제2 그룹(220) 내의 복수 개의 작업들 중 next Index 포인터가 가리키는 작업은, 제1 그룹(210) 내의 작업들이 우선순위에 따라 차례대로 처리되다가 가상 작업 Tv가 처리되는 차례에 처리된다. Therefore, a second group of operations indicated by the next pointer Index of a plurality of tasks in a 220, a first group (210) are first operation doedaga processing in turn in order of preference in the process is the time Tv is a virtual operation process.

본 발명의 일 실시예에 따르면, 상기 next Index 포인터(222)는 제2 그룹(220) 내에서 라운드 로빈 방식에 의해 수정된다. According to one embodiment of the present invention, the next Index Pointer 222 is modified by a round-robin fashion in the second group 220.

즉, 위의 예에서 Tv가 처리되는 차례에 next Index 포인터(222)가 가리키는 T4가 처리되었다면, next Index 포인터(222)는 그 다음 작업인 T5를 가리키도록 수정되면, 이 경우, 다음 번 Tv가 처리되는 순서에는 T5가 처리된다. That is, if the if the time that Tv is processed in the above example, T4 indicated by the next Index pointer 222 handles, next Index Pointer 222 is modified to point to the next task, T5, in this case, the next time Tv the order is processed, the processing is T5.

다만, 상기 라운드 로빈 방식은 본 발명의 일 실시예에 불과하며, 본 발명의 사상을 벗어나지 않는 범위에서 다른 응용이 배제되지 않는다. However, the round robin method is only an embodiment of the present invention, this does not rule out other applications without departing from the spirit of the invention.

이를 테면, 제1 그룹(210) 내의 복수 개의 작업이 우선순위에 따라 처리되다가 Tv가 처리되어야 하는 순서에서, 제2 그룹(220) 내의 복수 개의 작업들 중에서 랜덤하게(randomly) 하나의 작업이 선택되어 처리될 수도 있다. For instance, a first group doedaga processing according to a plurality of job priority in 210 in order to Tv is to be treated, the second group randomly from among a plurality of tasks in (220) (randomly) select the one of the working It is may be processed.

한편, 본 발명의 일 실시예에 따르면, 제1 그룹(210)에 포함된 작업들이 제2 그룹(220)으로 이동될 수도 있으며, 이를 작업 디모션(Task Demotion)이라 한다. Meanwhile, according to one embodiment of the invention, may be moved in the first group 210 to the second group 220, the task contained in the task will be referred to as motion-di (Task Demotion). 반대로 제2 그룹(220)에 포함된 작업들이 제1 그룹(210)으로 이동될 수도 있는데, 이는 작업 프로모션(Task Promotion)이라 한다. In contrast there may be moved in the second group, the first group 210 are included in the operation unit 220, which is referred to as work promotional (Task Promotion).

제1 그룹(210)에서는 임의의 시점에 작업 디모션을 할 경우에 제2 그룹(220)으로 이동시킬 작업을 가리키는 lowest 포인터(211)가 관리된다. The first group 210 is the lowest pointer 211 points to the operation to move to the second group 220, when the operation D motion at any point are managed. lowest 포인터(211)는 제1 그룹(210)에 포함된 복수 개의 작업 중 Tv를 제외한, 우선순위가 가장 낮은 작업을 가리킬 수 있다. lowest point 211 may have, other than the Tv priority of the plurality of tasks contained in the first group 210 can point to the lowest operation.

그리고 제2 그룹(220)에서는 임의의 시점에 작업 프로모션을 할 경우에 제1 그룹(210)로 이동시킬 작업을 가리키는 highest 포인터(221)가 관리된다. The second group 220 is highest in the pointer 221 points to a task to be moved to the first group 210 when the work promotional at any one time are managed. highest 포인터(221)는 제2 그룹(220)에 포함된 복수 개의 작업 중, 우선순위가 가장 높은 작업을 가리킬 수 있다. highest pointer 221 may point to a plurality of operation of, the highest priority task included in the second group 220.

한편, 본 발명의 일 실시예에 따르면, 제1 그룹(210) 내의 복수 개의 작업이 처리되는 동안, 전체 작업 처리 시간 중 Tv 작업이 처리되는 시간, 즉 제2 그룹 작업 중 어느 하나가 처리되는 시간의 비율이 측정된다. Meanwhile, according to one embodiment of the present invention, while a plurality of tasks in the first group 210 is processed, the time is the total work process time Tv operation processing, that is, a second group of time which is one process of the work the ratio of the measured. 이러한 비율을 부하 율(Load Rate)라고 한다. This ratio is referred to as the load rate (Load Rate). 부하 율은 0과 1 사이의 값이 된다. Load rate is a value between 0 and 1.

부하 율이 높다는 것은 전체 작업들을 스케줄링 함에 있어서, 우선순위를 덜 고려한 작업 스케줄이 되고 있다는 것이다. A high loading rate is that as in scheduling the entire operation, and less consideration of the task scheduling priority. 이 경우는 전체 작업 처리 스케줄에 있어서 우선순위를 더 고려할 필요가 있다. In this case, it is necessary to further consider the priority in the entire working process schedule.

따라서 본 발명의 일 실시예에 따르면, 측정되고 있는 부하 율이 제1 임계치 이상인 경우, 작업 프로모션을 수행하여 제2 그룹(220)의 highest 포인터(221)가 가리키는 작업을 제1 그룹(210)으로 이동시킨다. Therefore, according to one embodiment of the present invention, when the load rate is being measured is not less than the first threshold value, the operation indicated by the highest point 221 of the second group 220 to perform the operation promotion in the first group 210 moves.

이러한 작업 프로모션에 의해 highest 포인터가 가리키는 작업 T2가 제1 그룹(210)으로 이동된 결과가 도 3에 도시된다. These work operations indicated by the highest point by the promotion T2 the result of the moving in the first group 210 is shown in FIG.

도 3은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 작업 프로모션이 수행된 결과를 도시하는 개념도이다. 3 is a conceptual diagram showing the results of this work promotional performed by a computing method in accordance with one embodiment of the present invention.

작업 T2는 이제 제1 그룹(310)에 포함되었다. Task T2 is now included in the first group (310). 그리고, 새로 제1 그룹(310)으로 이동된 T2는 제1 그룹(310) 내에서 우선순위가 가장 낮으며, 따라서 lowest 포인터(311)은 이제 T2를 가리키도록 수정된다. Then, the new T2 was shifted to the first group 310 is the lowest priority in the first group 310, and therefore lowest point 311 is now modified to point to T2.

그리고, 제2 그룹(320) 내의 highest 포인터(321)는 나머지 작업들 중 가장 우선순위가 높은 T3를 가리키도록 수정된다. And, the highest point (321) in the second group 320 is fixed in the priorities of the rest point to the high T3.

이렇게 되면, 제1 그룹(310)에 포함된 작업들 T0, T2 및 Tv가 우선순위에 따라 순서대로 스케줄되어 처리되며, 상기한 바와 같이 Tv가 처리되어야 할 순서에는 제2 그룹(320) 내의 next Index 포인터(322)가 가리키는 작업 T5가 처리된다. If so, the tasks included in the first group (310), T0, T2, and Tv is first, and is scheduled in the order processed in order of preference, next in the sequence to be Tv is processed as described above, the second group 320 the Index pointer 322 points to task T5 is processed.

상기 제1 임계치는 초기 설정으로 유지될 수 있으며, 컴퓨팅 자원의 여유에 따라 적응적으로(adaptively) 조정될 수도 있다. The first threshold value can be maintained to the initial setting it may be adjusted adaptively (adaptively) in accordance with the margin of computing resources.

한편, 이러한 식으로 작업 프로모션이 반복적으로 수행되면, 제1 작업 그룹(310)에 포함된 작업의 수가 제2 작업 그룹(320)에 포함된 작업의 수에 비해 많아질 수도 있다. On the other hand, if in this way the work promotional repeatedly performed, the first may be the number of operations included in the task group (310) more than the number of tasks included in the second task group (320).

결국, 전체 작업들 중 많은 작업이 우선순위에 따라 스케줄 되어 처리될 수 있으며, 이렇게 되면 오히려 작업 효율이 떨어지거나, 생각지 못한 문제가 있을 수도 있다. After all, there is a lot of work during the entire operation can be scheduled and processed in order of priority, so if rather it may be not poor work efficiency, or think problems.

이러한 경우는, 제1 그룹(310) 내에 포함된 작업들 중 일부를 작업 디모션 시킬 필요가 있다. In this case, the first group has a task work some of the need to de-motion included in 310. The

작업 디모션에 대해서는 도 4 내지 도 5를 참조하여 후술한다. For the working-di motion with reference to FIG. 4 to FIG. 5 to be described later.

도 4는 본 발명의 일 실시예에 따라, 작업 디모션이 필요한 경우를 설명하기 위한 개념도이다. 4 is a conceptual diagram for explaining the case in accordance with an embodiment of the invention, the task required di motion.

상기한 바와 같이, 제1 그룹(410) 내에 많은 작업들이 포함되어 있다. As described above, it contains a lot of work in the first group (410). 이러한 경우에는, 제1 그룹(410)에 포함된 작업들 전체 처리 시간에 대비한 Tv 처리 시간의 비율, 즉 부하 율이 낮을 것이다. In this case, the ratio of Tv processing time compared to the overall processing time of the tasks included in the first group 410, that is, lower the load rate.

이러한 부하 율은 지속적으로, 또는 주기적으로 측정되므로, 본 발명의 일 실시예에 따르면, 상기 부하 율이 제2 임계치 이하인 경우 작업 디모션이 수행된다. Since these load rate is continuously or periodically measured, in accordance with one embodiment of the present invention, the load rate of the second threshold or less the working directory motion is performed.

작업 디모션 과정에서는, 제1 그룹(410) 내의 작업들 중 lowest 포인터(411)가 가리키는 작업인 T4가 제2 그룹(420)으로 이동된다. In a production process D. motion, the operation of the T4 indicated by the lowest point 411 of the operation in the first group 410 is moved in the second group 420.

그리고 lowest 포인터(411)는 상기 T4를 제외한 나머지 작업들 중 우선순위가 가장 낮은 T3를 가리키도록 수정된다. And the lowest point 411 is modified so that it is first of all but the T4 job priority point to the lowest T3.

그리고, 제2 그룹(420)으로 이동된 상기 T4는 제2 그룹(420) 내에서는 우선순위가 가장 높으므로, highest 포인터(421)가 상기 T4를 가리키도록 수정될 수 있다. In the second group move to the T4 420 it may be modified to the second group 420, within a priority, so that the highest, highest point 421 to point to the T4.

또한, next Index 포인터(422)는 실시예에 따라 작업 디모션에 의해 새로 제2 그룹(420)으로 이동된 T4를 가리키도록 수정될 수 있다. Further, Index next pointer 422 may be modified so that, in accordance with an embodiment points to the newly moved in the second group (420) T4 by the operation D motion. 다만, 이는 본 발명의 일 실시예에 불과하며, 다른 실시예에서는 next Index 포인터(422)는 수정되지 않을 수도 있다. However, this is merely one embodiment of the present invention, in another embodiment Index next pointer 422 may not be modified.

도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 작업 디모션이 수행된 결과를 설명하기 위한 개념도이다. 5 is a conceptual diagram illustrating a result of the operation D motion performed by the computing method in accordance with one embodiment of the present invention.

상술한 바와 같이 작업 디모션 과정에 의해 T4가 제2 그룹(520)으로 이동되고, highest 포인터(521) 및 next Index 포인터(522)가 T4를 가리키도록 수정되었다. The working directory T4 by the motion process are moved in the second group (520), highest pointer 521 and next pointer Index 522 has been modified to point to T4, as described above.

그리고 제1 그룹(510) 내에서는 lowest 포인터(511)가 T3를 가리키도록 수정되었다. And within the first group (510) has been modified to lowest point 511 is a point T3.

이러한 그룹핑에 따라, 이제는 제1 그룹(510) 내의 작업들이 우선순위가 높은 순서대로 수행되며, Tv가 수행되는 순서에서는 T4가 수행될 것이다. According to such grouping, it is now the task to be performed in the order of high priority in the first group 510, the order in which they are carried out will be Tv T4 is carried out. 그러면 next Index 포인터(522)는 T5를 가리키도록 수정될 수 있다. The next Index pointer 522 may be modified to point to T5.

한편, 이러한 과정 중에 새로운 작업이 입력되는 경우, 기존의 제1 그룹과 제2 그룹 중 어느 그룹에 포함시킬 지가 문제된다. On the other hand, when a new input operation in this process, the land to be included in any group of the existing first and second groups is a problem. 이러한 경우는 도 6 내지 도 7을 참조하여 후술한다. In such a case it will be described later with reference to FIG. 6 to FIG.

도 6은 본 발명의 일 실시예에 다른 컴퓨팅 시스템에 새로운 작업이 입력되는 경우를 설명하기 위한 개념도이다. 6 is a conceptual diagram illustrating a case in which a new operation input to another computing system in one embodiment of the present invention.

제1 그룹(610)에는 T0, T2 및 Tv가 포함되어 있고, 현재 lowest 포인터(611)가 가리키는 작업은 T2이다. The first group 610 there is included a T0, T2, and Tv, the current operation points to the lowest point 611 is T2.

그리고, 제2 그룹(620)에는 T3, T4 및 T5가 포함되어 있고, 현재 highest 포인터(621)가 가리키는 작업은 T3이고, next Index 포인터(622)가 가리키는 작업은 T5이다. And, a second group 620 is T3, T4 and T5 can be included, and the operation induced by the highest current pointer 621 is T3, next Index task pointed to by the pointer 622 is T5.

그런데, 새로 입력되는 작업(630)의 우선순위가 3이라고 가정한다. However, it is assumed that the priority of the task 630 newly entered 3. 따라서 제2 그룹(620)에 포함되어 있던 T3와 우선순위가 동일하다. T3 is therefore the priority that was included in the second group 620 is the same.

본 발명의 일 실시예에 따르면 이렇게 새로 입력되는 작업(630)의 우선순위가 제1 그룹(610) 내의 lowest 포인터(611)가 가리키는 작업의 우선순위와 비교된다. According to one embodiment of the present invention thus is the priority of the task 630 is a new type compared to the priority of the job indicated by the lowest point 611 in the first group (610).

그래서, 새로 입력되는 작업(630)의 우선순위가 lowest 포인터(611)가 가리키는 작업의 우선순위보다 높지 않다면, 새로 입력되는 작업(630)은 제2 그룹(620)에 포함된다. Thus, the priority of the task 630, the newly entered lowest point 611 is not high than the priority of the work points, the task 630 which is newly input is included in the second group 620.

이 경우, 제2 그룹(620) 내의 highest 포인터(621)는, 새로 입력되는 작업(630) 및 기존의 제2 그룹(620) 내의 작업들 전체 중에 가장 우선순위가 높은 작업을 가리키도록 수정될 수도 있다. In this case, the second group 620 in the highest point 621, the priority is to be modified to point to the high working during all of the operations in the new input operation 630 and a conventional second group 620 may.

이러한 결과가 도 7에 도시된다. These results are shown in Fig.

도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 의해 도 6에서 입력된 새로운 작업을 그룹핑한 결과를 도시하는 개념도이다. 7 is a conceptual diagram illustrating a result of grouping a new input operation in Figure 6 by a computing method in accordance with one embodiment of the present invention.

제1 그룹(710)은 종전과 같이 T0, T2 및 Tv가 포함되어 있으며, lowest 포인터(711)는 그대로 T2를 가리킨다. The first group 710 as before and includes the T0, T2, and Tv, lowest pointer 711 points to as T2.

그리고 제2 그룹(720)에는 새로이 작업(630)이 포함되었으며, highest 포인터(720)은 새로 포함된 작업(630)을 가리키도록 수정되었다. And a second group 720 has been newly included operations (630), highest point 720 has been modified to point to the work (630) newly included. 제2 그룹에는 우선순위가 3으로 동일한 작업이 두 개 포함되었다. The second group includes two priorities were the same task three.

이러한 그룹핑 이후에는, 제1 그룹(710)에 포함된 작업들이 우선순위 순서에 따라 처리되며, Tv가 처리되는 순서에서는 next Index 포인터(722)가 가리키는 T5가 처리된다. After this grouping, the claim is handled in accordance with their priority order of the tasks included in the first group 710, the order in which the process is Tv T5 treatment is pointed to by the next pointer Index 722.

도 8은 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시하는 흐름도이다. 8 is a flow chart showing a computing method in accordance with one embodiment of the present invention.

단계(S810)에서 처리되어야 할 복수 개의 작업이 제1 그룹과 제2 그룹으로 그룹핑 된다. A plurality of tasks to be processed in the step (S810) are grouped into a first group and a second group.

따라서, 단계(S820)에서 제1 그룹에 속하는 작업들이 우선순위에 따라 처리되며, 단계(S830)에서 모든 작업이 처리 완료되었는지 판단된다. Thus, in step (S820) and the processing in order of their operation belonging to the first priority group, it is determined that all the operation is complete, processing in steps (S830).

한편, 전체 처리 시간 중 Tv 처리 시간의 비율인 부하 율은 주기적으로, 또는 항상 측정되는데, 단계(S830)에서 모든 작업이 처리되지 않은 것으로 판단되면, 단계(S840)에서 현재 부하 율이 제1 임계치와 비교된다. On the other hand, the ratio of the load rate of the entire processing time Tv processing times of the periodically, or there is always measured, if it is determined that all the operations in the step (S830) is not processed, the current load rate in the step (S840) the first threshold value It is compared with.

부하 율이 제1 임계치 이상이라면, 단계(S850)에서 작업 프로모션이 수행된다. If a load of not less than the first threshold value, the operation is performed in the promotion step (S850). 작업 프로모션의 과정은 도 2와 도 3을 참조하여 상술한 바와 같다. Course of work promotional reference to Figure 3 and Figure 2, as described above.

그리고, 단계(S860)에서는 현재 부하 율이 제2 임계치 이하인지가 판단된다. Then, the step (S860) it is determined whether the current load rate is below a second threshold.

현재 부하 율이 제2 임계치 이하라면, 단계(S870)에서 작업 디모션이 수행된다. If the current load ratio is less than the second threshold value, the task D motion in step (S870) is performed. 이러한 작업 디모션 과정은 도 4와 도 5를 참조하여 상술한 바와 같다. This action de-motion process are as described above with reference to FIG. 5 and FIG.

이러한 과정은, 단계(S830)에서 모든 작업이 처리 완료되었다고 판단될 때까지 계속된다. This process, all the operations in the step (S830) is continued until it is determined that the completion of treatment.

도 9는 본 발명의 일 실시예에 따른 컴퓨팅 방법에서 도 8의 단계(S820)을 상술하는 흐름도이다. 9 is a flowchart detailing the step (S820) of Fig on the computing method according to an embodiment 8 of the present invention.

단계(S910)에서 제1 그룹에 속하는 작업들을 우선순위에 따라 처리한다. It processes the job belonging to the first group in order of priority in the step (S910).

그리고, 단계(S920)에서 현재 처리되어야 할 작업이 Tv인지 판단하고, 그렇다면 단계(S930)에서는 제2 그룹에 속하는 작업 중 next Index 포인터가 가리키는 작업이 처리된다. Then, it is determined that the action is to be presently processed at the step (S920) Tv, then step (S930), this processing operation is indicated by the next pointer Index of jobs belonging to the second group.

그리고, 단계(S940)에서 next Index 포인터가 다른 작업을 가리키도록 수정되며, next Index 포인터가 다음에 어느 작업을 가리키도록 수정할 것인지의 정책은 상술한 바와 같이 라운드 로빈 방법을 따를 수도 있으며, 또는 랜덤하게 수정되도록 할 수도 있다. And, there is the next Index pointer modified to point to the other tasks in the step (S940), the policy of whether the next Index pointer modified to point to any operation in the following is also to follow the round-robin method, as described above, or may be modified such that randomly.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. Method in accordance with one embodiment of the present invention is implemented in program instruction form that can be executed by various computer it means to be recorded in computer-readable media. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The media and program instructions may be ones, or they may be of well-known and available to those skilled in the art computer software specifically designed and constructed for the purposes of the present invention. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. Examples of the computer readable recording medium such as an optical recording medium (optical media), flop tikeol disk (floptical disk) such as a magnetic medium (magnetic media), CD-ROM, DVD, such as hard disks, floppy disks, and magnetic tape - hardware devices that are specially configured to store the program instructions, such as an optical medium (magneto-optical media), and read-only memory (ROM), random access memory (RAM), flash memory and perform. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. Examples of program instructions include both machine code, such as produced by a compiler, using an interpreter for a high-level language code that can be executed by a computer. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the present invention, or vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. The present invention as described above, although been described and specific examples, the invention is not limited to the embodiments described above, those skilled in the art to which the invention pertains many modifications and variations to the described this is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. Therefore, the scope of the invention limited to the described embodiments will not be jeonghaejyeoseo, it should be below the claims of which is defined by the claims and their equivalents.

100: 컴퓨팅 시스템 100: Computing System
110: 처리부 110: processor
120: 작업 관리부 120: Task manager
130: 부하율 측정부 130: load measurement unit

Claims (18)

  1. 처리되어야 할 복수 개의 작업을 우선순위 기반의 제1 그룹과 우선순위에 기반하지 않는 제2 그룹으로 나누어 관리하는 작업 관리부 - 단, 상기 제1 그룹에는 상기 제2 그룹에 포함되는 작업들을 대표하는 가상의 작업이 함께 포함됨 -; Dividing managing the plurality of tasks to be processed first in the second group that are not based on the rank-based in the first group and the priority job management-stage, wherein the first group includes a virtual representing tasks included in the second group included in this work together;
    상기 제1 그룹에 속하는 작업들을 처리하는 시간 중, 상기 가상의 작업이 처리되는 시간이 차지하는 비율을 측정하는 부하 율 측정부; Of the time for processing operations belonging to the first group, the load ratio to the time of the virtual work to be processed measuring the occupying rate measurement unit; And
    상기 제1 그룹에 속하는 작업들을 우선순위에 기초한 순서에 따라 처리하는 처리부 - 단, 상기 처리부는 상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 속하는 작업 중 어느 하나를 선택하여 처리함 -; Processing unit for processing the order based on the priority of jobs belonging to the first group Ranking - however, said treatment is the case of processing a job of the virtual, also processing by selecting one of the operation belonging to the second group;
    를 포함하며, It includes,
    상기 작업 관리부는, 상기 제1 그룹에 속하는 작업들 중 우선순위가 가장 낮은 작업을 가리키는 제1 포인터를 관리하고, The task management unit, and of the operations belonging to the first group manages the first pointer points to the priority, the lowest work,
    상기 측정된 비율이 제1 임계치 이상인 경우, 상기 작업 관리부는 상기 제2 그룹에 포함되는 작업 중 우선순위가 가장 높은 작업을 상기 제1 그룹에 포함시키고, 상기 제1 포인터가 상기 포함되는 작업을 가리키도록 수정하는, 컴퓨팅 시스템. If the measured ratio greater than the first threshold value, the job management section for inclusion in the second group with the highest priority of the first group of the operation of the operation included in, point to the work by the first pointer including the The computing system modified to.
  2. 제1항에 있어서, According to claim 1,
    상기 처리부는, The processing section,
    상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 포함되는 작업 중 라운드 로빈(Round Robin) 기법으로 선택되는 작업을 처리하는, 컴퓨팅 시스템. When processing an operation of the virtual computing system to process a job is selected in a round robin (Round Robin) method of operation included in the second group.
  3. 제1항에 있어서, According to claim 1,
    상기 처리부는, The processing section,
    상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 포함되는 작업 중 랜덤(random) 하게 선택되는 작업을 처리하는, 컴퓨팅 시스템. When processing an operation of the virtual computing system to process a job that is selected at random (random) of the work it included in the second group.
  4. 삭제 delete
  5. 삭제 delete
  6. 제1항에 있어서, According to claim 1,
    상기 작업 관리부는, 상기 측정된 비율이 제2 임계치 이하인 경우, 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업을 상기 제2 그룹에 포함시키는, 컴퓨팅 시스템. The job management module, the case that the measured ratio greater than the second threshold value, the computing system that includes the lowest task priority of the task is included in the first group to the second group.
  7. 제1항에 있어서, According to claim 1,
    상기 작업 관리부는, 처리되어야 할 새로운 작업이 생성되는 경우, 상기 새로운 작업의 우선순위가 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업의 우선순위보다 높다면 상기 새로운 작업을 상기 제1 그룹에 포함시키고, 그렇지 않다면 상기 새로운 작업을 상기 제2 그룹에 포함시키는, 컴퓨팅 시스템. The task management unit, when a new task to be processed produced, the surface of the new task priorities of the tasks included in the first group, the priority is higher than the priority of the lowest work the said new operation first If and in the group, or, the computing system to include the new operation to the second group.
  8. 삭제 delete
  9. 제1항에 있어서, According to claim 1,
    상기 작업 관리부는, The job management unit
    상기 제2 그룹에 속하는 작업들 중 우선순위가 가장 높은 작업을 가리키는 제2 포인터를 관리하고, Priority of the tasks belonging to the second group and manage the second pointer to a highest action,
    상기 측정된 비율이 제2 임계치 이하인 경우, 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업을 상기 제2 그룹에 포함시키고, 상기 제2 포인터가 상기 포함되는 작업을 가리키도록 수정하는, 컴퓨팅 시스템. If the less the measured rate the second threshold value, the lowest task priority of the task contained in the first group were included in the second group, which modified to point to the task by the second pointer contained the The computing system.
  10. 제7항에 있어서, The method of claim 7,
    상기 작업 관리부는, The job management unit
    상기 제1 그룹에 속하는 작업들 중 우선순위가 가장 낮은 작업을 가리키는 제1 포인터 및 상기 제2 그룹에 속하는 작업들 중 우선순위가 가장 높은 작업을 가리키는 제2 포인터를 관리하고, A second pointer management priority of the tasks belonging to the first pointer and the second group of the first of the tasks belonging to the first group points to rank the lowest work points to the highest task,
    처리되어야 할 새로운 작업이 생성되는 경우, 상기 새로운 작업의 우선순위가 상기 제1 포인터가 가리키는 작업의 우선순위보다 높다면 상기 새로운 작업을 상기 제1 그룹에 포함시키고 상기 제1 포인터가 상기 포함되는 작업을 가리키도록 수정하고, When a new job to be processed produce, work, the priority of the new task if the first is higher than the priority of the points, the pointer operation to include the new operation to the first group to which the first pointer contains the and modify the point,
    그렇지 않다면 상기 새로운 작업을 상기 제2 그룹에 포함시키고, 상기 제2 포인터가 상기 포함되는 작업을 가리키도록 수정하는, 컴퓨팅 시스템 If not, the new task was included in the second group, a computing system modified to point to the task by the second pointer contained the
  11. 작업 관리부가 처리되어야 할 복수 개의 작업을 우선순위 기반의 제1 그룹과 우선순위에 기반하지 않는 제2 그룹으로 나누고, 상기 제1 그룹에 속하는 작업들 중 우선순위가 가장 낮은 작업을 가리키는 제1 포인터를 관리하는 단계 - 단, 상기 제1 그룹에는 상기 제2 그룹에 포함되는 작업들을 대표하는 가상의 작업이 함께 포함됨 -; Job management is not based on the priority and the first group of priority based on a plurality of jobs to be processed divided by the second group, the first pointer is first of operations belonging to the first group ranking points, the lowest work the method comprising the administration-stage, the first group is included with the virtual work representing tasks included in the second group;
    부하 율 측정부가 상기 제1 그룹에 속하는 작업들을 처리하는 시간 중, 상기 가상의 작업이 처리되는 시간이 차지하는 비율을 측정하는 단계; Comprising: a load rate measurement unit of the time for processing operations belonging to the first group, the time of the virtual work to be processed measuring the occupied ratio; And
    처리부가 상기 제1 그룹에 속하는 작업들을 우선순위에 기초한 순서에 따라 처리하는 단계 - 단, 상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 속하는 작업 중 어느 하나를 선택하여 처리함 -; Additional processing step for processing the order based on the priority of the tasks belonging to the first group of position - when processing stage, operation of the virtual, also processing by selecting one of the operation belonging to the second group;
    를 포함하며, It includes,
    상기 측정된 비율이 제1 임계치 이상인 경우, 상기 작업 관리부가 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 높은 작업을 상기 제1 그룹에 포함시키고, 상기 제1 포인터가 상기 포함되는 작업을 가리키도록 수정하는 단계를 더 포함하는, 컴퓨팅 방법. If the measured ratio greater than the first threshold value, the job management module is to include the highest task priority of the task is included in the first group to the first group, to point the job in the first pointer contains the the computing method further comprises modified to.
  12. 제11항에 있어서, 12. The method of claim 11,
    상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 포함되는 작업 중 라운드 로빈(Round Robin) 기법으로 선택되는 작업을 처리하는, 컴퓨팅 방법. When processing an operation of the virtual, the computing method to process a job is selected in a round robin (Round Robin) method of operation included in the second group.
  13. 제11항에 있어서, 12. The method of claim 11,
    상기 가상의 작업을 처리하는 경우, 상기 제2 그룹에 포함되는 작업 중 랜덤(random) 하게 선택되는 작업을 처리하는, 컴퓨팅 방법. When processing an operation of the virtual, the computing method to process a work is selected at random (random) of the work included in the second group.
  14. 삭제 delete
  15. 삭제 delete
  16. 제11항에 있어서, 12. The method of claim 11,
    상기 측정된 비율이 제2 임계치 이하인 경우, 상기 작업 관리부가 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업을 상기 제2 그룹에 포함시키는 단계 If the measured ratio is not more than the second threshold value, the step of the task management unit including the lowest task priority of the task is included in the first group to the second group
    를 더 포함하는, 컴퓨팅 방법. Of the computing method further comprises.
  17. 제11항에 있어서, 12. The method of claim 11,
    처리되어야 할 새로운 작업이 생성되는 경우, 상기 작업 관리부가 상기 새로운 작업의 우선순위가 상기 제1 그룹에 포함되는 작업 중 우선순위가 가장 낮은 작업의 우선순위보다 높다면 상기 새로운 작업을 상기 제1 그룹에 포함시키고, 그렇지 않다면 상기 새로운 작업을 상기 제2 그룹에 포함시키는 단계 When a new job to be processed produced, the job management module is the surface, a new priority of the job task priority is higher than the priority of the lowest operation of which is included in the first group of the new job the first group was included in, and if not step of including the new task to the second group
    를 더 포함하는, 컴퓨팅 방법. Of the computing method further comprises.
  18. 제11항 내지 제13항, 제16항 및 제17항 중 어느 한 항의 컴퓨팅 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체. Of claim 11 to claim 13, claim 16 and claim 17 can be a computer program product embodying a program for performing any one of the computing method of wherein the recording medium.
KR20100001101A 2010-01-07 2010-01-07 Computing system and method KR101644800B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100001101A KR101644800B1 (en) 2010-01-07 2010-01-07 Computing system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20100001101A KR101644800B1 (en) 2010-01-07 2010-01-07 Computing system and method
US12907639 US8799913B2 (en) 2010-01-07 2010-10-19 Computing system, method and computer-readable medium for managing a processing of tasks

Publications (2)

Publication Number Publication Date
KR20110080735A true KR20110080735A (en) 2011-07-13
KR101644800B1 true KR101644800B1 (en) 2016-08-02

Family

ID=44225472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100001101A KR101644800B1 (en) 2010-01-07 2010-01-07 Computing system and method

Country Status (2)

Country Link
US (1) US8799913B2 (en)
KR (1) KR101644800B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959526B2 (en) * 2011-06-09 2015-02-17 Microsoft Corporation Scheduling execution of complementary jobs based on resource usage
US9639396B2 (en) * 2014-09-16 2017-05-02 Nxp Usa, Inc. Starvation control in a data processing system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
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
US6427161B1 (en) * 1998-06-12 2002-07-30 International Business Machines Corporation Thread scheduling techniques for multithreaded servers
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
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
US20030037091A1 (en) * 2001-08-09 2003-02-20 Kozo Nishimura Task scheduling device
JP2005516281A (en) * 2002-01-24 2005-06-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィKoninklijke Philips Electronics N.V. The execution of the processing in a multi-processing environment
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
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
US6912610B2 (en) * 2003-03-28 2005-06-28 Emulex Design & Manufacturing Corporation Hardware assisted firmware task scheduling and management
EP1658563B1 (en) * 2003-08-28 2013-06-05 MIPS Technologies, Inc. Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor
US7376954B2 (en) * 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
US7690003B2 (en) * 2003-08-29 2010-03-30 Fuller Jeffrey C 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
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
US7548335B2 (en) * 2005-02-25 2009-06-16 Microsoft Corporation Print job queuing and scheduling systems and methods
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of 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
JP4308241B2 (en) * 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation Job execution method, the job execution system and job execution program
KR101345373B1 (en) * 2007-01-05 2013-12-24 삼성전자주식회사 The transmission method and apparatus, a receiving method and apparatus for real-time systems
US8205205B2 (en) * 2007-03-16 2012-06-19 Sap Ag Multi-objective allocation of computational jobs in client-server or hosting environments
US7948966B2 (en) * 2007-10-01 2011-05-24 Powerwave Cognition, Inc. Multi-metric routing calculations
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
US8650570B2 (en) * 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources
US9106591B2 (en) * 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system

Also Published As

Publication number Publication date Type
US8799913B2 (en) 2014-08-05 grant
US20110167427A1 (en) 2011-07-07 application
KR20110080735A (en) 2011-07-13 application

Similar Documents

Publication Publication Date Title
Zaharia et al. Delay scheduling: a simple technique for achieving locality and fairness in cluster scheduling
Coffman Jr et al. Computer scheduling methods and their countermeasures
Wolf et al. Flex: A slot allocation scheduling optimizer for mapreduce workloads
US20130263117A1 (en) Allocating resources to virtual machines via a weighted cost ratio
Anderson et al. An EDF-based scheduling algorithm for multiprocessor soft real-time systems
Ghodsi et al. Choosy: Max-min fair sharing for datacenter jobs with constraints
US20120096468A1 (en) Compute cluster with balanced resources
Isard et al. Quincy: fair scheduling for distributed computing clusters
US5568635A (en) Physical memory allocation system, program execution scheduling system, and information processor
US20090248922A1 (en) Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program
Grandl et al. Multi-resource packing for cluster schedulers
US20090217273A1 (en) Controlling interference in shared memory systems using parallelism-aware batch scheduling
US7958507B2 (en) Job scheduling system and method
US20030056091A1 (en) Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
Polo et al. Performance-driven task co-scheduling for mapreduce environments
He et al. Matchmaking: A new mapreduce scheduling technique
US20110067030A1 (en) Flow based scheduling
US20130290976A1 (en) Scheduling mapreduce job sets
US20070256077A1 (en) Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US20140068621A1 (en) Dynamic storage-aware job scheduling
US20120042319A1 (en) Scheduling Parallel Data Tasks
Guo et al. ishuffle: Improving hadoop performance with shuffle-on-write
US8424007B1 (en) Prioritizing tasks from virtual machines
US20100115526A1 (en) Method and apparatus for allocating resources in a compute farm
US20060195845A1 (en) System and method for scheduling executables

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant