KR101980581B1 - Method for managing memory of tandem system - Google Patents

Method for managing memory of tandem system Download PDF

Info

Publication number
KR101980581B1
KR101980581B1 KR1020190015344A KR20190015344A KR101980581B1 KR 101980581 B1 KR101980581 B1 KR 101980581B1 KR 1020190015344 A KR1020190015344 A KR 1020190015344A KR 20190015344 A KR20190015344 A KR 20190015344A KR 101980581 B1 KR101980581 B1 KR 101980581B1
Authority
KR
South Korea
Prior art keywords
memory
area
message
extended
buffering
Prior art date
Application number
KR1020190015344A
Other languages
Korean (ko)
Inventor
김교은
Original Assignee
(주)베스트케이에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)베스트케이에스 filed Critical (주)베스트케이에스
Priority to KR1020190015344A priority Critical patent/KR101980581B1/en
Application granted granted Critical
Publication of KR101980581B1 publication Critical patent/KR101980581B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

Disclosed is a method for managing a memory of a tandem system. According to an embodiment of the present invention, the method for managing a memory of a tandem system comprises: a step of buffering an inputted message; and a step of broadcasting the buffered message as a service process. The step of buffering the message includes: a step of calculating the size of an extended memory area; a step of determining whether a memory use amount is exceeded by the size of the extended memory area; and a step of processing the inputted message to secure an available memory space if the use amount is exceeded. Accordingly, if a processing speed of a large amount of inputted messages exceeds the capacity of an initially declared memory for buffering, an extended memory area is allocated, and the allocated memory area is used to process messages. An available space of the extended memory space is continuously secured to efficiently process inputted messages.

Description

탠덤 시스템의 메모리 관리방법{Method for managing memory of tandem system}[0001] The present invention relates to a memory management method for a tandem system,

본 발명은 메모리 관리방법에 관한 것으로, 더욱 상세하게는 복수의 프로세스가 함께 접속되어 같은 문제를 동 시점에서 처리하는 탠덤 시스템의 메모리 관리방법에 관한 것이다.The present invention relates to a memory management method, and more particularly, to a memory management method of a tandem system in which a plurality of processes are connected together to process the same problem at the same time.

일반적으로 라우터 프로세스는 단일 프로세스로서, 입력되는 대량의 메시지를 버퍼링하게 되어, 버퍼링된 대량의 메시지를 주변의 서비스 프로세스로 브로드캐스팅할 수 있다.Generally, a router process is a single process, which buffers a large number of incoming messages, allowing a large amount of buffered messages to be broadcast to neighboring service processes.

이러한 라우터 프로세스는 초기에 선언된 버퍼링용 메모리의 용량을 입력되는 대량의 메시지와 이를 중간에 처리하는 서비스 프로세스의 처리 속도가 초과하는 경우에, 문제가 발생하게 된다. Such a router process causes a problem when the capacity of buffering memory initially declared exceeds the processing speed of a service process that processes a large number of input messages and an interim processing thereof.

이를 해결하기 위해, 처리속도를 높이기 위한 로컬 메모리 영역을 버퍼링 버퍼로서 사용하나, 로컬 메모리의 크기가 제한적임에 따라 메모리 용량을 초과하는 경우, 원활하게 메시지를 처리하지 못하는 문제가 발생하게 된다. In order to solve this problem, a local memory area for increasing the processing speed is used as a buffering buffer. However, when the size of the local memory is limited and the memory capacity is exceeded, a problem arises that the message can not be smoothly processed.

한국등록특허 제10-0333581호(발명의 명칭: 탠덤 방식으로 동작하는 입출력 데이터 압축 모듈)Korean Patent No. 10-0333581 (entitled " I / O data compression module operating in a tandem manner)

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로 본 발명의 목적은 초기에 선언된 버퍼링용 메모리의 용량을 입력되는 대량의 메시지의 처리 속도가 초과하는 경우에, 확장 메모리 영역을 할당하고, 할당된 확장 메모리 영역을 이용하여 입력되는 메시지를 처리하되, 확장 메모리 영역의 여유공간을 지속적으로 확보하여 입력되는 메시지를 원활하게 처리하는 탠덤 시스템의 메모리 관리방법을 제공함에 있다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide an apparatus and method for allocating an extended memory area when a capacity of a buffer memory for initialization is exceeded, The present invention provides a memory management method of a tandem system that processes an input message using an extended memory area, and smoothly processes an input message by continuously securing free space in an extended memory area.

상기와 같은 문제를 해결하기 위한 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법은 입력되는 메시지를 버퍼링하는 단계; 및 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고, 상기 메시지를 버퍼링하는 단계는, 확장 메모리 영역 크기를 산정하는 단계; 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및 사용량 초과시, 상기 입력된 메시지를 처리하여 메모리 여유공간을 확보하는 단계;를 포함한다. According to an aspect of the present invention, there is provided a method of managing a memory of a tandem system, the method comprising: buffering an input message; And broadcasting the buffered message to a service process, wherein buffering the message comprises: estimating an extended memory area size; Determining whether the memory usage exceeds an amount of the extended memory area; And, when the usage amount is exceeded, processing the input message to secure a memory free space.

그리고 상기 메모리 여유공간을 확보하는 단계는, 상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 기설정된 조건에 따라 상기 버퍼링된 메시지 중 일부 메시지가 선별되어, 저장부에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 할 수 있다. When the memory used for buffering the input message reaches 95% of the calculated size of the extended memory area, the step of reserving the memory space may include selecting a message among the buffered messages according to a preset condition , And the stored message is removed from the extended memory area so that the free space of the extended memory area reaches 40% of the extended memory area size.

또한, 상기 메모리 여유공간을 확보하는 단계는, 상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 70%, 80%, 85% 및 90%에 도달하는 시점에 각각 상기 확장 메모리 영역의 초과사용 위험 경보정보가 출력되도록 할 수 있다.In addition, the step of securing the memory free space may include the steps of: when the memory used for buffering the input message reaches 70%, 80%, 85%, and 90% of the estimated extended memory area size, It is possible to output the overuse warning information of the memory area.

그리고 상기 메모리 여유공간을 확보하는 단계는, 상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 상기 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지가, 메모리 이미지 형태로 저장부에 저장되도록 하고, 상기 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 할 수 있다.In the step of securing the memory space, when the memory used for buffering the input message becomes 95% of the calculated size of the extended memory area, the input time of the buffered messages is in the oldest order The selected message is stored in the storage unit in the form of a memory image and the stored message is removed from the extended memory area so that the free space of the extended memory area reaches 40% of the size of the extended memory area .

또한, 본 실시예에 따른 탠덤 시스템의 메모리 관리방법은 상기 메모리 여유공간이 확보되면, 상기 저장부에 저장된 메시지를 상기 확장 메모리 영역에 불러들이는(Loading) 단계; 및 상기 불러들인 메시지를 버퍼링하는 단계;를 더 포함할 수 있다. In addition, the memory management method of the tandem system according to the present embodiment may include loading (loading) a message stored in the storage unit into the extended memory area when the memory space is secured; And buffering the invoked message.

그리고 상기 불러들이는 단계는, 사용량 초과 시점(time)으로부터 기설정된 제1기간이 지나가거나 또는 상기 산정된 확장 메모리 영역 크기의 50% 이상의 메모리 여유공간이 확보되면, 상기 저장부에 저장된 메시지를 상기 확장 메모리 영역를 불러들일 수 있다. And the step of recalling includes the step of storing the message stored in the storage unit when a predetermined first period of time elapses from an exceeded usage time, or when free memory space of 50% or more of the estimated extended memory area size is secured, The extended memory area can be called up.

또한, 상기 메모리 여유공간을 확보하는 단계는, 상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 추가로 입력되는 메시지 또는 기존에 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지를 버림(abandon)으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 할 수 있다. When the memory used for buffering the input message reaches 95% of the calculated size of the extended memory area, the step of reserving the memory space further comprises: The free space of the extended memory area can reach 40% of the size of the extended memory area by abandoning the selected message according to the oldest time.

그리고 상기 확장 메모리 영역는, 전송 큐(Queue) 영역, 라우팅 테이블 영역, 공통 큐(Queue) 영역, 프로세스 핸들 영역, 메모리 풀 영역으로 구성될 수 있다.The extended memory area may include a transmission queue area, a routing table area, a common queue area, a process handle area, and a memory pool area.

또한, 상기 전송 큐(Queue) 영역은, 쓰기/읽기 명령이 완료되는 시점까지 전송 버퍼를 유지하는 동시에, 128개의 전문을 처리하기 위해, 4000.25 Kbytes를 할당하고, 상기 라우팅 테이블 영역은, 하나의 라우터에 최대 접속 가능한 프로세스를 5,120개 한정하고, 각각의 프로세스별 필요한 공간에 22 bytes로 할당하기 위해, 110 Kbytes를 할당하며, 상기 공통 큐(Queue) 영역은, 복수의 프로세스가 처리량이 많은 단일 업무를 하나의 큐로 묶어 처리하도록, 프로세스별 부하 분배(Load Balancing)를 지원하기 위해, 60 Kbytes를 할당하고, 상기 프로세스 핸들 영역은, 프로세스 정보를 검색하기 위해, 120 Kbytes를 할당할 수 있다.In addition, the transmission queue area allocates 4000.25 Kbytes in order to maintain the transmission buffer until the completion of the write / read command and to process 128 specials, and the routing table area is allocated to one router 110 Kbytes are allocated in order to allocate 22 bytes to the required space for each process, and the common queue area is divided into a single task having a high throughput In order to support load balancing per process so as to be bundled into one queue, 60 Kbytes are allocated, and the process handle area can allocate 120 Kbytes to retrieve process information.

그리고 상기 메모리 풀 영역은, 프로세스 정보와 프로세스 전문 큐를 처리하기 위해, 유동적으로 관리되며, 유동적인 할당 및 해제를 위해, 2,048 bytes의 페이지 단위로 분할되어 처리되며, 페이지를 효과적으로 관리하기 위한 헤더 영역이 제일 앞에 할당될 수 있다. The memory pool area is dynamically managed to process the process information and the process queue. The memory pool area is divided into 2,048 bytes of pages for flexible allocation and release. The memory pool area is divided into a header area Can be allocated at the front.

또한, 상기 메모리 풀 영역은, 메모리 풀을 구성하고, 페이지 단위로 영역을 할당하거나 또는 해제하는 제1계층; 상기 제1계층의 상위계층으로서, 메모리 풀을 사용하는 프로세스 정보 또는 프로세스 전문 큐의 영역을 할당하거나 또는 해제하는 제2계층; 및 상기 제2계층의 상위계층으로서, 상기 프로세스 정보 또는 프로세스 전문 큐에 실제 데이터를 설치(set)하거나 또는 제거(clear)하는 제3계층;을 포함하고, 각각의 상위계층은, 하위계층에 의뢰하여 각 영역을 할당하거나 또는 해제할 수 있다. The memory pool area may include a first layer that configures a memory pool and allocates or releases a region on a page basis; A second layer as an upper layer of the first layer, for allocating or releasing an area of the process information or the process specialty queue using the memory pool; And a third layer that is an upper layer of the second layer and sets or clears actual data in the process information or the process specialty queue, To allocate or release each area.

이에 의해, 초기에 선언된 버퍼링용 메모리의 용량을 입력되는 대량의 메시지의 처리 속도가 초과하는 경우에, 확장 메모리 영역을 할당하고, 할당된 확장 메모리 영역을 이용하여 입력되는 메시지를 처리하되, 확장 메모리 영역의 여유공간을 지속적으로 확보하여 입력되는 메시지를 원활하게 처리할 수 있다. Accordingly, when the capacity of the buffer for initialization declared exceeds the processing speed of a large amount of input messages, the extended memory area is allocated, the input message is processed using the allocated extended memory area, It is possible to smoothly process the input message by continuously securing the free space of the memory area.

도 1은 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 이용하는 메모리 관리 시스템의 메모리 할당 영역 구조를 설명하기 위해 도시된 도면이다.
도 2는 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 이용하는 메모리 관리 시스템을 설명하기 위해 도시된 도면이다.
도 3은 본 발명의 일 실시예에 따른 버퍼 메모리 관리부를 더욱 상세히 설명하기 위해 도시된 도면이다.
도 4는 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 설명하기 위해 도시된 도면이다.
도 5 내지 도 6은 본 발명의 일 실시예에 따른 메모리 초과시 메시지를 처리하는 과정을 설명하기 위해 도시된 도면이다.
도 7 내지 도 8은 본 발명의 일 실시예에 따른 저장부에 저장된 메시지를 불러들여 처리하는 과정을 설명하기 위해 도시된 도면이다.
도 9는 본 발명의 일 실시예에 따른 확장 메모리 영역의 구조를 설명하기 위해 도시된 도면이다.
도 10은 본 발명의 일 실시예에 따른 프로세스 정보 영역과 다른 영역과의 관계를 설명하기 위해 도시된 도면이다.
도 11 내지 도 12는 본 발명의 일 실시예에 따른 메모리 풀 영역의 구조를 설명하기 위해 도시된 도면이다.
도 13은 본 발명의 일 실시예에 따른 페이지 영역을 설명하기 위해 도시된 도면이다.
1 is a diagram illustrating a memory allocation area structure of a memory management system using a memory management method of a tandem system according to an embodiment of the present invention.
2 is a diagram illustrating a memory management system using a memory management method of a tandem system according to an embodiment of the present invention.
3 is a diagram illustrating a buffer memory management unit according to an embodiment of the present invention.
4 is a diagram illustrating a memory management method of a tandem system according to an embodiment of the present invention.
5 to 6 are diagrams for explaining a process of processing a message when a memory is over according to an embodiment of the present invention.
7 to 8 are diagrams for explaining a process of retrieving and processing a message stored in the storage unit according to an embodiment of the present invention.
9 is a diagram illustrating a structure of an extended memory area according to an embodiment of the present invention.
FIG. 10 is a diagram illustrating a relationship between a process information area and another area according to an embodiment of the present invention. FIG.
11 to 12 are diagrams illustrating a structure of a memory pool area according to an embodiment of the present invention.
13 is a diagram illustrating a page area according to an embodiment of the present invention.

이하에서는 본 발명의 실시예들을 첨부 도면을 참조하여 상세히 설명한다. 이하에 소개되는 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위한 예로서 제공되는 것이다. 본 발명은 이하 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The embodiments described below are provided as examples for allowing a person skilled in the art to sufficiently convey the ideas of the present invention. The present invention is not limited to the embodiments described below and may be embodied in other forms.

도 1은 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 이용하는 메모리 관리 시스템의 메모리 할당 영역 구조를 설명하기 위해 도시된 도면이고, 도 2는 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 이용하는 메모리 관리 시스템을 설명하기 위해 도시된 도면이다. FIG. 1 is a diagram illustrating a memory allocation area structure of a memory management system using a memory management method of a tandem system according to an embodiment of the present invention. FIG. 2 is a block diagram of a tandem system according to an exemplary embodiment of the present invention. Fig. 2 is a diagram illustrating a memory management system using a memory management method.

본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 이용하는 메모리 관리 시스템(이하에서는 '메모리 관리 시스템'으로 총칭하기로 함)은 초기에 선언된 버퍼링용 메모리의 용량을 입력되는 대량의 메시지의 처리 속도가 초과하는 경우에, 라우터 프로세스(10)를 이용하여 확장 메모리(Extended Swap Memory) 영역을 할당하고, 할당된 확장 메모리 영역을 이용하여 입력되는 메시지를 처리하되, 확장 메모리 영역의 여유공간을 지속적으로 확보하여 입력되는 메시지를 원활하게 처리하기 위해 마련된다. A memory management system (hereinafter collectively referred to as a " memory management system ") that uses a memory management method of a tandem system according to an embodiment of the present invention stores the capacity of an initially declared buffering memory, When the processing speed is exceeded, an extended swap memory area is allocated by using the router process 10, a message input by using the allocated extended memory area is processed, And is continuously provided to smoothly process the input message.

이를 위해, 본 메모리 관리 시스템은 버퍼 메모리 관리부(100) 및 저장부(200)를 포함할 수 있다. To this end, the memory management system may include a buffer memory management unit 100 and a storage unit 200.

버퍼 메모리 관리부(100)는, 라우터 프로세스(10)에 의해 확장 메모리 영역이 할당되면, 할당된 확장 메모리 영역을 이용하여 입력되는 메시지를 처리하되, 확장 메모리 영역의 여유공간을 지속적으로 확보하여 입력되는 메시지를 원활하게 처리할 수 있다. When the extended memory area is allocated by the router process 10, the buffer memory management unit 100 processes the input message using the allocated extended memory area, and continuously reserves the free space of the extended memory area, Messages can be processed smoothly.

구체적으로, 버퍼 메모리 관리부(100)는, 운영자의 요청에 의해, 확장 메모리 영역을 할당하고, 할당된 확장 메모리 영역의 크기를 산정하여, 산정된 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하고, 사용량 초과시, 입력된 메시지를 저장부(200)에 저장 처리하여 메모리 여유공간을 확보할 수 있다. Specifically, the buffer memory management unit 100 allocates the extended memory area at the request of the operator, calculates the size of the allocated extended memory area, and determines whether the memory usage exceeds the calculated size of the extended memory area When the usage amount is exceeded, the input message is stored in the storage unit 200 and the memory space can be secured.

저장부(200)는 저장 디스크와 같은 물리적인 저장수단으로 구현되어, 확장 메모리 영역으로부터 메시지를 수신하여 저장하거나, 저장된 메시지를 확장 메모리 영역에 전달할 수 있다. The storage unit 200 may be implemented as a physical storage unit such as a storage disk so as to receive and store a message from the extended memory area or to transmit the stored message to the extended memory area.

도 3은 본 발명의 일 실시예에 따른 버퍼 메모리 관리부(100)를 더욱 상세히 설명하기 위해 도시된 도면이다.FIG. 3 is a diagram for explaining the buffer memory management unit 100 according to an embodiment of the present invention in more detail.

버퍼 메모리 관리부(100)는, 확장 메모리 영역을 할당하고, 할당된 확장 메모리 영역을 이용하여 입력되는 메시지를 처리하되, 확장 메모리 영역의 여유공간을 지속적으로 확보하여 입력되는 메시지를 원활하게 처리하기 위해, 버퍼링 엔진(110), 브로드캐스팅 엔진(120), 모니터링 모듈(130), 이미지 다운로드/로딩 모듈(140) 및 메시지 제거 모듈(150)을 포함할 수 있다. The buffer memory management unit 100 allocates an extended memory area and processes the input message using the allocated extended memory area. In order to smoothly process the input message by continuously reserving free space in the extended memory area A buffering engine 110, a broadcasting engine 120, a monitoring module 130, an image download / loading module 140, and a message removal module 150.

버퍼링 엔진(110)은, 라우터 버퍼링 큐에 따라 입력되는 메시지를 버퍼링하기 위해 마련되고, 브로드캐스팅 엔진(120)은, 버퍼링된 메시지를 서비스 프로세스(20)로 브로드캐스팅할 수 있다. The buffering engine 110 is provided for buffering messages entered according to the router buffering queue and the broadcasting engine 120 may broadcast the buffered messages to the service process 20. [

모니터링 모듈(130)은, 할당된 확장 메모리 영역의 크기를 산정하여, 산정된 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단할 수 있으며, 이미지 다운로드/로딩 모듈(140)은, 기설정된 조건에 따라 선별된 메시지가, 메모리 이미지 형태로 저장부(200)에 저장되도록 하거나, 저장부(200)에 저장된 메시지를 확장 메모리 영역으로 불러들일 수 있다. The monitoring module 130 may determine whether the memory usage exceeds an amount of the extended memory area calculated by calculating the size of the allocated extended memory area and the image downloading / The selected message may be stored in the storage unit 200 in the form of a memory image or the message stored in the storage unit 200 may be loaded into the extended memory area.

메시지 제거 모듈(150)은, 기설정된 조건에 따라 선별된 메시지를 저장하지 않고, 제거할 수 있다. The message removal module 150 can remove the selected message according to predetermined conditions without storing it.

도 4는 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법을 설명하기 위해 도시된 도면이다. 본 발명의 일 실시예에 따른 탠덤 시스템의 메모리 관리방법은 버퍼 메모리 관리부(100)가 확장 메모리 영역이 할당되면, 확장 메모리 영역의 크기를 산정하고(S410), 입력되는 메시지를 버퍼링하되(S420), 산정된 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하고(S430), 사용량 초과시(S430-Y), 입력된 메시지를 저장부(200)에 저장 처리하여(S440), 메모리 여유공간을 확보할 수 있다(S450). 4 is a diagram illustrating a memory management method of a tandem system according to an embodiment of the present invention. In the memory management method of the tandem system according to the embodiment of the present invention, when the buffer memory management unit 100 allocates the extended memory area, the size of the extended memory area is calculated (S410), the input message is buffered (S420) , It is determined whether the memory usage exceeds the calculated size of the extended memory area at step S430. If the used memory area is exceeded at step S430-Y, the input message is stored in the storage unit 200 at step S440. (S450).

구체적으로 예를 들면, 버퍼 메모리 관리부(100)는 메모리 여유공간을 확보하기 위해, 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 산정된 확장 메모리 영역의 크기의 95%가 되면, 기설정된 조건에 따라 버퍼링된 메시지 중 일부 메시지가 선별되어, 저장부(200)에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 확장 메모리 영역의 크기의 40%에 도달하도록 할 수 있다.More specifically, for example, when the buffer memory management unit 100 has 95% of the size of the extended memory area used for buffering the input message in order to secure memory space, Some of the messages are selected and stored in the storage unit 200 and the stored messages are removed from the extended memory area so that the free space of the extended memory area can reach 40% have.

또한, 메모리 관리부는 메모리 여유공간이 확보되면, 저장부(200)에 저장된 메시지를 확장 메모리 영역에 불러들이고(S460), 불러들인 메시지를 버퍼링할 수 있다(S470). In addition, when the memory space is secured, the memory management unit loads the message stored in the storage unit 200 into the extended memory area (S460), and buffers the loaded message (S470).

그리고 메모리 관리부는 버퍼링된 메시지를 서비스 프로세스(20)로 브로드캐스팅함으로써(S480), 입력되는 메시지를 원활하게 처리할 수 있다. The memory management unit can smoothly process the input message by broadcasting the buffered message to the service process 20 (S480).

도 5 내지 도 6은 본 발명의 일 실시예에 따른 메모리 초과시 메시지를 처리하는 과정을 설명하기 위해 도시된 도면이다. 5 to 6 are diagrams for explaining a process of processing a message when a memory is over according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 버퍼 메모리 관리부(100)는, 도 5에 도시된 옵션 1과 같이 메모리 여유공간을 확보하기 위해, 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 산정된 확장 메모리 영역의 크기의 95%가 되면, 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지가, 메모리 이미지 형태로 저장부(200)에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 확장 메모리 영역의 크기의 40%에 도달하도록 할 수 있다. The buffer memory management unit 100 according to an exemplary embodiment of the present invention deletes the size of the extended memory area that is used for buffering the input message, Of the buffered messages are stored in the storage unit 200 in the form of a memory image and the stored messages are removed from the extended memory area , The free space of the extended memory area can reach 40% of the size of the extended memory area.

다른 예를 들면, 버퍼 메모리 관리부(100)는, 도 5에 도시된 옵션 2와 같이 메모리 여유공간을 확보하기 위해, 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 산정된 확장 메모리 영역의 크기의 95%가 되면, 추가로 입력되는 메시지 또는 기존에 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지를 버림(abandon)으로써, 확장 메모리 영역의 여유공간이 확장 메모리 영역의 크기의 40%에 도달하도록 할 수 있다. For example, the buffer memory management unit 100 may allocate a memory area occupying 95% of the size of the extended memory area, which is used for buffering the input message, The free space of the extended memory area is reduced to 40 times the size of the extended memory area by abandoning the selected message according to the old input time of the further input message or the existing buffered message, %. ≪ / RTI >

또한, 버퍼 메모리 관리부(100)는, 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 산정된 확장 메모리 영역의 크기의 70%, 80%, 85% 및 90%에 도달하는 시점에 각각 확장 메모리 영역의 초과사용 위험 경보정보가 출력되도록 할 수 있다. At the time when the memory used for buffering the input message reaches 70%, 80%, 85%, and 90% of the size of the expanded memory area, the buffer memory management unit 100 stores the excess memory area It is possible to cause the danger warning information to be output.

도 7 내지 도 8은 본 발명의 일 실시예에 따른 저장부(200)에 저장된 메시지를 불러들여 처리하는 과정을 설명하기 위해 도시된 도면이다. 7 to 8 are views for explaining a process of retrieving and processing a message stored in the storage unit 200 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 버퍼 메모리 관리부(100)는, 메모리 관리부는 메모리 여유공간이 확보되면, 저장부(200)에 저장된 메시지를 확장 메모리 영역에 불러들이고, 불러들인 메시지를 버퍼링할 수 있다. In the buffer memory management unit 100 according to the embodiment of the present invention, when the memory space is secured, the memory management unit can load the message stored in the storage unit 200 into the extended memory area and buffer the loaded message .

구체적으로 예를 들면, 버퍼 메모리 관리부(100)는, 사용량 초과 시점(time)으로부터 기설정된 제1기간이 지나가거나, 운영자가 임의로 판단하거나 또는 산정된 확장 메모리 영역의 크기의 50% 이상의 메모리 여유공간이 확보되면, 저장부(200)에 저장된 메시지를 확장 메모리 영역을 불러들일 수 있다. More specifically, for example, the buffer memory management unit 100 determines whether or not a predetermined first period elapses from an exceeded usage time, a memory free space of 50% or more of the size of the extended memory area, The message stored in the storage unit 200 can be loaded into the extended memory area.

도 9는 본 발명의 일 실시예에 따른 확장 메모리 영역의 구조를 설명하기 위해 도시된 도면이고, 도 10은 본 발명의 일 실시예에 따른 프로세스 정보 영역과 다른 영역과의 관계를 설명하기 위해 도시된 도면이다. FIG. 9 is a view for explaining a structure of an extended memory area according to an embodiment of the present invention. FIG. 10 is a diagram illustrating a structure of an extended memory area according to an embodiment of the present invention. Respectively.

본 발명의 일 실시예에 따른 확장 메모리 영역은 브로드캐스팅에 필요한 프로세스 정보 및 대량의 메시지를 관리를 위하여 대량의 확장 메모리를 사용하며, 그 크기는 환경 설정 파일인 'PCONF'에 등록된 프로세스들의 수에 의해 결정되며, 할당된 확장 메모리 영역은 여러 개의 영역으로 구분될 수 있다. The extended memory area according to an exemplary embodiment of the present invention uses a large amount of extended memory for managing process information and a large number of messages required for broadcasting, and its size is the number of processes registered in 'PCONF' And the allocated extended memory area may be divided into several areas.

구체적으로 확장 메모리 영역은 전송 큐(Queue) 영역, 라우팅 테이블 영역, 공통 큐(Queue) 영역, 프로세스 핸들 영역, 메모리 풀 영역 및 기타 영역으로 구성될 수 있다. Specifically, the extended memory area may be composed of a transmission queue area, a routing table area, a common queue area, a process handle area, a memory pool area, and other areas.

전송 큐(Queue) 영역은, 쓰기/읽기 명령이 완료되는 시점까지 전송 버퍼를 유지하는 동시에, 128개의 전문을 처리하기 위해, 4000.25 Kbytes(128 * 32000 / 1024)를 할당할 수 있다. The transmission queue area can allocate 4000.25 Kbytes (128 * 32000/1024) in order to maintain the transmission buffer until the completion of the write / read command and to process 128 specials.

라우팅 테이블 영역은, 하나의 라우터에 최대 접속 가능한 프로세스를 5,120개 한정하고, 각각의 프로세스별 필요한 공간에 22 bytes로 할당하기 위해, 110 Kbytes를 할당하며, 이때, 라우팅 테이블은 프로세스 기호 명으로 프로세스 정보(메모리 풀 영역 내에 할당됨)를 구하기 위하여 사용하며, 전문을 라우팅(Routing)할 경우 목적지를 찾기 위하여 반드시 사용하게 되므로, 더욱 빠른 속도를 위하여 2진 검색을 사용하는 것이 바람직하다. The routing table area allocates 110 Kbytes in order to allocate 22 bytes to the required space for each process by allocating 5,120 processes that can be connected to one router at a maximum. At this time, the routing table stores process information (Allocated in the memory pool area). In order to find the destination, it is desirable to use binary search for faster speed.

여기서, 첨언하면, 2진 검색은 정렬된 배열에서 매우 빠르게 검색할 수 있는 검색 알고리즘이다. 이 검색 방법은 검색을 위하여 항상 정렬된 상태로 유지되어야 한다는 단점이 있으나 메모리의 낭비가 적고, 비교 횟수가 현저하게 적어서 크게 변동이 없는 데이터에서 많이 사용한다.Incidentally, binary search is a search algorithm that can search very quickly in an ordered array. This retrieval method has a disadvantage that it must be always kept in an ordered state for retrieval, but it is often used in a case where there is little waste of memory and the number of comparisons is remarkably small.

라우팅 테이블에 이 검색방법을 사용하는 이유는 동적으로 프로세스를 등록/삭제하는 경우가 빈번하게 발생하지 않기 때문이다.The reason for using this search method in the routing table is that it does not happen frequently to register / delete the process dynamically.

또한, 동적인 추가/삭제를 위하여 추가시에는 내부적으로 삽입정렬을 이용하여 정렬을 유지하며, 삭제시에도 배열을 유지하기위해 배열을 재정비할 수 있다. In addition, when adding for dynamic addition / deletion, it is possible to maintain the alignment by using the insertion alignment internally, and to rearrange the array to maintain the alignment even when the deletion is performed.

공통 큐(Queue) 영역은, 복수의 프로세스가 처리량이 많은 단일 업무를 하나의 큐로 묶어 처리하도록, 프로세스별 부하 분배(Load Balancing)를 지원하기 위해, 60 Kbytes를 할당하고, 이때, 공통 큐란 처리량이 많은 단일 업무 경우 복수의 프로세스를 하나의 큐로 묶어 처리할 수 있도록 하는 것으로 프로세스별 부하 분배를 지원할 수 있도록 하는 기능이다. The common queue area allocates 60 Kbytes in order to support process-specific load balancing so that a plurality of processes bundle and process a single task having a high throughput into one queue. In this case, In many single tasks, it is a function that can support process-specific load distribution by allowing multiple processes to be grouped into a single queue.

프로세스 핸들 영역은, 프로세스 정보를 검색하기 위해, 120 Kbytes를 할당할 수 있다. 프로세스 핸들 영역은 프로세스 핸들로 프로세스 정보를 검색하기 위해서 사용하는 영역으로 라우팅 테이블 영역과 마찬가지로 2진 검색을 사용한다. The process handle area can allocate 120 Kbytes to retrieve process information. The process handle area is used as a process handle to retrieve process information. It uses binary search like the routing table area.

메모리 풀 영역은, 프로세스 정보와 프로세스 전문 큐를 처리하기 위해, 유동적으로 관리되며, 유동적인 할당 및 해제를 위해, 2,048 bytes의 페이지 단위로 분할되어 처리되며, 페이지를 효과적으로 관리하기 위한 헤더 영역이 제일 앞에 할당될 수 있다. The memory pool area is dynamically managed to process the process information and the process queue, and is divided into 2,048-byte pages for flexible allocation and release. The header area for effectively managing the page is the first Can be assigned in advance.

확장 메모리의 영역의 크기를 산정하는 방법은, ①라우터가 사용하는 기본영역(4425984 Bytes)을 산정하고, ②프로세스 정보를 저장하기 위한 영역을 아래의 제1 산출식으로 산정할 수 있다. The method of estimating the area size of the extended memory is as follows. (1) The basic area (4425984 Bytes) used by the router is calculated. (2) The area for storing the process information is calculated by the following first calculation expression.

제1 산출식 = (프로세스 수 + 1) / 21 * 2048 BytesFirst calculation formula = (number of processes + 1) / 21 * 2048 Bytes

그리고 ③전문을 저장하기 위한 영역을 아래의 제2 산출식으로 산정할 수 있다. And (3) the area for storing the text can be calculated by the second calculation equation below.

제2 산출식 = (저장할 최대 전문수 / 2) * 2048 Bytes Second calculation formula = (maximum number of proposals to store / 2) * 2048 Bytes

단, 최대 전문수는 1010 Bytes를 기준으로 한 개수이며, 더 긴 전문에 대해서는 그 배수만큼 줄어든다. 즉, 2000 Bytes 전문 1개는 저장이 2개의 영역에 나누어 저장된다.However, the maximum number of specifications is based on 1010 Bytes, which is reduced by a factor of several for longer specifications. That is, one 2000-byte special is stored in two areas.

④앞에서 산출한 ②번과 ③번 영역을 관리하기 위한 영역은 아래의 제3 산출식으로 산출할 수 있다. ④ The area for managing the ② and ③ area calculated above can be calculated by the following third calculation formula.

제3 산출식 = ((②번 영역의 크기 + ③번 영역의 크기 / 2048 ) * 8 / 2048 + 1) * 2048= (②번 영역의 페이지(2048 Bytes) Count / 256 + 1) * 2048(2048 bytes) Count / 256 + 1) * 2048 = (2048 bytes) (2048 bytes) (2048 bytes) (2048 bytes)

도 11 내지 도 12는 본 발명의 일 실시예에 따른 메모리 풀 영역의 구조를 설명하기 위해 도시된 도면이고, 도 13은 본 발명의 일 실시예에 따른 페이지 영역을 설명하기 위해 도시된 도면이다. FIGS. 11 to 12 are diagrams for explaining a structure of a memory pool area according to an embodiment of the present invention, and FIG. 13 is a view for explaining a page area according to an embodiment of the present invention.

프로세스 정보 및 전문 큐로 사용되는 메모리 풀 영역은 페이지 단위(2048 Bytes)로 할당을 받아 사용하고, 다 사용한 영역은 해제하여 다른 용도로 사용할 수 있도록 해준다. 이런 기능을 구현하기 위해 메모리 풀의 구현은 3계층 구조를 가진다.The memory pool area used as process information and specialty queue is allocated in page unit (2048 Bytes), and the used area is released and used for other purposes. To implement such a function, the implementation of the memory pool has a three-layer structure.

구체적으로, 메모리 풀 영역은, 메모리 풀을 구성하고, 페이지 단위로 영역을 할당하거나 또는 해제하는 제1계층 제1계층의 상위계층으로서, 메모리 풀을 사용하는 프로세스 정보 또는 프로세스 전문 큐의 영역을 할당하거나 또는 해제하는 제2계층 및 제2계층의 상위계층으로서, 프로세스 정보 또는 프로세스 전문 큐에 실제 데이터를 설치(set)하거나 또는 제거(clear)하는 제3계층으로 구성될 수 있다. Specifically, the memory pool area is an upper layer of the first hierarchical first hierarchy that constitutes a memory pool and allocates or releases areas on a page basis, and allocates the process information using the memory pool or the area of the process special queue And a third layer that is an upper layer of the second layer and the second layer that sets or clears the actual data in the process information or process professional queue.

이때, 각각의 상위계층은, 하위계층에 의뢰하여 각 영역을 할당하거나 또는 해제할 수 있다. At this time, each upper layer can allocate or release each area by requesting the lower layer.

제1계층-가장 하위의 계층-은 메모리 풀을 구성하고 페이지단위로 영역을 할당하고 해제하는 계층이며, 제2계층은 메모리 풀을 사용하는 프로세스 정보 또는 전문 큐의 영역을 할당하는 계층으로 제1계층에 의뢰하여 페이지단위로 영역을 할당받아 프로세스 정보 또는 전문 큐의 영역을 할당하고 다 사용한 후에 각각의 영역을 해제하며, 한 페이지의 모든 영역에 대한 사용이 끝나면, 제1계층에 의뢰하여 페이지 영역을 해제한다. 제3계층-가장 상위의 계층-은 프로세스 정보 또는 전문 큐에 실제 데이터를 설치 또는 제거하는 계층으로 필요에 의해 각 영역을 연결 또는 단절하는 기능을 가진다. 제3계층은 제2계층에 의뢰하여 각 영역을 할당 또는 해제할 수 있다. The first layer - the lowest layer - is a layer that configures a memory pool and allocates and releases areas on a page-by-page basis. The second layer is a layer that allocates the process information or the area of the specialized queue that uses the memory pool. And allocates an area in page units to allocate the area of the process information or the specialized queue. After the use of all the areas of one page is finished, the first layer requests the page area Lt; / RTI > Layer 3 - the uppermost layer - is the layer that installs or removes actual data in the process information or specialty queue, and has the ability to connect or disconnect each zone as needed. The third layer can allocate or release each area by requesting the second layer.

메모리 풀의 구조는 헤더 영역(각 페이지에 대한 정보 저장)과 할당 영역으로 나누어지며, 각 헤더 영역과 할당 영역은 1:1로 매핑 된다. 도 12에 도시된 바와 같이 좌측에 확대된 페이지 그림에서 페이지 0 헤더는 페이지 0과 매핑이 되고, 페이지 1 헤더는 페이지 1과 매핑 되며, 그 이후도 1:1 매핑이 유지된다. 주의할 점은 헤더 영역을 이루는 페이지 0에서 페이지 N까지도 페이지 영역에서 매핑을 한다는 것이다.The structure of the memory pool is divided into a header area (information for each page) and an allocation area, and each header area and the allocation area are mapped to 1: 1. As shown in FIG. 12, the page 0 header is mapped to page 0, the page 1 header is mapped to page 1, and the 1: 1 mapping thereafter is maintained. Note that page 0 to page N, which make up the header area, are also mapped in the page area.

또한, 새로운 페이지를 할당할 경우 사용하지 않는 빈 페이지를 매번 검색하지 않도록 미사용 페이지 목록(Single Linked List)를 관리한다. 따라서 새로운 페이지 할당을 요구받는 경우, 미사용 페이지 목록의 첫 번째 페이지를 할당하면 된다. 반대로 사용이 끝난 페이지를 해제할 경우에는 해제할 페이지를 미사용 목록 제일 앞에 추가하면 된다.In addition, when a new page is allocated, a single linked list is managed so that a blank page that is not used is not searched every time. Therefore, when a new page allocation is requested, the first page of the unused page list is allocated. Conversely, if you want to release a used page, you can add the page to be released to the front of the unused list first.

각 헤더 영역은 할당 영역의 포인터, 미사용 목록을 위한 다음 포인터 및 현재 사용 여부 등으로 구성된다.Each header area consists of a pointer to the allocated area, the next pointer to an unused list, and whether it is currently in use.

제2계층은 제1계층에 의뢰하여 할당받은 페이지를 프로세스 정보/전문 큐 영역으로 분할하여 관리한다. 제2계층은 도 13에 도시된 바와 같이 두 종류의 영역이 있고, 각 영역은 서로 배타적이며, 기능은 서로 유사하지만 관리하는 영역의 단위가 서로 다르고 저장되는 데이터가 서로 상이하여 작성된 코드 역시 서로 완전히 독립적이다.The second layer manages the page assigned to the first layer by dividing the allocated page into the process information / specialized queue area. The second layer has two kinds of regions as shown in FIG. 13, and the regions are mutually exclusive. The functions are similar to each other, but the units of the region to be managed are different from each other and the stored data are different from each other. It is independent.

영역이 할당되는 과정은 프로세스 정보 영역이나 전문 큐 영역이나 유사하다. 그 과정은 다음과 같이 요약될 수 있다.The process of allocating the area is similar to the process information area or the specialized queue area. The process can be summarized as follows.

우선, 현재 미사용(Free) 목록에 해당 영역의 미사용 영역이 있는지 체크 할 수 있다. 구체적으로, 미사용 영역이 없는 경우에는 제1계층에 의뢰하여 페이지를 할당받고 해당 영역으로 나누어 각 영역을 미사용 목록에 등재한다. 미사용 영역이 이미 있었던 경우는 페이지를 할당받지 않는다.First, it is possible to check whether there is an unused area in the current free list. Specifically, when there is no unused area, the page is allocated to the first layer and divided into the corresponding area, and each area is registered in the unused list. If there is already an unused area, no page is allocated.

영역의 해제 역시 프로세스 정보 영역이나 전문 큐 영역이나 유사하다.The release of the area is also similar to the process information area or the specialized queue area.

구체적으로, 해제 대상 영역이 포함된 페이지의 모든 영역이 미사용 영역인지 Check 페이지별로 현재 사용 영역 수를 가지는데 그 값이 0이면 사용하는 영역이 없다는 것이며, 이 경우 페이지 자체를 해제하여야 한다. 또한, 미사용 목록에 존재하는 해제 대상 페이지에 포함된 영역은 미사용 목록에서 제거해야 한다.Specifically, if all the pages of the page including the release target area are unused areas, the check page has the current number of used areas. If the value is 0, there is no used area. In this case, the page itself must be released. Also, the area included in the unallocated target page in the unused list must be removed from the unused list.

다음으로, 대상 영역을 해제하고 미사용 목록에 추가한다. 단, 현재 미사용(Free) 목록에 해당 영역의 미사용 영역이 있는지 체크하는 경우에는 페이지 전체가 해제되므로 미사용 목록에 추가하지 않는다.Next, the target area is released and added to the unused list. However, when checking whether there is an unused area in the free list, the entire page is released, so it is not added to the unused list.

각 영역은 단순히 메모리 영역만을 할당받아 데이터만 저장함으로 해서 그 영역을 사용할 수는 없으며, 그 영역의 포인터를 체계적으로 관리하여야만 그 영역을 사용할 수 있다. 제3계층은 할당받은 영역에 데이터를 설치하고 그 포인터를 체계적으로 관리하는 기능을 가진다. 제3계층의 영역 관리 기능은 프로세스 정보 영역과 전문 큐 영역을 완전히 별개의 것으로 여기게 되며, 구현된 코드 역시 서로 완전히 다른 처리를 수행할 수 있다. Each area can be used only by allocating only the memory area and storing the data. Therefore, the area can be used only if the pointer of the area is managed systematically. The third layer has the function of installing data in the allocated area and managing the pointers systematically. The area management function of the third layer regards the process information area and the professional queue area as completely separate, and the implemented code can also perform processing completely different from each other.

프로세스 정보 영역과 전문 큐 영역을 분리하여 설명하면, 도 9에 도시된 바와 같이 새로운 프로세스를 추가하기 위해서는 연관된 다른 영역도 함께 변경해야 한다. 라우팅 테이블에 프로세스 기호 명으로 검색할 수 있도록 데이터가 추가되며, 공통 큐를 가지는 경우에는 공통 큐 영역도 함께 변경하게 된다. 단, 프로세스 핸들 테이블은 해당 프로세스로부터 BOOT-UP 전문을 수신한 경우 프로세스를 오픈 한 후에 세팅하게 된다.The process information area and the professional queue area will be described separately. In order to add a new process as shown in FIG. 9, other related areas must be changed as well. Data is added to the routing table so that it can be searched by the process symbol name. In case of having a common queue, the common queue area is also changed. However, the process handle table is set after opening the process when the BOOT-UP message is received from the process.

그리고 프로세스 정보의 삭제 역시 연관된 다른 영역을 함께 변경해야 한다. 라우팅 테이블을 이용하여 기호 명으로 프로세스 정보를 구하고, 공통 큐 영역을 삭제한 후 프로세스 정보 영역을 해제(제2계층에 의뢰)하고 라우팅 테이블에서 해당 프로세스에 대한 정보를 제거할 수 있다.And deletion of process information should also change the other areas associated with it. After deleting the common queue area and releasing the process information area (requesting to the second layer), information on the process can be removed from the routing table.

한편, 본 실시예에 따른 장치의 기능 및 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다.It goes without saying that the technical idea of the present invention can also be applied to a computer-readable recording medium having a computer program for performing the functions and methods of the apparatus according to the present embodiment. In addition, the technical idea according to various embodiments of the present invention may be realized in the form of a computer-readable programming language code recorded on a computer-readable recording medium. The computer-readable recording medium is any data storage device that can be read by a computer and can store data.

예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다.For example, the computer-readable recording medium may be a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical disk, a hard disk drive, a flash memory, a solid state disk (SSD), or the like.

또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터 간에 연결된 네트워크를 통해 전송될 수도 있다.In addition, the computer readable code or program stored in the computer readable recording medium may be transmitted through a network connected between the computers.

이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the invention as defined by the appended claims. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

10 : 라우터 프로세스
20 : 서비스 프로세스
100 : 버퍼 메모리 관리부
110 : 버퍼링 엔진
120 : 브로드캐스팅 엔진
130 : 모니터링 모듈
140 : 이미지 다운로드/로딩 모듈
150 : 메시지 제거 모듈
200 : 저장부
10: Router process
20: Service Process
100: buffer memory management unit
110: buffering engine
120: broadcasting engine
130: Monitoring module
140: Image Download / Loading Module
150: Message Removal Module
200:

Claims (11)

삭제delete 삭제delete 버퍼 메모리 관리부가, 입력되는 메시지를 버퍼링하는 단계; 및
버퍼 메모리 관리부가, 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고,
상기 메시지를 버퍼링하는 단계는,
버퍼 메모리 관리부가, 확장 메모리 영역 크기를 산정하는 단계;
버퍼 메모리 관리부가, 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및
사용량 초과시, 상기 입력된 메시지가 저장부에 저장되도록 처리하여, 메모리 여유공간을 확보하는 단계;를 포함하고,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 기설정된 조건에 따라 상기 버퍼링된 메시지 중 일부 메시지가 선별되어, 저장부에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 하며,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 70%, 80%, 85% 및 90%에 도달하는 시점에 각각 상기 확장 메모리 영역의 초과사용 위험 경보정보가 출력되도록 하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
Buffer memory management unit buffering an input message; And
And a buffer memory management unit broadcasting the buffered message to a service process,
Wherein buffering the message comprises:
The buffer memory management unit estimating an extended memory area size;
The buffer memory management unit determining whether the memory usage exceeds an amount of the extended memory area; And
Processing the received message to be stored in the storage unit when the usage amount is exceeded, thereby securing a memory free space;
The step of securing the memory space may include:
When a memory used for buffering the input message reaches 95% of the calculated size of the extended memory area, some messages among the buffered messages are selected and stored in a storage unit according to predetermined conditions, Thereby allowing the free space of the extended memory area to reach 40% of the size of the extended memory area,
The step of securing the memory space may include:
And at the time when the memory used for buffering the input message reaches 70%, 80%, 85%, and 90% of the estimated extended memory area size, the overuse risk warning information of the extended memory area is output The memory management method comprising:
버퍼 메모리 관리부가, 입력되는 메시지를 버퍼링하는 단계; 및
버퍼 메모리 관리부가, 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고,
상기 메시지를 버퍼링하는 단계는,
버퍼 메모리 관리부가, 확장 메모리 영역 크기를 산정하는 단계;
버퍼 메모리 관리부가, 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및
사용량 초과시, 상기 입력된 메시지가 저장부에 저장되도록 처리하여, 메모리 여유공간을 확보하는 단계;를 포함하고,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 기설정된 조건에 따라 상기 버퍼링된 메시지 중 일부 메시지가 선별되어, 저장부에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 하며,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 상기 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지가, 메모리 이미지 형태로 저장부에 저장되도록 하고, 상기 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
Buffer memory management unit buffering an input message; And
And a buffer memory management unit broadcasting the buffered message to a service process,
Wherein buffering the message comprises:
The buffer memory management unit estimating an extended memory area size;
The buffer memory management unit determining whether the memory usage exceeds an amount of the extended memory area; And
Processing the received message to be stored in the storage unit when the usage amount is exceeded, thereby securing a memory free space;
The step of securing the memory space may include:
When a memory used for buffering the input message reaches 95% of the calculated size of the extended memory area, some messages among the buffered messages are selected and stored in a storage unit according to predetermined conditions, Thereby allowing the free space of the extended memory area to reach 40% of the size of the extended memory area,
The step of securing the memory space may include:
If the memory used for buffering the input message becomes 95% of the calculated size of the extended memory area, the message sorted according to the oldest input time of the buffered messages is stored in the form of a memory image And allowing the stored message to be removed from the extended memory area so that the free space of the extended memory area reaches 40% of the extended memory area size.
제4항에 있어서,
상기 메모리 여유공간이 확보되면, 버퍼 메모리 관리부가, 상기 저장부에 저장된 메시지를 상기 확장 메모리 영역에 불러들이는(Loading) 단계; 및
버퍼 메모리 관리부가, 상기 불러들인 메시지를 버퍼링하는 단계;를 더 포함하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
5. The method of claim 4,
Loading the message stored in the storage unit into the extended memory area when the memory space is secured; And
And buffer memory management unit buffering the invoked message. ≪ Desc / Clms Page number 19 >
제5항에 있어서,
상기 불러들이는 단계는,
사용량 초과 시점(time)으로부터 기설정된 제1기간이 지나가거나 또는 상기 산정된 확장 메모리 영역 크기의 50% 이상의 메모리 여유공간이 확보되면, 상기 저장부에 저장된 메시지를 상기 확장 메모리 영역으로 불러들이는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
6. The method of claim 5,
The loading step may include:
When a preset first period elapses from an exceeded usage time or when a memory free space of 50% or more of the estimated extended memory area size is secured, loading the message stored in the storage unit into the extended memory area A method for managing memory in a tandem system.
버퍼 메모리 관리부가, 입력되는 메시지를 버퍼링하는 단계; 및
버퍼 메모리 관리부가, 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고,
상기 메시지를 버퍼링하는 단계는,
버퍼 메모리 관리부가, 확장 메모리 영역 크기를 산정하는 단계;
버퍼 메모리 관리부가, 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및
사용량 초과시, 상기 입력된 메시지가 저장부에 저장되도록 처리하여, 메모리 여유공간을 확보하는 단계;를 포함하고,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 기설정된 조건에 따라 상기 버퍼링된 메시지 중 일부 메시지가 선별되어, 저장부에 저장되도록 하고, 저장된 메시지가 확장 메모리 영역에서 제거되도록 함으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 하며,
상기 메모리 여유공간을 확보하는 단계는,
상기 입력되는 메시지를 버퍼링하는데 이용되는 메모리가 상기 산정된 확장 메모리 영역 크기의 95%가 되면, 추가로 입력되는 메시지 또는 기존에 버퍼링된 메시지 중 입력된 시점(time)이 오래된 순서에 따라 선별된 메시지를 버림(abandon)으로써, 확장 메모리 영역의 여유공간이 상기 확장 메모리 영역 크기의 40%에 도달하도록 하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
Buffer memory management unit buffering an input message; And
And a buffer memory management unit broadcasting the buffered message to a service process,
Wherein buffering the message comprises:
The buffer memory management unit estimating an extended memory area size;
The buffer memory management unit determining whether the memory usage exceeds an amount of the extended memory area; And
Processing the received message to be stored in the storage unit when the usage amount is exceeded, thereby securing a memory free space;
The step of securing the memory space may include:
When a memory used for buffering the input message reaches 95% of the calculated size of the extended memory area, some messages among the buffered messages are selected and stored in a storage unit according to predetermined conditions, Thereby allowing the free space of the extended memory area to reach 40% of the size of the extended memory area,
The step of securing the memory space may include:
When the memory used for buffering the input message becomes 95% of the calculated size of the extended memory area, the message input or the buffered message, To allow the free space of the extended memory area to reach 40% of the size of the extended memory area by abandoning the extended memory area.
삭제delete 버퍼 메모리 관리부가, 입력되는 메시지를 버퍼링하는 단계; 및
버퍼 메모리 관리부가, 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고,
상기 메시지를 버퍼링하는 단계는,
버퍼 메모리 관리부가, 확장 메모리 영역 크기를 산정하는 단계;
버퍼 메모리 관리부가, 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및
사용량 초과시, 상기 입력된 메시지가 저장부에 저장되도록 처리하여, 메모리 여유공간을 확보하는 단계;를 포함하고,
상기 확장 메모리 영역는,
전송 큐(Queue) 영역, 라우팅 테이블 영역, 공통 큐(Queue) 영역, 프로세스 핸들 영역, 메모리 풀 영역으로 구성되며,
상기 전송 큐(Queue) 영역은,
쓰기/읽기 명령이 완료되는 시점까지 전송 버퍼를 유지하는 동시에, 128개의 전문을 처리하기 위해, 4000.25 Kbytes를 할당하고,
상기 라우팅 테이블 영역은,
하나의 라우터에 최대 접속 가능한 프로세스를 5,120개 한정하고, 각각의 프로세스별 필요한 공간에 22 bytes로 할당하기 위해, 110 Kbytes를 할당하며,
상기 공통 큐(Queue) 영역은,
복수의 프로세스가 처리량이 많은 단일 업무를 하나의 큐로 묶어 처리하도록, 프로세스별 부하 분배(Load Balancing)를 지원하기 위해, 60 Kbytes를 할당하고,
상기 프로세스 핸들 영역은,
프로세스 정보를 검색하기 위해, 120 Kbytes를 할당하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
Buffer memory management unit buffering an input message; And
And a buffer memory management unit broadcasting the buffered message to a service process,
Wherein buffering the message comprises:
The buffer memory management unit estimating an extended memory area size;
The buffer memory management unit determining whether the memory usage exceeds an amount of the extended memory area; And
Processing the received message to be stored in the storage unit when the usage amount is exceeded, thereby securing a memory free space;
Wherein the extended memory area comprises:
A transmission queue area, a routing table area, a common queue area, a process handle area, and a memory pool area.
The transmission queue region includes:
The transfer buffer is maintained until the write / read command is completed, and at the same time, 4000.25 Kbytes is allocated to process 128 specials,
Wherein the routing table area comprises:
Allocates 110 Kbytes in order to allocate 22 bytes to each space required for each process,
Wherein the common queue area comprises:
Allocating 60 Kbytes to support load balancing per process so that a plurality of processes bundle a single task with a high throughput into one queue,
Wherein the process handle area comprises:
And allocating 120 Kbytes to retrieve the process information.
버퍼 메모리 관리부가, 입력되는 메시지를 버퍼링하는 단계; 및
버퍼 메모리 관리부가, 상기 버퍼링된 메시지를 서비스 프로세스로 브로드캐스팅하는 단계;를 포함하고,
상기 메시지를 버퍼링하는 단계는,
버퍼 메모리 관리부가, 확장 메모리 영역 크기를 산정하는 단계;
버퍼 메모리 관리부가, 상기 확장 메모리 영역의 크기에 따른 메모리 사용량 초과 여부를 판단하는 단계; 및
사용량 초과시, 상기 입력된 메시지가 저장부에 저장되도록 처리하여, 메모리 여유공간을 확보하는 단계;를 포함하고,
상기 확장 메모리 영역는,
전송 큐(Queue) 영역, 라우팅 테이블 영역, 공통 큐(Queue) 영역, 프로세스 핸들 영역, 메모리 풀 영역으로 구성되며,
상기 메모리 풀 영역은,
프로세스 정보와 프로세스 전문 큐를 처리하기 위해, 유동적으로 관리되며, 유동적인 할당 및 해제를 위해, 2,048 bytes의 페이지 단위로 분할되어 처리되며, 페이지를 효과적으로 관리하기 위한 헤더 영역이 제일 앞에 할당되는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
Buffer memory management unit buffering an input message; And
And a buffer memory management unit broadcasting the buffered message to a service process,
Wherein buffering the message comprises:
The buffer memory management unit estimating an extended memory area size;
The buffer memory management unit determining whether the memory usage exceeds an amount of the extended memory area; And
Processing the received message to be stored in the storage unit when the usage amount is exceeded, thereby securing a memory free space;
Wherein the extended memory area comprises:
A transmission queue area, a routing table area, a common queue area, a process handle area, and a memory pool area.
Wherein the memory pool area comprises:
In order to process the process information and the process-specific queue, it is managed dynamically and is divided and processed in units of 2,048 bytes of pages for flexible assignment and release, and a header area for effectively managing pages is allocated at the front Of the tandem system.
제10항에 있어서,
상기 메모리 풀 영역은,
메모리 풀을 구성하고, 페이지 단위로 영역을 할당하거나 또는 해제하는 제1계층;
상기 제1계층의 상위계층으로서, 메모리 풀을 사용하는 프로세스 정보 또는 프로세스 전문 큐의 영역을 할당하거나 또는 해제하는 제2계층; 및
상기 제2계층의 상위계층으로서, 상기 프로세스 정보 또는 프로세스 전문 큐에 실제 데이터를 설치(set)하거나 또는 제거(clear)하는 제3계층; 을 포함하고,
각각의 상위계층은,
하위계층에 의뢰하여 각 영역을 할당하거나 또는 해제하는 것을 특징으로 하는 것을 특징으로 하는 탠덤 시스템의 메모리 관리방법.
11. The method of claim 10,
Wherein the memory pool area comprises:
A first layer for configuring a memory pool, allocating or releasing areas on a page basis;
A second layer as an upper layer of the first layer, for allocating or releasing an area of the process information or the process specialty queue using the memory pool; And
A third layer as an upper layer of the second layer, the third layer for setting or clearing actual data in the process information or process professional queue; / RTI >
Each upper layer,
And allocating or releasing each area by requesting a lower layer.
KR1020190015344A 2019-02-11 2019-02-11 Method for managing memory of tandem system KR101980581B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190015344A KR101980581B1 (en) 2019-02-11 2019-02-11 Method for managing memory of tandem system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190015344A KR101980581B1 (en) 2019-02-11 2019-02-11 Method for managing memory of tandem system

Publications (1)

Publication Number Publication Date
KR101980581B1 true KR101980581B1 (en) 2019-05-21

Family

ID=66676134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190015344A KR101980581B1 (en) 2019-02-11 2019-02-11 Method for managing memory of tandem system

Country Status (1)

Country Link
KR (1) KR101980581B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100315500B1 (en) * 1998-05-28 2002-02-19 구자홍 Memory allocating method
KR100333581B1 (en) 1998-01-07 2002-04-24 포만 제프리 엘 Tandem operation of input/output data compression modules
KR20080089002A (en) * 2007-03-30 2008-10-06 삼성전자주식회사 Method of controlling memory access
KR20100125751A (en) * 2009-05-21 2010-12-01 엘에스산전 주식회사 Memory allocation method and memory allocation device using the same
KR101156210B1 (en) * 2005-10-18 2012-06-18 삼성전자주식회사 Apparatus and method for using the memory by smart-phone
KR20150107223A (en) * 2014-03-13 2015-09-23 현대모비스 주식회사 Restoring apparatus for communication error using history queue and method thereof
KR20170054633A (en) * 2015-11-09 2017-05-18 삼성전자주식회사 Storage device and operating method thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333581B1 (en) 1998-01-07 2002-04-24 포만 제프리 엘 Tandem operation of input/output data compression modules
KR100315500B1 (en) * 1998-05-28 2002-02-19 구자홍 Memory allocating method
KR101156210B1 (en) * 2005-10-18 2012-06-18 삼성전자주식회사 Apparatus and method for using the memory by smart-phone
KR20080089002A (en) * 2007-03-30 2008-10-06 삼성전자주식회사 Method of controlling memory access
KR20100125751A (en) * 2009-05-21 2010-12-01 엘에스산전 주식회사 Memory allocation method and memory allocation device using the same
KR20150107223A (en) * 2014-03-13 2015-09-23 현대모비스 주식회사 Restoring apparatus for communication error using history queue and method thereof
KR20170054633A (en) * 2015-11-09 2017-05-18 삼성전자주식회사 Storage device and operating method thereof

Similar Documents

Publication Publication Date Title
US20200089430A1 (en) Memory system and control method
CN108572792B (en) Data storage method and device, electronic equipment and computer readable storage medium
WO2018018896A1 (en) Memory management apparatus and method
US7590816B2 (en) Computer system, management computer and storage system, and storage area allocation amount controlling method
KR101355193B1 (en) An apparatus for managing memory of a realtime embedded system and methods for allocating/cancelling/managing memory thereof
JP2858795B2 (en) Real memory allocation method
TWI684098B (en) Memory system and control method for controlling non-volatile memory
KR20120092930A (en) Distributed memory cluster control apparatus and method using map reduce
JP2004164370A (en) Method, device and program for storage space allocation to virtual volume
US8312243B2 (en) Memory management in network processors
JP7467593B2 (en) Resource allocation method, storage device, and storage system - Patents.com
US6801991B2 (en) Method and apparatus for buffer partitioning without loss of data
CN111177017B (en) Memory allocation method and device
JP4879014B2 (en) Configuration and method for managing available memory resources
US10359945B2 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
US7861056B2 (en) Methods, systems, and computer program products for providing memory management with constant defragmentation time
TW202225981A (en) Memory system and method of controlling nonvolatile memory
KR101980581B1 (en) Method for managing memory of tandem system
JP5158576B2 (en) I / O control system, I / O control method, and I / O control program
US10846265B2 (en) Method and apparatus for accessing file, and storage system
JP4997858B2 (en) Data recording apparatus and data recording program
WO2020000734A1 (en) Space management method and apparatus for storage object, and computer apparatus and storage medium
KR102076248B1 (en) Selective Delay Garbage Collection Method And Memory System Using The Same
WO2012107988A1 (en) Memory management program, memory management method and information processing device
JP4176682B2 (en) Memory management method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant