KR101851122B1 - Method for data management based on page table - Google Patents
Method for data management based on page table Download PDFInfo
- Publication number
- KR101851122B1 KR101851122B1 KR1020180009686A KR20180009686A KR101851122B1 KR 101851122 B1 KR101851122 B1 KR 101851122B1 KR 1020180009686 A KR1020180009686 A KR 1020180009686A KR 20180009686 A KR20180009686 A KR 20180009686A KR 101851122 B1 KR101851122 B1 KR 101851122B1
- Authority
- KR
- South Korea
- Prior art keywords
- page table
- data
- management module
- stored
- page
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 메모리 내에 저장되는 데이터 관리 방법에 관한 것으로, 더욱 상세하게는 메모리 내에 생성된 페이지 테이블 기반의 데이터 관리 방법에 관한 것이다. The present invention relates to a method of managing data stored in a memory, and more particularly, to a method of managing a page table based data generated in a memory.
일반적으로 메모리는 비교적 콤팩트하고 신속하게 엑세스 가능한 메모리 구조를 프로세서 가까이에 제공함으로써, 디스크와 같은 저장장치에 비해 프로세서로 하여금 데이터들의 처리 속도가 빠르지만, 저장장치에 비해 저장 용량이 작기 때문에, 너무 많은 데이터 페이지들을 불러낼 수 없다는 단점이 존재하여, 프로세서가 메모리 데이터에 엑세스 되는데 요구되는 시간을 최소화하는 데 사용된다. Generally, memory provides a relatively compact and rapidly accessible memory structure near the processor, thereby allowing the processor to process the data faster than a storage device such as a disk, but since the storage capacity is smaller than a storage device, There is a disadvantage that the data pages can not be fetched and is used to minimize the time required for the processor to access the memory data.
구체적으로, 메모리는 메모리의 데이터 페이지들을 프로세서가 엑세스하여 데이터 페이지를 빠르게 처리하도록 하고, 처리된 데이터 페이지들은 저장장치에 저장하는데, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여, 메모리로 불러들이는 과정에서 소요되는 시간이 많으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터의 손실이 발생하는 문제가 존재한다.Specifically, the memory allows the processor to access the data pages of the memory to quickly process the data pages, and to store the processed data pages in the storage device, to select the desired one of the data pages stored in the storage device, There is a lot of time in the process of importing, the process of swapping the data pages of the memory and the data pages stored in the storage device or the data stored in the storage device is lost in the process of loading the data page into the memory .
이에 따라, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하고, 선별된 데이터 페이지들을 메모리로 불러들이는 과정에서 시간을 최소화할 수 있으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지하기 위한 방안의 모색이 요구된다. Accordingly, it is possible to minimize the time in selecting a desired data page among the data pages stored in the storage device, to load the selected data pages into the memory, and to save the data pages of the memory and the data pages It is required to search for a method for preventing data loss in the process of swapping each other or in the process of loading data stored in a storage device into a memory.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로 본 발명의 목적은 메모리 내에 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 분리되어, 저장된 데이터와 데이터에 대한 인덱스 정보를 나누어서 사용할 수 있는 페이지 테이블을 생성하고, 관리함으로써, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여 메모리로 불러들이는 과정에서 시간을 최소화할 수 있으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지할 수 있는 페이지 테이블 기반의 데이터 관리 방법을 제공함에 있다. SUMMARY OF THE INVENTION The present invention has been made in an effort to solve the above problems, and it is an object of the present invention to provide an information processing apparatus and a method thereof, which can separate a first storage space for storing data in a memory and a second storage space for storing index information for the first storage space, It is possible to minimize time in the process of selecting a desired data page among the data pages stored in the storage device and fetching it into the memory by creating and managing a page table that can be used by dividing the stored data and index information about the data, A page table-based data management method capable of preventing data from being lost in the process of swapping data pages of a memory and data pages stored in a storage device or in a process of loading data stored in a storage device into a memory page .
상기와 같은 문제를 해결하기 위한 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 메모리 내에 저장되는 데이터 관리 방법에 있어서, 페이지 테이블 관리 모듈이 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 포함된 페이지 테이블을 생성하는 단계; 상기 페이지 테이블 관리 모듈이 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 메모리 맵 파일에 실시간 동기화되도록 하는 단계; 상기 페이지 테이블 관리 모듈에 의해, 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 페이지 테이블에 저장된 데이터를 모두 제거하는 단계; 및 메모리 맵 관리 모듈이 상기 데이터가 모두 제거된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 단계;를 포함한다.According to an aspect of the present invention, there is provided a method of managing data stored in a memory, the method comprising: a first storage space for storing data; Creating a page table including a second storage space for storing index information on the first storage space; The page table management module stores data in a first storage space included in the generated page table, updates index information on a first storage space in which data is stored, and when the index information is updated, , Causing the updated index information to be synchronized in real time with the memory map file; If the page table management module determines that an event for the page table has been generated, removing all the data stored in the page table determined to have generated the event; And deleting the memory map file for the page table from which the memory map management module has removed all of the data.
그리고 상기 페이지 테이블은, 상기 제1 저장 공간에 데이터가 저장되는 경우, 상기 저장된 데이터를 처리하기 위한 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간이 더 포함할 수 있다.The page table may further include a third storage space for storing routing index information for processing the stored data when data is stored in the first storage space.
또한, 본 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터가 모두 채워질 때마다 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블을 생성하는 단계; 상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하는 단계; 및 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 새로운 메모리 맵 파일에 실시간 동기화되도록 하는 단계;를 더 포함할 수 있다.In addition, the page table-based data management method according to the present embodiment may include: generating a new page table by the page table management module whenever data is completely filled in a first storage space included in the generated page table; Causing the link management module to link between the existing page table and the newly created page table each time the new page table is created; And the page table management module stores data in a first storage space included in a new page table, updates index information on a first storage space in which data is stored, and when the index information is updated, And causing the updated index information to be synchronized in real time with the new memory map file.
이때, 상기 데이터를 모두 제거하는 단계는, 상기 새로운 페이지 테이블이 생성된 이후, 상기 페이지 테이블 관리 모듈에 의해, 데이터가 모두 채워진 페이지 테이블 중 특정 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 특정 페이지 테이블에 저장된 데이터를 모두 제거하고, 상기 메모리 맵 파일을 삭제하는 단계는, 상기 데이터가 모두 제거된 특정 페이지 테이블이 다른 페이지 테이블과 연결된 경우, 상기 링크 관리 모듈에 의해, 상기 데이터가 모두 제거된 페이지 테이블과 다른 페이지 테이블 간의 연결이 모두 해제되도록 하고, 상기 데이터가 모두 제거된 특정 페이지 테이블의 연결이 모두 해제되면, 상기 메모리 맵 관리 모듈이 상기 연결이 모두 해제된 페이지 테이블에 대한 메모리 맵 파일을 삭제할 수 있다.If it is determined that an event for a specific page table among the page tables in which data has been completely filled is generated by the page table management module after the new page table is created, Wherein the step of deleting all of the data stored in the specific page table and deleting the memory map file is performed by the link management module when a specific page table from which all the data is removed is linked to another page table The connection between the page table in which the data is completely removed and the page table in which the data is completely removed is released, and when all the connection of the specific page table from which the data is removed is released, Memory map files for tables It may be deleted.
또한, 상기 데이터를 모두 제거하는 단계는, 상기 메모리가 저장용량의 임계치에 도달하는 경우, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다.The step of removing all of the data may include determining that the event is generated by the page table management module when the memory reaches a storage capacity threshold, The page table having the oldest period in which the data is stored can be selected and all the data stored in the selected page table can be removed.
그리고 상기 기존의 페이지 테이블과 상기 새로운 페이지 테이블 간에 연결되도록 하는 단계는, 상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하되, 기존의 페이지 테이블 중 생성된 순서에 따라 데이터가 저장된 기간이 가장 오래된 페이지 테이블이 연결 상태의 헤드(Head)가 되고, 가장 최근에 생성된 페이지 테이블이 연결 상태의 테일(Tail)이 되도록 하는 연결되도록 하고, 상기 데이터를 모두 제거하는 단계는, 상기 페이지 테이블 관리 모듈이 상기 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하는 경우, 복수의 페이지 테이블 중 헤드에 해당하는 페이지 테이블을 가장 오래된 페이지 테이블로 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다.The linking between the existing page table and the new page table is performed such that each time the new page table is created, the link management module is connected between the existing page table and the newly created page table, The page table having the oldest period in which the data is stored according to the created order in the table becomes the head of the connected state and the most recently generated page table is connected so as to become the tail of the connected state, The step of removing all of the data may include removing a page table corresponding to a head among a plurality of page tables when the page table management module selects the page table with the oldest period of time in which data of the plurality of page tables is stored, , And the selected page You can remove all the data stored in the table.
또한, 상기 데이터를 모두 제거하는 단계는, 상기 페이지 테이블 관리 모듈에 의해, 기설정된 기간이 도래하면, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 상기 제3 저장 공간에 저장된 라우팅 인덱스 정보에 따라 특정 프로세서가 데이터를 처리하는 동안 상기 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다. The page table management module may determine that the event is generated when a preset period of time has elapsed and the page table management module determines that the event is generated, According to the information, a data page determined to be unlikely to be reused in the memory while a specific processor processes the data may be selected, and all the data stored in the selected page table may be removed.
그리고 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 상기 저장장치에 저장된 데이터와 상기 페이지 테이블에 저장된 데이터 간의 스와핑이 요청되면, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터가 모두 제거되도록 하는 단계; 상기 데이터가 모두 제거된 페이지 테이블이 다른 페이지 테이블과의 연결이 해제되도록 하는 단계; 새로운 페이지 테이블이 생성되어 다른 페이지 테이블과 연결되도록 하거나 또는 다른 페이지 테이블과 연결되지 않은 상태의 페이지 테이블 중 하나가 다른 페이지 테이블과 연결되도록 하는 단계; 및 상기 페이지 테이블 관리 모듈이 새롭게 다른 페이지 테이블과 연결된 페이지 테이블에 상기 저장장치에 저장된 데이터를 불러들여 저장하는 단계;를 더 포함할 수 있다.According to another aspect of the present invention, there is provided a method of managing data based on a page table, wherein, when swapping between data stored in the storage device and data stored in the page table is requested, The page table management module selects the oldest page table in which the data of the plurality of page tables is stored, so that all the data stored in the selected page table is removed; Causing a page table from which all the data is removed to be disconnected from another page table; Allowing a new page table to be created and associated with another page table, or one of page tables not associated with another page table being associated with another page table; And the page table management module retrieving and storing data stored in the storage device in a page table newly associated with another page table.
이에 의해, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 메모리로 불러들이는 과정에서 시간을 최소화할 수 있다.This minimizes the time required to load a desired data page among the data pages stored in the storage device into the memory.
또한, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지할 수 있다. In addition, it is possible to prevent the data from being lost in the process of swapping the data pages of the memory with the data pages stored in the storage device or in the process of loading the data stored in the storage device into the memory.
도 1은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 수행하기 위한 시스템이 개략적으로 도시된 도면이다.
도 2는 본 발명의 일 실시예에 따른 페이지 테이블의 구조를 설명하기 위해 도시된 도면이다.
도 3은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법 중 페이지 테이블 상호 간의 연결 과정 및 동기화 과정을 설명하기 위해 도시된 도면이다.
도 4는 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 이용하여 새로운 페이지 테이블을 추가하거나 제거하는 과정을 설명하기 위해 도시된 도면이다.
도 5는 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 이용하여 메모리의 데이터 페이지에 저장된 데이터와 저장장치에 저장된 데이터 간에 스와핑이 수행되는 과정을 설명하기 위해 도시된 도면이다.
도 6은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 설명하기 위해 도시된 도면이다.FIG. 1 is a diagram schematically illustrating a system for performing a page-table-based data management method according to an embodiment of the present invention.
2 is a diagram illustrating a structure of a page table according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a connection process and a synchronization process between page tables in a page table based data management method according to an embodiment of the present invention.
4 is a diagram illustrating a process of adding or removing a new page table using a page table-based data management method according to an embodiment of the present invention.
5 is a diagram illustrating a process in which swapping is performed between data stored in a data page of a memory and data stored in a storage device using a page table-based data management method according to an embodiment of the present invention.
FIG. 6 is a view for explaining a page table-based data management method 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은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 수행하기 위한 시스템이 개략적으로 도시된 도면이며, 도 2는 본 발명의 일 실시예에 따른 페이지 테이블(10)의 구조를 설명하기 위해 도시된 도면이고, 도 3은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법 중 페이지 테이블(10) 상호 간의 연결 과정 및 동기화 과정을 설명하기 위해 도시된 도면이다. 이하에서는 도 1 내지 도 3을 참조하여 본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법에 대하여 설명하기로 한다. FIG. 1 is a schematic diagram illustrating a system for performing a data management method based on a page table 10 according to an embodiment of the present invention. FIG. 2 is a block diagram of a page table 10 according to an embodiment of the present invention. FIG. 3 is a diagram illustrating a structure of a page table 10 according to an exemplary embodiment of the present invention. Referring to FIG. 3, Respectively. Hereinafter, a data management method based on the page table 10 according to the present embodiment will be described with reference to FIG. 1 to FIG.
본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법은, 별도로 마련되는 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여 메모리로 불러들이는 과정에서 시간을 최소화하고, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지하기 위해 마련된다.The data management method based on the page table 10 according to the present embodiment minimizes time in the process of selecting a desired data page among the data pages stored in the storage device separately and loading it into the memory, And swapping data pages stored in the storage device with each other or preventing the data stored in the storage device from being lost in the process of loading data pages into the memory.
이를 위해, 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하는 시스템은, 페이지 테이블 관리 모듈(100), 동기화 모듈(200), 링크 관리 모듈(300) 및 메모리 맵 관리 모듈(400)로 구성될 수 있다. To this end, the system using the data management method based on the page table 10 may be configured with a page
페이지 테이블 관리 모듈(100)은 메모리 내에 페이지 테이블(10)을 생성하고, 관리하기 위해 마련된다.The page
구체적으로 페이지 테이블 관리 모듈(100)은, 데이터를 저장하기 위한 제1 저장 공간(11), 상기 제1 저장 공간(11)에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간(12) 그리고 제1 저장 공간(11)에 데이터가 저장되는 경우, 저장된 데이터를 처리하기 위한 프로세서를 구별할 수 있는 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간(13)을 포함하는 페이지 테이블(10)을 생성할 수 있다.Specifically, the page
즉, 페이지 테이블 관리 모듈(100)은, 제1, 제2, 제3 저장 공간(13)이 각각 분리된 페이지 테이블(10)을 생성하고, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터를 저장할 수 있으며, 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보에 따라 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하여, 페이지 테이블(10)에 저장된 데이터를 삭제하거나, 또는 별도로 마련되는 저장장치로 이동시킬 수 있으며, 프로세서의 요청에 따라 저장장치로 이동된 페이지 테이블(10)을 다시 메모리로 불러들일 수도 있다. That is, the page
여기서, 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보는 각각의 데이터를 처리하고자 하는 프로세서를 식별할 수 있는 정보이기 때문에, 특정 프로세서가 실행되어 데이터를 처리하는 과정에서 특정 페이지 테이블의 제3 저장 공간(13)에 특정 프로세서에 대한 라우팅 인덱스 정보가 없는 경우, 페이지 테이블 관리 모듈(100)에 의해, 현재 데이터 처리 과정에서 사용되지 않는 것으로 판단되며, 이후에도 특정 프로세서가 데이터를 처리하는 과정에서는 재사용될 가능성이 없는 것으로 판단될 수 있다. Here, since the routing index information stored in the
한편, 페이지 테이블 관리 모듈(100)은, 제1 저장 공간(11)에 데이터가 저장되면, 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여, 제2 저장 공간(12)에 저장할 수 있다.The page
또한, 페이지 테이블 관리 모듈(100)은, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면, 메모리 저장용량의 임계치에 도달하기 이전까지 새로운 페이지 테이블(10)을 생성할 수 있다. In addition, the page
동기화 모듈(200)은 페이지 테이블 관리 모듈(100)에 의해, 제1 저장 공간(11)에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다. The
링크 관리 모듈(300)은 페이지 테이블 관리 모듈(100)에 의해, 최초의 페이지 테이블(10)이 생성된 이후, 새로운 페이지 테이블(10)이 생성될 때마다, 기존의 페이지 테이블(10)과 새로 생성된 페이지 테이블(10) 간에 연결되도록 하고, 이후, 해당 페이지 테이블(10)에 대한 페이지 테이블 관리 모듈(100)의 요청 또는 해당 페이지 테이블(10)에 대한 프로세서의 요청에 따라 연결 상태가 유지 또는 해제되도록 할 수 있다. Each time the new page table 10 is created after the first page table 10 is created by the page
메모리 맵 관리 모듈(400)은 페이지 테이블(10)이 생성되면, 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하고, 페이지 테이블(10)에 저장된 데이터가 삭제되면, 데이터가 삭제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. The memory
도 4는 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하여 새로운 페이지 테이블(10)을 추가하거나 제거하는 과정을 설명하기 위해 도시된 도면이다. 4 is a diagram illustrating a process of adding or removing a new page table 10 using a data management method based on a page table 10 according to an embodiment of the present invention.
페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)이 생성된 이후, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면, 새로운 페이지 테이블(10)을 생성하는데, 이때 생성된 새로운 페이지 테이블(10)은 기존에 생성된 페이지 테이블(10)의 후단에 배열될 수 있다.The page
링크 관리 모듈(300)은, 데이터가 저장된 복수의 페이지 테이블(10)이 상호 간에 연결되는 경우, 저장된 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)이 연결 관계의 헤드가 되고, 가장 최근에 생성된 페이지 테이블(10)이 연결 관계의 테일(Tail)이 되도록 연결 시킬 수 있다. 또한, 이후 추가로 새로운 페이지 테이블(10)이 생성되면, 기존의 테일에 해당하는 페이지 테이블(10)의 후단에 배열되어, 기존의 테일에 해당하는 페이지 테이블(10)과 연결되어, 새로운 연결 관계의 테일에 해당할 수 있다.When the plurality of page tables 10 in which data is stored are connected to each other, the
또한, 페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단되면, 이벤트가 발생된 것으로 판단되는 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다.If the page
이때, 동기화 모듈(200)은 특정 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다. At this time, the
그리고 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. When both the page table 10 and the page table 10 whose data are completely removed are disconnected from each other, the memory
여기서, 페이지 테이블 관리 모듈(100)은, 프로세서로부터 특정 페이지 테이블(10)에 저장된 데이터에 대한 저장장치로의 전달요청 또는 삭제요청을 수신하는 경우, 메모리가 저장용량의 임계치에 도달하는 경우 또는 기설정된 기간이 도래하는 경우에 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단할 수 있다. Here, when the page
구체적으로 예를 들면, 페이지 관리 모듈은, 프로세서로부터 특정 페이지 테이블(10)에 저장된 데이터에 대한 저장장치로의 전달요청이 수신되면, 페이지 테이블(10)에 대한 제1 이벤트가 발생된 것으로 판단하여, 프로세서가 지정한 특정 페이지 테이블(10)을 선별하여, 선별된 페이지 테이블(10)에 저장된 데이터를 저장장치에 전달하여 저장할 수 있다. Specifically, for example, when receiving a request from the processor for transferring data stored in the specific page table 10 to the storage device, the page management module determines that the first event for the page table 10 has been generated , The specific page table 10 designated by the processor is selected, and the data stored in the selected page table 10 is transferred to the storage device and stored.
즉, 제1 이벤트가 발생된 것으로 판단되면, 페이지 관리 모듈은, 프로세서가 지정한 특정 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 저장장치에 전달하고, 페이지 테이블의 제1 저장 공간(11)에 저장된 데이터를 모두 삭제하고, 삭제된 데이터에 대한 인덱스 정보를 갱신할 수 있다. That is, when it is determined that the first event is generated, the page management module selects the specific page table 10 specified by the processor, transfers the data stored in the selected page table 10 to the storage device, It is possible to delete all the data stored in the
이후, 동기화 모듈(200)은 특정 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제하며, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다.Thereafter, the
다른 예를 들면, 페이지 관리 모듈은, 메모리가 저장용량의 임계치에 도달하면, 페이지 테이블(10)에 대한 제2 이벤트가 발생된 것으로 판단하여, 페이지 테이블(10)에 저장된 데이터를 제거하되, 데이터가 저장된 페이지 테이블(10)이 복수인 경우, 복수의 페이지 테이블(10) 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다. In another example, the page management module determines that a second event for the page table 10 has been generated when the memory has reached the storage capacity threshold, and removes the data stored in the page table 10, The page table 10 having the oldest period in which the data is stored among the plurality of page tables 10 is selected and all the data stored in the selected page table 10 is removed , The index information on the removed data can be updated.
또 다른 예를 들면, 페이지 관리 모듈은, 기설정된 기간이 도래하면, 페이지 테이블(10)에 대한 제3 이벤트가 발생된 것으로 판단하여, 페이지 테이블(10)에 저장된 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보에 따라 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 선별된 데이터 페이지에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다. As another example, the page management module determines that a third event for the page table 10 has been generated when a predetermined period of time has passed, and stores the third event in the
여기서, 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)은 데이터를 저장하는 복수의 페이지 테이블(10)이 상호 간에 연결되는 경우, 상호 간의 연결 상태의 헤드에 해당하는 페이지 테이블(10)에 저장된 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)일 수 있으며, 상호 간의 연결 상태의 테일에 해당하는 페이지 테이블(10)이 가장 최근에 생성된 페이지 테이블(10)일 수 있다.Here, when the page table 10 storing the data is the oldest page table 10, the data stored in the page table 10 corresponding to the head of the connection state between the plural page tables 10 May be the oldest page table 10 and the page table 10 corresponding to the tail of the connection state between the pages may be the page table 10 that has been generated most recently.
또한, 제2, 제3 및 제4 이벤트가 발생된 경우에도, 각각의 이벤트에 따라 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신한 이후에 동기화 모듈(200)을 통해, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 동기화하고, 링크 관리 모듈(300)을 통해, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제하고, 메모리 맵 관리 모듈(400)을 통해, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제하는 과정이 동일하게 수행된다. Also, even if the second, third, and fourth events are generated, after all the data stored in the page table 10 is deleted according to each event and the index information about the removed data is updated, The
도 5는 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하여 메모리의 데이터 페이지에 저장된 데이터와 저장장치에 저장된 데이터 간에 스와핑이 수행되는 과정을 설명하기 위해 도시된 도면이다. 5 is a diagram illustrating a process of swapping between data stored in a data page of a memory and data stored in a storage device using a page management method based on the page table 10 according to an embodiment of the present invention. to be.
페이지 테이블 관리 모듈(100)은, 저장장치에 저장된 데이터와 페이지 테이블(10)에 저장된 데이터 간의 스와핑이 요청되거나 또는 실행되는 프로세서가 변경되어, 변경된 프로세서에 대한 데이터의 재사용 가능성을 재판단한 결과, 페이지 테이블(10)에 저장된 데이터와 저장장치에 저장된 데이터 간의 스와핑이 필요한 것으로 판단되는 경우, 제5 이벤트가 발생된 것으로 판단되어, 복수의 페이지 테이블(10) 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다.The page
이때, 동기화 모듈(200)은 전술한 바와 같이 선별된 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다. At this time, when all the data of the page table 10 selected as described above is removed and the index information about the removed data is updated, the
그리고 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. When both the page table 10 and the page table 10 whose data are completely removed are disconnected from each other, the memory
또한, 페이지 테이블 관리 모듈(100)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 새로 페이지 테이블(10)을 생성하고, 링크 관리 모듈(300)을 통해, 새로 생성된 페이지 테이블(10)이 다른 페이지 테이블(10)과 연결되도록 하거나 또는 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되도록 할 수 있다.The page
이어서, 새로 생성된 페이지 테이블(10) 또는 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되면, 페이지 테이블 관리 모듈(100)은, 새롭게 다른 페이지 테이블(10)과 연결된 페이지 테이블(10)에 저장장치에 저장된 데이터를 불러들여 저장하여, 기존에 페이지 테이블(10)에 저장된 데이터와 저장장치에 저장된 데이터 간의 스와핑이 수행되도록 할 수 있다. If one of the page tables 10 newly connected to the page table 10 or the other page table 10 is connected to another page table 10, the page
이때, 새로 생성된 페이지 테이블(10)이 다른 페이지 테이블(10)과 연결되는 경우에는, 복수의 페이지 테이블(10)의 연결 상태의 테일에 해당할 수 있으나, 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되는 경우에는, 복수의 페이지 테이블(10)의 연결 상태의 테일 뿐 아니라 헤드에 해당할 수 있으며, 이는 연결 상태가 해제된 페이지 테이블(10)과, 연결되지 않은 상태의 페이지 테이블(10) 중 선택된 페이지 테이블(10)의 배열 위치에 따라 다양하게 결정될 수 있다. At this time, when the newly created page table 10 is connected to another page table 10, it may correspond to a tail of a connection state of a plurality of page tables 10, When one of the page tables 10 in a non-connected state is connected to another page table 10, it may correspond to not only the tail of the connection state of the plurality of page tables 10 but also the head, Can be variously determined according to the arrangement position of the page table 10 and the selected page table 10 among the page tables 10 not connected.
도 6은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 설명하기 위해 도시된 도면이다.6 is a diagram for explaining a data management method based on the page table 10 according to an embodiment of the present invention.
본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법은, 페이지 테이블 관리 모듈(100)이 데이터를 저장하기 위한 제1 저장 공간(11), 상기 제1 저장 공간(11)에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간(12) 그리고 제1 저장 공간(11)에 데이터가 저장되는 경우, 저장된 데이터를 처리하기 위한 프로세서를 구별할 수 있는 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간(13)을 포함하는 페이지 테이블(10)을 생성하고(S610), 페이지 테이블(10)이 생성된 사실을 메모리 맵 관리 모듈(400)에 전달할 수 있다(S613). 메모리 맵 관리 모듈(400)은 이를 바탕으로, 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하게 된다(S615). The page table 10-based data management method according to the present embodiment includes a
그리고 페이지 테이블 관리 모듈(100)은, 제1 저장 공간(11)에 데이터가 저장되면(S617), 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여(S620), 제2 저장 공간(12)에 저장하고, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S623). When the data is stored in the
동기화 모듈(200)은 제1 저장 공간(11)에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S625).The
또한, 페이지 테이블 관리 모듈(100)은, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면(S627-Yes), 메모리 저장용량의 임계치에 도달하기 이전까지 새로운 페이지 테이블(10)을 생성할 수 있으며(S630), 새로운 페이지 테이블(10)의 생성 사실을 메모리 맵 관리 모듈(400)에 전달할 수 있다(S633). 메모리 맵 관리 모듈(400)은 이를 바탕으로, 새롭게 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하게 된다(S635). When all the data is filled in the
그리고 페이지 테이블 관리 모듈(100)은, 새로운 페이지 테이블(10)의 생성 사실을 링크 관리 모듈(300)에 전달하여(S637), 링크 관리 모듈(300)이 기존의 페이지 테이블(10)과 새로 생성된 페이지 테이블(10) 간에 연결되도록 할 수 있다(S640).Then, the page
복수의 페이지 테이블(10) 간에 연결된 이후, 페이지 테이블 관리 모듈(100)은, 새로 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 저장되면(S643), 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여(S645), 제2 저장 공간(12)에 저장하고, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S647). 동기화 모듈(200)은 갱신된 인덱스 정보를 수신하여, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S650).After the page
한편, 페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단되면(S653-Yes), 이벤트가 발생된 것으로 판단되는 페이지 테이블(10)에 저장된 데이터를 모두 제거하고(S655), 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있으며, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S657).On the other hand, if it is determined that an event for the page table 10 has been generated (S653-Yes), the page
동기화 모듈(200)은 갱신된 인덱스 정보를 수신하여, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S660).The
이때, 동기화 모듈(200)은 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)에, 이벤트가 발생된 것으로 판단되는 페이지 테이블의 제1 저장 공간(11)에 저장되었던 데이터의 제거 사실을 전달할 수 있으며(S663), 링크 관리 모듈(300)은, 이벤트가 발생된 것으로 판단되는 페이지 테이블의 제1 저장 공간(11)에 저장되었던 데이터의 제거 사실을 수신하여, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다(S665). At this time, the
또한, 링크 관리 모듈(300)은 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결이 모두 해제되면, 데이터가 모두 제거된 페이지 테이블(10)이 다른 페이지 테이블(10)과의 연결을 모두 해제한 사실을 메모리 맵 관리 모듈(400)에 전달하고(667), 메모리 맵 관리 모듈(400)은 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다(S670).If the
한편, 본 실시예에 따른 장치의 기능 및 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다.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 : 페이지 테이블 11 : 제1 저장 공간
12 : 제2 저장 공간 13 : 제3 저장 공간
20 : 메모리 맵 파일
100 : 페이지 테이블 관리 모듈
200 : 동기화 모듈 300 : 링크 관리 모듈
400 : 메모리 맵 관리 모듈10: page table 11: first storage space
12: second storage space 13: third storage space
20: Memory map file
100: page table management module
200: synchronization module 300: link management module
400: memory map management module
Claims (8)
페이지 테이블 관리 모듈이 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 포함된 페이지 테이블을 생성하는 단계;
상기 페이지 테이블 관리 모듈이 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 메모리 맵 파일에 실시간 동기화되도록 하는 단계;
상기 페이지 테이블 관리 모듈에 의해, 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 페이지 테이블에 저장된 데이터를 모두 제거하는 단계; 및
메모리 맵 관리 모듈이 상기 데이터가 모두 제거된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 단계;를 포함하고,
상기 페이지 테이블은,
상기 제1 저장 공간에 데이터가 저장되는 경우, 상기 저장된 데이터를 처리하기 위한 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간이 더 포함되고,
상기 데이터 관리 방법은,
상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터가 모두 채워질 때마다 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블을 생성하는 단계;
상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하는 단계; 및
상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 새로운 메모리 맵 파일에 실시간 동기화되도록 하는 단계;를 더 포함하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.A method of managing data stored in a memory,
Generating a page table including a first storage space for storing data by the page table management module and a second storage space for storing index information on the first storage space;
The page table management module stores data in a first storage space included in the generated page table, updates index information on a first storage space in which data is stored, and when the index information is updated, , Causing the updated index information to be synchronized in real time with the memory map file;
If the page table management module determines that an event for the page table has been generated, removing all the data stored in the page table determined to have generated the event; And
And the memory map management module deletes the memory map file for the page table from which the data is completely removed,
The page table includes:
Further comprising a third storage space for storing routing index information for processing the stored data when data is stored in the first storage space,
The data management method includes:
Generating a new page table by the page table management module every time data is filled in a first storage space included in the generated page table;
Causing the link management module to link between the existing page table and the newly created page table each time the new page table is created; And
Wherein the page table management module stores data in a first storage space included in a new page table, updates index information on a first storage space in which data is stored, and updates the index information, And synchronizing the updated index information with a new memory map file in real time.
상기 데이터를 모두 제거하는 단계는,
상기 새로운 페이지 테이블이 생성된 이후, 상기 페이지 테이블 관리 모듈에 의해, 데이터가 모두 채워진 페이지 테이블 중 특정 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 특정 페이지 테이블에 저장된 데이터를 모두 제거하고,
상기 메모리 맵 파일을 삭제하는 단계는,
상기 데이터가 모두 제거된 특정 페이지 테이블이 다른 페이지 테이블과 연결된 경우, 상기 링크 관리 모듈에 의해, 상기 데이터가 모두 제거된 페이지 테이블과 다른 페이지 테이블 간의 연결이 모두 해제되도록 하고, 상기 데이터가 모두 제거된 특정 페이지 테이블의 연결이 모두 해제되면, 상기 메모리 맵 관리 모듈이 상기 연결이 모두 해제된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.The method according to claim 1,
The step of removing all of the data comprises:
After the new page table is created, if the page table management module determines that an event for a specific page table among the page tables whose data is completely filled is generated, the event is stored in a specific page table Remove all data,
Wherein the step of deleting the memory map file comprises:
When a specific page table from which all the data is removed is linked to another page table, the link management module releases all the connection between the page table from which the data is completely removed and another page table, Wherein the memory map management module deletes the memory map file for the page table from which the connection is released when all the connections of the specific page table are released.
상기 데이터를 모두 제거하는 단계는,
상기 메모리가 저장용량의 임계치에 도달하는 경우, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.5. The method of claim 4,
The step of removing all of the data comprises:
Wherein the page table management module determines that the event is generated when the memory reaches a threshold value of the storage capacity and the page table management module determines that the period of the data among the plurality of page tables is the oldest page table And removing all of the data stored in the selected page table.
상기 기존의 페이지 테이블과 상기 새로운 페이지 테이블 간에 연결되도록 하는 단계는,
상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하되, 기존의 페이지 테이블 중 생성된 순서에 따라 데이터가 저장된 기간이 가장 오래된 페이지 테이블이 연결 상태의 헤드(Head)가 되고, 가장 최근에 생성된 페이지 테이블이 연결 상태의 테일(Tail)이 되도록 하는 연결되도록 하고,
상기 데이터를 모두 제거하는 단계는,
상기 페이지 테이블 관리 모듈이 상기 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하는 경우, 복수의 페이지 테이블 중 헤드에 해당하는 페이지 테이블을 가장 오래된 페이지 테이블로 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.6. The method of claim 5,
Wherein the step of linking the existing page table with the new page table comprises:
Each time a new page table is created, a link management module is connected between an existing page table and a newly generated page table, and a page table in which a period in which data is stored in the oldest page table, And the most recently generated page table is connected so as to become a tail of the connected state,
The step of removing all of the data comprises:
When the page table management module selects the oldest page table in which the data is stored in the plurality of page tables, the page table corresponding to the head among the plurality of page tables is selected as the oldest page table, And removing all of the data stored in the table.
상기 데이터를 모두 제거하는 단계는,
상기 페이지 테이블 관리 모듈에 의해, 기설정된 기간이 도래하면, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 상기 제3 저장 공간에 저장된 라우팅 인덱스 정보에 따라 특정 프로세서가 데이터를 처리하는 동안 상기 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.5. The method of claim 4,
The step of removing all of the data comprises:
Wherein the page table management module determines that the event has occurred when a preset period of time has elapsed and the page table management module has processed the data according to the routing index information stored in the third storage space Selecting a data page that is not likely to be reused in the memory, and removing all data stored in the selected page table.
저장장치에 저장된 데이터와 상기 페이지 테이블에 저장된 데이터 간의 스와핑이 요청되면, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터가 모두 제거되도록 하는 단계;
상기 데이터가 모두 제거된 페이지 테이블이 다른 페이지 테이블과의 연결이 해제되도록 하는 단계;
새로운 페이지 테이블이 생성되어 다른 페이지 테이블과 연결되도록 하거나 또는 다른 페이지 테이블과 연결되지 않은 상태의 페이지 테이블 중 하나가 다른 페이지 테이블과 연결되도록 하는 단계; 및
상기 페이지 테이블 관리 모듈이 새롭게 다른 페이지 테이블과 연결된 페이지 테이블에 상기 저장장치에 저장된 데이터를 불러들여 저장하는 단계;를 더 포함하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.5. The method of claim 4,
When swapping between the data stored in the storage device and the data stored in the page table is requested, the page table management module determines that the event is generated, and the page table management module stores the data Selecting the oldest page table so that all data stored in the selected page table is removed;
Causing a page table from which all the data is removed to be disconnected from another page table;
Allowing a new page table to be created and associated with another page table, or one of page tables not associated with another page table being associated with another page table; And
Further comprising the step of the page table management module retrieving and storing data stored in the storage device in a page table newly associated with another page table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180009686A KR101851122B1 (en) | 2018-01-26 | 2018-01-26 | Method for data management based on page table |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180009686A KR101851122B1 (en) | 2018-01-26 | 2018-01-26 | Method for data management based on page table |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101851122B1 true KR101851122B1 (en) | 2018-04-24 |
Family
ID=62084946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180009686A KR101851122B1 (en) | 2018-01-26 | 2018-01-26 | Method for data management based on page table |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101851122B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169708A1 (en) * | 2008-12-29 | 2010-07-01 | John Rudelic | Method and apparatus to profile ram memory objects for displacment with nonvolatile memory |
US20170139840A1 (en) | 2015-11-12 | 2017-05-18 | International Business Machines Corporation | Memory mapping for object-based storage devices |
-
2018
- 2018-01-26 KR KR1020180009686A patent/KR101851122B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169708A1 (en) * | 2008-12-29 | 2010-07-01 | John Rudelic | Method and apparatus to profile ram memory objects for displacment with nonvolatile memory |
US20170139840A1 (en) | 2015-11-12 | 2017-05-18 | International Business Machines Corporation | Memory mapping for object-based storage devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10185495B2 (en) | Block storage device having hierarchical disks with different access frequencies | |
US7681010B2 (en) | Apparatus and method for a managing file system | |
US8219562B1 (en) | Efficient storage and retrieval for large number of data objects | |
US7574435B2 (en) | Hierarchical storage management of metadata | |
EP2324440B1 (en) | Providing data structures for determining whether keys of an index are present in a storage system | |
US7694103B1 (en) | Efficient use of memory and accessing of stored records | |
US11687488B2 (en) | Directory deletion method and apparatus, and storage server | |
US10073649B2 (en) | Storing metadata | |
US9547706B2 (en) | Using colocation hints to facilitate accessing a distributed data storage system | |
US8682941B2 (en) | Database apparatus | |
EP3206128A1 (en) | Data storage method, data storage apparatus, and storage device | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
EP1181639B1 (en) | Apparatus and method for providing a cyclic buffer | |
JP5464269B2 (en) | File storage device, data storage method, and data storage program | |
JP4755244B2 (en) | Information generation method, information generation program, and information generation apparatus | |
CN106528338B (en) | Remote data copying method, storage device and storage system | |
CN115840731A (en) | File processing method, computing device and computer storage medium | |
JP4727800B2 (en) | Digital data subsystem including a directory for efficiently providing format information about stored records | |
KR20150045073A (en) | Data Operating Method And System supporting the same | |
KR101851122B1 (en) | Method for data management based on page table | |
CN113467719A (en) | Data writing method and device | |
US9575679B2 (en) | Storage system in which connected data is divided | |
US10922277B1 (en) | Logging file system metadata changes using a single log hold per cached block of metadata | |
JP2830826B2 (en) | Distributed file synchronization system and method | |
US5802557A (en) | System and method for caching information in a digital data storage subsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |