KR100294876B1 - Operation system capable of dynamic reconfiguration and method for the same - Google Patents

Operation system capable of dynamic reconfiguration and method for the same Download PDF

Info

Publication number
KR100294876B1
KR100294876B1 KR1019950039222A KR19950039222A KR100294876B1 KR 100294876 B1 KR100294876 B1 KR 100294876B1 KR 1019950039222 A KR1019950039222 A KR 1019950039222A KR 19950039222 A KR19950039222 A KR 19950039222A KR 100294876 B1 KR100294876 B1 KR 100294876B1
Authority
KR
South Korea
Prior art keywords
module
operating system
algorithm
source code
reconfigurable
Prior art date
Application number
KR1019950039222A
Other languages
Korean (ko)
Other versions
KR970029024A (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 KR1019950039222A priority Critical patent/KR100294876B1/en
Publication of KR970029024A publication Critical patent/KR970029024A/en
Application granted granted Critical
Publication of KR100294876B1 publication Critical patent/KR100294876B1/en

Links

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE: An operation system capable of dynamic reconfiguration is provided to selectively execute a necessary algorithm without compiling, system shutdown and booting according to an application program by performing the algorithm desired for each kernel component in a kernel. CONSTITUTION: The method comprises a module configuration part(200) statically configuring the configurable modules, a module discriminator discriminating the module to be reconfigured and a module executor executing the reconfiguration by branching to the module to be reconfigured. The module configuration part comprises a compiler/loader/linker(202) making the operation system to an executable format by compiling/loading/linking the source code and a mapping table manager(204) making a mapping table by extracting the information for the various algorithm included in one data structure of source code and the algorithm module being executed. The module discriminator comprises a reconfiguration deciding part and a combination deciding part. The algorithm selected by the module configuration part and module discriminator is called and executed by the module executor.

Description

동적 재구성이 가능한 운영체제 및 운영체제의 동적 재구성 방법Dynamic Reconfiguration and Operating System Dynamic Reconfiguration Method

제1도는 본 발명이 수행되는 운영체제의 환경을 도시한 것이다.1 illustrates the environment of an operating system on which the present invention is performed.

재2도는 본 발명의 기능적 구성을 도시한 것이다.2 shows the functional configuration of the present invention.

제3도는 제2도의 모듈구성부의 상세도를 도시한 것이다.3 shows a detailed view of the module configuration of FIG.

재4도는 제2도의 모듈 식별부의 상세도를 도시한 것이다.4 is a detailed view of the module identification unit of FIG.

제5도는 모듈구성부의 시간에 따른 동작을 흐름도로 도시한 것이다.5 is a flowchart showing the operation of the module unit over time.

제6도는 모듈식별부의 시간에 따른 동작을 흐름도로 도시한 것이다.6 is a flowchart illustrating the operation of the module identification unit over time.

제7도는 본 발명의 일실시예를 설명하기 위한 원시코드로 된 자료구조를 도시한 것이다.7 shows a data structure in source code for explaining an embodiment of the present invention.

제8도는 본 발명의 일실시예를 설명하기 위한 결합표의 한 예를 도시한 것 이다.Figure 8 shows an example of a combination table for explaining an embodiment of the present invention.

제9도는 본 발명의 일실시예를 설명하기 위한 스케쥴링 알고리즘의 예를 도시한 것이다.9 shows an example of a scheduling algorithm for explaining an embodiment of the present invention.

본 발명은 단일 프로세서 시스템의 운영체제에 관한 것으로서, 특히 단일 프로세서 시스템의 동적 재구성이 가능한 운영체제 및 그 운영체제를 동적으로 재구성하는 방법에 관한 것이다.The present invention relates to an operating system of a single processor system, and more particularly, to an operating system capable of dynamic reconfiguration of a single processor system and a method of dynamically reconfiguring the operating system.

각종 자료들을 저장할 수 있는 기억 장치와 외부의 신호들을 처리할 수 있는 입출력 장치(I/0 devices), 그리고 이러한 신호들과 자료들을 적절한 형태로 처리하고 관리할 수 있는 중앙처리장치로 구성되어 있는 단일 프로세서 시스템(Single Processor System)에 있어서, 상기 단일 프로세서 시스템에서 수행되는 운영체제는 최근 들어 여러 각도에서 기존의 설계 개념과는 다른 개념으로 개발이 이루어지고 있다.It is composed of a memory device that can store various data, I / 0 devices that can process external signals, and a central processing unit that can process and manage these signals and data in a proper form. In a single processor system, an operating system implemented in the single processor system has been recently developed in a different concept from a conventional design concept from various angles.

지금까지의 운영체제는 고정된 구조를 유지하고 있기 때문에 처리해야 할 정보량이 많아진다거나 그 정보간의 관계가 복잡해지는 다양한 응용들에 대해서는 유연하게 대처하는 데 어려움이 컸다. 즉 다양한 응용분야 각각에 적합한 별도의 운영체제를 다시 설계해야 했다. 이런 상황하에서 나날이 늘어나는 다양한 응용분야를 고려하여 여러 응용범위에 맞는 운영체제를 설계하여 각 상황에 따라 필요한 운영체제를 새로 만들지 않고 쉽게 재구성하기만 함으로써 원하는 운영체제를 제공한다는 운영체제 설계에 대한 새로운 개념이 나오게 되었다. 이러한 운영체제를 적용하는 기종의 범주로는 슈퍼컴퓨터, 메인프레임, 미니컴퓨터, 웍스테이션, 퍼스널 컴퓨터 등이 될 수 있다.Up to now, since the operating system maintains a fixed structure, it has been difficult to flexibly deal with various applications in which the amount of information to be processed or the relationship between the information is complicated. This meant redesigning a separate operating system for each of the various applications. Under these circumstances, a new concept of operating system design has emerged that provides an operating system by designing an operating system suitable for various application ranges and easily reconfiguring the operating system for each situation in consideration of various applications that are increasing day by day. The category of the model applying the operating system may be a supercomputer, a mainframe, a minicomputer, a workstation, a personal computer, and the like.

그러므로 상기와 같은 여러 기종의 응용들에 맞는 운영체제를 설계하기 위해서는 하나의 공통적인 개념의 도입이 필요하게 되었는데 그것이 마이크로 커널이다. 마이크로 커널은 그 용어에서 시사하는 바와 같이 기존의 운영체제에 비해 양적인 측면, 즉 제공되는 기능(functionality)들이 적게 모여있음을 의미한다.Therefore, in order to design an operating system suitable for various types of applications as described above, it is necessary to introduce a common concept, which is a microkernel. As the term suggests, the microkernel means that there are fewer quantitative aspects, that is, the functionality provided, than the existing operating system.

다시 말하자면 제1도에 도시된 바와 같이 운영체제(100)를 커널부(120)와 서버부(110)로 나눌 때, 커널부(120)는 운영체제에서 관리하는 다중의(multiple) 프로세스들(processes)에 대한 생성 및 제거등을 담당하는 프로세스 관리부(122), 프로세스간 통신을 위한 기법을 위한 자료구조와 알고리즘을 관리하는 프로세스간 통신 관리부(Interprocess Communication Management,126), 그리고 메모리에서 프로세스가 수행되므로 이를 관리하기 위한 메모리 관리부(124)와 같은 주요 기능이 있고, 그 외 인터럽트 처리를 담당하는 부분, 디바이스에 관련된 일을 담당하는 디바이스 관리부가 있을 수 있다.In other words, when the operating system 100 is divided into a kernel unit 120 and a server unit 110 as illustrated in FIG. 1, the kernel unit 120 processes multiple processes managed by the operating system. Process management unit 122 that is responsible for creation and removal of interprocess communication, interprocess communication management unit managing data structures and algorithms for interprocess communication techniques (Interprocess Communication Management, 126), and because the process is performed in memory There is a main function such as the memory management unit 124 for management, and there may be another portion in charge of interrupt processing, and a device management portion in charge of work related to the device.

한편 서버부(110)는 상기 커널부에서 제공하지 않고 있는 여러 가지 서비스를 지원하는데, 예를 들면 파일 시스템을 지원할 때 사용하는 파일 관리부(File Management,112), 각종 네트웍 서비스를 관리하기 위한 네트웍 관리부(114), 커널부에서 지원하는 메모리 관리부를 더욱 확장하여 가상 메모리까지 지원하는 가상 메모리 관리부(116)등이 있다.Meanwhile, the server unit 110 supports various services not provided by the kernel unit, for example, a file management unit 112 used to support a file system, a network management unit for managing various network services. (114), the virtual memory management unit 116 to further extend the memory management unit supported by the kernel to support the virtual memory.

이와 같이 기능적으로 꼭 필요한 부분은 커널부에 두고, 그외 운영체제의 기능을 확장한다거나 강화하는 측면이 강한 부분은 서버부에 두어 분리함으로써 운영체제의 설계시 많은 잇점을 가지게 된다. 커널부의 서버부에 대한 인터페이스만 잘 정의되어 있으면 운영체제가 쉽게 확대 및 축소가 될 수 있으며(Scalability), 커널부에는 주로 하드웨어 의존부(Hardware Dependent)가 존재하게 되므로 개발된 운영체제가 다른 하드웨어 시스템에 이식될 때 지역화된 부분에 대해서만 수정이 가해지므로 개발 시간이 줄어드는 것과 같은 유지 및 보수성(Maintainability)이 좋아지는 점 등이 있다.Such functionally necessary parts are placed in the kernel part, and other parts with strong aspects of extending or strengthening the functions of the operating system are separated in the server part, thereby having many advantages in the design of the operating system. If only the interface to the server part of the kernel part is well defined, the operating system can be easily scaled up and down (Scalability), and since the kernel part mainly contains hardware dependencies, the developed operating system is ported to other hardware systems. In this case, only localized parts can be modified to improve maintenance and maintainability, such as reducing development time.

이러한 점에 착안하여 상기에서 살펴본 바와 같이 여러 가지 응용 시스템에 적합한 구조의 운영체제는 재설계의 노력이 필요치 않고 단지 운영체제의 구성(Configuration)만을 바꿈으로써 재설계 문제가 해결된다. 이것이 바로 커널부와 서버부를 분리하여 얻게되는 잇점을 극대화한 커널부의 마이크로화이다.With this in mind, as described above, an operating system having a structure suitable for various application systems does not require redesigning efforts, and the redesign problem is solved only by changing the configuration of the operating system. This is the micronization of the kernel, which maximizes the benefits of separating the kernel and server.

마이크로 커널은 커널부의 역할을 더욱 단순화시켜서 제공할 수 있는 서비스를 낮은 수준의 시스템 호출로 만들고 이를 이용하는 부분은 서버부에 이동시켜 탄생된 것이다. 따라서 운영체제의 관점에서 볼 때에 전략(policy)부와 처리 (mechanism)부가 분리되어 있는 형태가 되었다.The microkernel was created by simplifying the role of the kernel, making services that can be provided with low-level system calls, and moving the parts to the server. Thus, from the operating system's point of view, the strategy and processing parts are separated.

이에 마이크로 커널에 있는 여러 가지 시스템 호출은 대상 하드웨어를 추상화 하는 정도까지 이르게 되어서 하드웨어 독립적인 부분과 하드웨어 의존적인 부분이 철저히 나뉘어져 상기에서 설명한 잇점들 외에 작은 단위로 기능들이 쪼개져 있음으로 모듈화를 구현하기 쉽기 때문에 모듈성이 중가되므로 소프트웨어의 생산성이 높아진다. 이러한 예로 프로세스 관리부에서 담당하는 프로세스들의 스캐쥴링 알고리즘이 전략부에 해당되므로 다양한 전략이 있을 수 있다. 따라서 응용시스템에 따라 스케쥴링 알고리즘이 달라지므로 이를 서버부에서 구현하도록 하는 것이 다.As a result, various system calls in the microkernel lead to an abstraction of the target hardware, so that hardware independent parts and hardware dependent parts are thoroughly divided, and functions are divided into small units in addition to the advantages described above, making it easy to implement modularity. This increases the productivity of the software by increasing modularity. In this example, since the scheduling algorithm of processes in charge of the process management unit corresponds to the strategy unit, there may be various strategies. Therefore, the scheduling algorithm varies depending on the application system, so it is to be implemented in the server part.

이와같이 운영체제를 두 가지 주요 부분으로 나누어서 구현하는 것은 기존의 운영체제가 가지고 있는 다양한 응용 시스템에 대해 적응할 수 없는 점을 극복하여 재설계의 과중한 부담을 덜어주어 여러 가지 시스템에 쉽게 적용 가능하지만, 수행되는 운영체제와 다른 구조의 각종 서비스를 동적으로 재구성하기는 어렵다. 다시 말해서 최근에 나오고 있는 마이크로 커널의 경우 상대적으로 새로운 알고리즘을 커널내에 적용하기는 기존의 운영체제들 보다 쉬운 편이지만 근본적으로는 별도의컴파일을 거쳐 새로운 커널의 실행 코드를 만든 후 시스템 전체를 종료시켜서 초기화부터 다시 새로 수정된 커널을 실행시키는 일련의 과정을 거쳐야만 새롭게 적용된 알고리즘을 실제로 커널 내에서 실행할 수 있다. 이러한 과정은 상술한 바와 같이 시간이 많이 소요되고 복잡하기 때문에 시스템의 운영에 있어서 불필요한 작업부하(overhead)를 발생시키는 요인이 되고 있다. 그러므로 동적 재구성이 가능한 운영체제를 설계함에 있어서는 적합한 구조가 어떤 것인지를 연구하고 그에 맞도록 커널부가 설계되어야 한다.The implementation of the operating system divided into two main parts can be easily applied to various systems by relieving the heavy burden of redesign by overcoming the inability to adapt to various application systems of the existing operating system. It is difficult to dynamically reconfigure various services with different structures. In other words, it is easier to apply a new algorithm to the kernel in recent years than the existing operating systems, but it is basically done by separate compilation, and after executing the new kernel, the entire system is shut down and initialized. From now on, the newly applied algorithm can actually be executed in the kernel only after a series of processes are executed. This process is time-consuming and complicated as described above, which causes unnecessary overhead in operating the system. Therefore, in designing an operating system that can be dynamically reconfigured, it is necessary to study what kind of architecture is suitable and to design the kernel unit accordingly.

따라서 본 발명은 상술한 문제점을 해결하기 위해 창출된 것으로서, 일단 하나의 알고리즘을 선택해 그에 맞는 커널을 사용하다 다른 알고리즘이 필요한 경우 컴파일, 시스템 종료, 시스템 재시작 등의 과정을 거치는 기존의 구조와는 달리, 커널의 각 요소별로 필요한 알고리즘들을 모두 커널 내에 구현해 놓고 이들을 테이블에 등록시켜 응용 프로그램에 따라 별도의 컴파일, 시스템 종료, 시스템 재시작 등의 과정없이 구현된 알고리즘 중 그때 그때 필요한 알고리즘을 선택하여 실행할 수 있도록 하는 동적 재구성이 가능한 운영체제 및 운영체제를 동적으로 재구성하는 방법을 제공함에 그 목적이 있다.Therefore, the present invention was created to solve the above-mentioned problems, and when one algorithm is selected and a kernel is used accordingly, unlike the existing structure that undergoes a process of compiling, shutting down, restarting, etc. when another algorithm is needed. In addition, the necessary algorithms for each element of the kernel are implemented in the kernel, and they are registered in the table so that the user can select and execute the algorithms needed at that time without any separate compilation, shutdown, or system restart depending on the application. Its purpose is to provide an operating system capable of dynamic reconfiguration and a method for dynamically reconfiguring the operating system.

상기의 목적을 달성하기 위한 본 발명에 따른 단일 프로세서 시스템상에서 수행되고 있는 운영체제를 다른 특성을 가진 운영체제로 재구성하는 동적 재구성이 가능한 운영체제는 운영체제의 원시코드를 작성하여 재구성이 가능한 모듈로 만들고, 이를 통해 재구성이 가능한 모듈과 현재 사용되고 있는 모듈에 관한 정보를 가진 테이블(결합표)을 생성하는 모듈 구성부; 운영체제가 수행 도중에 동적으로 운영체제의 재구성(reconfiguration)이 필요할 경우, 상기 모듈 구성부의 결합표를 이용하여 재구성할 모듈을 찾아서 원하는 모듈을 선택하게하여 운영체제를 재구성하게 하는 모듈 식별부: 상기 모듈 식별부에서 선택된 모듈을 실행하는 모듈 실행부를 포함함을 특징으로 한다.In order to achieve the above object, a dynamic reconfigurable operating system for reconfiguring an operating system performed on a single processor system according to the present invention into an operating system having different characteristics makes the module reconfigurable by writing the source code of the operating system, thereby A module configuration unit for generating a table (combination table) having information on a module which can be reconfigured and a module currently being used; If the operating system needs to dynamically reconfigure the operating system, the module identification unit for reconfiguring the operating system by selecting a desired module using a combination table of the module configuration unit may select the desired module. And a module execution unit that executes the selected module.

그리고 상기의 목적을 달성하기 위한 본 발명에 따른 단일 프로세서 시스템 상에서 수행되고 있는 운영체제를 다른 특성을 가진 운영체계로 재구성하는 방법 은 운영체제의 원시코드를 실행가능한 형태의 모듈로 구성하고, 재구성할 수 모듈에 관한 정보를 가진 테이블(결합표)을 생성하는 제1단계 : 운영체제가 실행 중 상기 단계에서 생성된 재구성 가능 모듈에 관한 정보의 내용을 동적으로 변경하여 현재의 운영체제를 동적으로 재구성하는 제2단계: 및 상기 변경된 모듈에 대한 다음번 호출에는 상기 동적 재구성 된 모듈을 실행하는 제3단계를 포함함을 특징으로 한다.And a method for reconfiguring the operating system running on a uniprocessor system according to the present invention to an operating system having different characteristics to achieve the above object is composed of a module of the executable form of the operating system, reconfigurable module A first step of generating a table (combination table) having information on the second step: Dynamically reconfiguring the current operating system by dynamically changing the content of the information about the reconfigurable module generated in the step while the operating system is running And the next call to the modified module includes a third step of executing the dynamically reconfigured module.

이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 본 발명이 동작되는 시스템 구조는 제1도의 운영체제 계층에서 수행되는 것을 전제로 제2도에 도시된 것과 같은 기능적 구성으로 되어있다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. The system architecture in which the present invention operates has a functional configuration as shown in FIG. 2, assuming that it is performed in the operating system layer of FIG.

제2도는 본 발명의 기능적 구성도를 도시한 것으로서 모두 세 개의 기능 모듈로 구성되어 있는데, 재구성이 가능한 모듈을 정적으로 구성하고 있는 모듈구성부(200), 재구성(reconfigurable)을 하고자 하는 모듈들이 어떤 것인지를 식별하는 모듈식별부(210), 그리고 재구성될 모듈로 분기하여 실제 실행을 담당하는 모듈 실행부(220)로 이루어져 있다.2 is a functional diagram of the present invention is composed of three functional modules, all of which consists of a module configuration unit 200, statically reconfigurable module, the modules to be reconfigured (reconfigurable) It consists of a module identification unit 210 for identifying whether the module execution unit 220 responsible for the actual execution by branching to the module to be reconfigured.

상기 모듈구성부(200)를 좀더 상세히 나타내면 제3도와 같다. 운영체제를 설계한 원시코드(Source Code)를 컴파일하고 링크하고 로드하여 운영체제를 실행가능한 형태로 만드는 컴파일러/링커/로더(Complier/Linker/Loader,202)와 상기 원시코드에서 하나의 자료구조내에 포함된 여러 알고리즘들과 현재 수행중인 알고리즘 모듈의 정보를 추출하여 결합표를 만드는 결합표 관리부(204)로 구성된다. 상기 모듈구성부(200)는 수행 가능한 운영체제의 코드들과 모듈들의 결합표(Mapping Table,208)를 출력한다.The module configuration unit 200 is shown in more detail as shown in FIG. 3. Compiler / Linker / Loader (202) and Compiler / Linker / Loader (202) to compile, link, and load the source code that design the operating system to make the operating system executable. It is composed of a combination table management unit 204 for extracting the information of the various algorithms and the algorithm module currently being executed to create a combination table. The module configuration unit 200 outputs a mapping table (208) of codes and modules of the operating system that can be executed.

상기 결합표는 본 발명의 주요 부분으로서, 각각의 커널 요소에 대해 적용가능한 여러 운영 알고리즘들을 커널내에 모두 저장해 놓은 상태에서 현재 어떤 모듈이 어떤 알고리즘을 사용하고 있으며, 선택하여 사용가능한 알고리즘이 어떤 것인지 등의 정보를 관리하는 테이블이다. 그리고 상기 결합표는 제8도에 도시된 바와 같이 운영체제에서 사용될 수 있는 모듈화된 시스템 호출이나 각종 알고리즘들의 리스트, 한 항목에서 재구성될 수 있는 최대 알고리즘 수 및 현재 채택되어 사용되고 있는 알고리즘의 번호로 구성된다.The combination table is a main part of the present invention, which modules currently use which algorithms and which algorithms are selected and which algorithms can be selected and used, with various operating algorithms applicable to each kernel element stored in the kernel. Information management table. And the combination table is composed of a modular system call or a list of various algorithms that can be used in the operating system, the maximum number of algorithms that can be reconstructed in one item, and the number of algorithms currently adopted and used as shown in FIG. .

제4도는 상기 제2도의 모듈식별부(210)를 좀더 상세히 도시한 것으로서, 상기 모듈식별부(210)는 운영체제가 수행되고 있는 동적인 상황에서 재구성이 가능한 모듈이 불리우면 그것이 재구성 가능한지를 판단하는 재구성 판단부(212)와 재구성이 가능하다면 어떤 알고리즘과 결합되었는 지를 판단하기 위해 상기 모듈구성부(200)에서 생성된 결합표를 이용하여 적절한 알고리즘으로 분기하게 하는 결합판단부(214)로 구성된다. 상기 모듈식별부(210)의 출력은 적절히 선택된 알고리즘이다.4 illustrates the module identification unit 210 of FIG. 2 in more detail. The module identification unit 210 determines whether a reconfigurable module is called in a dynamic situation in which an operating system is being performed. It is composed of a reconstruction determination unit 212 and a combination determination unit 214 for branching to an appropriate algorithm by using a combination table generated in the module configuration unit 200 to determine which algorithm is combined with the reconstruction possible. . The output of the module identifier 210 is an appropriately selected algorithm.

상기 모듈구성부(200)와 모듈식별부(210)에 의해 선택된 알고리즘은 제2도에 도시된 상기 모듈실행부(220)에서 최종적으로 불리워져서 실행에 옮겨짐으로써 원하는 특성의 운영체제의 구축이 완료된다.The algorithm selected by the module configuration unit 200 and the module identification unit 210 is finally called in the module execution unit 220 shown in FIG. 2 and transferred to execution to complete the construction of an operating system of desired characteristics. .

이상에서 상기 모듈구성부(200)는 운영체제의 초기 생성시 운영체제의 원시코드안에 포함되어 결합표까지 '정적'으로 생성되는 상태이며, 모듈식별부(210)는 운영체제가 생성되어 특정한 시스템에서 수행되고 있을 때 원하는 알고리즘 즉 원하는 운영체제를 수행하도록 결합표에 의해 적절히 식별하게 하는 '동적'인 부분이다.In the above, the module configuration unit 200 is included in the source code of the operating system when the initial generation of the operating system is generated in a 'static' up to the combination table, the module identification unit 210 is generated by the operating system is performed in a specific system It is the 'dynamic' part that, when present, allows for proper identification by join tables to perform the desired algorithm, that is, the desired operating system.

한편 상기와 같은 모듈별 구성을 시간적 흐름의 관점에서 순서도로 도시한 것이 제5도와 제6도이다. 제5도는 상기 모듈구성부(200)의 순서도를 도시한 것으로서, 운영체제가 생성되기 전 상태에서 재구성이 가능하도록 같은 기능을 하는 복수개의 모듈을 설계하고 편집한다. (500단계) 그리고 나서 상기 설계 및 편집된 운영체제의 원시코드를 컴파일하고 링크하여 수행될 이미지를 대상이 되는 시스템의 메모리에 로딩한 다음(510단계), 결합표를 생성함으로써(520단계), 재구성 가능한 운영체제가 만들어진다.On the other hand, FIG. 5 and FIG. 6 show the above-described module configuration in a flow chart in terms of time flow. FIG. 5 is a flowchart illustrating the module configuration unit 200. In FIG. 5, a plurality of modules having the same function are designed and edited so as to be reconfigured in a state before an operating system is generated. (Step 500) Then, the source code of the designed and edited operating system is compiled and linked to load the image to be performed into the memory of the target system (step 510), and then generate a binding table (step 520). A possible operating system is created.

제6도는 상기 모듈 식별부(210)의 순서도를 도시한 것으로서, 운영체제가 수행되고 있는 중에(600단계), 운영체제 내에서 여러 개의 알고리즘으로 이루어지는 모듈들을 호출하면(610단계), 호출된 모듈이 재구성이 가능한 상태인지를 검사한다. (620단계) 검사한 결과 재구성이 불가능하면 다른 선택이 없다는 것을 의미하므로 모듈을 그대로 수행하고(630단계), 재구성이 가능하면 상기 모듈 구성부에서 작성한 결합표를 검색하여(640단계), 적절한 인덱스를 구하여 그것에 맞도록 원하는 모듈로 분기한다. (650단계)FIG. 6 illustrates a flowchart of the module identification unit 210. When the operating system is running (step 600), when a module consisting of several algorithms is called in the operating system (step 610), the called module is reconfigured. Check if this is possible. If it is impossible to reconstruct (step 620), it means that there is no other choice, so the module is performed as it is (step 630). Obtain and branch to the desired module to match it. (Step 650)

한편 본 발명에 따른 동적으로 재구성이 가능한 운영체제에서 운영체제가 어떻게 동적으로 재구성될 수 있는 가를 설명하면 다음과 같다.Meanwhile, the operating system may be dynamically reconfigured in the dynamically reconfigurable operating system according to the present invention as follows.

제5도에서 도시하였듯이 정적인 상태에서 생성되는 것은 결합표이다. 결합표는 제3도에서 설명하였듯이 동적인 상태에서 어떤 모듈이 어떤 특정 알고리즘을 사용하고 있으며 또한 사용할 수 있는가에 관한 정보를 담고 있다. 따라서 결합표의 내용이 본 발명의 핵심이라고 할 수 있는 데 이를 구체적으로 설명하기 위해 운영체제의 핵심(Core) 이라고 할 수 있는 프로세스의 스케쥴링을 예로 들어 설명하기로 한다.As shown in FIG. 5, the static table is a binding table. The association table contains information about which specific algorithm is used and can be used by a module in the dynamic state as described in Figure 3. Therefore, the contents of the binding table can be said to be the core of the present invention. In order to explain in detail, the scheduling of a process that can be referred to as the core of the operating system will be described as an example.

이하 다른 기능을 하는 것도 마찬가지의 과정을 거치므로 여기서 설명은 생 략한다.Hereinafter, other functions go through the same process, and thus description thereof will be omitted.

제7도는 운영체제가 동적 재구성이 가능하도록 하기 위한 프로세스 스케쥴링에 정책(policy)에 관한 내부 자료구조의 일부를 보인 원시코드이다. 이는 제5도의 첫 번째 과정(500단계)에 해당하는 것으로서, 설계하고자 하는 운영체제가 어떠한 프로세스 스케쥴링 알고리즘을 지원할 것인가를 결정하여 그에 대한 코드를 설계/구현하는 부분이다. 우선순위에 기초한(priority-based) 알고리즘과 라운드-로빈(round-robin), 레이트-모노토닉(late-monotonic) 등의 알고리즘들을 Schedule_PTR 이라는 구조 내에 정의하고 있다. 그 다음 제5도의 두번째 단계(510단계), 즉 이것과 함께 다른 모듈등이 컴파일 되면 커널내에는 제8도와 같은 결합표가 생성된다. 제8도의 결합표 중 Schedule모듈에는 사용가능한 알고리즘이 상기에서 언급한 3개 외에 2개가 더해 5개 있으며, 이 가운데 2번째 알고리즘(Round-Robin)이 현재 Schedule 모듈에서 사용되고 있음을 나타낸다. 그리고 replacepage 모듈에는 3가지의 알고리즘이 적용 가능하고 이 중 첫 번째 알고리즘이 현재 사용중임을 나타내고 있다.Figure 7 is source code that shows part of the internal data structure for policy in scheduling the operating system to enable dynamic reconfiguration. This corresponds to the first process (step 500) of FIG. 5, which determines which process scheduling algorithm the operating system to design supports and designs / implements codes for. Priority-based, round-robin, and late-monotonic algorithms are defined in a structure called Schedule_PTR. Then, when the second step of step 5 (step 510), that is, other modules and the like, is compiled, a coupling table as shown in Fig. 8 is generated in the kernel. In the combination table of FIG. 8, the Schedule module has five available algorithms in addition to the three mentioned above, and the second algorithm (Round-Robin) is currently used in the Schedule module. In addition, three algorithms can be applied to the replacepage module, indicating that the first one is currently in use.

한편 운영체제가 프로세스들로 이루어진 응용 프로그램을 수행하고 있을 때 불리워지거나(시스템 호출:결합표에서 3번째 항목인 tcreate) 또는 운영체제 내부의 요구에 의해 불리워지는 Schedule()과 같은 모듈에 대해 동작되는 상황을 흐름도로 도시하면 제6도와 같이 나타낼 수 있다On the other hand, it is called when the operating system is running an application made up of processes (system call: tcreate, the third item in the combination table) or operating on a module such as Schedule () called by internal operating system requests. When shown in a flow chart, it can be represented as shown in FIG.

예를 들어 어떤 이유로 인해 운영체제가 제어권을 넘겨받아 적절히 스케쥴링을 하는 상황이라고 가정하자. 그러면 제9도와 같은 상태의 스케쥴링을 받는 모듈까지 진행되었다고 하였을 때(제6도의 610단계), 제6도에서 보듯이 현재 수행해야 되는 알고리즘의 모듈을 실행하기에 앞서서 해당 모듈이 새로운 알고리즘으로 재구성해야 하는 모듈인지 검사하여(620단계), 재구성 모듈이 아니면 바로 다음을 수행하지만(630단계), 재구성시에는 Schedule()에 연결되어 있는 현재의 실행 알고리즘을 찾기위해 제8도의 결합표를 검색한다. (640단계) Schedule()의 현재 알고리즘은 2번째이므로 새로운 알고리즘 모듈의 번호를 매개변수(parameter)로 받아서 이를 결합표의 현재 실행 항목에 기록하여 다음번 실행에서는 변경된 알고리즘을 실행할 수 있도록 한다.For example, assume that for some reason the operating system takes over control and schedules it properly. Then, if the module has been scheduled to the same state as in FIG. 9 (step 610 in FIG. 6), as shown in FIG. 6, the module must be reconfigured with the new algorithm before executing the module of the algorithm to be performed. If it is not a reconstruction module (step 620), the next step is performed immediately (step 630). However, during reconfiguration, the binding table of FIG. 8 is searched to find a current execution algorithm connected to Schedule (). (Step 640) Since the current algorithm of Schedule () is the second, it receives the number of the new algorithm module as a parameter and records it in the current execution item of the join table so that the next algorithm can be executed.

즉 제7도의 자료구조상의 2번째 항목인 Round Robin이 진정한 스케쥴러가 되어 함수 포인터 형태로 수행되도록 분기하게 된다.That is, Round Robin, the second item in the data structure of FIG. 7, becomes a true scheduler and branches to be executed as a function pointer.

그런데 만약 어떤 상황이 발생하여 위에서 선택한 스케쥴링 알고리즘이 주기적 스케쥴링을 하는 레이트 모노토닉(Late Monotonic)으로 바뀌어야 할 필요가 있은 때에는 제8도의 결합표에서 3번째 내용인 현재 알고리즘의 숫자를 3으로 바꾸어 주면된다. 이와 같이 갖추어져 있는 각종 알고리즘들이 동적으로 쉽게 변경될 수 있으므로 앞에서 이야기한 대로 다양한 특성에 맞는 운영체제로서의 역할을 할 수 있게 된다.However, if a situation arises and the scheduling algorithm selected above needs to be changed to Rate Monotonic, which is scheduled periodically, change the number of the current algorithm, 3rd in the combination table of FIG. 8, to 3 . Since various algorithms can be dynamically changed easily, as described above, it can serve as an operating system suitable for various characteristics.

상술한 바와 같이 본 발명에 의하면, 지금까지의 운영체제가 고정된 구조를 유지하고 있어서 처리해야 할 정보가 많아질 뿐만 아니라 정보간의 관계도 복잡해지는 다양한 응용들에 대해 유연하게 대처하지 못하고 그 분야에 맞는 운영체제를 재설계해야 하거나 새로운 운영체제를 이식해야 하는 비용이 있었으나, 동적으로 재구성이 가능한 운영체제 구조를 만듦으로써 운영체제는 사용자(End-User, Application Programmer)입장에서 볼 때에는 전혀 다른 두 가지 운영체제로 보일 수가 있고, 이에 따라 다양한 응용들에 맞는 특성화된 운영체제를 동적으로 재구성할 수 있게 되며 상기와 같은 비용을 절감할 수 있다. 이러한 예로서 주기적인 작업을 강조하는 것 즉 외부장치들에서 발생되는 입출력 자료들의 관리를 위한 프로세스 같은 것을 처리할 때에는 그에 대한 스케쥴링 알고리즘이 주기적 스케쥴링(Periodic Scheduling)에 맞는 레이트 모노토닉(Late-Monotonic)알고리즘이 수행되도록 하며 시간에 따른 자원의 공정한 분배가 목적인 것에는 시간공유(Time Sharing)가 가능한 라운드로빈(Round Robin)알고리즘이 적합할 것이다.As described above, according to the present invention, since the operating system up to now maintains a fixed structure, it does not flexibly cope with various applications in which not only the information to be processed is increased but also the relationship between the information is complicated, and it is suitable for the field. There was a cost to redesign the operating system or to port a new operating system, but by creating a dynamically reconfigurable operating system architecture, the operating system could be seen as two completely different operating systems from the standpoint of end-user and application programmers. As a result, it is possible to dynamically reconfigure a specialized operating system for various applications and to reduce the above costs. As an example, when emphasizing periodic tasks, ie processes for managing I / O data generated from external devices, the scheduling algorithm for them is rate-monotonic for periodic scheduling. A round robin algorithm capable of time sharing would be suitable for the purpose of allowing the algorithm to be performed and for the fair distribution of resources over time.

그리고 운영체제의 기능들이 독립된 기능들이 독립된 작은 단위로 쪼개겨 있으므로 모듈화를 구현하기 쉽기 때문에 모듈성이 증가되므로 소프트웨어의 생산성이 높아진다. 이러한 예로 프로세스 관리부에서 담당하는 프로세스들의 스케쥴링 알고리즘이 다양한 응용에 따라 여러가지 전략이 있을 수 있다.In addition, since the functions of the operating system are divided into independent small units, it is easy to implement modularity, so the modularity is increased, thereby increasing the productivity of the software. For example, the scheduling algorithm of processes in charge of the process management unit may have various strategies according to various applications.

Claims (4)

단일 프로세서 시스템 상에서 수행되고 있는 운영체제를 다른 특성을 가진 운영체제로 재구성하는 동적 재구성이 가능한 운영체제에 있어서, 운영체제의 원시코드를 작성하여 실행가능한 형태를 만드는 컴파일러/링커/로더; 상기 원시코드에서 하나의 자료구조 내에 포함된 여러 알고리즘들과 현재 수행중인 알고리즘 모듈의 정보를 추출하여 결합표를 생성하는 결합표 관리부; 운영체제가 수행되고 있는 동적인 상황에서 재구성이 가능한 모듈이 불리우면 그것이 재구성 가능한지를 판단하는 재구성 판단부; 상기 재구성 판단부에서 재구성이 가능하다고 판단할 경우 어떤 알고리즘과 결합되었는지를 판단하기 위해 상기 결합표 관리부에서 생성된 결합표를 이용하여 적절한 알고리즘으로 분기하게 하고, 만일 상기 재구성 판단부에서 재구성이 가능하지 않다고 판단할 경우는 모듈을 그대로 수행하게 선택하는 결합 판단부; 및 상기 결합 판단부에서 선택된 모듈을 실행하는 모듈 실행부를 포함함을 특징으로 하는 단일 프로세서 시스템의 동적재구성이 가능한 운영체제.CLAIMS 1. A dynamic reconfigurable operating system for reconfiguring an operating system running on a single processor system into an operating system having different characteristics, the operating system comprising: a compiler / linker / loader for creating an executable form by writing source code of the operating system; A combined table manager for generating a combined table by extracting information of various algorithms included in one data structure and an algorithm module currently being executed from the source code; A reconfiguration determining unit that determines whether a reconfigurable module is called in a dynamic situation in which an operating system is being executed; If the reconstruction determining unit determines that reconstruction is possible, to determine which algorithm is combined, the branching to the appropriate algorithm using the combined table generated by the combined table management unit, if the reconstruction determination unit is not possible If not, the combination determination unit for selecting to perform the module as it is; And a module execution unit configured to execute the module selected by the combination determination unit. 제1항에 있어서, 상기 결합표는 재구성이 가능하도록 설계된 모듈의 이름; 상기 모듈에서 지원하는 최대 알고리즘의 수; 및 현재 사용되고 있는 알고리즘의 정보로 구성됨을 특징으로 하는 단일 프로세서 시스템의 동적 재구성이 가능한 운영체제.The method of claim 1, wherein the association table comprises: a name of a module designed to be reconfigurable; The maximum number of algorithms supported by the module; And information about an algorithm currently being used. 단일 프로세서 시스템 상에서 수행되고 있는 운영체제를 다른 특성을 가진 운영체제로 재구성하는 방법에 있어서, (a) 운영체제의 원시코드를 작성하는 단계; (b) 상기 단계(a)에서 작성된 운영체제의 원시코드를 컴파일, 링크 및 로드하여 실행가능한 형태의 모듈로 만드는 단계; (c) 상기 실행가능한 형태의 모듈을 이용하여 자료구조 내에 포함된 여러 알고리즘들과 현재 수행중인 알고리즘 모듈의 정보를 추출하여 테이블(결합표)로 만드는 단계; (d) 운영체제가 수행중 운영체제내의 모듈을 호출하는 단계; (e) 호출된 모듈이 재구성 가능한지를 판단하는 단계; (f) 상기 단계(e)의 판단 결과 재구성이 가능하지 않으면 현재의 모듈을 그대로 수행하고, 만일 재구성이 가능하면 상기 결합표를 검색하여 상기 결합표의 내용을 원하는 모듈로 변경하는 단계; 및 (g) 상기 단계(f)에서 변경된 모듈에 대한 다음번 호출에는 상기 동적 재구성 된 모듈을 실행하는 단계를 포함함을 특징으로 하는 단일 프로세서 시스템의 운영체제를 동적으로 재구성하는 방법.CLAIMS 1. A method for reconfiguring an operating system running on a single processor system into an operating system having different characteristics, the method comprising: (a) writing source code of the operating system; (b) compiling, linking and loading the source code of the operating system created in step (a) into an executable module; (c) extracting information of the various algorithms included in the data structure and the algorithm module currently being executed by using the executable module, and generating a table (combination table); (d) calling a module in the operating system while the operating system is running; (e) determining whether the called module is reconfigurable; (f) if the reconstruction is not possible as a result of the determination of step (e), performing the current module as it is, and if reconfigurable, searching the binding table and changing the contents of the binding table to a desired module; And (g) the next call to the module modified in step (f) includes executing the dynamically reconfigured module. 제3항에 있어서, 상기 단계(g)의 상기 결합표를 검색하여 상기 결합표의 내용을 원하는 모듈에 관한 정보로 변경하는 단계는 호출된 모듈의 주소를 넘겨주는 단계; 상기 넘겨진 주소와 결합표의 항목중 일치된 주소를 찾아 현재 결합된 알고리즘의 인덱스를 넘기는 단계; 상기 호출된 모듈이 운영체제의 원시코드 상의 자료구조에서 몇번째인가를 확인하는 단계; 및 결합표의 항목 중에서 상기 확인된 위치와 같은 위치에 적어 놓는 단계를 포함함을 특징으로 하는 단일 프로세서 시스템의 운영체제를 동적으로 재구성하는 방법.4. The method of claim 3, wherein retrieving the association table in step (g) and changing the contents of the association table to information about a desired module comprises: passing an address of a called module; Finding the matched address among the entries of the passed address and the join table and passing the index of the currently combined algorithm; Identifying the number of times the called module is in a data structure on a source code of an operating system; And writing down at the same position as the identified position among the items of the combination table.
KR1019950039222A 1995-11-01 1995-11-01 Operation system capable of dynamic reconfiguration and method for the same KR100294876B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950039222A KR100294876B1 (en) 1995-11-01 1995-11-01 Operation system capable of dynamic reconfiguration and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950039222A KR100294876B1 (en) 1995-11-01 1995-11-01 Operation system capable of dynamic reconfiguration and method for the same

Publications (2)

Publication Number Publication Date
KR970029024A KR970029024A (en) 1997-06-26
KR100294876B1 true KR100294876B1 (en) 2001-09-17

Family

ID=37527627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950039222A KR100294876B1 (en) 1995-11-01 1995-11-01 Operation system capable of dynamic reconfiguration and method for the same

Country Status (1)

Country Link
KR (1) KR100294876B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694948B1 (en) 2004-04-26 2007-03-14 미츠비시덴키 가부시키가이샤 Program execution control mode
KR101726362B1 (en) 2015-04-14 2017-04-26 한양대학교 산학협력단 Code regenerating apparatus and method for organizing data structure in non-volatile memory

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058977A (en) * 2005-12-05 2007-06-11 한국전자통신연구원 The method and apparatus for dynamic adaptation of home network hand-held system software
KR101867960B1 (en) * 2012-01-05 2018-06-18 삼성전자주식회사 Dynamically reconfigurable apparatus for operating system in manycore system and method of the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694948B1 (en) 2004-04-26 2007-03-14 미츠비시덴키 가부시키가이샤 Program execution control mode
KR101726362B1 (en) 2015-04-14 2017-04-26 한양대학교 산학협력단 Code regenerating apparatus and method for organizing data structure in non-volatile memory

Also Published As

Publication number Publication date
KR970029024A (en) 1997-06-26

Similar Documents

Publication Publication Date Title
CA2115464C (en) Concurrent processing in object oriented parallel and near parallel systems
US20030018690A1 (en) Digital data processing apparatus and methods with dynamically configurable application execution on accelerated resources
JPH02188833A (en) Interface for computer system
Vidal et al. UML design for dynamically reconfigurable multiprocessor embedded systems
Barbacci et al. Programming at the processor-memory-switch level
KR100694212B1 (en) Distribution operating system functions for increased data processing performance in a multi-processor architecture
JP2004503866A (en) Modular computer system and related methods
Dennis A parallel program execution model supporting modular software construction
Bic A process-oriented model for efficient execution of dataflow programs
JPH07200297A (en) Equipment and method for knowledge machine
KR100294876B1 (en) Operation system capable of dynamic reconfiguration and method for the same
Assenmacher et al. The PANDA system architecture-a pico-kernel approach
Allan et al. Compaction with general synchronous timing
Sabeghi et al. Interfacing operating systems and polymorphic computing platforms based on the molen programming paradigm
Inohara et al. A thread facility based on user/kernel cooperation in the XERO operating system
Chivukula et al. Customizing the configuration process of an operating system using hierarchy and clustering
Jordan et al. Force user's manual: A portable, parallel FORTRAN
Fröhlich et al. Tailor-made operating systems for embedded parallel applications
Zehendner A module-based assembly language with parallel processing constructs and its implementation in the ASTOR architecture
Sang et al. The Xthreads library: Design, implementation, and applications
Serbedzija et al. High-level real-time distributed programming
Bakkers et al. Automatic generation of scheduling and communication code in real-time parallel programs
Griffith et al. Effecting runtime reconfiguration in managed execution environments
Sobral Pluggable grid services
Bakkers et al. A distributed real-time Java system based on CSP

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: 20080328

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee