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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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
도 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
한편, 이러한 마스터 슬레이브방식의 시스템의 동작을 살펴보면, 먼저 마스터로 지정된 프로세서(100)는 전형적인 운영체제 서비스와 작업 배정을 담당하여 실행한다. 그리고, 나머지 슬레이브 프로세서들(200A-N)은 마스터 프로세서(100)의 기능제어에 따라 배정된 작업만을 처리한다. 만약 슬레이브 프로세서(200A-N)에서 파일 관리 및 동기화(synchronization)와 같은 운영체제 서비스가 필요한 경우 해당 슬레이브 프로세서(200A-N)는 마스터 프로세서(100)에게 그 처리를 요청하고 서비스를 제공받아 처리하게 된다.Meanwhile, referring to the operation of such a master slave system, the
그리고, 멀티프로세서를 구동하기 위한 또 다른 종래 기법인 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
여기서, 커널 서비스 요청자(30)와 커널 서비스 핸들러(40)는 슬레이브 운영 체제(200)와 마스터 운영체제(100) 간에 커널 서비스를 제공하는 방식으로 기존의 RPC 메카니즘으로 구현할 수 있다. Here, the kernel service requester 30 and the
태스크 할당자(10)는 마스터 프로세서에서 실행되면서 요청받은 태스크를 마스터 또는 특정 슬레이브 프로세서에게 배정할 때, 만약 요청받은 태스크가 인자를 필요로 하는 경우 해당 인자값을 함께 전달한다. When the
또한, 태스크 관리자(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
또한, 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
그리고, 슬레이브 운영체제 구축과정(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
또한, 멀티프로세서 최종구축과정(S400)중의 슬레이브 운영체제(200)와 마스터 운영체제(100) 간에 커널 서비스를 제공하는 방식은 종래의 RPC 메카니즘과 유사한 방법으로 구현한다. In addition, a method of providing kernel service between the
환언하면, 태스크할당자 추가과정(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
또한, 응용태스크형태 구축단계에는 도 5에 도시된 바와같이 태스크 할당자(10)를 응용 태스크의 형태로 구현하는 것을 보여주며, 이 경우에도 요청된 태스 크의 실행 위치에 따라 마스터 운영체제(100) 또는 슬레이브 운영체제(200)에게 태스크 생성을 요청한다. In addition, the application task form building step shows that the
태스크 할당자(10)를 응용 태스크로 구현하는 방법은 변경하고자 하는 단일프로세서의 내부구조가 복잡하여 커널의 수정이 어려울 때 유용하게 사용될 수 있는 방법이다. The method of implementing the
결론적으로 말해서, 본 발명은 태스크 스케쥴링 방법에 의존적이지 않기때문에 어떠한 스케쥴링 알고리즘하에서도 적용될 수 있다. 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
여기서, 도 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
즉, 본 발명의 방법에 의해 실현된 슬레이브 운영체제(200)는 단지 응용 태스크만을 수행시키는 서비스만을 제공하는 반면 통상적으로 운영체제가 제공하는 파일시스템 서비스, 네트워킹 서비스, 동적 메모리 관리 서비스 등은 제공하지 않는다. In other words, the
따라서 본 발명의 슬레이브 운영체제상에서 수행되는 응용 태스크가 운영체제 서비스를 필요로 하는 경우 마스터 운영체제(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
여기서, 커널 서비스 제공은 기존의 RPC 기법을 이용할 수 있다. In this case, the kernel service provision may use an existing RPC technique.
따라서, 슬레이브 운영체제의 시스템 콜 레이어(50)는 도 7에 도시된 바와같이 호출된 함수 이름과 인자값(arguments)만을 추출하여 커널 서비스 요청자(30)에게 넘겨주는 랩퍼(wrapper)로 구현되며, 커널 서비스 요청자는 호출된 API의 이름과 인자값을 메시지 형태로 만들어 마스터 운영체제의 커널 서비스 핸들러(40)에게 전송한다. Accordingly, the
그리고, 커널 서비스 핸들러(40)는 전송받은 메시지에 포함된 API 이름과 인자값을 이용하여 마스터 운영체제(100)의 실제 API를 호출하고, 그 결과값(return value)을 다시 메시지 형태로 커널 서비스 요청자에게 전송한다. 커널 서비스 요청자(30)는 전송받은 결과값을 해당 API를 호출했던 응용 태스크에게 반환한다. The
본원 발명에 의하면, 운영체제의 내부 기능이 복잡하여 불필요한 부분을 제거하는 과정이 어려운 경우 원래의 운영체제의 기능을 모두 유지하더라도 슬레이브 운영체제의 역할 수행에는 지장이 없다. 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)
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)
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)
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)
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 |
-
2007
- 2007-01-10 KR KR1020070002882A patent/KR100879505B1/en not_active IP Right Cessation
Patent Citations (4)
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)
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 |