KR101689736B1 - 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법 - Google Patents

작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법 Download PDF

Info

Publication number
KR101689736B1
KR101689736B1 KR1020100079903A KR20100079903A KR101689736B1 KR 101689736 B1 KR101689736 B1 KR 101689736B1 KR 1020100079903 A KR1020100079903 A KR 1020100079903A KR 20100079903 A KR20100079903 A KR 20100079903A KR 101689736 B1 KR101689736 B1 KR 101689736B1
Authority
KR
South Korea
Prior art keywords
scheduling
job
dependency
task
activation
Prior art date
Application number
KR1020100079903A
Other languages
English (en)
Other versions
KR20120017295A (ko
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 KR1020100079903A priority Critical patent/KR101689736B1/ko
Priority to US13/052,365 priority patent/US9354935B2/en
Publication of KR20120017295A publication Critical patent/KR20120017295A/ko
Application granted granted Critical
Publication of KR101689736B1 publication Critical patent/KR101689736B1/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
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

대칭형 멀티프로세싱(SMP : Symetric Multi-Processing) 환경에서의 작업 스케쥴링 기술을 개시한다. 대칭형 멀티프로세싱 환경에서 작업 스케쥴링 기능을 작업 처리장치와 별도로 구현하지 않고, 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 스케쥴링 오버헤드(Scheduling Overhead)를 줄일 수 있고, CPU 자원을 효율적으로 활용할 수 있으므로, CPU 성능을 향상시킬 수 있다.

Description

작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법{Work processing unit having a function of work scheduling, control unit for scheduling activation and work scheduling method over the symetric multi-processing environment}
작업 스케쥴링(Work Scheduling) 기술에 관련한 것으로, 특히 다수의 코어(Core)가 하나의 디바이스(Device)에서 동작하는 대칭형 멀티프로세싱(SMP : Symetric Multi-Processing) 환경에서의 작업 스케쥴링 기술에 관한 것이다.
멀티 코어(Multi-core) 기술이 점차 대중화되면서, 컴퓨팅 디바이스(Computing Device)의 성능을 향상하기 위한 멀티 코어 활용의 요구가 증가하고 있다.
통상적으로, 멀티 코어 컴퓨팅 디바이스를 효율적으로 활용하기 위해서 pthread, openMP, TBB, OpenCL 등의 병렬 프로그래밍 모델을 사용하며, 이러한 병렬 프로그래밍 모델은 멀티 코어 컴퓨팅 디바이스들을 효율적으로 사용하기 위한 각각의 스케쥴링 시스템을 가지고 있다.
스케쥴링 시스템은 멀티 코어 컴퓨팅 디바이스에 따라 달라질 수 있다. 스케쥴링 시스템의 역할은 병렬 프로그램에서 요청한 작업들을 각 디바이스의 코어에 할당하여 병렬로 수행시키는 것이다.
만약, 작업(Work)간 의존성(Dependency)을 기술하여 작업 수행을 요청하는 경우, 스케쥴링 시스템은 기술된 의존성을 분석하여 수행 가능한 작업들을 찾고, 작업들을 각 디바이스에 할당하는 것을 효율적으로 수행해야 한다.
특히, 다수의 코어(Core)가 하나의 디바이스(Device)에서 동작하는 대칭형 멀티프로세싱(SMP : Symetric Multi-Processing) 환경에서와 같이 스케쥴링 시스템과 작업이 동일한 디바이스에서 동작하는 경우, 스케쥴링 시스템의 동작이 작업 수행을 방해하지 않아야 한다.
대칭형 멀티프로세싱(SMP) 환경에서 작업 스케쥴링 기능을 작업 처리장치와 별도로 구현하지 않고, 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 스케쥴링 오버헤드(Scheduling Overhead)를 줄일 수 있고, CPU 자원을 효율적으로 활용할 수 있는 대칭형 멀티프로세싱(SMP) 환경에서 작업 스케쥴링 기술을 제공한다.
작업 스케쥴링 기능을 구비한 작업 처리장치가 스케쥴링 기능 활성화시, 타 작업과 연관된 의존성 작업의 의존성을 해결하고, 의존성이 해결된 작업의 스케쥴링을 수행하고, 스케쥴링된 작업을 수행하도록 적어도 하나의 타 작업 처리장치로 요청한다.
스케쥴링 활성화 제어장치가 작업 처리장치들 중 스케쥴링 처리 대기 상태에 있는 적어도 하나의 작업 스케쥴링 기능을 구비한 작업 처리장치로부터 스케쥴링 기능 활성화 요청을 수신하고, 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치 중 어느 하나의 작업 처리장치를 선택하여, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신한다.
대칭형 멀티프로세싱(SMP) 환경에서 작업 스케쥴링 기능을 작업 처리장치와 별도로 구현하지 않고, 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 스케쥴링 오버헤드(Scheduling Overhead)를 줄일 수 있고, CPU 자원을 효율적으로 활용할 수 있으므로, CPU 성능을 향상시킬 수 있다.
도 1 은 작업 스케쥴링 기능을 작업을 수행하는 작업 처리장치와 별도로 구현한 경우의 작업 스케쥴링 개요도이다.
도 2 는 대칭형 멀티프로세싱 환경에서 작업 스케쥴링 기능을 작업 처리장치내에 구현한 경우의 작업 스케쥴링 개요도이다.
도 3 은 본 발명의 일 실시예에 따른 작업 스케쥴링 기능을 구비한 작업 처리장치의 블럭도이다.
도 4 는 본 발명의 일 실시예에 따른 스케쥴링 활성화 제어장치의 블럭도이다.
도 5 는 작업 스케쥴링을 위한 어플리케이션 동작의 일 예를 도시한 흐름도이다.
도 6 은 본 발명의 일 실시예에 따른 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명 명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1 은 작업 스케쥴링 기능을 작업을 수행하는 작업 처리장치와 별도로 구현한 경우의 작업 스케쥴링 개요도이다. 먼저, 어플리케이션(Application)이 각 디바이스(Device)에서 수행되어야 할 작업(Work)을 스케쥴링 시스템(Scheduling System)에 요청한다.
그러면, 스케쥴링 시스템은 어플리케이션이 요청한 작업이 각 디바이스에서 수행되도록 할당한다. 작업을 할당받은 각 디바이스는 작업을 자신의 코어(Core)에서 수행하고, 작업 수행이 완료되면, 스케쥴링 시스템에게 작업 수행이 완료되었음을 알린다.
이 때, 스케쥴링 시스템은 작업간 의존성(Dependency)을 확인하고, 실행이 가능한 작업들을 찾아내어 각 디바이스에 할당한다. 이 과정에서 어플리케이션이 작업의 수행을 요청한 시점과 디바이스에서 작업이 실제로 수행되는 시점의 차이가 발생할 수 있으며 이를 스케쥴링 오버헤드(Scheduling Overhead)라고 한다.
대칭형 멀티프로세싱(SMP) 환경에서 이러한 스케쥴링 오버헤드(Scheduling Overhead)를 줄일 수 있고, CPU 자원을 효율적으로 활용할 수 있어, CPU 성능을 향상시킬 수 있는 기술을 도 2 를 통해 설명한다.
도 2 는 대칭형 멀티프로세싱 환경에서 작업 스케쥴링 기능을 작업 처리장치내에 구현한 경우의 작업 스케쥴링 개요도이다. 어플리케이션이 작업 수행을 요청하기 위해 타 작업과 연관된 의존성 작업은 의존성 작업 큐(Queue)에 인큐(enqueue)하고, 타 작업과 연관되지 않은 의존성 작업은 작업 수행 큐로 인큐한다.
이 때, 최초 작업을 수행하는 경우라면, 어플리케이션이 각 작업 처리장치(100)들로 작업 스케쥴링 요청을 위한 신호(Wake-up signal)를 전송한다. 어플리케이션으로부터의 작업 스케쥴링 요청에 따라 스케쥴링 처리 대기 상태에 있는 작업 처리장치(100)들이 스케쥴링 활성화 제어장치(200)로 스케쥴링 기능 활성화 요청을 한다.
만약, 최초 작업을 수행하지 않고 이미 타 작업이 수행되는 경우라면, 타 작업 수행 후 스케쥴링 처리 대기 상태에 있는 작업 처리장치(100)들이 능동적으로 스케쥴링 활성화 제어장치(200)로 스케쥴링 기능 활성화 요청을 한다.
그러면, 스케쥴링 활성화 제어장치(200)가 스케쥴링 기능 활성화 요청한 작업 처리장치(100)들 중 어느 하나를 스케쥴링 기능을 수행할 작업 처리장치로 선택하여 스케쥴링 기능 활성화 승인한다.
스케쥴링 활성화 제어장치(200)에 의해 스케쥴링 기능 활성화 승인된 작업 처리장치(100)는 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결한다.
만약, 최초 작업을 수행할 경우라면, 작업 완료 큐는 빈(Empty) 상태이므로, 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐하여 의존성을 해결하는 과정은 생략된다.
작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐하여 의존성이 해결되면, 작업 처리장치(100)는 의존성 작업 큐를 검색하여 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업을 검출하고, 의존성 해결된 작업을 작업 수행 큐로 이동시킨다.
작업 처리장치(100)는 작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 작업 처리 대기 상태의 타 작업 처리장치로 전송하여 스케쥴링된 작업을 수행하도록 요청하고, 스케쥴링 활성화 제어장치(200)는 작업 스케쥴링이 완료되면, 스케쥴링 기능을 수행하는 작업 처리장치(100)의 스케쥴링 활성화 승인을 해제한다.
작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 수신한 작업 처리 대기 상태의 타 작업 처리장치들은 작업 수행 큐에 인큐된 작업들이 모두 수행될 때까지 작업을 수행하고, 작업 처리 완료된 작업들은 작업 완료 큐에 인큐한다.
이렇게 함에 의해 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 작업 스케쥴링 기능을 작업 처리장치와 별도로 구현하는 경우 발생하는 스케쥴링 오버헤드(Scheduling Overhead)가 발생하지 않게 되고, 작업 스케쥴링에 필요한 만큼의 CPU 자원만 사용되므로 CPU 자원을 효율적으로 활용할 수 있어, CPU 성능을 향상시킬 수 있게 된다.
도 3 은 본 발명의 일 실시예에 따른 작업 스케쥴링 기능을 구비한 작업 처리장치의 블럭도이다. 도 3 에 도시한 바와 같이, 이 실시예에 따른 작업 스케쥴링 기능을 구비한 작업 처리장치(100)는 스케쥴링 수행부(110)와, 작업 수행 요청부(120)를 포함한다.
스케쥴링 수행부(110)는 스케쥴링 기능 활성화시, 타 작업이 수행된 후 수행되는 작업 등과 같이 타 작업과 연관된 의존성 작업의 의존성을 해결하고, 의존성이 해결된 작업의 스케쥴링을 수행한다. 이 때, 스케쥴링 수행부(110)가 검색부(111)와, 검출부(112)와, 이동부(113)를 포함할 수 있다.
검색부(111)는 의존성 작업 큐를 검색한다. 의존성 작업 큐에는 작업 수행을 요청하는 어플리케이션에 의해 타 작업과 연관된 의존성 작업이 인큐(enqueue)되며, 작업 스케쥴링을 위해 작업 처리장치(100)는 검색부(111)를 통해 의존성 작업 큐를 검색한다.
검출부(112)는 검색부(111)에 의해 검색된 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결(Dependency Resolving)된 작업을 검출한다. 이 때, 검출부(112)가 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 인큐된 작업 처리 완료된 작업들에만 의존성이 있는 작업을 의존성 해결된 작업으로 검출하도록 구현할 수 있다.
작업 완료 큐에는 작업을 수행한 작업 처리장치에 의해 처리 완료된 작업들이 인큐되므로, 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 존재하는 작업에 연관된 의존성 작업들은 그 의존성이 해결되었음을 의미한다.
따라서, 검출부(112)를 통해 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 존재하는 작업에 연관된 의존성 작업들이 존재하는지 판단함으로써 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업을 검출할 수 있다.
이동부(113)는 검출부(112)에 의해 검출된 의존성 해결된 작업을 작업 수행 큐로 이동시킨다. 이에 따라 작업 수행 큐에는 의존성 해결된 작업 즉, 수행 가능한 작업들이 차례로 인큐되어 작업이 스케쥴링된다.
한편, 부가적인 양상에 따르면, 스케쥴링 수행부(110)가 의존성 해결부(114)를 더 포함할 수 있다. 의존성 해결부(114)는 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결한다.
의존성 작업 큐에 인큐된 작업들은 타 작업과 연관된 의존성 작업들이고, 이 작업들이 수행되기 위해서는 먼저 의존성 작업과 연관된 타 작업이 수행되어 종료되어야 한다.
의존성 작업과 연관된 타 작업이 작업 처리장치에 의해 수행되어 종료되면, 종료된 작업은 작업 완료 큐에 인큐되고, 검출부(112)를 통해 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 존재하는 작업에 연관된 의존성 작업들이 존재하는지 판단함으로써 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업이 검출된다.
이동부(113)에 의해 의존성 해결된 작업이 작업 수행 큐로 이동되어 의존성 해결된 작업들이 스케쥴링 되면, 의존성 해결부(114)가 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)함으로써 의존성 해결 동작이 완료된다.
만약, 최초 작업을 수행할 경우라면, 작업 완료 큐는 빈(Empty) 상태이므로, 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐하여 의존성을 해결하는 동작은 생략될 수 있다.
작업 수행 요청부(120)는 스케쥴링 수행부(110)에 의해 스케쥴링된 작업을 수행하도록 적어도 하나의 타 작업 처리장치로 요청한다. 이 때, 작업 수행 요청부(120)가 작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 작업 처리 대기 상태의 타 작업 처리장치로 전송하여 작업 수행 큐에 스케쥴링된 작업을 수행하도록 요청할 수 있다.
작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호를 수신한 작업 처리 대기 상태의 타 작업 처리장치들은 작업 수행 큐에 인큐된 작업들이 모두 수행될 때까지 작업을 수행하고, 작업 처리 완료된 작업들은 작업 완료 큐에 인큐한다.
따라서, 이 실시예는 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 작업 스케쥴링 기능을 작업 처리장치와 별도로 구현하는 경우 발생하는 스케쥴링 오버헤드(Scheduling Overhead)가 발생하지 않게 되고, 작업 스케쥴링에 필요한 만큼의 CPU 자원만 사용되므로 CPU 자원을 효율적으로 활용할 수 있어, CPU 성능을 향상시킬 수 있게 된다.
한편, 부가적인 양상에 따르면, 작업 스케쥴링 기능을 구비한 작업 처리장치(100)가 스케쥴링 기능 활성화부(130)를 더 포함할 수 있다. 스케쥴링 기능 활성화부(130)는 스케쥴링 기능 활성화를 제어하는 스케쥴링 활성화 제어장치(200)로 스케쥴링 기능 활성화 요청을 하고, 상기 스케쥴링 활성화 제어장치(200)로부터의 스케쥴링 활성화 승인에 따라 스케쥴링 기능을 활성화한다.
이에 따라, 스케쥴링 활성화 제어장치(200)에 의해 작업 스케쥴링 기능을 구비한 작업 처리장치(100)의 스케쥴링 기능이 활성화된다. 스케쥴링 활성화 제어장치(200)에 의한 스케쥴링 기능 활성화 동작을 도 4 를 통해 설명한다.
도 4 는 본 발명의 일 실시예에 따른 스케쥴링 활성화 제어장치의 블럭도이다. 이 실시예에 따른 스케쥴링 활성화 제어장치(200)는 활성화 요청 수신부(210)와, 선택부(220)와, 활성화 승인부(230)를 포함한다.
활성화 요청 수신부(210)는 작업 처리장치들 중 스케쥴링 처리 대기 상태에 있는 적어도 하나의 작업 스케쥴링 기능을 구비한 작업 처리장치(100)로부터 스케쥴링 기능 활성화 요청을 수신한다.
최초 작업을 수행하는 경우라면, 어플리케이션이 각 작업 처리장치(100)들로 작업 스케쥴링 요청을 위한 신호(Wake-up signal)를 전송하고, 어플리케이션으로부터의 작업 스케쥴링 요청에 따라 스케쥴링 처리 대기 상태에 있는 작업 처리장치(100)들이 스케쥴링 활성화 제어장치(200)로 스케쥴링 기능 활성화 요청을 한다.
만약, 최초 작업을 수행하지 않고 이미 타 작업이 수행되는 경우라면, 타 작업 수행 후 스케쥴링 처리 대기 상태에 있는 작업 처리장치(100)들이 능동적으로 스케쥴링 활성화 제어장치(200)로 스케쥴링 기능 활성화 요청을 한다.
그러면, 스케쥴링 활성화 제어장치(200)는 활성화 요청 수신부(210)를 통해 스케쥴링 처리 대기 상태에 있는 적어도 하나의 작업 스케쥴링 기능을 구비한 작업 처리장치(100)로부터 송신된 스케쥴링 기능 활성화 요청을 수신한다.
선택부(220)는 활성화 요청 수신부(210)에 의해 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치 중 어느 하나의 작업 처리장치를 선택한다. 이 때, 선택부(220)가 다양한 선택 방식을 적용해 스케쥴링을 수행할 작업 처리장치(100)를 선택하도록 구현할 수 있다.
예컨대, 선택부(220)가 활성화 요청 수신부(210)에 의해 제일 먼저 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하도록 구현할 수 있다.
예컨대, 선택부(220)가 활성화 요청 수신부(210)에 의해 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 임의의 어느 하나의 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하도록 구현할 수도 있다.
예컨대, 선택부(220)가 활성화 요청 수신부(210)에 의해 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 작업 부하가 가장 적은 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하도록 구현할 수도 있다.
활성화 승인부(230)는 선택부(220)에 의해 선택된 작업 처리장치(100)로 스케쥴링 활성화 승인 신호를 송신한다. 스케쥴링 활성화 제어장치(200)로부터 송신된 스케쥴링 활성화 승인을 수신한 작업 스케쥴링 기능을 구비한 작업 처리장치(100)는 도 3 을 참조하여 기 설명한 바와 같은 동작을 수행함으로써 작업 스케쥴링을 수행한다.
한편, 부가적인 양상에 따르면, 스케쥴링 활성화 제어장치(200)가 활성화 승인 해제부(240)를 더 포함할 수 있다. 활성화 승인 해제부(240)는 작업 스케쥴링 완료시, 선택된 작업 처리장치(100)의 스케쥴링 활성화 승인을 해제함으로써 해당 작업 처리장치(100)를 스케쥴링 처리 대기 상태 또는 작업 처리 대기 상태로 복귀시킨다.
어플리케이션이 작업 스케쥴링을 요청하는 과정을 도 5 를 참조하여 알아본다. 도 5 는 작업 스케쥴링을 위한 어플리케이션 동작의 일 예를 도시한 흐름도이다. 먼저, 단계 510에서 어플리케이션이 작업 스케쥴링 요청할 작업이 의존성 작업인지 여부를 판단한다.
만약, 단계 510에 의한 판단 결과 작업 스케쥴링 요청할 작업이 의존성 작업라면, 단계 520에서 어플리케이션이 의존성 작업 큐에 해당 작업을 인큐한다. 만약, 단계 510에 의한 판단 결과 작업 스케쥴링 요청할 작업이 비의존성 작업라면, 단계 530에서 어플리케이션이 작업 수행 큐에 해당 작업을 인큐한다.
단계 530에서는 해당 작업 수행 순서이지만 의존성 작업 큐가 빈(Empty) 상태가 아닐 경우, 어플리케이션이 의존성 작업 큐에 해당 작업을 인큐하도록 구현하고, 해당 작업 수행 순서가 아니거나, 해당 작업 수행 순서이지만 의존성 작업 큐가 빈(Empty) 상태일 경우, 어플리케이션이 작업 수행 큐에 해당 작업을 인큐하도록 구현할 수 있다.
의존성 작업 큐 또는/및 작업 수행 큐에 작업이 인큐되면, 스케쥴링 기능 활성화 요청 동작이 수행된다. 만약, 어플리케이션이 작업 수행 큐에 작업을 직접 인큐하는 즉, 최초 작업을 수행하는 경우라면, 어플리케이션이 단계 540에서 각 작업 처리장치들로 작업 스케쥴링 요청을 위한 신호(Wake-up signal)를 전송하여 스케쥴링 처리 대기 상태에 있는 작업 처리장치들이 스케쥴링 활성화 제어장치로 스케쥴링 기능 활성화 요청을 하도록 한다.
그러나, 어플리케이션이 의존성 작업 큐에 작업을 인큐하는 즉, 최초 작업을 수행하지 않고 이미 타 작업이 수행되는 경우라면, 타 작업 수행 후 스케쥴링 처리 대기 상태에 있는 작업 처리장치들이 능동적으로 스케쥴링 활성화 제어장치로 스케쥴링 기능 활성화 요청을 하게 된다.
어플리케이션에 의해 도 5 에 의한 과정을 통해 의존성 작업 큐 또는/및 작업 수행 큐에 작업이 인큐된 경우, 작업 스케쥴링 기능을 구비한 작업 처리장치의 작업 스케쥴링 과정을 도 6 을 참조하여 알아본다. 도 6 은 본 발명의 일 실시예에 따른 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법의 흐름도이다.
스케쥴링 기능 활성화시, 스케쥴링 수행단계 610에서 작업 처리장치가 타 작업과 연관된 의존성 작업의 의존성을 해결하고, 의존성이 해결된 작업의 스케쥴링을 수행한다.
이 때, 스케쥴링 수행단계 610은 다음과 같은 세부 과정을 통해 작업 스케쥴링을 수행한다. 작업 처리장치가 검색단계 612에서 의존성 작업 큐를 검색하고, 검출단계 614에서 검색단계 612에 의해 검색된 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업을 검출한다.
이 때, 검출단계 614에서 작업 처리장치가 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 인큐된 작업 처리 완료된 작업들에만 의존성이 있는 작업을 의존성 해결된 작업으로 검출할 수 있다. 그 다음, 작업 처리장치가 이동단계 616에서 검출단계 614에 의해 검출된 의존성 해결된 작업을 작업 수행 큐로 이동시킨다.
한편, 부가적인 양상에 따르면, 검색단계 612 수행전에 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결하는 의존성 해결단계 611을 더 포함할 수 있다.
의존성 작업 큐에 인큐된 작업들은 타 작업과 연관된 의존성 작업들이고, 이 작업들이 수행되기 위해서는 먼저 의존성 작업과 연관된 타 작업이 수행되어 종료되어야 한다. 따라서, 의존성 해결단계 611을 통해 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결한다.
스케쥴링 수행단계 610에 의해 작업 스케쥴링이 완료되면, 작업 처리장치가 작업 수행 요청단계 620에서 스케쥴링 수행단계 610에 의해 스케쥴링된 작업을 수행하도록 적어도 하나의 타 작업 처리장치로 요청한다.
이 때, 작업 수행 요청단계 620에서 작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 작업 처리 대기 상태의 타 작업 처리장치로 전송하여 작업 수행 큐에 스케쥴링된 작업을 수행하도록 요청할 수 있다.
작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호를 수신한 작업 처리 대기 상태의 타 작업 처리장치들은 작업 수행 큐에 인큐된 작업들이 모두 수행될 때까지 작업을 수행하고, 작업 처리 완료된 작업들은 작업 완료 큐에 인큐한다.
이렇게 함에 의해 작업 스케쥴링 기능을 구비한 작업 처리장치는 작업 스케쥴링 기능을 작업을 수행하는 작업 처리장치와 별도로 구현하는 경우 발생하는 스케쥴링 오버헤드(Scheduling Overhead)가 발생하지 않게 되고, 작업 스케쥴링에 필요한 만큼의 CPU 자원만 사용되어 CPU 자원을 효율적으로 활용할 수 있으므로, CPU 성능을 향상시킬 수 있게 된다.
한편, 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법이 스케쥴링 기능 활성화단계 605를 더 포함할 수 있다. 작업 스케쥴링 대기 상태의 작업 처리장치가 스케쥴링 기능 활성화단계 605에서 스케쥴링 기능 활성화를 제어하는 스케쥴링 활성화 제어장치로 스케쥴링 기능 활성화를 요청하고, 상기 스케쥴링 활성화 제어장치로부터의 스케쥴링 활성화 승인에 따라 스케쥴링 기능을 활성화한다.
예컨대, 스케쥴링 활성화 제어장치가 제일 먼저 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하도록 구현할 수 있다.
예컨대, 스케쥴링 활성화 제어장치가 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 임의의 어느 하나의 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하도록 구현할 수 있다.
예컨대, 스케쥴링 활성화 제어장치가 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 작업 부하가 가장 적은 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하도록 구현할 수 있다.
스케쥴링 활성화 제어장치로부터 송신된 스케쥴링 활성화 승인을 수신한 어느 하나의 작업 스케쥴링 기능을 구비한 작업 처리장치는 상기한 작업 스케쥴링 과정을 수행하여 작업을 스케쥴링한다.
이렇게 함에 의해 대칭형 멀티프로세싱(SMP) 환경에서 작업 스케쥴링 기능을작업 처리장치와 별도로 구현하지 않고, 작업 스케쥴링 기능을 작업 처리장치내에 구현함으로써 스케쥴링 오버헤드(Scheduling Overhead)를 줄일 수 있고, CPU 자원을 효율적으로 활용할 수 있으므로, CPU 성능을 향상시킬 수 있다.
본 발명은 첨부된 도면에 의해 참조되는 바람직한 실시예를 중심으로 기술되었지만, 이러한 기재로부터 후술하는 특허청구범위에 의해 포괄되는 범위 내에서 본 발명의 범주를 벗어남이 없이 다양한 변형이 가능하다는 것은 명백하다.
100 : 작업 처리장치 110 : 스케쥴링 수행부
111 : 검색부 112 : 검출부
113 : 이동부 114 : 의존성 해결부
120 : 작업 수행 요청부 130 : 스케쥴링 기능 활성화부
200 : 스케쥴링 활성화 제어장치 210 : 활성화 요청 수신부
220 : 선택부 230 : 활성화 승인부
240 : 활성화 승인 해제부

Claims (20)

  1. 스케쥴링 기능 활성화를 제어하는 스케쥴링 활성화 제어장치로 스케쥴링 기능 활성화 요청을 하고, 상기 스케쥴링 활성화 제어장치로부터의 스케쥴링 활성화 승인에 따라 스케쥴링 기능을 활성화하는 스케쥴링 기능 활성화부;
    상기 스케쥴링 기능 활성화시, 타 작업과 연관된 의존성 작업의 의존성을 해결하고, 의존성이 해결된 작업의 스케쥴링을 수행하는 스케쥴링 수행부와;
    상기 스케쥴링 수행부에 의해 스케쥴링된 작업을 수행하도록 작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 적어도 하나의 타 작업 처리장치로 전송하는 작업 수행 요청부를; 포함하고,
    상기 스케쥴링 수행부는,
    의존성 작업 큐를 검색하는 검색부;
    상기 검색부에 의해 검색된 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업을 검출하는 검출부;
    상기 검출부에 의해 검출된 의존성 해결된 작업을 상기 작업 수행 큐로 이동시키는 이동부;를 포함하며,
    상기 의존성 해결된 작업은,
    상기 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 인큐된 작업 처리 완료된 작업들에만 의존성이 있는 작업인, 작업 스케쥴링 기능을 구비한 작업 처리장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 스케쥴링 수행부가:
    상기 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결하는 의존성 해결부를;
    더 포함하는 작업 스케쥴링 기능을 구비한 작업 처리장치.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 스케쥴링 기능 활성화를 제어하는 스케쥴링 활성화 제어장치로 스케쥴링 기능 활성화를 요청하고, 상기 스케쥴링 활성화 제어장치로부터의 스케쥴링 활성화 승인에 따라 스케쥴링 기능을 활성화하는 스케쥴링 기능 활성화단계;
    상기 스케쥴링 기능 활성화시, 작업 스케쥴링 기능을 구비한 작업 처리장치가 타 작업과 연관된 의존성 작업의 의존성을 해결하고, 의존성이 해결된 작업의 스케쥴링을 수행하는 스케쥴링 수행단계와;
    상기 스케쥴링 수행단계에 의해 스케쥴링된 작업을 수행하도록 작업 수행 큐에 인큐(enqueue)된 작업의 수행을 요청하는 신호(Wake-up signal)를 적어도 하나의 타 작업 처리장치로 전송하는 작업 수행 요청단계를; 포함하고,
    상기 스케쥴링 수행단계는,
    의존성 작업 큐를 검색하는 검색단계;
    상기 검색단계에 의해 검색된 의존성 작업 큐에 인큐된 의존성 작업들 중 의존성 해결된 작업을 검출하는 검출단계;
    상기 검출단계에 의해 검출된 의존성 해결된 작업을 상기 작업 수행 큐로 이동시키는 이동단계;를 포함하며,
    상기 의존성 해결된 작업은,
    상기 의존성 작업 큐에 인큐된 의존성 작업들 중 작업 완료 큐에 인큐된 작업 처리 완료된 작업들에만 의존성이 있는 작업인, 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 스케쥴링 수행단계가:
    상기 검색단계 수행전에 상기 작업 완료 큐에 인큐된 작업 처리 완료된 작업들을 디큐(dequeue)하여 의존성을 해결하는 의존성 해결단계를;
    더 포함하는 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 제 12 항에 있어서,
    상기 스케쥴링 활성화 제어장치가:
    제일 먼저 수신된 스케쥴링 기능 활성화 요청을 송신한 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하는 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법.
  19. 제 12 항에 있어서,
    상기 스케쥴링 활성화 제어장치가:
    스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 임의의 어느 하나의 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하는 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법.
  20. 제 12 항에 있어서,
    상기 스케쥴링 활성화 제어장치가:
    스케쥴링 기능 활성화 요청을 송신한 작업 처리장치들 중 작업 부하가 가장 적은 작업 처리장치를 작업 스케쥴링을 처리할 작업 처리장치로 선택하고, 선택된 작업 처리장치로 스케쥴링 활성화 승인 신호를 송신하는 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법.
KR1020100079903A 2010-08-18 2010-08-18 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법 KR101689736B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100079903A KR101689736B1 (ko) 2010-08-18 2010-08-18 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
US13/052,365 US9354935B2 (en) 2010-08-18 2011-03-21 Work processing apparatus for scheduling work, control apparatus for scheduling activation, and work scheduling method in a symmetric multi-processing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100079903A KR101689736B1 (ko) 2010-08-18 2010-08-18 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법

Publications (2)

Publication Number Publication Date
KR20120017295A KR20120017295A (ko) 2012-02-28
KR101689736B1 true KR101689736B1 (ko) 2016-12-27

Family

ID=45595087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100079903A KR101689736B1 (ko) 2010-08-18 2010-08-18 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법

Country Status (2)

Country Link
US (1) US9354935B2 (ko)
KR (1) KR101689736B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286106B1 (en) * 2013-04-16 2016-03-15 Ca, Inc. Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set
US9836329B2 (en) * 2014-05-30 2017-12-05 Netapp, Inc. Decentralized processing of worker threads
KR20200101682A (ko) * 2019-02-20 2020-08-28 삼성전자주식회사 전자 장치 및 그 제어 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174831A1 (en) 2006-01-20 2007-07-26 Hon Hai Precision Industry Co., Ltd. System and method for distributing file processing tasks
JP2009069921A (ja) 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
US20090328047A1 (en) 2008-06-30 2009-12-31 Wenlong Li Device, system, and method of executing multithreaded applications

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3422504B2 (ja) 1992-11-24 2003-06-30 日本電信電話株式会社 タスク間排他制御方法
US6317774B1 (en) * 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule
KR100294782B1 (ko) 1998-12-29 2001-07-12 이계철 실시간 병렬처리 프로그램에서의 파일시스템 접근 방법
US7996843B2 (en) 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US7346927B2 (en) * 2002-12-12 2008-03-18 Access Business Group International Llc System and method for storing and accessing secure data
US7197577B2 (en) * 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector
US20060112388A1 (en) * 2004-11-22 2006-05-25 Masaaki Taniguchi Method for dynamic scheduling in a distributed environment
FR2882169B1 (fr) * 2005-02-14 2007-05-25 Cofluent Design Sarl Procede de simulation d'un systeme complexe incluant une hierarchie d'ordonnanceurs, produit programme d'ordinateur et moyen de stockage correspondants
US7810094B1 (en) * 2005-09-30 2010-10-05 Emc Corporation Distributed task scheduling for symmetric multiprocessing environments
US8589943B2 (en) 2007-08-15 2013-11-19 Sony Computer Entertainment Inc. Multi-threaded processing with reduced context switching
WO2009113034A1 (en) * 2008-03-12 2009-09-17 Nxp B.V. Look-ahead task management
US8689231B2 (en) * 2009-06-30 2014-04-01 Sap Ag System and method for ordering tasks with complex interrelationships
US8549536B2 (en) * 2009-11-30 2013-10-01 Autonomy, Inc. Performing a workflow having a set of dependancy-related predefined activities on a plurality of task servers
CN102812440B (zh) * 2010-03-24 2016-05-04 富士通株式会社 多核系统以及起动方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174831A1 (en) 2006-01-20 2007-07-26 Hon Hai Precision Industry Co., Ltd. System and method for distributing file processing tasks
JP2009069921A (ja) 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
US20090328047A1 (en) 2008-06-30 2009-12-31 Wenlong Li Device, system, and method of executing multithreaded applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Paul Attie 외 3명. 'Specifying and Enforcing Intertask Dependencies.' Proceedings of the 19th International Conference on Very Large Data Bases, 1993, pp.134-145.

Also Published As

Publication number Publication date
KR20120017295A (ko) 2012-02-28
US20120047513A1 (en) 2012-02-23
US9354935B2 (en) 2016-05-31

Similar Documents

Publication Publication Date Title
US9448864B2 (en) Method and apparatus for processing message between processors
US20130290974A1 (en) Workflow control of reservations and regular jobs using a flexible job scheduler
US9418005B2 (en) Managing garbage collection in a data processing system
US9563585B2 (en) System and method for isolating I/O execution via compiler and OS support
US8145820B2 (en) Multiprocessor system and computer program product
KR101638136B1 (ko) 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치
US20160232037A1 (en) Latency-hiding context management for concurrent distributed tasks
KR20090005921A (ko) 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
JP6271123B2 (ja) 運用体制で動的に先占区間を調整する装置及び方法
WO2009113381A1 (ja) マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
KR20130114497A (ko) 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
US9047121B2 (en) System and method for scheduling jobs in a multi-core processor
KR101689736B1 (ko) 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
US20130117755A1 (en) Apparatuses, systems, and methods for distributed workload serialization
US10409640B1 (en) Methods and apparatus for data request scheduling in performing parallel IO operations
EP1191439A1 (en) Computer system and computer-readable record medium
US9336049B2 (en) Method, system, and program for scheduling jobs in a computing system
KR20200045639A (ko) 큐 관리 장치 및 방법
CN109791502B (zh) 针对异构设备类型的对等分布式计算系统
US9372724B2 (en) System and method for conditional task switching during ordering scope transitions
Munk et al. Position paper: Real-time task migration on many-core processors
US8117624B2 (en) Method and apparatus for performing real-time commands in a non real-time operating system environment
KR101271211B1 (ko) 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법
KR101377195B1 (ko) 컴퓨터 마이크로 작업
CN103810037A (zh) 一种作业调度方法和计算装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant