KR100879505B1 - An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same - Google Patents

An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same Download PDF

Info

Publication number
KR100879505B1
KR100879505B1 KR1020070002882A KR20070002882A KR100879505B1 KR 100879505 B1 KR100879505 B1 KR 100879505B1 KR 1020070002882 A KR1020070002882 A KR 1020070002882A KR 20070002882 A KR20070002882 A KR 20070002882A KR 100879505 B1 KR100879505 B1 KR 100879505B1
Authority
KR
South Korea
Prior art keywords
operating system
task
master
slave
kernel service
Prior art date
Application number
KR1020070002882A
Other languages
Korean (ko)
Other versions
KR20080065791A (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
Application filed by 재단법인서울대학교산학협력재단 filed Critical 재단법인서울대학교산학협력재단
Priority to KR1020070002882A priority Critical patent/KR100879505B1/en
Publication of KR20080065791A publication Critical patent/KR20080065791A/en
Application granted granted Critical
Publication of KR100879505B1 publication Critical patent/KR100879505B1/en

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 단일프로세서용 운영체제를 마스터/슬레이브 운영체제로 변환하기 위해 태스크 할당자를 추가하여 마스터 운영체제의 역할을 수행하는 태스크할당자 수정과정; 태스크할당자 수정과정 후에 단일프로세서용 운영체제에서 예외 및 인터럽트 처리와 태스크 생성 및 스케쥴링에 필요한 코드만을 남기고 나머지를 모두 제거한 후, 태스크 디스패처를 추가하여 슬레이브 운영체제의 역할을 수행하도록 하는 슬레이브 운영체제 구축과정; 및 슬레이브 운영체제 구축과정 후에 슬레이브 운영체제에서 수행되는 응용 태스크가 마스터 운영체제에서 제공하는 복수개의 서비스를 제공받을 수 있도록 커널 서비스 요청자와 커널 서비스 핸들러를 각각 슬레이브 운영체제와 마스터 운영체제에 추가하여 OS를 구축하는 멀티프로세서 최종구축과정;을 포함하여 구성되는 변환 기술을 제공한다.The present invention includes a task allocator modification process of performing a role of a master operating system by adding a task allocator to convert a single processor operating system into a master / slave operating system; After the task allocator modification process, leaving only the code necessary for exception and interrupt handling and task creation and scheduling in the uniprocessor operating system, and removes all the rest, adding a task dispatcher to act as a slave operating system; And a multiprocessor that builds an OS by adding a kernel service requester and a kernel service handler to the slave operating system and the master operating system, respectively, so that an application task executed in the slave operating system can receive a plurality of services provided by the master operating system after the slave operating system is constructed. It provides a conversion technology comprising a; final construction process.

멀티프로세서, 태스크 할당자, 마스터 운영체제, 슬레이브 운영체제Multiprocessor, Task Allocator, Master Operating System, Slave Operating System

Description

싱글프로세서 운영체제로부터 마스터/슬레이브 멀티프로세서 운영체제로 변환하는 효과적인 방법, 및 그 변환시스템{An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same}An effective method for transforming single processor operating system to master-slave multiprocessor operating system, and transforming system for the same

도 1은 종래 멀티프로세서의 마스터/슬레이브 운영체제의 일례를 설명하는 설명도,1 is an explanatory diagram illustrating an example of a master / slave operating system of a conventional multiprocessor;

도 2는 본 발명의 태스크 할당자가 내부에 구현된 마스터 운영체제의 구조를 설명하는 설명도,2 is an explanatory diagram illustrating a structure of a master operating system implemented by a task allocator of the present invention;

도 3은 본 발명의 마스터 운영체제 내부에 구현된 테스크 할당자의 수행경로를 설명하는 설명도,FIG. 3 is an explanatory diagram illustrating a path of execution of a task allocator implemented in the master operating system of the present invention; FIG.

도 4는 본 발명의 마스터 운영체제의 응용 태스크 형태로 구현된 태스트 할당자의 수행경로를 설명하는 설명도,4 is an explanatory diagram illustrating an execution path of a task allocator implemented in the form of an application task of the master operating system of the present invention;

도 5는 본 발명의 슬레이브 운영체제의 구조 및 태스크 생성경로를 설명하는설명도,5 is an explanatory diagram illustrating a structure and a task generation path of a slave operating system of the present invention;

도 6은 본 발명의 커널 서비스 요청 및 처리경로를 설명하는 설명도,6 is an explanatory diagram illustrating a kernel service request and a processing path of the present invention;

도 7은 본 발명의 플로우차트. 7 is a flowchart of the present invention.

본 발명은 멀티프로세서용 운영체제 변환 기술에 관한 것으로, 특히 단일프로세서용 운영체제에 기능을 다단계의 절차를 통해 마스터 운영체제와 슬레이브 운영체제로 수정함으로써 싱글프로세서 운영체제로부터 마스터/슬레이브 멀티프로세서 운영체제로 변환하는 기술에 관한 것이다.The present invention relates to an operating system conversion technology for a multiprocessor, and more particularly, to a technology for converting a single operating system from a single processor operating system to a master / slave multiprocessor operating system by modifying a function to a master operating system and a slave operating system through a multi-step procedure. will be.

일반적으로 멀티 프로세서는 하나의 주기억장치에 공동으로 접근하는 2개이상의 처리기구를 갖는 컴퓨터를 말하는데, 좀 더 넓게 표현하면 보조기억장치의 공유 또는 채널간 결합장치 등을 통해 서로 연결할 수 있도록 되어 있는 2개 이상의 처리장치로 이루어진 시스템을 말한다. 특히, 상기와 같은 멀티 프로세서를 구동하기 위한 운영체제 기술은 마스터/슬레이브 방식, SMP(symmetric multiprocessing) 방식, 독립 운영체제 구동의 세 가지로 구분할 수 있다.In general, a multiprocessor refers to a computer having two or more processing units that jointly access a single main memory. More broadly, a multiprocessor is a device that can be connected to each other through sharing of auxiliary memory or coupling between channels. Refers to a system consisting of two or more processing units. In particular, an operating system technology for driving the multiprocessor may be classified into three types: a master / slave method, a symmetric multiprocessing (SMP) method, and an independent operating system.

그러면, 종래 멀티프로세서시스템 중 마스터 슬레이브 방식의 시스템을 도 1을 참고로 설명하면, 전체 시스템의 기능을 총괄적으로 제어하는 하나의 마스터 프로세서(100)와, 이 마스터 프로세서(100)의 기능제어를 받는 다수의 슬레이브 프로세서들(200A-N)로 구성된다.Then, referring to FIG. 1, a master slave system of the conventional multiprocessor system, one master processor 100 collectively controls the functions of the entire system, and receives the function control of the master processor 100. It consists of a number of slave processors 200A-N.

한편, 이러한 마스터 슬레이브방식의 시스템의 동작을 살펴보면, 먼저 마스터로 지정된 프로세서(100)는 전형적인 운영체제 서비스와 작업 배정을 담당하여 실행한다. 그리고, 나머지 슬레이브 프로세서들(200A-N)은 마스터 프로세서(100)의 기능제어에 따라 배정된 작업만을 처리한다. 만약 슬레이브 프로세서(200A-N)에서 파일 관리 및 동기화(synchronization)와 같은 운영체제 서비스가 필요한 경우 해당 슬레이브 프로세서(200A-N)는 마스터 프로세서(100)에게 그 처리를 요청하고 서비스를 제공받아 처리하게 된다.Meanwhile, referring to the operation of such a master slave system, the processor 100 designated as a master first executes a typical OS service and task assignment. The remaining slave processors 200A-N process only the tasks assigned according to the function control of the master processor 100. If an operating system service such as file management and synchronization is required in the slave processors 200A-N, the corresponding slave processors 200A-N may request the processing from the master processor 100 and receive and process the service. .

그리고, 멀티프로세서를 구동하기 위한 또 다른 종래 기법인 SMP 방식은 프로세서간의 역할의 구분이 없으며, 모든 프로세서가 동일한 운영체제 코드를 수행한다. 이는 주로 동종의(homogeneous) 프로세서들로 구성되고 UMA(uniform memory access)가 가능한 경우에만 적용되는 기법으로서, 단일프로세서용 운영체제에 공유자원을 보호하는 기법(locking)을 적용하여 SMP 운영체제로 확장하는 것이 가능하다. 현재 마이크로소프트 윈도, 리눅스, 상용 유닉스 등에서는 이러한 SMP 확장기법을 통해 멀티 코어를 구동할 수 있도록 개발된 대표적인 사례로서 주로 서버급이나 고성능 데스크탑 컴퓨터에서 활용되고 있다. In addition, the SMP scheme, which is another conventional technique for driving a multiprocessor, does not distinguish roles between processors, and all processors execute the same operating system code. This technique is applied only when homogeneous processors and UMA (uniform memory access) are possible. It is recommended to extend the SMP operating system by applying a locking mechanism to protect shared resources in the uniprocessor operating system. It is possible. Currently, Microsoft Windows, Linux, and commercial UNIX have been developed to run multi-cores through this SMP extension technique, and are mainly used in server-class or high-performance desktop computers.

또한, 종래 멀티프로세서를 구동하기 위한 또다른 방법으로는 각각의 프로세서별로 독립적인 운영체제를 구동하는 방식이 있다. 이러한 프로세서별 독립운영체제방식의 경우, 단일프로세서 운영체제를 변경없이 그대로 사용할 수 있으며 네트워크상에서 다수의 컴퓨터를 연결한 분산시스템과 동일하게 간주하여 RPC(remote procedure call) 또는 소켓 등을 이용한 분산프로그래밍이 가능하다는 장점을 가진다. 최근에는 Sony/Toshiba/IBM의 Cell이나 TI의 OMAP과 같이 이종(heterogeneous)의 프로세서들을 탑재한 멀티프로세서 칩이 등장하면서 마스터/슬레이브 방식의 운 영체제에 대한 수요가 증가하고 있다. In addition, another method for driving a conventional multiprocessor includes a method of driving an independent operating system for each processor. In the case of the independent operating system for each processor, the uniprocessor operating system can be used as it is without modification and distributed programming using remote procedure call (RPC) or socket can be considered as the distributed system that connects multiple computers on the network. Has an advantage. Recently, the demand for a master / slave operating system is increasing due to the emergence of multiprocessor chips with heterogeneous processors such as Sony / Toshiba / IBM Cell and TI's OMAP.

그러나, 상기와 같은 종래 멀티프로세서 시스템은 그 사용방식별로 다양한 제한이 있는데, 예를들어 SMP 방식은 동종의 프로세서가 탑재된 경우에만 적용될 수 있으며, 또한, 독립 운영체제 방식은 느슨하게 연결된(loosley coupled) 형태로서 멀티프로세서 칩과 같이 긴밀하게 연결된(tightly coupled) 하드웨어 구조상에서는 성능과 기능면에서 많은 제약이 따르게 된다. However, the conventional multiprocessor system as described above has various limitations according to its usage methods. For example, the SMP method may be applied only when a homogeneous processor is installed, and the independent operating system method may be loosely coupled. In the tightly coupled hardware structure, such as a multiprocessor chip, there are many restrictions in terms of performance and functionality.

따라서, 상기와 같은 이종 멀티프로세서 환경에서는 마스터/슬레이브 방식의 운영체제가 가장 적합한 방법으로 알려져 있으나, 이러한 마스터/슬레이브 방식의 경우 SMP 방식과는 달리 단일프로세서용 운영체제를 개조하는 방법이 아직 정립되지 않은 상태이기 때문에 스크래치부터 새로운 마스터/슬레이브 방식의 운영체제를 개발해야 하는데, 기존의 운영체제를 개조하여 SMP 운영체제를 구축하는 방법과 비교할 경우 이러한 마스터/슬레이브 운영체제는 개발비용이 매우 높다는 문제점이 있었다.Therefore, in the heterogeneous multiprocessor environment as described above, the master / slave operating system is known as the most suitable method. However, unlike the SMP method, the master / slave operating system has not yet been established. For this reason, from scratch, a new master / slave operating system must be developed. Compared to a method of building an SMP operating system by modifying an existing operating system, such a master / slave operating system has a high development cost.

이에 본 발명은 상기와 같은 제반 문제점을 해결하기 위해 발명된 것으로, 멀티프로세서 환경하의 마스터/슬레이브 운영체제의 확장성을 향상시키는 멀티프로세서용 운영체제 변환 기술을 제공함에 그 목적이 있다.Accordingly, the present invention has been invented to solve the above problems, and an object of the present invention is to provide an operating system conversion technology for a multiprocessor which improves the scalability of a master / slave operating system under a multiprocessor environment.

본 발명의 또다른 목적은 기존의 단일프로세서 운영체제를 3단계의 수정과정을 통해 멀티프로세서 환경에서 수행될 수 있는 마스터/슬레이브 운영체제로 변환 시키므로 그에 따라 마스터/슬레이브 운영체제를 적은 비용으로 용이하게 개발할 수 있도록 하는 멀티프로세서용 운영체제 변환 기술을 제공하는데 있다.Another object of the present invention is to convert the existing uniprocessor operating system into a master / slave operating system that can be performed in a multiprocessor environment through a three-step modification process so that the master / slave operating system can be easily developed at a low cost. To provide an operating system conversion technology for a multiprocessor.

상기와 같은 목적을 달성하기 위한 본 발명은 멀티프로세서시스템에서 마스터 운영체제의 커널 내부 또는 응용 태스크의 일부로서 구현되고, 수행시켜야 할 작업들을 마스터 또는 슬레이브 운영체제들에게 배분하여 그 처리를 지시하는 태스크 할당자; 슬레이브 운영체제에 구현되어 마스터 운영체제의 태스크 할당자가 배정한 작업들을 태스크로 생성하여 생성된 태스크를 수행하는 태스크 디스패처; 슬레이브 운영체제에 구현되어 슬레이브 운영체제에서 수행되는 응용 태스크를 대신하여 마스터 운영체제의 커널 서비스 핸들러에 커널 서비스를 요청하는 커널 서비스 요청자; 및 마스터 운영체제에 구현되어 슬레이브 운영체제의 커널 서비스 요청자에서 요청하는 커널 서비스를 제공하는 커널 서비스 핸들러;를 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환시스템을 제공한다.The present invention for achieving the above object is implemented in the multi-processor system as a task inside the kernel of the master operating system or as part of the application task, the task allocator to distribute the tasks to be performed to the master or slave operating system to instruct the processing ; A task dispatcher implemented in the slave operating system and generating tasks assigned by the task allocator of the master operating system as a task to perform the generated task; A kernel service requester implemented in the slave operating system and requesting a kernel service from a kernel service handler of the master operating system on behalf of an application task performed in the slave operating system; And a kernel service handler implemented in the master operating system and providing a kernel service requested by the kernel service requester of the slave operating system.

본 발명의 또다른 특징은 단일프로세서용 운영체제를 마스터/슬레이브 운영체제로 변환하기 위해 태스크 할당자를 추가하여 마스터 운영체제의 역할을 수행하는 태스크할당자 수정과정; 태스크할당자 수정과정 후에 단일프로세서용 운영체제에서 예외 및 인터럽트 처리와 태스크 생성 및 스케쥴링에 필요한 코드만을 남기고 나머지를 모두 제거한 후, 태스크 디스패처를 추가하여 슬레이브 운영체제의 역할을 수행하도록 하는 슬레이브 운영체제 구축과정; 및 슬레이브 운영체제 구축과정 후에 슬레이브 운영체제에서 수행되는 응용 태스크가 마스터 운영체제에서 제공하 는 복수개의 서비스를 제공받을 수 있도록 커널 서비스 요청자와 커널 서비스 핸들러를 각각 슬레이브 운영체제와 마스터 운영체제에 추가하여 OS를 구축하는 멀티프로세서 최종구축과정;을 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환 방법을 제공한다.Another aspect of the present invention provides a task allocator modification process for performing a role of a master operating system by adding a task allocator to convert a single processor operating system into a master / slave operating system; After the task allocator modification process, leaving only the code necessary for exception and interrupt handling and task creation and scheduling in the uniprocessor operating system, and removes all the rest, adding a task dispatcher to act as a slave operating system; And the kernel service requester and the kernel service handler are added to the slave operating system and the master operating system so that application tasks performed in the slave operating system after receiving the slave operating system are provided with a plurality of services provided by the master operating system. It provides a master / slave multiprocessor operating system conversion method configured to include;

이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 도 2 내지 도 6에 도시된 바와같이 마스터 운영체제(100)의 커널 내부 또는 응용 태스크의 일부로서 구현되고, 수행시켜야 할 작업들을 마스터 또는 슬레이브 운영체제(200)들에게 배분하여 그 처리를 지시하는 태스크 할당자(task allocator; 10)와; 슬레이브 운영체제(200)에 구현되어 마스터 운영체제(100)의 태스크 할당자(10)가 배정한 작업들을 태스크로 생성하여 생성된 태스크를 수행하는 태스크 디스패처(task dispatcher: 20)와; 슬레이브 운영체제(200)에 구현되어 슬레이브 운영체제(200)에서 수행되는 응용 태스크를 대신하여 마스터 운영체제(100)의 커널 서비스 핸들러(40)에 커널 서비스를 요청하는 커널 서비스 요청자(kernel service requestor: 30)와; 마스터 운영체제(100)에 구현되어 슬레이브 운영체제(200)의 커널 서비스 요청자(30)에서 요청하는 커널 서비스를 제공하는 커널 서비스 핸들러(kernel service handler: 40)를 포함하여 구성된다. The present invention is implemented as part of the kernel or application task of the master operating system 100, as shown in Figures 2 to 6, and distributes tasks to be performed to the master or slave operating system 200 to direct the processing A task allocator 10; A task dispatcher 20 that is implemented in the slave operating system 200 and performs tasks generated by generating tasks assigned by the task allocator 10 of the master operating system 100 as a task; A kernel service requestor 30 that is implemented in the slave operating system 200 and requests a kernel service to the kernel service handler 40 of the master operating system 100 on behalf of an application task performed in the slave operating system 200; ; It is configured to include a kernel service handler 40 implemented in the master operating system 100 to provide a kernel service requested by the kernel service requester 30 of the slave operating system 200.

여기서, 커널 서비스 요청자(30)와 커널 서비스 핸들러(40)는 슬레이브 운영 체제(200)와 마스터 운영체제(100) 간에 커널 서비스를 제공하는 방식으로 기존의 RPC 메카니즘으로 구현할 수 있다. Here, the kernel service requester 30 and the kernel service handler 40 may be implemented by the existing RPC mechanism in a manner of providing kernel service between the slave operating system 200 and the master operating system 100.

태스크 할당자(10)는 마스터 프로세서에서 실행되면서 요청받은 태스크를 마스터 또는 특정 슬레이브 프로세서에게 배정할 때, 만약 요청받은 태스크가 인자를 필요로 하는 경우 해당 인자값을 함께 전달한다. When the task allocator 10 assigns a requested task to a master or a specific slave processor while being executed in the master processor, if the requested task requires an argument, the task allocator 10 also transmits the corresponding argument value.

또한, 태스크 관리자(task manager)는 운영체제의 일부로서 태스크 생성, 스케쥴링, 문맥교환, 소멸, 태스크간 동기화 서비스를 제공한다. The task manager also provides task creation, scheduling, context exchange, destruction, and inter-task synchronization services as part of the operating system.

또한, 메모리 관리자(memory manager)는 통상적인 운영체제의 일부로서 태스크가 수행될 메모리 공간을 할당하고, 태스크가 수행되는 도중에 요청하는 동적 메모리를 할당하고 제거하는 서비스를 제공한다. In addition, a memory manager, as part of a typical operating system, provides a service for allocating a memory space for a task to be performed and for allocating and removing dynamic memory requested while the task is performed.

또한, 파일 관리자(file manager)는 통상적인 운영체제의 일부로서 파일 및 디렉토리 생성, 변경, 삭제 등의 서비스를 제공한다. In addition, a file manager provides services such as file and directory creation, modification, and deletion as part of a typical operating system.

또한, I/O 관리자(I/O manager)는 통상적인 운영체제의 일부로서 I/O 디바이스에 대한 접근 및 제어를 위한 서비스를 제공한다. In addition, an I / O manager provides services for access and control of I / O devices as part of a typical operating system.

또한, 네트워크 관리자(network manager)는 통상적인 운영체제의 일부로서 네트워크 프로토로 처리 서비스를 제공한다. In addition, a network manager provides network protocol processing services as part of a typical operating system.

또한, 하드웨어 인터페이스(device interface)는 통상적인 운영체제의 일부로서 CPU, 메모리, 각종 주변장치를 포함한다. In addition, a hardware interface includes a CPU, memory, and various peripherals as part of a typical operating system.

또한, API(application programming interface)는 응용 태스크가 운영체제 서비스를 제공받기 위해 호출하는 함수이다. In addition, an API (application programming interface) is a function that an application task calls to receive operating system services.

또한, 시스템 콜 레이어(system call layer: 50)는 운영체제 서비스를 제공하는 API의 집합이다.In addition, the system call layer 50 is a set of APIs that provide OS services.

또한, RPC는 특정 프로그램에서 다른 어드레스 공간에 정의된 함수를 호출하는 기능이다. In addition, RPC is the ability to call a function defined in another address space in a particular program.

다음에는 상기와 같은 장치에 적용되는 변환 방법을 설명한다. Next, a conversion method applied to the above apparatus will be described.

본 발명의 방법은 도 7에 도시된 바와같이 초기상태(S100)에서 태스크할당자 수정과정(S200)로 진행하여 단일프로세서용 운영체제를 마스터/슬레이브 운영체제로 변환하기 위해 태스크 할당자를 추가하여 마스터 운영체제의 역할을 수행한다. The method of the present invention proceeds to the task allocator modification process (S200) in the initial state (S100), as shown in Figure 7 by adding a task allocator to convert the uniprocessor operating system into a master / slave operating system of the master operating system Play a role.

그리고, 태스크할당자 수정과정(S200) 후에 슬레이브 운영체제 구축과정(S300)으로 진행하여 단일프로세서용 운영체제에서 예외 및 인터럽트 처리와 태스크 생성 및 스케쥴링에 필요한 코드만을 남기고 나머지를 모두 제거한 후, 태스크 디스패처를 추가하여 슬레이브 운영체제의 역할을 수행한다. After the task allocator modification process (S200), the process proceeds to the slave operating system construction process (S300), leaving only the codes necessary for exception and interrupt processing and task creation and scheduling in a single processor operating system, and removing all the rest, and adding a task dispatcher. To act as a slave operating system.

한편, 슬레이브 운영체제 구축과정(S300)후에 멀티프로세서 최종구축과정(S400)으로 진행하여 슬레이브 운영체제에서 수행되는 응용 태스크가 마스터 운영체제에서 제공하는 복수개의 서비스를 제공받을 수 있도록 커널 서비스 요청자와 커널 서비스 핸들러를 각각 슬레이브 운영체제와 마스터 운영체제에 추가하여 OS를 구축한다.On the other hand, after the slave operating system building process (S300) proceeds to the multi-processor final building process (S400) to the kernel service requester and the kernel service handler so that the application tasks performed in the slave operating system can receive a plurality of services provided by the master operating system. In addition to the slave operating system and the master operating system to build an OS.

즉, 태스크할당자 수정과정(S200) 중의 태스크 할당자(10)의 주요 임무는 수행시켜야 할 작업들을 마스터 또는 슬레이브 운영체제(100 or 200)들에게 배분하여 그 처리를 지시하는 것이며, 이때 태스크 할당자(10)는 마스터 운영체제의 커널 내부 또는 응용 태스크의 일부로서 구현하는 것이 가능하다. That is, the main task of the task allocator 10 during the task allocator modification process (S200) is to distribute the tasks to be performed to the master or slave operating systems 100 or 200 and instruct the processing thereof. 10 may be implemented in the kernel of the master operating system or as part of an application task.

그리고, 슬레이브 운영체제 구축과정(S300) 중의 태스크 디스패처(20)의 임무는 마스터 운영체제(100)의 태스크 할당자(10)가 배정한 작업들을 태스크로 생성하여 수행시키는 것이다. The task of the task dispatcher 20 during the slave operating system building process S300 is to create and perform tasks assigned by the task allocator 10 of the master operating system 100 as a task.

또한, 멀티프로세서 최종구축과정(S400)중의 슬레이브 운영체제(200)와 마스터 운영체제(100) 간에 커널 서비스를 제공하는 방식은 종래의 RPC 메카니즘과 유사한 방법으로 구현한다. In addition, a method of providing kernel service between the slave operating system 200 and the master operating system 100 during the multiprocessor final building process S400 may be implemented in a manner similar to a conventional RPC mechanism.

환언하면, 태스크할당자 추가과정(S200)에는 기존의 단일프로세서용 운영체제의 내부에 태스크 할당자를 구축하는 단일운영체제 내부구축단계와; 마스터 프로세서와 슬레이브 프로세서이외에 별도의 응용프로세스로 태스크 할당자를 구축하는 응용태스크형태 구축단계를 포함한다.In other words, the task allocator adding process (S200) includes a single operating system internal building step of constructing a task allocator in the existing uniprocessor operating system; In addition to the master processor and the slave processor includes an application task type building step of building a task allocator in a separate application process.

여기서, 단일운영체제 내부구축단계에는 태스크 할당자(10)를 운영체제 내부에 구현하는 경우, 사용자가 새로운 태스크의 수행을 요청하면 태스크 할당자(10)는 어느 프로세서상에서 해당 태스크를 수행할 지를 먼저 결정한다. 이때 마스터 프로세서가 선택되면 요청된 태스크는 마스터 운영체제(100)의 태스크 관리자(10)를 통해 생성되고 스케쥴링되며, 특정 슬레이브 프로세서가 선택되면 해당 슬레이브 운영체제(200)의 태스크 디스패처(20)를 통해 태스크가 생성된다. Here, when the task allocator 10 is implemented in the operating system in a single operating system internal construction step, when the user requests to perform a new task, the task allocator 10 first determines on which processor to perform the task. . In this case, when the master processor is selected, the requested task is generated and scheduled through the task manager 10 of the master operating system 100. When a specific slave processor is selected, the task is executed through the task dispatcher 20 of the corresponding slave operating system 200. Is generated.

또한, 응용태스크형태 구축단계에는 도 5에 도시된 바와같이 태스크 할당자(10)를 응용 태스크의 형태로 구현하는 것을 보여주며, 이 경우에도 요청된 태스 크의 실행 위치에 따라 마스터 운영체제(100) 또는 슬레이브 운영체제(200)에게 태스크 생성을 요청한다. In addition, the application task form building step shows that the task allocator 10 is implemented in the form of an application task, as shown in FIG. 5, and in this case, the master operating system 100 may be configured according to the execution position of the requested task. Alternatively, a task generation request is made to the slave operating system 200.

태스크 할당자(10)를 응용 태스크로 구현하는 방법은 변경하고자 하는 단일프로세서의 내부구조가 복잡하여 커널의 수정이 어려울 때 유용하게 사용될 수 있는 방법이다. The method of implementing the task allocator 10 as an application task may be useful when the internal structure of a single processor to be modified is complicated and the kernel is difficult to modify.

결론적으로 말해서, 본 발명은 태스크 스케쥴링 방법에 의존적이지 않기때문에 어떠한 스케쥴링 알고리즘하에서도 적용될 수 있다.    In conclusion, the present invention can be applied under any scheduling algorithm since it is not dependent on the task scheduling method.

즉, 통상적으로 태스크 스케쥴링 방법은 운영체제 또는 응용 S/W의 특성에 따라 우선순위 기반 스케쥴링, 라운드-로빈(round-robin), 또는 작업부하(work load)의 공평한 분배 등을 위해 결정될 수 있는데, 본 발명에서 제시하는 태스크 할당자(10)는 태스크 스케쥴링 정책에 따라 결정된 프로세서에게 태스크를 배정하는 역할만을 담당한다. That is, in general, the task scheduling method may be determined for priority-based scheduling, round-robin, or even distribution of work loads according to characteristics of an operating system or application software. The task allocator 10 proposed in the present invention is only responsible for assigning a task to a processor determined according to a task scheduling policy.

따라서, 슬레이브 운영체제 구축과정(S300)에 따라 단일프로세서용 운영체제에서 슬레이브 운영체제로 변환하기 위해서는 우선 태스크 수행에 필요한 최소한의 기능만을 남기고 나머지 다른 기능은 모두 제거하도록 한다. Therefore, in order to convert from the uniprocessor operating system to the slave operating system according to the slave operating system building process (S300), first, only the minimum functions necessary for the task execution are left and all other functions are removed.

여기서, 태스크 수행에 필요한 최소한 기능은 태스크 관리자의 일부 기능인 태스크 생성, 스케쥴링, 소멸과 관련된 부분과 메모리 관리자의 일부 기능인 메모리 할당 부분이다. Here, the minimum functions required for the task execution are parts related to task creation, scheduling, and destruction, which are some functions of the task manager, and memory allocation parts, which are some functions of the memory manager.

그러므로, 슬레이브 운영체제 구축과정(S300)에의해 불필요한 기능이 모두 제거된 후에는 마스터 운영체제(100)의 태스크 할당자(10)와 통신을 담당하는 태스 크 디스패처(20)를 구현하여 추가하도록 한다. 이때, 태스크 디스패처(20)는 마스터가 배정한 작업 요청을 받아들여 태스크 관리자에게 해당 태스크의 생성과 수행을 요청시키는 역할을 담당한다. Therefore, after all unnecessary functions are removed by the slave operating system building process (S300), the task dispatcher 20 in charge of communication with the task allocator 10 of the master operating system 100 is implemented and added. At this time, the task dispatcher 20 is responsible for accepting the work request assigned by the master and requesting the task manager to create and perform the task.

여기서, 도 6은 도2의 기존의 운영체제 구조에서 메모리 관리자, 파일 관리자, I/O 관리자, 네트워크 관리자가 제거되고, 태스크 디스패처가 추가된 슬레이브 운영체제의 구조와 태스크의 생성 경로를 보여준다.6 illustrates a structure of a slave operating system in which a memory manager, a file manager, an I / O manager, and a network manager are removed from the existing operating system structure of FIG. 2 and a task dispatcher is added, and a path of generating a task.

한편, 본원발명의 마지막 과정인 멀티프로세서 최종구축과정(S400)에 따라 커널 서비스 요청자와 커널 서비스 핸들러를 각각 슬레이브 운영체제(200)와 마스터 운영체제(100)에 추가로 구현하여 포함시킨다. Meanwhile, the kernel service requester and the kernel service handler are additionally implemented and included in the slave operating system 200 and the master operating system 100 according to the final process of multiprocessor S400, which is the final process of the present invention.

즉, 본 발명의 방법에 의해 실현된 슬레이브 운영체제(200)는 단지 응용 태스크만을 수행시키는 서비스만을 제공하는 반면 통상적으로 운영체제가 제공하는 파일시스템 서비스, 네트워킹 서비스, 동적 메모리 관리 서비스 등은 제공하지 않는다. In other words, the slave operating system 200 realized by the method of the present invention provides only services for performing only application tasks, but does not typically provide file system services, networking services, and dynamic memory management services.

따라서 본 발명의 슬레이브 운영체제상에서 수행되는 응용 태스크가 운영체제 서비스를 필요로 하는 경우 마스터 운영체제(100)로부터 해당 서비스를 제공받도록 하는 기능이 필요하다. 이를 위해서, 슬레이브 운영체제의 커널 서비스 요청자가 응용 태스크 대신에 커널 서비스를 요청하고 마스터 운영체제의 커널 서비스 핸들러(40)는 이러한 요청에 따라 해당 서비스를 제공해주도록 한다. Therefore, when an application task performed on a slave operating system of the present invention requires an operating system service, a function for receiving a corresponding service from the master operating system 100 is required. To this end, the kernel service requester of the slave operating system requests a kernel service instead of an application task, and the kernel service handler 40 of the master operating system provides the corresponding service according to the request.

여기서, 커널 서비스 제공은 기존의 RPC 기법을 이용할 수 있다. In this case, the kernel service provision may use an existing RPC technique.

따라서, 슬레이브 운영체제의 시스템 콜 레이어(50)는 도 7에 도시된 바와같이 호출된 함수 이름과 인자값(arguments)만을 추출하여 커널 서비스 요청자(30)에게 넘겨주는 랩퍼(wrapper)로 구현되며, 커널 서비스 요청자는 호출된 API의 이름과 인자값을 메시지 형태로 만들어 마스터 운영체제의 커널 서비스 핸들러(40)에게 전송한다. Accordingly, the system call layer 50 of the slave operating system is implemented as a wrapper that extracts only the called function name and arguments and passes them to the kernel service requester 30, as shown in FIG. The service requester forms the name and the argument value of the called API in a message form and sends it to the kernel service handler 40 of the master operating system.

그리고, 커널 서비스 핸들러(40)는 전송받은 메시지에 포함된 API 이름과 인자값을 이용하여 마스터 운영체제(100)의 실제 API를 호출하고, 그 결과값(return value)을 다시 메시지 형태로 커널 서비스 요청자에게 전송한다. 커널 서비스 요청자(30)는 전송받은 결과값을 해당 API를 호출했던 응용 태스크에게 반환한다. The kernel service handler 40 calls the actual API of the master operating system 100 using the API name and the argument value included in the received message, and returns the return value in the form of a message. Send to. The kernel service requester 30 returns the received result to the application task that called the API.

본원 발명에 의하면, 운영체제의 내부 기능이 복잡하여 불필요한 부분을 제거하는 과정이 어려운 경우 원래의 운영체제의 기능을 모두 유지하더라도 슬레이브 운영체제의 역할 수행에는 지장이 없다. According to the present invention, if the internal function of the operating system is complicated and the process of removing unnecessary parts is difficult, even if all the functions of the original operating system are maintained, the role of the slave operating system does not interfere.

본 발명은 단일프로세서용 운영체제에 기능을 다단계의 절차를 통해 마스터 운영체제와 슬레이브 운영체제로 수정시킴으로써, 마스터/슬레이브 운영체제를 스크래치부터 개발하는 비용과 시간을 크게 절감할 뿐만아니라 이미 기능과 성능이 검증된 운영체제를 마스터/슬레이브 운영체제로 수정하는 것이 가능함에 따라 스크래치부터 개발된 마스터/슬레이브 운영체제에 비해 훨씬 안정적이고 성능이 우수한 멀티프로세서 운영체제를 확보하는 것이 용이하다는 효과가 있다.The present invention modifies the functions of the operating system for a single processor into a master operating system and a slave operating system through a multi-step procedure, thereby significantly reducing the cost and time of developing the master / slave operating system from scratch, as well as an operating system whose functions and performance have already been verified. As it is possible to modify the master / slave operating system, it is easy to obtain a multiprocessor operating system that is much more stable and better than the master / slave operating system developed from scratch.

Claims (8)

멀티프로세서시스템에서 마스터 운영체제의 커널 내부 또는 응용 태스크의 일부로서 구현되고, 수행시켜야 할 작업들을 마스터 또는 슬레이브 운영체제들에게 배분하여 그 처리를 지시하는 태스크 할당자; A task allocator, implemented in a kernel of a master operating system or as part of an application task in a multiprocessor system, for allocating tasks to be performed to master or slave operating systems and instructing processing thereof; 상기 슬레이브 운영체제에 구현되어 상기 마스터 운영체제의 태스크 할당자가 배정한 작업들을 태스크로 생성하여 상기 생성된 태스크를 수행하는 태스크 디스패처;A task dispatcher implemented in the slave operating system to generate tasks assigned by a task allocator of the master operating system as a task to perform the generated task; 상기 슬레이브 운영체제에 구현되어 상기 슬레이브 운영체제에서 수행되는 응용 태스크를 대신하여 상기 마스터 운영체제의 커널 서비스 핸들러에 커널 서비스를 요청하는 커널 서비스 요청자; 및A kernel service requester implemented in the slave operating system and requesting a kernel service from a kernel service handler of the master operating system on behalf of an application task performed in the slave operating system; And 상기 마스터 운영체제에 구현되어 상기 슬레이브 운영체제의 상기 커널 서비스 요청자에서 요청하는 커널 서비스를 제공하는 커널 서비스 핸들러;A kernel service handler implemented in the master operating system and providing a kernel service requested by the kernel service requester of the slave operating system; 를 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환시스템.Master / slave multiprocessor operating system conversion system configured to include. 제 1 항에 있어서, The method of claim 1, 상기 커널 서비스 요청자와 커널 서비스 핸들러는 슬레이브 운영체제와 마스터 운영체제간에 커널 서비스를 제공하는 방식의 RPC 메카니즘으로 구현되는 것을 특징으로 하는 마스터/슬레이브 멀티프로세서 운영체제 변환시스템.And the kernel service requester and the kernel service handler are implemented as an RPC mechanism in a manner of providing kernel service between a slave operating system and a master operating system. 제 2 항에 있어서, The method of claim 2, 상기 슬레이브 운영체제의 시스템 콜 레이어는 호출된 함수 이름과 인자값만을 추출하여 커널 서비스 요청자에게 전달하는 랩퍼로 구현되는 것을 특징으로 하는 마스터/슬레이브 멀티프로세서 운영체제 변환시스템.The system call layer of the slave operating system is a master / slave multiprocessor operating system conversion system, characterized in that implemented as a wrapper to extract only the function name and the argument value called to the kernel service requester. 제 3 항에 있어서,The method of claim 3, wherein 상기 커널 서비스 요청자는 호출된 API의 이름과 인자값을 메시지 형태로 만들어 마스터 운영체제의 커널 서비스 핸들러로 전송하는 것을 특징으로 하는 마스터/슬레이브 멀티프로세서 운영체제 변환시스템.The kernel service requester converts the name and the argument value of the called API into a message form and transmits it to the kernel service handler of the master operating system. 단일프로세서용 운영체제를 마스터/슬레이브 운영체제로 변환하기 위해 태스크 할당자를 추가하여 마스터 운영체제의 역할을 수행하는 태스크할당자 수정과정;Modifying a task allocator to perform a role of a master operating system by adding a task allocator to convert a single processor operating system into a master / slave operating system; 상기 태스크할당자 수정과정 후에 단일프로세서용 운영체제에서 예외 및 인터럽트 처리와 태스크 생성 및 스케쥴링에 필요한 코드만을 남기고 나머지를 모두 제거한 후, 태스크 디스패처를 추가하여 슬레이브 운영체제의 역할을 수행하도록 하는 슬레이브 운영체제 구축과정; 및After the task allocator modification process, leaving only the code necessary for exception and interrupt processing and task creation and scheduling in the uniprocessor operating system, and removes all the rest, the slave operating system building process for adding a task dispatcher to perform the role of a slave operating system; And 상기 슬레이브 운영체제 구축과정 후에 슬레이브 운영체제에서 수행되는 응용 태스크가 마스터 운영체제에서 제공하는 복수개의 서비스를 제공받을 수 있도록 커널 서비스 요청자와 커널 서비스 핸들러를 각각 슬레이브 운영체제와 마스터 운영체제에 추가하여 OS를 구축하는 멀티프로세서 최종구축과정;A multiprocessor for constructing an OS by adding a kernel service requester and a kernel service handler to the slave operating system and the master operating system, respectively, so that an application task executed in the slave operating system can receive a plurality of services provided by the master operating system after the slave operating system is constructed. Final construction process; 을 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환 방법.Master / slave multiprocessor operating system conversion method comprising a. 제 5 항에 있어서, The method of claim 5, wherein 상기 태스크할당자 수정과정은, The task assignee modification process, 기존의 단일프로세서용 운영체제의 내부에 태스크할당자를 구축하는 단일운영체제 내부구축단계; 및 A step of building a single operating system to build a task allocator in the existing single processor operating system; And 마스터 프로세서와 슬레이브 프로세서이외에 별도의 응용프로세스로 태스크 할당자를 구축하는 응용태스크형태 구축단계;An application task type building step of building a task allocator in a separate application process in addition to the master processor and the slave processor; 를 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환 방법.Master / slave multiprocessor operating system conversion method comprising a. 제 6 항에 있어서, The method of claim 6, 상기 단일운영체제 내부구축단계는, The single operating system internal construction step, 태스크 할당자를 운영체제 내부에 구현하는 경우, 사용자가 새로운 태스크의 수행을 요청하면 태스크 할당자가 어느 프로세서상에서 해당 태스크를 수행할 지를 먼저 결정하는 태스크체킹단계; 및In the case of implementing a task allocator in the operating system, a task checking step of first determining on which processor the task allocator performs the task when the user requests to perform a new task; And 상기 태스크체킹단계후에 마스터 프로세서가 선택될경우 요청된 태스크가 마스터 운영체제의 태스크 관리자를 통해 생성되고 스케쥴링되며, 특정 슬레이브 프로세서가 선택될경우 해당 슬레이브 운영체제의 태스크 디스패처를 통해 태스크가 생성되는 태스크디스패처 생성단계;When the master processor is selected after the task checking step, the requested task is generated and scheduled through the task manager of the master operating system, and when a specific slave processor is selected, a task dispatcher generating step of generating a task through the task dispatcher of the corresponding slave operating system. ; 를 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환 방법.Master / slave multiprocessor operating system conversion method comprising a. 제 7 항에 있어서, The method of claim 7, wherein 상기 응용태스크형태 구축단계는 요청된 태스크의 실행 위치에 따라 마스터 운영체제 또는 슬레이브 운영체제에게 태스크 생성을 요청하는 태스크생성 요청단계를 포함하여 구성되는 마스터/슬레이브 멀티프로세서 운영체제 변환 방법.The application task type building step comprises a task generation request step of requesting the master operating system or the slave operating system to generate a task according to the execution position of the requested task is configured master / slave multiprocessor operating system conversion method.
KR1020070002882A 2007-01-10 2007-01-10 An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same KR100879505B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070002882A KR100879505B1 (en) 2007-01-10 2007-01-10 An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070002882A KR100879505B1 (en) 2007-01-10 2007-01-10 An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same

Publications (2)

Publication Number Publication Date
KR20080065791A KR20080065791A (en) 2008-07-15
KR100879505B1 true KR100879505B1 (en) 2009-01-20

Family

ID=39816470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070002882A KR100879505B1 (en) 2007-01-10 2007-01-10 An Effective Method for Transforming Single Processor Operating System to Master-Slave Multiprocessor Operating System, and Transforming System for the same

Country Status (1)

Country Link
KR (1) KR100879505B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101260934B1 (en) 2011-12-07 2013-05-06 한국과학기술연구원 Method and system for application synchronization

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10365947B2 (en) 2014-07-28 2019-07-30 Hemett Packard Enterprise Development Lp Multi-core processor including a master core performing tasks involving operating system kernel-related features on behalf of slave cores

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867725A (en) 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
JP2002157132A (en) 2000-09-07 2002-05-31 Sony Computer Entertainment Inc Computer, its control method, and storage medium for storing the same method
JP2003099272A (en) 2001-09-20 2003-04-04 Ricoh Co Ltd Task switching system and method, dsp, and modem
KR20040094888A (en) * 2002-03-29 2004-11-10 썬 마이크로시스템즈, 인코포레이티드 Time-multiplexed speculative multi-threading to support single- threaded applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867725A (en) 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
JP2002157132A (en) 2000-09-07 2002-05-31 Sony Computer Entertainment Inc Computer, its control method, and storage medium for storing the same method
JP2003099272A (en) 2001-09-20 2003-04-04 Ricoh Co Ltd Task switching system and method, dsp, and modem
KR20040094888A (en) * 2002-03-29 2004-11-10 썬 마이크로시스템즈, 인코포레이티드 Time-multiplexed speculative multi-threading to support single- threaded applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101260934B1 (en) 2011-12-07 2013-05-06 한국과학기술연구원 Method and system for application synchronization

Also Published As

Publication number Publication date
KR20080065791A (en) 2008-07-15

Similar Documents

Publication Publication Date Title
US8239524B2 (en) Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
US9396021B2 (en) Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US8122132B2 (en) Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
US9063783B2 (en) Coordinating parallel execution of processes using agents
Shirahata et al. Hybrid map task scheduling for GPU-based heterogeneous clusters
Becchi et al. A virtual memory based runtime to support multi-tenancy in clusters with GPUs
KR100612059B1 (en) Resource balancing in a partitioned processing environment
EP2143001B1 (en) Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20100153965A1 (en) Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
RU2597556C2 (en) Computer cluster arrangement for executing computation tasks and method for operation thereof
WO2017070900A1 (en) Method and apparatus for processing task in a multi-core digital signal processing system
US20120266180A1 (en) Performing Setup Operations for Receiving Different Amounts of Data While Processors are Performing Message Passing Interface Tasks
US20090064168A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks
JP2004535615A (en) Shared I / O in partitioned processing environment
US20080229319A1 (en) Global Resource Allocation Control
JP2009169672A (en) Resource allocation system, resource allocation method and program
WO2008121917A2 (en) Homogeneous programming for heterogeneous multiprocessor systems
Agosta et al. Managing heterogeneous resources in hpc systems
Margiolas et al. Portable and transparent software managed scheduling on accelerators for fair resource sharing
US20200073707A1 (en) System and method for managing tasks and task workload items between address spaces and logical partitions
US11334477B2 (en) Virtualization of multiple coprocessor memory
Gai et al. Multiprocessor DSP scheduling in system-on-a-chip architectures
KR102086757B1 (en) GPU memory scheduler and GPU memory preemption method using the same
US20180024865A1 (en) Parallel processing apparatus and node-to-node communication method
US7594229B2 (en) Predictive resource allocation in computing systems

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
FPAY Annual fee payment

Payment date: 20130102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150105

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee