[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101839503B1 - Apparatus and method for providing of address space maintaining - Google Patents

Apparatus and method for providing of address space maintaining Download PDF

Info

Publication number
KR101839503B1
KR101839503B1 KR1020160062765A KR20160062765A KR101839503B1 KR 101839503 B1 KR101839503 B1 KR 101839503B1 KR 1020160062765 A KR1020160062765 A KR 1020160062765A KR 20160062765 A KR20160062765 A KR 20160062765A KR 101839503 B1 KR101839503 B1 KR 101839503B1
Authority
KR
South Korea
Prior art keywords
library
child process
parent
function
address space
Prior art date
Application number
KR1020160062765A
Other languages
Korean (ko)
Other versions
KR20170131931A (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 KR1020160062765A priority Critical patent/KR101839503B1/en
Publication of KR20170131931A publication Critical patent/KR20170131931A/en
Application granted granted Critical
Publication of KR101839503B1 publication Critical patent/KR101839503B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 주소 공간 유지 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 실행 중인 부모 프로세스의 자식 프로세스의 함수에 기초하여 라이브러리를 생성하고, 부모 프로세스의 주소 공간에 라이브러리를 로드하여 자식 프로세스를 실행하되, 자식 프로세스는 부모 프로세스로부터 분기된 것이며, 주소 공간은 메모리 상에 부모 프로세스를 위하여 할당된 소정의 공간이다.The present invention includes a processor for executing a program and a memory in which an address space maintenance program is stored. At this time, the processor creates the library based on the function of the child process of the executing parent process, loads the library into the address space of the parent process to execute the child process, the child process is branched from the parent process, And is a predetermined space allocated for the parent process on the memory.

Description

주소 공간 유지를 제공하는 컴퓨팅 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING OF ADDRESS SPACE MAINTAINING}[0001] APPARATUS AND METHOD FOR PROVIDING OF ADDRESS SPACE MAINTAINING [0002]

본 발명은 주소 공간 유지 방법을 제공하는 컴퓨팅 장치 및 방법에 관한 것이다.The present invention relates to a computing device and method for providing an address space maintenance method.

최근 사물 인터넷(internet of Thing; IoT)의 등장으로 각종 다양한 임베디드 시스템은 인터넷으로 연결되어 상호 작용을 할 수 있게 되었다. 또한, 사물 인터넷을 연결된 임베디드 시스템은 사용자와 상호작용을 할 수 있다. 그러므로 사물 인터넷을 위한 임베디드 시스템은 사용자 경험을 위한 프로그램 실행의 응답성이 보장되어야 한다. With the advent of the Internet of Thing (IoT), a variety of embedded systems have been able to connect and interact with the Internet. In addition, embedded systems connected to the Internet can interact with users. Therefore, the embedded system for the Internet of things should ensure the responsiveness of program execution for the user experience.

그러나 종래의 리눅스(Linux) 운영체제를 이용하는 임베디드 시스템은 특정 프로세스가 실행된 상태에서 특정 프로세스의 자식 프로세스의 라이브러리가 실행될 때, COW(copy of write) 정책에 따라, 해당 특정 프로세스와 공유되던 메모리 구역에서 다른 새로운 메모리 구역으로 복사 및 쓰기 작업이 발생하게 된다. 그러므로 종래의 리눅스 운영체제를 이용하는 임베디드 시스템은 추가적인 복사 및 쓰기 작업에 따른 지연 현상이 발생하게 된다. However, in the embedded system using the conventional Linux operating system, when a library of a child process of a specific process is executed while a specific process is executed, according to a COW (copy of write) policy, Copy and write operations to other new memory areas will occur. Therefore, in the embedded system using the conventional Linux operating system, a delay occurs due to additional copying and writing operations.

이와 관련되어, 한국 공개특허공보 제10-2009-0108694호(발명의 명칭: "연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법")는 물리 메모리 셀 블록에 일반적인 유형의 플래시 메모리 시스템의 연속된 논리 주소 공간 인터페이스의 하나 이상 논리 블록 내의 주소를 할당하는 파일 시스템을 개시하고 있다. In this regard, Korean Patent Laid-Open No. 10-2009-0108694 (entitled "Method of Using Direct Data File System Having Continuous Logical Address Space Interface"), Discloses a file system that allocates addresses within one or more logical blocks of a system's contiguous logical address space interface.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 부모 프로세스의 메모리 상의 주소 공간에 자식 프로세스의 라이브러리를 로드하여, 주소 공간을 유지할 수 있는 주소 공간 유지 방법을 제공하는 컴퓨팅 장치 및 방법을 제공한다.SUMMARY OF THE INVENTION The present invention provides a computing device and method for providing an address space maintenance method capable of loading a library of child processes in an address space on a memory of a parent process and maintaining an address space do.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 주소 공간 유지 방법을 제공하는 컴퓨팅 장치는 주소 공간 유지 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 실행 중인 부모 프로세스의 자식 프로세스의 함수에 기초하여 라이브러리를 생성하고, 부모 프로세스의 주소 공간에 라이브러리를 로드하여 자식 프로세스를 실행하되, 자식 프로세스는 부모 프로세스로부터 분기된 것이며, 주소 공간은 메모리 상에 부모 프로세스를 위하여 할당된 소정의 공간이다.According to a first aspect of the present invention, there is provided a computing device providing a method for maintaining an address space, the device including a processor for executing a program and a memory in which an address space maintenance program is stored. At this time, the processor creates the library based on the function of the child process of the executing parent process, loads the library into the address space of the parent process to execute the child process, the child process is branched from the parent process, And is a predetermined space allocated for the parent process on the memory.

또한, 본 발명의 제 2 측면에 따른 컴퓨팅 장치의 주소 공간 유지 방법은 실행중인 부모 프로세스의 자식 프로세스의 함수에 기초하여 라이브러리를 생성하는 단계; 부모 프로세스의 주소 공간에 라이브러리를 로드하는 단계; 및 자식 프로세스를 실행하는 단계를 포함한다. 이때, 자식 프로세스는 부모 프로세스로부터 분기된 것이며, 주소 공간은 메모리 상에 부모 프로세스를 위하여 할당된 소정의 공간이다.According to a second aspect of the present invention, there is provided a method for maintaining an address space of a computing device, the method comprising: generating a library based on a function of a child process of a parent process in execution; Loading the library into the address space of the parent process; And executing the child process. At this time, the child process is branched from the parent process, and the address space is a predetermined space allocated for the parent process on the memory.

본 발명은 자식 프로세스가 부모 프로세스로부터 분기할 때, 부모 프로세스의 주소 공간을 이용할 수 있으므로, 프로그램의 실행 시간을 단축할 수 있다. 그러므로 본 발명은 프로그램 수행 시 시간 및 리소스를 효율적으로 이용할 수 있다.According to the present invention, when the child process branches from the parent process, the address space of the parent process can be used, so that the execution time of the program can be shortened. Therefore, the present invention can efficiently utilize time and resources when executing a program.

도 1은 종래의 운영체제의 자식 프로세스 실행 방법의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 주소 공간 유지를 제공하는 컴퓨팅 장치의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 자식 프로세스의 실행 과정에 대한 예시도이다.
도 4는 종래 방법 및 본 발명의 일 실시예에 따른 컴퓨팅 장치에 따른 실행 시간의 비교 그래프이다.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 주소 공간 유지 방법의 순서도이다.
1 is an exemplary diagram illustrating a method of executing a child process of a conventional operating system.
2 is a block diagram of a computing device that provides address space maintenance in accordance with an embodiment of the present invention.
3 is a diagram illustrating an execution process of a child process according to an embodiment of the present invention.
FIG. 4 is a graph showing a comparison of execution time according to a conventional method and a computing apparatus according to an embodiment of the present invention.
5 is a flowchart of a method of maintaining an address space of a computing device according to an exemplary embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.

다음은 도 1을 참조하여, 종래의 운영체제의 자식 프로세스 실행 방법을 설명한다.Next, a method of executing a child process of a conventional operating system will be described with reference to FIG.

도 1은 종래의 운영체제의 자식 프로세스 실행 방법의 예시도이다.1 is an exemplary diagram illustrating a method of executing a child process of a conventional operating system.

종래의 운영체제에서는 자식 프로세스에서 라이브러리가 실행될 때, 자식 프로세스의 주소 공간에 쓰기 작업이 발생하게 되면, 자식 프로세스의 부모 프로세스와 공유되던 메모리 구역에서 다른 메모리 구역으로 복사 및 쓰기 작업이 발생하게 된다. 예를 들어, 리눅스 운영체제는 COW 정책에 따라 이러한 현상이 발생하게 된다.In a conventional operating system, when a library is executed in a child process, when a write operation is performed in the address space of the child process, copying and writing operations are performed from the memory region shared with the parent process of the child process to another memory region. For example, under the COW policy of the Linux operating system, this phenomenon occurs.

도 1을 참조하면, 종래의 운영체제는 부모 프로세스에서 자식 프로세스를 분기하는 fork 함수를 호출한 후, exec 함수를 실행한다.Referring to FIG. 1, a conventional operating system calls a fork function that branches a child process in a parent process, and then executes an exec function.

이때, fork 함수는 리눅스 운영체제에 포함된 함수로 운영체제가 하나의 프로세스에서 자식 프로세스를 분기하는 함수이다. fork 함수는 반환 값으로 부모 프로세스 및 부모 프로세스의 자식 프로세스를 반환하게 된다. 이때, 자식 프로세스는 부모 프로세스와 PID가 상이하며, 나머지 모든 변수 값은 동일하다.At this time, the fork function is a function included in the Linux operating system, and the operating system branches the child process in one process. The fork function returns the parent process and the child processes of the parent process as return values. At this time, the child process has a different PID from the parent process, and all the other variable values are the same.

exec 함수는 리눅스 운영체제에 포함된 복수의 함수를 포함하는 함수의 집단이다. exec 함수는 현재 실행되고 있는 프로세스에 상주해 있는 메모리를 중지하고, 해당 메모리에 새로운 프로그램을 로드시킨다. 즉, exec 함수의 실행에 의하여, exec 함수 호출 이전에 실행되는 프로그램은 무시되게 된다.The exec function is a collection of functions that contain multiple functions contained in the Linux operating system. The exec function stops the memory that resides in the currently running process and loads the new program into that memory. That is, by executing the exec function, the program executed before the exec function call is ignored.

종래의 운영체제는 fork 함수를 호출한 이후, exec 함수를 실행하므로 자식 프로세스가 부모 프로세스의 주소 공간에 있는 자원(resource)을 사용하지 않는다. 그러므로 종래의 운영체제는 자식 프로세스를 메모리에 로딩하기 위하여 추가 시간이 소요된다.Since the conventional operating system executes the exec function after calling the fork function, the child process does not use the resource in the address space of the parent process. Therefore, conventional operating systems require additional time to load child processes into memory.

종래의 운영체제는 fork 함수를 호출한 이후, exec 함수를 실행하므로 자식 프로세스가 부모 프로세스의 주소 공간에 있는 자원(resource)을 사용하지 않는다. 그러므로 종래의 운영체제는 자식 프로세스를 메모리에 로딩하기 위하여 추가 시간이 소요된다.Since the conventional operating system executes the exec function after calling the fork function, the child process does not use the resource in the address space of the parent process. Therefore, conventional operating systems require additional time to load child processes into memory.

다음은 도 2 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 주소 공간 유지 제공 장치(200)를 설명한다.2 to 4, an apparatus 200 for providing and maintaining an address space according to an embodiment of the present invention will be described.

도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치(200)의 블록도이다.2 is a block diagram of a computing device 200 in accordance with one embodiment of the present invention.

컴퓨팅 장치(200)는 부모 프로세스에서 자식 프로세스로 분기할 때, 빠른 수행을 위하여 부모 프로세스에 할당된 주소 공간을 유지한다. 이때, 컴퓨팅 장치(200)는 메모리(210) 및 프로세서(220)를 포함한다.When the computing device 200 branches from the parent process to the child process, the computing device 200 maintains the address space allocated to the parent process for quick execution. At this time, the computing device 200 includes a memory 210 and a processor 220.

메모리(210) 는 주소 공간 유지 프로그램이 저장된다. 이때, 메모리(210) 는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다.The memory 210 stores an address space maintenance program. At this time, the memory 210 collectively refers to a non-volatile storage device that keeps stored information even when power is not supplied, and a volatile storage device that requires power to maintain stored information.

또한, 메모리(210)는 운영체제를 포함할 수 있다. 이때, 운영체제는 리눅스 일 수 있으나, 이에 한정된 것은 아니다.Also, the memory 210 may include an operating system. At this time, the operating system may be Linux, but is not limited thereto.

프로세서(220)는 응용 프로그램(application)의 실행에 따라 복수의 프로세스(process)를 실행한다. 이때, 복수의 프로세스 중 어느 하나의 프로세스가 새로운 프로그램을 실행할 수 있다. 이를 위하여, 해당 프로세스는 자식 프로세스(child process)를 분기할 수 있다. 이때, 해당 프로세스는 부모 프로세스(parent process)가 될 수 있다.The processor 220 executes a plurality of processes according to the execution of an application program. At this time, any one of the plurality of processes can execute a new program. To do this, the process can branch a child process. At this time, the process can be a parent process.

이때, 프로세서(220)는 자식 프로세스를 분기하기 이전에, 자식 프로세스의 함수를 이용하여 라이브러리를 생성한다. 프로세서(220)에 의해 생성되는 라이브러리는 자식 프로세스의 라이브러리 및 운영체제에 포함된 라이브러리 중 자식 프로세스가 필요한 라이브러리일 수 있다. 이때, 자식 프로세스의 함수는 자식 프로세스의 소스 코드(source code)에 포함된 것일 수 있다. 그러므로 자식 프로세스의 라이브러리는 자식 프로세스의 소스 코드로 생성된 것일 수 있다.At this time, the processor 220 creates a library using a function of the child process before branching the child process. The library generated by the processor 220 may be a library of a child process and a library that is a child process of a library included in the operating system. At this time, the function of the child process may be included in the source code of the child process. Therefore, the library of the child process may be generated from the source code of the child process.

그리고 프로세서(220)는 생성된 라이브러리를 부모 프로세스의 주소 공간에 로드한다. 이때, 주소 공간은 메모리(210) 상에 부모 프로세스를 위하여 할당된 소정의 공간일 수 있다.The processor 220 then loads the generated library into the address space of the parent process. At this time, the address space may be a predetermined space allocated for the parent process on the memory 210.

또한, 프로세서(220)는 부모 프로세스의 주소 공간에 라이브러리가 로드된 이후, 자식 프로세스를 실행한다. 이때, 프로세서(220)는 운영체제에 포함된 동적 적제 라이브러리에 기초하여 로드될 자식 프로세스를 라이브러리화할 수 있다. 그리고 프로세서(220)는 동적 적제 라이브러리에 기초하여, 라이브러리화된 자식 프로세스를 실행할 수 있다. 상세한 내용은 도 3을 참조하여 설명한다.In addition, the processor 220 executes the child process after the library is loaded into the address space of the parent process. At this time, the processor 220 may library the child process to be loaded based on the dynamic loading library included in the operating system. And processor 220 may execute the libraryed child process based on the dynamic load library. Details will be described with reference to Fig.

도 3은 본 발명의 일 실시예에 따른 자식 프로세스의 실행 과정에 대한 예시도이다.3 is a diagram illustrating an execution process of a child process according to an embodiment of the present invention.

예를 들어, 운영체제는 리눅스 일 수 있다. 그러므로 프로세서(220)는 리눅스의 동적 적제 라이브러리에 포함된 dlsym 함수 및 dlopen 함수를 사용할 수 있다.For example, the operating system can be Linux. Therefore, the processor 220 can use the dlsym function and the dlopen function included in the dynamic loading library of Linux.

실행 중인 부모 프로세스가 자식 프로세스를 실행하고자 하면 앞에서 설명한 바와 같이, 프로세서(220)는 자식 프로세스를 라이브러리화 할 수 있다.If the executing parent wants to execute the child process, the processor 220 may library the child process as described above.

그리고 프로세서(220)는 dlopen 함수를 호출하여, 부모 프로세스의 주소 공간에 라이브러리를 로드할 수 있다. 이때, dlopen 함수는 라이브러리를 메모리(210)에 동적으로 로드하는 함수이다.The processor 220 may then call the dlopen function to load the library into the address space of the parent process. At this time, the dlopen function is a function that dynamically loads the library into the memory 210.

프로세서(220)는 부모 프로세스의 주소 공간에 라이브러리가 로드된 이후, 분기 함수인 fork 함수를 호출하여, 자식 프로세스를 분기할 수 있다.After the library is loaded into the address space of the parent process, the processor 220 can branch the child process by calling the branch function fork function.

그리고 프로세서(220)는 dlsym 함수를 실행하여, 라이브러리화된 자식 프로세스를 실행할 수 있다. 이때, dlsym 함수는 로드된 라이브러리의 심볼의 값을 찾아서 실행하는 함수이다. 여기서 dlsym 함수는 라이브러리화된 자식 프로세스의 메인(main) 함수를 실행시킬 수 있다.The processor 220 may then execute the dlsym function to execute the libraryed child process. At this time, the dlsym function finds and executes the value of the symbol of the loaded library. Here, the dlsym function can execute the main function of the libraryized child process.

다음은 도 4를 참조하여, 본 발명의 일 실시예에 따른 컴퓨팅 장치(200)의 성능을 평가한다. The following evaluates the performance of the computing device 200 in accordance with one embodiment of the present invention, with reference to FIG.

도 4는 종래 방법 및 본 발명의 일 실시예에 따른 컴퓨팅 장치(200)에 따른 실행 시간의 비교 그래프이다. 이때, 도 4는 종래의 방법의 수행 시간을 100%로 가정하였을 때, 본 발명의 수행 시간을 비교한 것이다. 예를 들어, 종래 방식이 수행시간에 10초이고, 본 발명의 수행 시간이 4초인 경우, 종래 방식의 수행시간은 100%가 되고, 본 발명의 수행시간은 40%가 될 수 있다. 또한, 도 4는 Intel i7(3.5GHz) 프로세서(220), 4GB의 메모리(210) 및 리눅스 커널 3.13.0-62에서의 수행 결과이다. 4 is a graph of comparison of execution time according to the conventional method and the computing device 200 according to an embodiment of the present invention. In this case, FIG. 4 compares the execution time of the present invention when the execution time of the conventional method is assumed as 100%. For example, when the conventional method is 10 seconds in the execution time and the execution time of the present invention is 4 seconds, the execution time of the conventional method becomes 100%, and the execution time of the present invention can be 40%. 4 shows the results of the performance in the Intel i7 (3.5 GHz) processor 220, the 4 GB memory 210, and the Linux kernel 3.13.0-62.

RSA는 RSA(rivest-shamir-adleman) 라이브러리를 이용한 2,048bit 암호화 프로그램이다. 이때, RSA는 랜덤으로 키를 생성하고 문자열을 암호화 및 복호화하는 다수의 수학적 연산을 위주로 하는 워크로드로 구성된다. 도 4를 참조하면, 종래의 방법에 비하여 본 발명은 RSA 수행 시간을 99% 이상 절약할 수 있다. 이때, 수행 시간은 부모 프로세스로부터 자식 프로세스가 분기하고, 분기된 자식 프로세스가 수행될 때까지의 시간이다. RSA is a 2,048-bit encryption program using the RSA (rivest-shamir-adleman) library. At this time, the RSA is composed of a workload mainly for generating a key at random and a plurality of mathematical operations for encrypting and decrypting a string. Referring to FIG. 4, compared to the conventional method, the present invention can save more than 99% of the RSA execution time. In this case, the execution time is the time until the child process branches from the parent process and the branching child process is executed.

N-Queens는 N-Queens 문제를 해결하기 위한 백트래킹(back tracking)알고리즘으로 수학적 연산을 위주로 하는 워크로드로 구성된다. 도 4를 참조하면, 종래의 방법에 비하여 본 발명은 N-Queens을 수행하기 위하여 43% 이상의 수행 시간을 절약할 수 있다. N-Queens is a back tracking algorithm for solving the N-Queens problem. It consists of a workload focused on mathematical operations. Referring to FIG. 4, compared to the conventional method, the present invention can save 43% or more of execution time to perform N-Queens.

ZIP은 ZIP 라이브러리에 기초하여, 파일을 압축하고 해제하는 프로그램이다. 이때, ZIP은 복수의 파일 입출력을 요청하는 워크로드로 구성될 수 있다. 도 4를 참조하면, 종래의 방법에 비하여, 본 발명은 ZIP을 수행하기 위하여 96% 이상 수행 시간을 절약할 수 있다. ZIP is a program that compresses and decompresses files based on the ZIP library. At this time, the ZIP can be configured as a workload that requests a plurality of file input / output. Referring to FIG. 4, in contrast to the conventional method, the present invention can save 96% or more of execution time to perform ZIP.

Network는 TCP/IP 통신을 위한 소켓 라이브러리를 이용하여 클라이언트로부터 서버로 파일을 보내는 프로그램이다. 이때, Network는 ZIP과 유사하게, 복수의 파일 입출력을 요청하는 워크로드로 구성될 수 있다. 도 4를 참조하면, 종래의 방법에 비하여, 본 발명은 Network를 수행하기 위하여, 25% 이상 수행 시간을 절약할 수 있다. Network is a program that sends files from client to server using socket library for TCP / IP communication. At this time, the network may be configured as a workload that requests a plurality of file input / output, similar to ZIP. Referring to FIG. 4, in contrast to the conventional method, the present invention can save 25% or more of execution time to perform a network.

이와 같이, 주소 공간 유지 장치(200)는 종래의 방법에 비하여, 부모 프로세스의 주소 공간에 로드되어 있는 워크로드를 바로 실행할 수 있다. 그러므로 컴퓨팅 장치(200)는 자식 프로세스에서 실행되는 워크로드의 크기가 클수록 실행 속도가 향상될 수 있다. In this manner, the address space holding apparatus 200 can directly execute the workload loaded in the address space of the parent process, as compared with the conventional method. Therefore, the greater the size of the workload executed in the child process, the higher the execution speed of the computing device 200 can be.

다음은 도 5를 참조하여, 본 발명의 일 실시예에 따른 컴퓨팅 장치(200)의 주소 공간 유지 방법을 설명한다. Next, referring to FIG. 5, a method of maintaining an address space of the computing device 200 according to an embodiment of the present invention will be described.

도 5는 본 발명의 일 실시예에 따른 컴퓨팅 장치(200)의 주소 공간 유지 방법의 순서도이다.5 is a flowchart of a method of maintaining an address space of a computing device 200 according to an embodiment of the present invention.

컴퓨팅 장치(200)는 실행중인 부모 프로세스의 자식 프로세스의 함수에 기초하여 라이브러리를 생성한다(S500). 이때, 자식 프로세스는 부모 프로세스로부터 분기된 것이다. 또한, 컴퓨팅 장치(200)는 자식 프로세스에 대응하는 소스 코드에 기초하여, 라이브러리를 생성할 수 있다.The computing device 200 generates a library based on the function of the child process of the executing parent process (S500). At this time, the child process is branched from the parent process. In addition, the computing device 200 may generate the library based on the source code corresponding to the child process.

컴퓨팅 장치(200)는 부모 프로세스의 주소 공간에 라이브러리를 로드한다(S510). 이때, 주소 공간은 메모리(210) 상에 부모 프로세스를 위하여 할당된 소정의 공간이다.The computing device 200 loads the library into the address space of the parent process (S510). At this time, the address space is a predetermined space allocated for the parent process on the memory 210.

컴퓨팅 장치(200)는 자식 프로세스를 실행한다(S520).The computing device 200 executes the child process (S520).

이때, 컴퓨팅 장치(200)는 라이브러리를 생성하기 위하여, 운영체제에 포함된 동적 적재 라이브러리에 기초하여, 라이브러리를 로드하여 자식 프로세스를 라이브러리화할 수 있다. 또한, 컴퓨팅 장치(200)는 자식 프로세스를 실행하기 위하여, 라이브러리화된 자식 프로세스를 실행할 수 있다.At this time, the computing device 200 may library the child process by loading the library, based on the dynamic loading library included in the operating system, to create the library. In addition, the computing device 200 may execute a libraryed child process to execute a child process.

예를 들어, 컴퓨팅 장치(200)의 운영체제는 리눅스 운영체제일 수 있다. 그러므로 동적 적재 라이브러리는 리눅스 운영체제의 dlopen 함수 및 dlsym 함수를 포함할 수 있다.For example, the operating system of the computing device 200 may be a Linux operating system. Therefore, the dynamic load library can include the dlopen function and the dlsym function of the Linux operating system.

즉, 컴퓨팅 장치(200)는 자식 프로세스를 라이브러리화하고(S500), dlopen 함수에 기초하여 라이브러리화된 자식 프로세스를 로드할 수 있다(S510). 그리고 컴퓨팅 장치(200)는 자식 프로세스를 실행하기 전에 부모 프로세스에 대응하는 분기 함수를 호출할 수 있다(S520). 컴퓨팅 장치(200)는 dlsym 함수에 기초하여 라이브러리화된 자식 프로세스를 실행할 수 있다(S530).That is, the computing device 200 may library the child process (S500), and may load the library process based on the dlopen function (S510). The computing device 200 may call the branch function corresponding to the parent process before executing the child process (S520). The computing device 200 may execute the library process based on the dlsym function (S530).

본 발명의 일 실시예에 따른 주소 공간 유지 방법을 제공하는 컴퓨팅 장치(200) 및 주소 공간 유지 방법은 자식 프로세스가 분기할 때, 부모 프로세스의 주소 공간을 이용할 수 있으므로, 프로그램의 실행 시간을 단축할 수 있다. 그러므로 주소 공간 유지 방법을 제공하는 컴퓨팅 장치(200) 및 주소 공간 유지 방법은 프로그램 수행 시 시간 및 리소스를 효율적으로 이용할 수 있다.The computing device 200 and the address space maintenance method that provide the address space maintenance method according to an embodiment of the present invention can use the address space of the parent process when the child process branches, . Therefore, the computing device 200 and the address space maintenance method that provide the address space maintenance method can efficiently utilize the time and resources during program execution.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

200: 컴퓨팅 장치
210: 메모리
220: 프로세서
200: computing device
210: memory
220: Processor

Claims (11)

주소 공간 유지를 제공하는 컴퓨팅 장치에 있어서,
주소 공간 유지 프로그램이 저장된 메모리 및
상기 프로그램을 실행하는 프로세서를 포함하고,
상기 프로세서는 실행 중인 복수의 부모 프로세스 중 하나의 부모 프로세스가 자식 프로세스를 실행함에 따라, 운영체제에 포함된 동적 적재 라이브러리에 기초하여, 상기 자식 프로세스의 함수에 기초하여 생성된 라이브러리를 상기 부모 프로세스의 주소 공간에 로드하고,
상기 동적 적재 라이브러리에 기초하여 라이브러리화된 자식 프로세스를 실행하되,
상기 라이브러리화된 자식 프로세스는 상기 부모 프로세스로부터 분기된 것이며,
상기 부모 프로세스의 주소 공간은 상기 메모리 상에 상기 부모 프로세스를 위하여 할당된 소정의 공간인, 컴퓨팅 장치.
A computing device that provides address space maintenance,
The memory that the address space maintenance program stores and
And a processor for executing the program,
Wherein the processor is operable to cause a library generated based on a function of the child process to be transferred to an address of the parent process based on a dynamic loading library included in an operating system as a parent process of one of a plurality of executing parent processes executes a child process, Load into space,
Executing a library process of the child process based on the dynamic load library,
Wherein the libraryized child process is branched from the parent process,
Wherein the address space of the parent process is a predetermined space allocated for the parent process on the memory.
삭제delete 제 1 항에 있어서,
상기 운영체제는 리눅스 운영체제이며,
상기 동적 적재 라이브러리는 dlopen 함수 및 dlsym 함수를 포함하고,
상기 프로세서는 상기 dlopen 함수에 기초하여 상기 자식 프로세스를 라이브러리화하고, 상기 dlsym 함수에 기초하여 상기 라이브러리화된 자식 프로세스를 실행하는 것인, 컴퓨팅 장치.
The method according to claim 1,
The operating system is a Linux operating system,
Wherein the dynamic loading library comprises a dlopen function and a dlsym function,
Wherein the processor is configured to library the child process based on the dlopen function and to execute the libraryed child process based on the dlsym function.
제 1 항에 있어서,
상기 프로세서는 상기 부모 프로세스의 주소 공간에 상기 라이브러리를 로드한 이후, 상기 부모 프로세스에 대응하는 분기 함수를 호출하고,
상기 부모 프로세스에 대응하는 분기 함수를 호출한 이후, 상기 자식 프로세스를 실행하는 것인, 컴퓨팅 장치.
The method according to claim 1,
Wherein the processor calls the branch function corresponding to the parent process after loading the library into the address space of the parent process,
And executes the child process after calling a branch function corresponding to the parent process.
제 1 항에 있어서,
상기 프로세서는 상기 자식 프로세스에 대응하는 소스 코드에 기초하여, 상기 라이브러리를 생성하는, 컴퓨팅 장치.
The method according to claim 1,
Wherein the processor generates the library based on a source code corresponding to the child process.
컴퓨팅 장치의 프로세서가 주소 공간을 유지하는 방법에 있어서,
실행 중인 복수의 부모 프로세스 중 하나의 부모 프로세스의 자식 프로세스가 실행됨에 따라, 운영체제에 포함된 동적 적재 라이브러리에 기초하여, 상기 자식 프로세스의 함수에 기초하여 생성된 라이브러리를 상기 부모 프로세스의 주소 공간에 로드하는 단계; 및
상기 동적 적재 라이브러리에 기초하여 라이브러리화된 자식 프로세스를 실행하는 단계를 포함하되,
상기 라이브러리화된 자식 프로세스는 상기 부모 프로세스로부터 분기된 것이며,
상기 부모 프로세스의 주소 공간은 메모리 상에 상기 부모 프로세스를 위하여 할당된 소정의 공간인, 주소 공간 유지 방법.
A method for a processor of a computing device to maintain an address space,
Loading a library created based on a function of the child process into an address space of the parent process based on a dynamic loading library included in an operating system as a child process of a parent process of one of a plurality of executing parent processes is executed ; And
And executing the libraryed child process based on the dynamic loading library,
Wherein the libraryized child process is branched from the parent process,
Wherein the address space of the parent process is a predetermined space allocated for the parent process on the memory.
삭제delete 제 6 항에 있어서,
상기 운영체제는 리눅스 운영체제이며,
상기 동적 적재 라이브러리는 dlopen 함수 및 dlsym 함수를 포함하되,
상기 라이브러리를 생성하는 단계는,
상기 dlopen 함수에 기초하여 상기 자식 프로세스를 라이브러리화하는 것이고,
상기 자식 프로세스를 실행하는 단계는,
상기 dlsym 함수에 기초하여 상기 라이브러리화된 자식 프로세스를 실행하는 것인, 주소 공간 유지 방법.
The method according to claim 6,
The operating system is a Linux operating system,
Wherein the dynamic loading library includes a dlopen function and a dlsym function,
Wherein the generating the library comprises:
Wherein the child process is a library based on the dlopen function,
Wherein the executing the child process comprises:
And executes the libraryized child process based on the dlsym function.
제 6 항에 있어서,
상기 라이브러리화된 자식 프로세스를 실행하는 단계 이전에, 상기 부모 프로세스에 대응하는 분기 함수를 호출하는 단계를 더 포함하는, 주소 공간 유지 방법.
The method according to claim 6,
Further comprising the step of calling a branch function corresponding to the parent process prior to executing the libraryed child process.
제 6 항에 있어서,
상기 라이브러리를 생성하는 단계는,
상기 자식 프로세스에 대응하는 소스 코드에 기초하여, 상기 라이브러리를 생성하는 것인, 주소 공간 유지 방법.
The method according to claim 6,
Wherein the generating the library comprises:
And the library is created based on the source code corresponding to the child process.
제 6 항, 제 8 항 내지 제 10 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium recording a program for performing the method according to any one of claims 6 to 9 on a computer.
KR1020160062765A 2016-05-23 2016-05-23 Apparatus and method for providing of address space maintaining KR101839503B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160062765A KR101839503B1 (en) 2016-05-23 2016-05-23 Apparatus and method for providing of address space maintaining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160062765A KR101839503B1 (en) 2016-05-23 2016-05-23 Apparatus and method for providing of address space maintaining

Publications (2)

Publication Number Publication Date
KR20170131931A KR20170131931A (en) 2017-12-01
KR101839503B1 true KR101839503B1 (en) 2018-03-16

Family

ID=60921800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160062765A KR101839503B1 (en) 2016-05-23 2016-05-23 Apparatus and method for providing of address space maintaining

Country Status (1)

Country Link
KR (1) KR101839503B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118689659A (en) * 2024-08-26 2024-09-24 武汉卓目科技股份有限公司 Method, system and device for accessing form data of shared memory

Also Published As

Publication number Publication date
KR20170131931A (en) 2017-12-01

Similar Documents

Publication Publication Date Title
JP6935496B2 (en) Management of messaging protocol communication
US10078536B2 (en) Cloud-based build service
US11275622B2 (en) Utilizing accelerators to accelerate data analytic workloads in disaggregated systems
US9990189B2 (en) Method to optimize provisioning time with dynamically generated virtual disk contents
US10616327B2 (en) Policy based hydration behavior in cloud storage synchronization
US9886398B2 (en) Implicit sharing in storage management
KR20110002810A (en) Securely using service providers in elastic computing systems and environments
JP6188713B2 (en) Autonomous network streaming
AU2017232694B2 (en) Method, apparatus, server and storage medium of erasing cloud host in cloud-computing environment
US11429450B2 (en) Aggregated virtualized compute accelerators for assignment of compute kernels
US10924275B1 (en) Creating multiple encrypted volumes from a single source
US11204702B2 (en) Storage domain growth management
Tchana et al. Two levels autonomic resource management in virtualized IaaS
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US20190215363A1 (en) Dynamic pool-based tiering for synchronization storage
CN113742623A (en) Page loading method, assembly, system, device and computer readable storage medium
KR101839503B1 (en) Apparatus and method for providing of address space maintaining
US10997269B1 (en) Using web application components with different web application frameworks in a web application
US20210240509A1 (en) Single use execution environment for on-demand code execution
CN111435299A (en) Application processing method and device
US11095745B1 (en) Cloud-based scheduling of data operations to an object storage using an operation pool
US11520866B2 (en) Controlling processor instruction execution
US10855447B2 (en) Request approval using blockchain technology
US20170075736A1 (en) Rule engine for application servers
KR101748210B1 (en) Distributed processing system and processing method for file in distributed processing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant