WO2014142498A1 - 컴퓨팅 스케줄링 방법 및 시스템 - Google Patents

컴퓨팅 스케줄링 방법 및 시스템 Download PDF

Info

Publication number
WO2014142498A1
WO2014142498A1 PCT/KR2014/001978 KR2014001978W WO2014142498A1 WO 2014142498 A1 WO2014142498 A1 WO 2014142498A1 KR 2014001978 W KR2014001978 W KR 2014001978W WO 2014142498 A1 WO2014142498 A1 WO 2014142498A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduler
node
scheduling
schedulers
processing unit
Prior art date
Application number
PCT/KR2014/001978
Other languages
English (en)
French (fr)
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
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US14/775,021 priority Critical patent/US10037225B2/en
Publication of WO2014142498A1 publication Critical patent/WO2014142498A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Definitions

  • the present invention relates to computing scheduling methods and systems, and more particularly, to a method and system for scheduling the use of a computer adaptively to an application serving a computer.
  • a cluster system consists of a number of servers connected together by a network.
  • the micro server has a structure in which a plurality of computing nodes (eg, computing cards) including a central processing unit (CPU) and a memory share a storage device.
  • Microservers are similar to cluster systems in that computing nodes are connected to each other by a system bus. That is, in a cluster system, servers are connected to each other through a network, while in a micro server, computing nodes are connected to each other through a system bus.
  • the system refers to a cluster system or micro server.
  • a node refers to one computing node in one server or micro server in a cluster system.
  • the service provider uses a system to execute various applications such as a web server, a database server, an index server, and a cache server. Because each application has different operating characteristics and requirements, and the user's usage pattern for the application is different, the performance and behavior characteristics required by the system may change over time.
  • FIG. 1 is an illustration of a conventional computing scheduling method.
  • the system can operate multiple web servers. That is, each node of the system is operated as a web server.
  • all nodes operate as a web server during the day when a lot of user requests are made.
  • web servers are migrated to a few nodes to reduce power consumption, while the remaining nodes are powered off.
  • each web server When the web server is running on each node, it is important to increase the throughput of requests per unit time. However, when multiple web servers operate on one node, in addition to increasing throughput, each web server must be able to be fair-share of system resources including the central processing unit (CPU). In this situation, to ensure the performance expected of the system, the scheduler of each node needs to change the characteristics of performance or operation over time or situation.
  • CPU central processing unit
  • the node is not powered off after the web server is migrated, and the node executes another application such as, for example, Hadoop.
  • Tasks handled by web servers are characterized by small data, random access, and interactive, but in Hadoop, large data and sequential access. ), The characteristics of a batch.
  • the scheduler of each node also needs to be adaptively changed according to the situation to satisfy the quality of service (QoS) desired by the service provider.
  • QoS quality of service
  • FIG. 3 is another example of a conventional computing scheduling method.
  • Realtime tasks and non-realtime tasks may be distributed and executed according to the situation, and FIG. 3 illustrates this situation.
  • Examples of real-time tasks are video transcoding and streaming services. Because a realtime task must process a request within a given deadline, the scheduler schedules the task in consideration of its priority, frequency, and deadline. However, these complex calculations are not necessary for non-real-time tasks, but can also degrade performance.
  • the conventional scheduling method mainly monitors the operation of the system to reduce power consumption, adjusts the voltage or frequency of the central processing unit (CPU) with the monitoring results, or all nodes work evenly through load balancing.
  • the technologies that do this are the mainstay.
  • each node runs an application having different operating characteristics according to time or situation, and the system should recognize this and change the scheduler's operating characteristics accordingly.
  • the existing system does not have the ability to dynamically change the scheduler without rebooting, so there is a limitation in optimizing performance when the application changes.
  • the present invention proposes a computing scheduling method and system that can satisfy the surface quality (QoS) expected in the system by grasping the operating characteristics of the application in real time and dynamically changing the scheduler between all nodes of the system.
  • QoS surface quality
  • the scheduling method comprises the steps of: detecting an event requesting replacement of the scheduler; Selecting a scheduler corresponding to the event among schedulers; And replacing the node's scheduler with the selected scheduler without rebooting the node scheduling the use of the control unit.
  • An application service providing system includes a master node that determines a scheduling policy, schedules computing according to the determined policy, and at least one slave node that schedules computing according to the determined policy, wherein the master node includes: Determine a scheduling policy by using the application information received from the slave node and the application information of the master node, transmit the determined scheduling policy to the slave node, select a scheduler corresponding to the determined scheduling policy among the schedulers; Replace, without rebooting, the scheduler of the master node with the selected scheduler.
  • the present invention provides a computing scheduling method and system that can satisfy the quality of service (QoS) expected in the system by grasping the operating characteristics of the application in real time and dynamically changing the scheduler between all nodes of the system.
  • QoS quality of service
  • 1 is an illustration of a conventional computing scheduling method.
  • 3 is another example of a conventional computing scheduling method.
  • FIG. 4 is a diagram illustrating a scheduling system according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a scheduling method according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a scheduler replacement method according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating a structure of a dynamically replaceable CPU scheduler.
  • FIG. 8 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • FIG. 9 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • FIG. 11 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • FIG. 12 is a view for explaining a scenario according to an embodiment of the present invention.
  • a scheduling system includes a plurality of nodes, for example, first to third nodes 410 to 430.
  • Nodes 410 through 430 are one server in a cluster system or one computing node in a micro server.
  • the first node 410 is a master node that determines a scheduling policy and schedules computing, for example, “time and order in which threads use the central processing unit (CPU)” based on the determined policy, and the remaining nodes 420.
  • 430 is a slave node that schedules computing according to a policy determined by the first node 410.
  • Each node includes a physical machine, an operating system and applications.
  • the operating system is on top of the physical machine and the applications are on top of the operating system.
  • the physical machine includes a central processing unit (CPU), a graphics processing unit (GPU), a main memory unit, a secondary memory unit, an input unit and an output unit, and the like.
  • the central processing unit (CPU) is a key control unit of a computer system that performs calculation and comparison of data, interpretation and execution of instructions, and the like.
  • the central processing unit (CPU) includes various registers for temporarily storing data or instructions.
  • the graphics processing unit (GPU) is a graphics control unit that performs calculation and comparison of data related to graphics, interpretation and execution of instructions, and the like on behalf of the central processing unit (CPU).
  • Each of the central processing unit (CPU) and the graphics processing unit (GPU) may be integrated into one package in which two or more independent cores (eg, quad-cores) are formed of a single integrated circuit. That is, the CPUs may be integrated into one multi-core processor.
  • a plurality of graphics processing units (GPUs) may be integrated into one multi-core processor.
  • the central processing unit (CPU) and the graphics processing unit (GPU) may be integrated into one chip (System on Chip).
  • the CPU and the GPU may be packaged in a multi-layer.
  • the main memory includes, for example, RAM.
  • the main memory stores various programs loaded from the auxiliary memory, such as a booting program, an operating system, and applications. That is, the central processing unit (CPU), the graphics processing unit (GPU), and the application processor (AP) access a program loaded into the main memory, decode the instruction of the program, and execute a function according to the decoding result.
  • the input unit may be configured to include a touch panel installed on the screen of the keypad or the display unit.
  • the output unit may include a display unit and a communication unit.
  • the display unit may include a display panel such as a liquid crystal display (LCD), an organic light emitting diode (OLED), an active matrix organic light emitting diode (AMOLED), or a flexible display. It includes.
  • the communication unit communicates with an external device through a network.
  • the operating system of the node includes a scheduling center having a plurality of CPU schedulers and a plurality of I / O schedulers, a CPU scheduler interface, and an I / O scheduler. It is configured to include an interface.
  • a process running program
  • the scheduler (which is also one of the processes) is likened to a 'manager' who manages tasks that a thread has a central processing unit (CPU) or input / output (I / O).
  • the scheduler is the time that the threads use the CPU and I / O (i.e. the time to stay in the ready queue) and the threads use the CPU and I / O. It is a component of the operating system that manages the order (ie, the order in which it is stored in the ready queue).
  • the CPU processes the ready queue and processes the thread.
  • threads stored in the ready queue use the central processing unit (CPU) to perform tasks.
  • the thread is dequeueed from the ready queue.
  • the ready queue a register, a main memory, or a cache memory of a CPU may be used.
  • the ready queue may be provided for each process. For example, a ready queue for a web server and a ready queue for a scheduler are separately provided.
  • the ready queue may also be referred to as a run queue.
  • the scheduler is divided into common parts and specialized parts.
  • the common part consists of algorithms that are common to schedulers. For example, the algorithm "process four threads of the first mathematical operation process Math1 and two threads of the second mathematical operation process Math2) may be common.
  • the specialized part consists of different algorithms between schedulers. For example, specializations may be divided into "fixed priority schedule” to "processes with the same priority (fixed priority schedule)" or "allocation of CPU usage times based on weight.” An algorithm called “fair-share schedule” may be specialized.
  • the scheduling center has a number of CPU processing schedulers and a number of I / O schedulers.
  • the scheduling center dynamically replaces the scheduler (especially a specialized portion) in response to commands from higher layers of applications or scheduler parameters. (E.g., priority, weight, etc.).
  • the operating system has a scheduler interface that can replace schedulers (ie specialized parts) without affecting other internal components. That is, the CPU scheduler interface is connected to a scheduler (eg, 413) selected by the scheduling center.
  • An input / output (I / O) scheduler is also coupled to the scheduler (eg, 414) selected by the scheduling center.
  • an adaptive scheduling master 412 on the operating system 411 of the master node 410.
  • the master 412 determines the scheduling policy and sends the policy to the scheduling center of the master node 410.
  • the master 412 also sends a policy to the slave nodes 420 and 430.
  • Adaptive Scheduling Slaves 422 and 432 of slave nodes 420 and 430 receive the policy and send the policy to their scheduling center.
  • Adaptive scheduling slaves also periodically send information to the master node indicating what application is running. 4 illustrates an application being executed as a web server, but is not limited thereto. In other words, other applications besides the web server may exist on top of the operating system. Various applications may also exist on top of the operating system.
  • FIG. 5 is a flowchart illustrating a scheduling method according to an embodiment of the present invention.
  • the slave nodes 420 and 430 transmit application information to the master node 410.
  • the application information includes information related to the name of the application (e.g., web, database, cache, Hadoop, etc.), operation characteristics (e.g., RealTime (RT), Non RealTime (NRT)), and interactive. Information related to whether or not, information related to whether the batch, priority, weight, deadline, period, and the like.
  • the adaptive scheduling master 412 of the master node 410 uses application information to determine the scheduling policy (e.g., the optimal CPU and I / O scheduler for each node). What, and what parameters to use for the scheduler).
  • the master node 410 transmits a policy to the slave nodes 420 and 430.
  • the master 412 and the slaves 422 and 432 each give a policy to the scheduling center.
  • the scheduling center dynamically swaps or adjusts the parameters of the CPU and I / O schedulers according to this policy. Replacement of the scheduler will be described in detail with reference to FIGS. 6 and 7.
  • FIG. 6 is a flowchart illustrating a scheduler replacement method according to an embodiment of the present invention.
  • 7 is a diagram illustrating a structure of a dynamically replaceable CPU scheduler.
  • the node detects an event requesting replacement of a scheduler.
  • the “adaptive scheduling slave” of the slave node receives an event from the master node that includes the policy.
  • the "adaptive scheduling slave” forwards the policy to the scheduling center.
  • the scheduling center of the slave node detects receipt of the policy.
  • the "adaptive scheduling master” of the master node determines the policy and forwards the policy to the scheduling center.
  • the scheduling center of the master node detects receipt of the policy.
  • the scheduling center of a node (master or slave) detects an event requesting replacement of a scheduler from an input unit. That is, the administrator of the system can change the policy.
  • the scheduling center selects a scheduler (particularly, a specialized portion) corresponding to the event among the schedulers.
  • a thread has a scheduling context.
  • the scheduler for that node depends on how the scheduling context is managed in the ready queue.
  • the scheduling context and the ready queue are divided into a common part and a specialized part dependent thereon. That is, the specialized part is modularized and separated from the common part.
  • the common part, the scheduler shell is enqueueed / dequeueed in the ready queue.
  • a specialized part, a scheduler core is created, replaced, and deleted according to an instruction of a scheduling context. This structure allows the scheduler to be changed dynamically without rebooting.
  • the scheduling context includes a fixed priority scheduler (FP SC), a weighted fair queue scheduler (WFQ SC), and a fair-share queue scheduler (FSQ SC).
  • FP SC fixed priority scheduler
  • WFQ SC weighted fair queue scheduler
  • FSQ SC fair-share queue scheduler
  • the FP SC, WFQ SC, and FSQ SC are specialized parts of the scheduler. One of these is selected according to the policy.
  • the scheduling center replaces the central processing unit (CPU) scheduler of the node with the selected scheduler.
  • the ready queue is provided for each scheduler.
  • a FP RQ Ready Queue
  • WFQ RQ corresponding to the WFQ SC
  • FSQ RQ corresponding to the FSQ SC are provided.
  • the thread is stored in FP readyQ and threads of other schedulers (eg, WFQ_SC) are deleted from the ready queue.
  • the central processing unit (CPU) accesses FP readyQ to process thread
  • the I / O scheduler is also configured to be dynamically replaceable in a manner similar to the CPU scheduler. That is, the scheduling context of the I / O scheduler and the ready queue are also divided into common parts and specialized parts thereof. Any one of the specialized portions is selected and the scheduling center replaces the node's I / O scheduler with the selected scheduler.
  • FIG. 8 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • the scheduler interface directly has a plurality of schedulers.
  • the scheduler interface selects one of the plurality of schedulers in response to a command from the scheduling center and replaces the scheduler of the node with the selected scheduler.
  • Other configurations and operations are the same as those of the system of FIG.
  • FIG. 9 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • the scheduler interface selects one of a plurality of schedulers according to a command of "adaptive scheduling master” or “adaptive scheduling slave", and replaces the scheduler of the node with the selected scheduler.
  • Other configurations and operations are the same as those of the system of FIG.
  • FIG. 10 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • schedulers exist in a user area, that is, an application area, and are inserted into an operating system as needed.
  • the scheduling center performs a security check on the inserted scheduler.
  • Such a scheduler may be in the form of a binary or source code. In the case of source code, compilation is performed before insertion.
  • FIG. 11 is a diagram illustrating a scheduling system according to another embodiment of the present invention.
  • a node of a scheduling system may include one computer (eg, a smartphone and a tablet PC) in which a plurality of virtual machines are operated in one physical machine.
  • a computer e.g, a smartphone and a tablet PC
  • a portable terminal such as a notebook PC (PC)
  • the physical machine is a configuration including a central processing unit (CPU) and a memory
  • each of the virtual machines is a configuration including an operating system and applications.
  • Virtual machines divide and use physical machines using well-known techniques (eg, time division methods).
  • the scheduling system comprises a plurality of nodes.
  • One of the nodes is the master node that determines the policy of scheduling and the other are slave nodes.
  • node 1 is a master node and node 2 is a slave node.
  • Node 2 transmits application information to node 1, which is a master node.
  • the application information may include the name of the application, the operating characteristics of the application (for example, real-time (RT), non-real-time (NRT), interactive, batch), priority, weight, deadline, period ( period) and the like.
  • the adaptive scheduling master 1110 of node 2 analyzes the application information and uses the analysis result to determine the scheduling policy (e.g., the optimal CPU and I / O scheduler for each node).
  • Node 1 sends a policy to node 2.
  • the master 1110 and the slave 1120 respectively give policies to the scheduling centers 1130 and 1140.
  • Scheduling centers 1130 and 1140 dynamically change CPU schedulers and input / output schedulers or adjust parameters according to this policy. The scheduler replacement was described in detail with reference to FIGS. 6 and 7.
  • FIG. 12 is a view for explaining a scenario according to an embodiment of the present invention.
  • Math1 has four threads, each of which performs arithmetic operations repeatedly
  • Math2 has two threads, each of which performs math operations repeatedly.
  • Algorithms used in such a system are fixed-priority scheduling algorithms and fair-share scheduling algorithms.
  • Math1 and Math2 report to Main the sum of the times their threads have used the central processing unit (CPU) for five seconds.
  • Main instructs the CPU scheduler to toggle the fixed-priority scheduling algorithm and the fair-share scheduling algorithm.
  • the CPU scheduler changes the algorithm during operation without rebooting.
  • the fixed-priority scheduling algorithm 1210 When the (Priority, Weight) value of Math1 is set to (20, 256) and the value of Math2 is set to (20, 512), the fixed-priority scheduling algorithm 1210 is the same. Distribute time evenly to threads with priority. As a result, more threads use the central processing unit (CPU). Therefore, the ratio of the CPUs used in Math1 and Math2 is 4: 2.
  • the fair-share scheduling algorithm 1220 allocates the CPU time to the threads according to the ratio of the weights of the processes.
  • the method according to the present invention may be implemented in program instructions that can be executed by various computers, and recorded in a computer-readable recording medium.
  • the recording medium may include program instructions, data files, data structures, and the like.
  • the program instructions may also be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts.
  • the recording medium also includes magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic-optical such as floppy disks.
  • Hardware devices such as a magneto-optical media, a ROM, a RAM, and a flash memory may be included.
  • the program instructions may include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter.
  • the hardware device may be configured to operate as one or more software modules to carry out the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 어플리케이션의 동작 특성을 실시간으로 파악하여 동적으로 시스템의 모든 노드가 상호 유기적으로 스케줄러를 교체함으로써, 시스템에서 기대되는 QoS를 만족시킬 수 있는 컴퓨팅 스케줄링 방법 및 시스템을 제안한다. 본 발명에 따른 스케줄링 방법은 스케줄러의 교체를 요청하는 이벤트를 검출하는 단계; 스케줄러들 중 상기 이벤트에 대응되는 스케줄러를 선택하는 단계; 및 제어 유닛의 사용을 스케줄링하는 노드의 재부팅 없이, 상기 노드의 스케줄러를 상기 선택된 스케줄러로 교체하는 단계를 포함하는 것을 특징으로 한다.

Description

컴퓨팅 스케줄링 방법 및 시스템
본 발명은 컴퓨팅 스케줄링 방법 및 시스템에 관한 것으로 특히 컴퓨터에서 서비스하는 어플리케이션에 적응적으로 컴퓨터의 사용을 스케줄링하는 방법 및 시스템에 관한 것이다.
클러스터 시스템은 네트워크로 서로 연결된 다수의 서버로 구성된다. 마이크로 서버는 중앙처리유닛(Central Processing Unit; CPU)와 메모리로 구성된 컴퓨팅 노드(예, 컴퓨팅 카드) 여러 개가 저장장치를 공유하는 구조를 가진다. 컴퓨팅 노드들이 서로 시스템 버스로 연결되어 있다는 점에서 마이크로 서버는 클러스터 시스템과 유사하다. 즉 클러스터 시스템에서 서버들은 서로 네트워크를 통해 연결되고 한편, 마이크로 서버에서 컴퓨팅 노드들은 서로 시스템 버스를 통해 연결된다. 이하 용어의 혼동을 피하기 위해 시스템은 클러스터 시스템 또는 마이크로 서버를 지칭한다. 노드는 클러스터 시스템에서 하나의 서버 또는 마이크로 서버에서 하나의 컴퓨팅 노드를 지칭한다.
서비스 제공자는 시스템을 이용하여 웹 서버, 데이터베이스(DataBase; DB) 서버, 인덱스 서버, 캐시 서버 등과 같은 다양한 어플리케이션을 실행한다. 각 어플리케이션은 서로 다른 동작 특성과 요구 사항을 가지고 있고 어플리케이션에 대한 사용자의 사용 패턴도 서로 다르기 때문에, 시스템에 요구되는 성능 및 동작의 특성이 시간에 따라 바뀔 수 있다.
도 1은 종래 컴퓨팅 스케줄링 방법에 대한 예시이다. 도 1에 도시된 바와 같이, 시스템은 다수의 웹 서버를 운용할 수 있다. 즉 시스템의 각각의 노드는 웹 서버로 운용된다. 도 1과 같은 시스템에서 사용자의 요청이 많은 낮에는 모든 노드들이 웹 서버로 운용된다. 일반적으로 요청이 적은 밤에는 소비 전력을 줄이기 위해 웹 서버들은 소수의 노드로 이동(migration)되고, 나머지 노드들의 전원은 오프된다.
각 노드에서 웹 서버가 동작할 때에는 단위 시간당 요청(request)의 처리량(throughput)을 높이는 것이 중요하다. 하지만 한 노드에서 다수의 웹 서버가 동작할 때에는 처리량을 높이는 것 뿐 아니라, 각각의 웹서버들에게 중앙처리유닛(CPU)를 비롯한 시스템 자원이 공평하게 제공(fair-share)될 수 있어야 한다. 이런 상황에서 시스템에 기대되는 성능을 보장하기 위해서는, 각 노드의 스케줄러가 시간이나 상황에 따라 성능 혹은 동작의 특성을 바꿀 필요가 있다.
도 2는 종래 컴퓨팅 스케줄링 방법에 대한 다른 예시이다. 도 2에 도시된 바와 같이, 웹 서버가 이동(migration)된 뒤 노드의 전원이 오프되는 것이 아니고, 해당 노드는 예컨대, 하둡(Hadoop) 같은 다른 어플리케이션을 실행한다. 웹 서버가 처리하는 작업(task)은 소규모 데이터(small data), 랜덤 접근(random access), 상호 작용(interactive)의 특성을 보이지만, 하둡의 경우는 대규모 데이터(large data), 순차 접근(sequential access), 배치(batch; 일괄 처리)의 특성을 보인다. 이러한 예시에서 각 노드의 스케줄러도 상황에 따라 적응적으로 작업에 맞게 변화해야, 서비스 제공자가 원하는 서비스 품질(Quality of Service; QoS)를 만족시킬 수 있다.
도 3은 종래 컴퓨팅 스케줄링 방법에 대한 또 다른 예시이다. 실시간 작업(Realtime task)과 비실시간 작업(non-realtime task)이 상황에 따라 여러 노드에 분배되어 실행될 수 있으며, 도 3은 이런 상황을 보여 준다. 실시간 테스크의 예로는 비디오 트랜스코딩 및 스트리밍 서비스가 있다. 실시간 작업(realtime task)은 주어진 기한(deadline) 내에 요청을 처리해야 하기 때문에 스케줄러는 작업에 대한 우선순위(priority), 주기, 기한(deadline) 등을 고려해서 작업을 스케줄링한다. 하지만 비실시간 테스크에는 이런 복잡한 계산이 불필요할 뿐 아니라 오히려 성능을 저하시킬 수 있다.
이상으로 종래 스케줄링 방법은 주로 소비 전력을 줄이기 위해 시스템의 동작을 모니터링하고, 모니터링 결과를 가지고 중앙처리유닛(CPU)의 전압이나 주파수를 조절하거나, 로드 밸런싱(load balancing)을 통해 모든 노드가 고르게 작업을 수행하는 기술들이 주를 이루고 있다.
앞서 설명한 것처럼, 각 노드는 시간에 따라 또는 상황에 따라 서로 다른 동작 특성을 가지는 어플리케이션이 실행되며, 시스템은 이를 인식하고 그에 따라 스스로 스케줄러의 동작 특성을 바꿀 수 있어야 한다. 하지만 기존 시스템은 재부팅 없이 동적으로 스케줄러를 교체하는 기능이 없어서, 어플리케이션이 변경되는 상황에서 성능의 최적화에 한계가 있다.
본 발명은 어플리케이션의 동작 특성을 실시간으로 파악하여 동적으로 시스템의 모든 노드가 상호 유기적으로 스케줄러를 교체함으로써, 시스템에서 기대되는 서피스 품질(QoS)를 만족시킬 수 있는 컴퓨팅 스케줄링 방법 및 시스템을 제안한다.
본 발명에 따른 스케줄링 방법은 스케줄러의 교체를 요청하는 이벤트를 검출하는 단계; 스케줄러들 중 상기 이벤트에 대응되는 스케줄러를 선택하는 단계; 및 제어 유닛의 사용을 스케줄링하는 노드의 재부팅 없이, 상기 노드의 스케줄러를 상기 선택된 스케줄러로 교체하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 어플리케이션 서비스 제공 시스템은 스케줄링 정책을 결정하고, 결정된 정책에 따라 컴퓨팅을 스케줄링하는 마스터 노드와, 상기 결정된 정책에 따라 컴퓨팅을 스케줄링하는 적어도 하나의 슬레이브 노드를 포함하고, 상기 마스터 노드는, 상기 슬레이브 노드로부터 수신된 어플리케이션 정보와 상기 마스터 노드의 어플리케이션 정보를 이용하여 스케줄링 정책을 결정하고, 상기 결정된 스케줄링 정책을 상기 슬레이브 노드로 전송하고, 스케줄러들 중 상기 결정된 스케줄링 정책에 대응되는 스케줄러를 선택하고, 재부팅 없이, 상기 마스터 노드의 스케줄러를 상기 선택된 스케줄러로 교체한다.
본 발명은 어플리케이션의 동작 특성을 실시간으로 파악하여 동적으로 시스템의 모든 노드가 상호 유기적으로 스케줄러를 교체함으로써, 시스템에서 기대되는 서비스품질(QoS)을 만족시킬 수 있는 컴퓨팅 스케줄링 방법 및 시스템을 제공한다.
도 1은 종래 컴퓨팅 스케줄링 방법에 대한 예시이다.
도 2는 종래 컴퓨팅 스케줄링 방법에 대한 다른 예시이다.
도 3은 종래 컴퓨팅 스케줄링 방법에 대한 또 다른 예시이다.
도 4는 본 발명의 일 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 스케줄러 교체 방법을 설명하기 위한 흐름도이다.
도 7은 동적으로 교체 가능한 중앙처리유닛(CPU) 스케줄러의 구조를 보인 도면이다.
도 8은 본 발명의 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 11은 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 시나리오를 설명하기 위한 도면이다.
본 발명의 상세한 설명에 앞서, 이하에서 사용되는 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다. 따라서 아래 설명과 첨부된 도면은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한, 첨부 도면에서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 따라서 본 발명은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되어지지 않는다.
도 4는 본 발명의 일 실시예에 따른 스케줄링 시스템을 도시한 도면이다. 도 4를 참조하면, 본 발명의 일 실시예에 따른 스케줄링 시스템은 다수의 노드 예컨대, 제 1 내지 제 3 노드(410 내지 430)을 포함한다. 노드들(410 내지 430)은 클러스터 시스템에서 하나의 서버이거나 마이크로 서버에서 하나의 컴퓨팅 노드이다. 여기서 제 1 노드(410)는 스케줄링 정책을 결정하고, 결정된 정책을 기반으로 컴퓨팅 예컨대, "스레드들이 중앙처리유닛(CPU)를 사용하는 시간 및 순서"를 스케줄링하는 마스터 노드이고, 나머지 노드들(420, 430)은 제 1 노드(410)가 결정한 정책에 따라 컴퓨팅을 스케줄링하는 슬레이브 노드이다.
각각의 노드들은 물리 머신, 운영체제 및 어플리케이션들을 포함한다. 계층적 구조로 보면, 물리 머신의 위에 운영체제가 존재하고, 운영체제의 위에 어플리케이션들이 존재한다. 물리 머신은 중앙처리유닛(CPU), 그래픽처리유닛(Graphic Processing Unit; GPU), 메인메모리(main memory unit), 보조메모리(secondary memory unit), 입력부 및 출력부 등을 포함하여 구성된다. 주지된 바와 같이 중앙처리유닛(CPU)는 자료의 연산 및 비교와, 명령어의 해석 및 실행 등을 수행하는 컴퓨터 시스템의 핵심적인 제어 유닛이다. 중앙처리유닛(CPU)는 데이터나 명령을 일시 저장하는 각종 레지스터들을 포함한다. 그래픽처리유닛(GPU)는 중앙처리유닛(CPU)를 대신하여, 그래픽과 관련한 자료의 연산 및 비교와, 명령어의 해석 및 실행 등을 수행하는 그래픽 제어 유닛이다. 중앙처리유닛(CPU)과 그래픽처리유닛(GPU)는 각각, 두 개 이상의 독립 코어(예, 쿼드 코어(quad-core))가 단일 집적 회로로 이루어진 하나의 패키지(package)로 통합될 수 있다. 즉 중앙처리유닛(CPU)들은 하나의 멀티 코어 프로세서로 통합된 것일 수 있다. 또한 다수의 그래픽처리유닛(GPU)들도 하나의 멀티 코어 프로세서로 통합된 것일 수 있다. 또한 중앙처리유닛(CPU)와 그래픽처리유닛(GPU)는 하나의 칩으로 통합(SoC; System on Chip)된 것일 수 있다. 또한 중앙처리유닛(CPU)와 그래픽처리유닛(GPU)는 멀티 레이어(multi layer)로 패키징(packaging)된 것일 수 있다. 한편 중앙처리유닛(CPU) 및 그래픽처리유닛(GPU)를 포함하는 구성은 어플리케이션 프로세서(Application Processor; AP)라고 지칭될 수 있다. 메인메모리는 예컨대, 램(RAM)을 포함한다. 메인메모리는 보조메모리로부터 로딩된 각종 프로그램 예컨대, 부팅 프로그램, 운영체제 및 어플리케이션들을 저장한다. 즉 중앙처리유닛(CPU), 그래픽처리유닛(GPU) 및 어플리케이션 프로세서(AP)는 메인메모리로 로딩된 프로그램에 액세스하여 프로그램의 명령을 해독하고, 해독 결과에 따른 기능을 실행한다. 입력부는 키패드나 표시부의 화면에 설치되는 터치패널을 포함하여 구성될 수 있다. 출력부는 표시부와 통신부를 포함하여 구성될 수 있다. 예컨대, 표시부는 액정 표시 장치(Liquid Crystal Display : LCD), 오엘리디(Organic Light Emitted Diode; OLED), 아몰레드(Active Matrix Organic Light Emitted Diode; AMOLED) 또는 플랙서블 디스플레이(Flexible display) 등과 같은 표시패널을 포함한다. 통신부는 네트워크를 통해 외부장치와 통신을 수행한다.
노드의 운영체제는 다수의 중앙처리유닛(CPU) 스케줄러와 다수의 입출력(I/O) 스케줄러를 가지는 스케줄링 센터와, 중앙처리유닛(CPU) 스케줄러 인터페이스와, 입출력(Input/Output; I/O) 스케줄러 인터페이스를 포함하여 구성된다. 프로세스(실행 중인 프로그램)는 여러 개의 스레드로 구성된다. 이러한 스레드(tread)들의 각각은 '노동자'에 비유되고 중앙처리유닛(CPU)나 입출력(I/O)는 '망치'에 비유될 수 있다. 그리고 태스크(task)는 노동자가 망치를 가지고 한 행위에 비유된다. 그렇다면, 스케줄러(이 또한 프로세스 중에 하나임)는 스레드가 중앙처리유닛(CPU)나 입출력(I/O)를 가지고 하는 태스크를 관리하는 '관리자'에 비유된다. 즉 스케줄러는 스레드들이 중앙처리유닛(CPU) 및 입출력(I/O)를 사용하는 시간(즉, 레디 큐에 머무는 시간) 및 스레드들이 중앙처리유닛(CPU) 및 입출력(I/O)를 사용하는 순서(즉, 레디 큐에 저장되는 순서) 등을 관리하는 운영체제의 구성 요소이다.
스레드가 레디 큐(ready queue)에 저장(enqueue)되면, 중앙처리유닛(CPU)는 레디 큐에 액세스하여 스레드를 처리한다. 다시 말해 레디 큐에 저장된 스레드는 중앙처리유닛(CPU)를 사용하여 태스크를 수행한다. 스레드의 처리가 완료되면 해당 스레드는 레디 큐에서 삭제(dequeue)된다. 이러한 레디 큐로는 중앙처리유닛(CPU)의 레지스터, 메인 메모리 또는 캐시 메모리 등이 이용될 수 있다. 또한 레디 큐는 프로세스별로 구비될 수 있다. 예컨대, 웹 서버를 위한 레디 큐와 스케줄러를 위한 레디 큐가 별도로 구비된다. 또한, 레디 큐는 일명, 런 큐(run queue)라고 지칭되기도 한다.
스케줄러는 공통부분과 특화부분으로 분류된다. 공통부분은 스케줄러들끼리 공통되는 알고리즘으로 구성된다. 예컨대, "제 1 수학 연산 프로세스(Math1)의 4개의 스레드와 제 2 수학 연산 프로세스(Math2)의 2개의 스레드를 처리하라"라는 알고리즘이 공통부분일 수 있다. 특화부분은 스케줄러들끼리 각각 다른 알고리즘으로 구성된다. 예컨대, 특화부분은 "동일한 우선순위(priority)를 가진 프로세스에게 중앙처리유닛(CPU) 사용시간을 균등하게 분배하라(fixed priority schedule)" 또는 "가중치에 따라 중앙처리유닛(CPU) 사용시간을 할당하라(fair-share schedule)"라는 알고리즘이 특화부분일 수 있다.
스케줄링 센터는 다수의 중앙처리유닛(CPU) 스케줄러와 다수의 입출력(I/O) 스케줄러를 가지고 있고, 상위 계층의 어플리케이션의 명령에 응답하여 스케줄러(특히, 특화 부분)를 동적으로 교체하거나 스케줄러의 파라미터(예컨대, 우선순위, 가중치 등)를 조절한다. 운영체제는 내부의 다른 구성요소들에게 영향을 미치지 않고 스케줄러들(즉, 특화부분들)을 교체할 수 있는 스케줄러 인터페이스를 가지고 있다. 즉 중앙처리유닛(CPU) 스케줄러 인터페이스는 스케줄링 센터에 의해 선택된 스케줄러(예, 413)와 연결된다. 입출력(I/O) 스케줄러 역시 스케줄링 센터에 의해 선택된 스케줄러(예, 414)와 연결된다.
운영체제의 위에는 다수의 어플리케이션이 존재한다. 특히, 마스터 노드(410)의 운영체제(411)의 위에는 적응적인 스케줄링 마스터(Adaptive Scheduling Master; 412)가 존재한다. 마스터(412)는 스케줄링 정책을 결정하고, 정책을 마스터 노드(410)의 스케줄링 센터에 전송한다. 또한 마스터(412)는 정책을 슬레이브 노드들(420, 430)에게 전송한다. 슬레이브 노드들(420, 430)의 적응적인 스케줄링 슬레이브들(Adaptive Scheduling Slaves; 422, 432)은 정책을 수신하고, 정책을 자신들의 스케줄링 센터에 전송한다. 또한 적응적인 스케줄링 슬레이브들은 실행 중인 어플리케이션이 무엇인지를 나타내는 정보를 주기적으로 마스터 노드로 전송한다. 도 4는 실행 중인 어플리케이션을 웹서버로 예시하고 있으나 이에 한정되지는 않는다. 즉 웹 서버 외에 다른 어플리케이션이 운영체제의 위에 존재할 수 있다. 또한 다양한 어플리케이션들이 운영체제의 위에 존재할 수 있다.
도 5는 본 발명의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 흐름도이다.
도 4 및 도 5를 참조하면, 단계 510에서 슬레이브 노드들(420, 430)은 어플리케이션 정보를 마스터 노드(410)에게 전송한다. 여기서 어플리케이션 정보는 어플리케이션의 이름(예, 웹, 데이터베이스, 캐시, 하둡 등), 동작 특성(예, 실시간(RealTime; RT), 비실시간(Non RealTime; NRT))과 관련된 정보, 상호작용(interative) 여부와 관련된 정보, 배치(batch) 여부와 관련된 정보, 우선순위, 가중치, 기한(deadline), 주기(period) 등을 포함한다. 단계 520에서 마스터 노드(410)의 적응적인 스케줄링 마스터(412)는 어플리케이션 정보를 이용하여 스케줄링 정책(예컨대, 각각의 노드들에 맞는 최적의 중앙처리유닛(CPU) 및 입출력(I/O) 스케줄러가 무엇인지, 스케줄러에 어떤 파라미터를 사용할 것인지)을 결정한다. 단계 530에서 마스터 노드(410)는 정책(policy)을 슬레이브 노드들(420, 430)에게 전송한다. 단계 540에서 마스터(412)와 슬레이브(422, 432)들은 각각, 스케줄링 센터에게 정책을 준다. 스케줄링 센터는 이 정책에 따라 동적으로 중앙처리유닛(CPU) 스케줄러와 입출력(I/O) 스케줄러를 교체하거나 파라미터를 조절한다. 스케줄러의 교체는 도 6 및 도 7을 참조하여 구체적으로 설명한다.
도 6은 본 발명의 일 실시예에 따른 스케줄러 교체 방법을 설명하기 위한 흐름도이다. 도 7은 동적으로 교체 가능한 중앙처리유닛(CPU) 스케줄러의 구조를 보인 도면이다.
도 6 및 도 7을 참조하면, 단계 610에서 노드는 스케줄러의 교체를 요청하는 이벤트를 검출한다. 일례로, 슬레이브 노드의 "적응적인 스케줄링 슬레이브"는 정책을 포함하는 이벤트를 마스터 노드로부터 수신한다. "적응적인 스케줄링 슬레이브"는 정책을 스케줄링 센터로 전달한다. 그러면 슬레이브 노드의 스케줄링 센터는 정책의 수신을 검출한다. 다른 예로, 마스터 노드의 "적응적인 스케줄링 마스터"는 정책을 결정하고, 정책을 스케줄링 센터로 전달한다. 그러면 마스터 노드의 스케줄링 센터는 정책의 수신을 검출한다. 또 다른 예로, 노드(마스터 또는 슬레이브)의 스케줄링 센터는 입력부로부터 스케줄러의 교체를 요청하는 이벤트를 검출한다. 즉 시스템의 관리자가 정책을 변경할 수 있다.
단계 620에서 스케줄링 센터는 스케줄러들 중 상기 이벤트에 대응되는 스케줄러(특히, 특화 부분)를 선택한다. 도 7을 참조하면, 스레드는 스케줄링 콘텍스트(scheduling context)를 가진다. 스케줄링 콘텍스트가 레디 큐에서 어떻게 관리되는가에 따라 해당 노드의 스케줄러가 달라진다. 본 발명에 따르면 스케줄링 콘텍스트와 레디 큐는 공통부분과 이에 종속적인 특화 부분으로 분리된다. 즉 특화 부분은 모듈화되어 공통부분으로부터 분리된다. 외부적으로는 공통부분 일명, 스케줄러 쉘(scheduler shell)은 레디 큐에 저장(enqueue)/삭제(dequeue)된다. 내부적으로는 스케줄링 콘텍스트의 명령에 따라 특화 부분 일명, 스케줄러 코어(scheduler core)가 생성, 교체 및 삭제된다. 이러한 구조로 인해 재부팅 없이 동적으로 스케줄러가 교체될 수 있다.
예컨대, 스케줄링 콘텍스트는 FP SC(fixed priority scheduler), WFQ SC(weighted fair queue scheduler) 및 FSQ SC(fair-share queue scheduler)를 포함한다. FP SC, WFQ SC 및 FSQ SC는 스케줄러의 특화 부분이다. 정책에 따라 이들 중 하나가 선택된다. 그러면, 단계 630에서 스케줄링 센터는 노드의 중앙처리유닛(CPU) 스케줄러를 상기 선택된 스케줄러로 교체한다. 도 7을 참조하면, 레디 큐는 스케줄러별로 구비된다. 예컨대, FP SC에 해당되는 FP RQ(Ready Queue)와, WFQ SC에 해당되는 WFQ RQ와, FSQ SC에 해당되는 FSQ RQ가 각각 구비된다. FP SC가 선택되면, 해당 스레드가 FP readyQ에 저장되고 다른 스케줄러(예컨대, WFQ SC)의 스레드는 해당 레디 큐에서 삭제된다. 중앙처리유닛(CPU)는 FP readyQ에 액세스하여 스레드를 처리한다.
입출력(I/O) 스케줄러 역시 중앙처리유닛(CPU) 스케줄러와 유사한 방법으로 동적 교체 가능하도록 구성된다. 즉 입출력(I/O) 스케줄러의 스케줄링 콘텍스트와 레디 큐 역시 공통부분과 이에 종속적인 특화 부분으로 분리된다. 특화 부분들 중 어느 하나가 선택되고 스케줄링 센터는 노드의 입출력(I/O) 스케줄러를 선택된 스케줄러로 교체한다.
도 8은 본 발명의 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다. 도 8을 참조하면, 도 4와 달리 스케줄러 인터페이스가 직접 다수의 스케줄러를 가진다. 스케줄러 인터페이스는 스케줄링 센터의 명령에 응답하여 다수의 스케줄러 중 하나를 선택하고, 해당 노드의 스케줄러를 선택된 스케줄러로 교체한다. 그 외에 구성이나 동작은 도 4의 시스템과 동일하다.
도 9는 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다. 도 9를 참조하면, 도 4와 달리 운영체제에 스케줄링 센터가 없다. 즉 스케줄러 인터페이스는 "적응적인 스케줄링 마스터" 또는 "적응적인 스케줄링 슬레이브"의 명령에 따라 다수의 스케줄러 중 하나를 선택하고, 해당 노드의 스케줄러를 선택된 스케줄러로 교체한다. 그 외에 구성이나 동작은 도 4의 시스템과 동일하다.
도 10은 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다. 도 10을 참조하면, 도 10에 제시된 시스템에서는 스케줄러들이 유저 영역 즉, 어플리케이션 영역에 존재하고 필요에 따라 운영체제로 삽입(insert)된다. 스케줄링 센터는 삽입된 스케줄러에 대해 보안security) 검사를 수행한다. 이러한 스케줄러는 바이너리(binary) 형태일 수도 있고, 소스 코드(source code) 형태일 수도 있다. 소스 코드인 경우 삽입되기 전에 컴파일(compile)이 수행된다.
도 11은 본 발명의 또 다른 실시예에 따른 스케줄링 시스템을 도시한 도면이다.
도 11을 참조하면, 본 발명의 또 다른 실시예에 따른 스케줄링 시스템의 노드는, 하나의 물리머신(physical machine)에서 다수의 가상머신들이 운용되는 하나의 컴퓨터(예컨대, 스마트폰, 태블릿 피씨(Personal Computer; PC) 및 노트북 피씨(PC)와 같은 휴대 단말)에서, 하나의 가상 머신이다. 여기서 물리머신은 중앙처리유닛(CPU)와 메모리를 포함하는 구성이고, 가상 머신들 각각은 운영체제와 어플리케이션들을 포함하는 구성이다. 가상 머신들은 주지된 기술(예컨대, 시분할 방법)을 이용하여 물리머신을 나눠서 사용한다.
본 발명의 또 다른 실시예에 따른 스케줄링 시스템은 다수의 노드를 포함하여 구성된다. 노드들 중 하나는 스케줄링의 정책을 결정하는 마스터 노드이고 나머지는 슬레이브 노드들이다. 도 11을 참조하면, 노드 1이 마스터 노드이고 노드 2가 슬레이브 노드이다. 노드 2는 어플리케이션 정보를 마스터 노드인 노드 1에게 전송한다. 여기서 어플리케이션 정보는 어플리케이션의 이름, 어플리케이션의 동작 특성(예, 실시간(RT), 비실시간(NRT), 상호작용(interative), 배치(batch)), 우선순위, 가중치, 기한(deadline), 주기(period) 등을 포함한다. 노드 2의 적응적인 스케줄링 마스터(1110)는 어플리케이션 정보를 분석하고, 분석 결과를 이용하여 스케줄링 정책(예컨대, 각각의 노드들에 맞는 최적의 중앙처리유닛(CPU) 및 입출력(I/O) 스케줄러가 무엇인지, 스케줄러에 어떤 파라미터를 사용할 것인지)을 결정한다. 노드 1은 정책(policy)을 노드 2에게 전송한다. 마스터(1110)와 슬레이브(1120)는 각각, 스케줄링 센터(1130, 1140)들에게 정책을 준다. 스케줄링 센터(1130, 1140)들은 이 정책에 따라 동적으로 중앙처리유닛(CPU) 스케줄러와 입출력(I/O) 스케줄러를 교체하거나 파라미터를 조절한다. 스케줄러 교체는 도 6 및 도 7을 참조하여 구체적으로 설명하였다.
도 12는 본 발명의 일 실시예에 따른 시나리오를 설명하기 위한 도면이다.
도 12를 참조하면, 시스템은 Main, Math1, Math2 세 개의 프로세스가 동작한다. Math1에는 각각 수학 연산을 반복적으로 수행하는 4개의 스레드가 있고, Math2에는 각각 수학 연산을 반복적으로 수행하는 2개의 스레드가 존재한다. 이와 같은 시스템에 사용된 알고리즘(algorithm)은 fixed-priority scheduling algorithm과 fair-share scheduling algorithm이다. Math1, Math2는 5초 동안 자신의 스레드들이 중앙처리유닛(CPU)를 사용한 시간의 합계를 Main에게 보고(report)한다. Main은 fixed-priority scheduling algorithm와 fair-share scheduling algorithm을 토글(toggle) 시키도록 중앙처리유닛(CPU) 스케줄러에게 명령한다. 중앙처리유닛(CPU) 스케줄러는 재부팅 없이, 동작 중에 알고리즘을 변경한다.
Math1의 (Priority, Weight) 값이 (20, 256)으로 설정되고 Math2의 값은 (20, 512)으로 설정되어 있을 때, 고정된 우선순위 스케줄링 알고리즘(fixed-priority scheduling algorithm)(1210)은 같은 우선순위를 가지는 스레드에게 균등하게 시간을 분배한다. 때문에 스레드가 많은 프로세스일수록 더 많이 중앙처리유닛(CPU)를 사용한다. 따라서 Math1과 Math2의 중앙처리유닛(CPU) 사용 비율은 4:2가 된다. 반면 페어-셰어 스케줄링 알고리즘(fair-share scheduling algorithm)(1220)은 프로세스의 가중치의 비율에 따라 스레드에게 중앙처리유닛(CPU) 사용 시간을 할당한다. Math1의 weight: Math2의 weight = 1 : 2이다. 때문에 Math1의 각 스레드에게는 주어지는 시간이 1이면 Math2의 스레드에게는 2라는 시간이 할당된다. 따라서 Math1과 Math2의 중앙처리유닛(CPU) 사용 비율은 4 : 4(=1x4 : 2x2)이다.
상술한 바와 같은 본 발명에 따른 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어 장치가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다. 하드웨어 장치는 본 발명을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
본 발명에 따른 방법 및 시스템은 전술한 실시 예에 국한되지 않고 본 발명의 기술 사상이 허용하는 범위에서 다양하게 변형하여 실시할 수가 있다.

Claims (16)

  1. 제어 유닛의 스케줄링 방법에 있어서,
    스케줄러의 교체를 요청하는 이벤트를 검출하는 단계;
    스케줄러들 중 상기 이벤트에 대응되는 스케줄러를 선택하는 단계; 및
    상기 제어 유닛의 사용을 스케줄링하는 노드의 재부팅 없이, 상기 노드의 스케줄러를 상기 선택된 스케줄러로 교체하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법.
  2. 제 1 항에 있어서,
    상기 교체하는 단계는,
    상기 선택된 스케줄러의 스레드를, 레디 큐들 중 상기 선택된 스케줄러의 레디 큐로 저장하는 것을 특징으로 하는 스케줄링 방법.
  3. 제 2 항에 있어서,
    상기 스케줄러들은 각각, 서로 동일한 공통부분과 서로 다른 특화부분으로 구분되고, 상기 선택된 스케줄러의 특화부분이 레디 큐로 저장되는 것을 특징으로 하는 스케줄링 방법.
  4. 제 1 항에 있어서,
    상기 선택하는 단계는,
    다른 노드로부터 어플리케이션 정보를 수신하는 단계;
    상기 어플리케이션 정보를 이용하여 스케줄링 정책을 결정하는 단계; 및
    상기 스케줄러들 중 상기 스케줄링 정책에 대응되는 스케줄러를 선택하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법.
  5. 제 4 항에 있어서,
    상기 어플리케이션 정보는,
    어플리케이션의 이름, 동작 특성과 관련된 정보, 상호작용 여부와 관련된 정보, 배치 여부와 관련된 정보, 우선순위, 가중치, 기한 및 주기 중 적어도 하나를 포함하는 것을 특징으로 하는 스케줄링 방법.
  6. 제 4 항에 있어서,
    상기 결정된 스케줄링 정책을 상기 다른 노드로 전송하는 단계를 더 포함하는 것을 특징으로 하는 스케줄링 방법.
  7. 제 1 항에 있어서,
    상기 노드는,
    클라우드 시스템에서 하나의 서버이거나, 마이크로 서버에서 하나의 컴퓨팅 노드이거나, 하나의 물리머신에서 다수의 가상머신들이 운용되는 하나의 컴퓨터에서 하나의 가상 머신인 것을 특징으로 하는 스케줄링 방법.
  8. 어플리케이션 서비스를 제공하는 시스템에 있어서,
    스케줄링 정책을 결정하고, 결정된 정책에 따라 컴퓨팅을 스케줄링하는 마스터 노드와, 상기 결정된 정책에 따라 컴퓨팅을 스케줄링하는 적어도 하나의 슬레이브 노드를 포함하고,
    상기 마스터 노드는,
    상기 슬레이브 노드로부터 수신된 어플리케이션 정보와 상기 마스터 노드의 어플리케이션 정보를 이용하여 스케줄링 정책을 결정하고, 상기 결정된 스케줄링 정책을 상기 슬레이브 노드로 전송하고, 스케줄러들 중 상기 결정된 스케줄링 정책에 대응되는 스케줄러를 선택하고, 재부팅 없이, 상기 마스터 노드의 스케줄러를 상기 선택된 스케줄러로 교체하는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서,
    상기 마스터 노드의 스케줄러를 상기 선택된 스케줄러로 교체하는 것은,
    상기 선택된 스케줄러의 스레드를, 레디 큐들 중 상기 선택된 스케줄러의 레디 큐로 저장하는 것임을 특징으로 하는 시스템.
  10. 제 9 항에 있어서,
    상기 스케줄러들은 각각, 서로 동일한 공통부분과 서로 다른 특화부분으로 구분되고, 상기 선택된 스케줄러의 특화부분이 레디 큐로 저장되는 것을 특징으로 하는 시스템.
  11. 제 8 항에 있어서,
    상기 어플리케이션 정보는,
    어플리케이션의 이름, 동작 특성과 관련된 정보, 상호작용 여부와 관련된 정보, 배치 여부와 관련된 정보, 우선순위, 가중치, 기한 및 주기 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
  12. 제 8 항에 있어서,
    상기 마스터 노드 및 상기 슬레이브 노드는 각각,
    클라우드 시스템에서 하나의 서버이거나, 마이크로 서버에서 하나의 컴퓨팅 노드이거나, 하나의 물리머신에서 다수의 가상머신들이 운용되는 하나의 컴퓨터에서 하나의 가상 머신인 것을 특징으로 하는 시스템.
  13. 제 8 항에 있어서,
    상기 마스터 노드의 운영체제와 상기 슬레이브 노드의 운영체제는 각각,
    다수의 중앙처리유닛 스케줄러와 다수의 입출력 스케줄러를 가지는 스케줄링 센터와,
    상기 다수의 중앙처리유닛 스케줄러 중 상기 스케줄링 센터에 의해 선택된 중앙처리유닛 스케줄러와 연결되는 중앙처리유닛 스케줄러 인터페이스와,
    상기 다수의 입출력 스케줄러 중 상기 스케줄링 센터에 의해 선택된 입출력 스케줄러와 연결되는 입출력 스케줄러 인터페이스를 포함하는 것을 특징으로 하는 시스템.
  14. 제 8 항에 있어서,
    상기 마스터 노드의 운영체제와 상기 슬레이브 노드의 운영체제는 각각,
    스케줄링 센터와,
    다수의 중앙처리유닛 스케줄러를 가지고, 상기 스케줄링 센터의 명령에 의해 상기 다수의 중앙처리유닛 스케줄러 중 하나를 선택하고, 해당 노드의 중앙처리유닛 스케줄러를 상기 선택된 중앙처리유닛 스케줄러로 교체하는 중앙처리유닛 스케줄러 인터페이스와,
    다수의 입출력 스케줄러를 가지고, 상기 스케줄링 센터의 명령에 의해 상기 다수의 입출력 스케줄러 중 하나를 선택하고, 해당 노드의 입출력(I/O) 스케줄러를 상기 선택된 입출력 스케줄러로 교체하는 입출력 스케줄러 인터페이스를 포함하는 것을 특징으로 하는 시스템.
  15. 제 8 항에 있어서,
    상기 마스터 노드의 운영체제와 상기 슬레이브 노드의 운영체제는 각각,
    다수의 중앙처리유닛 스케줄러를 가지고, 어플리케이션의 명령에 의해 상기 다수의 중앙처리유닛 스케줄러 중 하나를 선택하고, 해당 노드의 중앙처리유닛 스케줄러를 상기 선택된 중앙처리유닛 스케줄러로 교체하는 중앙처리유닛 스케줄러 인터페이스와,
    다수의 입출력 스케줄러를 가지고, 상기 어플리케이션의 명령에 의해 상기 다수의 입출력 스케줄러 중 하나를 선택하고, 해당 노드의 입출력 스케줄러를 상기 선택된 입출력 스케줄러로 교체하는 입출력 스케줄러 인터페이스를 포함하는 것을 특징으로 하는 시스템.
  16. 제 8 항에 있어서,
    상기 마스터 노드 및 상기 슬레이브 노드는 각각,
    어플리케이션 영역에 존재하는 다수의 중앙처리유닛 스케줄러 및 다수의 입출력 스케줄러와,
    상기 다수의 중앙처리유닛 스케줄러 중 운영체제로 삽입된 것과 연결되는 중앙처리유닛 스케줄러 인터페이스와,
    상기 다수의 입출력 스케줄러 중 상기 운영체제로 삽입된 것과 연결되는 입출력 스케줄러 인터페이스를 포함하는 것을 특징으로 하는 시스템.
PCT/KR2014/001978 2013-03-12 2014-03-11 컴퓨팅 스케줄링 방법 및 시스템 WO2014142498A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/775,021 US10037225B2 (en) 2013-03-12 2014-03-11 Method and system for scheduling computing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0026237 2013-03-12
KR1020130026237A KR102052964B1 (ko) 2013-03-12 2013-03-12 컴퓨팅 스케줄링 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2014142498A1 true WO2014142498A1 (ko) 2014-09-18

Family

ID=51537075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/001978 WO2014142498A1 (ko) 2013-03-12 2014-03-11 컴퓨팅 스케줄링 방법 및 시스템

Country Status (3)

Country Link
US (1) US10037225B2 (ko)
KR (1) KR102052964B1 (ko)
WO (1) WO2014142498A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075741B2 (en) * 2013-07-03 2018-09-11 Avago Technologies General Ip (Singapore) Pte. Ltd. System and control protocol of layered local caching for adaptive bit rate services
EP3152859A1 (en) * 2014-06-04 2017-04-12 Giesecke & Devrient GmbH Method for enhanced security of computational device with multiple cores
US9792051B2 (en) * 2016-02-24 2017-10-17 Samsung Electronics Co., Ltd. System and method of application aware efficient IO scheduler
CN106776024B (zh) * 2016-12-13 2020-07-21 苏州浪潮智能科技有限公司 一种资源调度装置、系统和方法
KR102319172B1 (ko) * 2019-11-29 2021-10-29 주식회사 데브스택 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법
US11620158B2 (en) * 2020-01-15 2023-04-04 B.G. Negev Technologies & Applications Ltd. At Ben-Gurion University Multi-objective scheduling system and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
US20050197936A1 (en) * 2004-01-13 2005-09-08 International Business Machines Corporation Monte Carlo grid scheduling algorithm selection optimization
US20090007121A1 (en) * 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Processor Migration With Operating System Assistance
KR20090005921A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
US20090228888A1 (en) * 2008-03-10 2009-09-10 Sun Microsystems, Inc. Dynamic scheduling of application tasks in a distributed task based system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457886B1 (en) * 2004-02-03 2008-11-25 Apple Inc. System and method for input/output scheduling
US9104494B2 (en) * 2007-04-13 2015-08-11 Nec Corporation Virtual computer system and its optimization method
US9405585B2 (en) 2007-04-30 2016-08-02 International Business Machines Corporation Management of heterogeneous workloads
EP2350875A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Storage-side storage request management
KR101113943B1 (ko) 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템
KR101658035B1 (ko) * 2010-03-12 2016-10-04 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
US8612984B2 (en) 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
US8799554B1 (en) * 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
US8789054B2 (en) * 2010-10-29 2014-07-22 Fujitsu Limited Scheduling policy for efficient parallelization of software analysis in a distributed computing environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
US20050197936A1 (en) * 2004-01-13 2005-09-08 International Business Machines Corporation Monte Carlo grid scheduling algorithm selection optimization
US20090007121A1 (en) * 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Processor Migration With Operating System Assistance
KR20090005921A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
US20090228888A1 (en) * 2008-03-10 2009-09-10 Sun Microsystems, Inc. Dynamic scheduling of application tasks in a distributed task based system

Also Published As

Publication number Publication date
KR20140111834A (ko) 2014-09-22
KR102052964B1 (ko) 2019-12-06
US20160019089A1 (en) 2016-01-21
US10037225B2 (en) 2018-07-31

Similar Documents

Publication Publication Date Title
US10467725B2 (en) Managing access to a resource pool of graphics processing units under fine grain control
US10003500B2 (en) Systems and methods for resource sharing between two resource allocation systems
US10733019B2 (en) Apparatus and method for data processing
WO2014142498A1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
US9086925B2 (en) Methods of processing core selection for applications on manycore processors
CN109726005B (zh) 用于管理资源的方法、服务器系统和计算机可读介质
US20240118928A1 (en) Resource allocation method and apparatus, readable medium, and electronic device
JP7170768B2 (ja) 開発マシン操作タスクの処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
US20080229319A1 (en) Global Resource Allocation Control
US20230393879A1 (en) Coordinated Container Scheduling For Improved Resource Allocation In Virtual Computing Environment
JP2019121185A (ja) Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置
KR101697647B1 (ko) 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
Maruf et al. Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems
CN109729113B (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
CN105653347B (zh) 一种服务器、资源管理方法及虚拟机管理器
CN112860396A (zh) 一种基于分布式深度学习的gpu调度方法及系统
Stavrinides et al. Security, cost and energy aware scheduling of real-time IoT workflows in a mist computing environment
WO2021095943A1 (ko) 서비스 프로파일을 고려한 컨테이너의 배치 방법
EP3430510B1 (en) Operating system support for game mode
US11868805B2 (en) Scheduling workloads on partitioned resources of a host system in a container-orchestration system
Komarasamy et al. Deadline constrained adaptive multilevel scheduling system in cloud environment
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
Hadeed et al. Load balancing mechanism for edge-cloud-based priorities containers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14763123

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14775021

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14763123

Country of ref document: EP

Kind code of ref document: A1