KR20000018923A - Memory managing method and a device for information searching system for plurality of users - Google Patents
Memory managing method and a device for information searching system for plurality of users Download PDFInfo
- Publication number
- KR20000018923A KR20000018923A KR1019980036774A KR19980036774A KR20000018923A KR 20000018923 A KR20000018923 A KR 20000018923A KR 1019980036774 A KR1019980036774 A KR 1019980036774A KR 19980036774 A KR19980036774 A KR 19980036774A KR 20000018923 A KR20000018923 A KR 20000018923A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- pool
- search
- manager
- memory pool
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 클라이언트/서버의 형태를 이루는 다 사용자용 정보검색시스템에서 운영체제시스템(Operating System, 이하 OS라 칭함) 동적 메모리 할당을 배제한 메모리 관리방법 및 그 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory management method and apparatus for excluding dynamic memory allocation from an operating system (OS) in a multi-user information retrieval system in the form of a client / server.
종래의 정보검색시스템에서는 중간 검색 결과를 유지하기 위해 각각의 중간 검색 결과에 대해 메모리를 동적으로 할당받는 방법을 사용하고 있다.The conventional information retrieval system uses a method of dynamically allocating memory for each intermediate search result in order to maintain the intermediate search result.
한편, 선행논문으로 기술정보 학술대회 논문집에 게재된 "정보검색시스템 KRISTAL-Ⅱ[저자 조현양 외 6, pp. 47-69, 1997.10.16]"에서는 가변 길이의 비정형 텍스트 문서들에 대한 저장과 접근 방법 제공을 통한 검색 시스템의 개발을 위해 블롭을 이용한 객체관리를 하는 커널, 문서와 색인 데이터를 관리하는 저장엔진, 대량의 데이터베이스를 여러 개의 볼륨에 분산 저장하는 파일 카탈로그와 데이터베이스의 문서를 구성하는 섹션들의 정보를 유지하는 섹션 카탈로그와 결합 섹션 카탈로그로 구성된 카탈로그 관리기, 시스템 관리자에 의해 작성된 데이터베이스 스키마 정보를 생성하여 시스템 카탈로그에 기록하는 데이터베이스 관리기, 카탈로그 관리기와 저장 엔진을 이용하여 부울 모델에 의해 작성된 사용자의 질의를 만족하는 문서들을 데이터베이스로 부터 검색하는 검색엔진 등으로 구성함으로써, 검색 시스템 하부에 데이터베이스를 사용함에 따른 대용량의 데이터에 대한 저장/색인/검색이 가능할 수 있으나, 메모리 관리에 대한 언급이 전혀 없으므로 메모리 관리기를 통한 검색 속도 향상과 메모리의 효율적인 관리에 있어서 문제점이 따른다.On the other hand, "Retrieval system KRISTAL-Ⅱ [author Cho Hyun-yang et al. 6, pp. 47-69, 1997.10.16]" published in a technical paper conference as a preceding paper, the storage and storage of unstructured text documents of variable length Kernel that manages object using blob for development of retrieval system through providing approach, storage engine that manages document and index data, file catalog and database document that store large database in several volumes A catalog manager, consisting of a section catalog, which combines section catalogs to maintain information of sections, a database manager that creates database schema information created by the system administrator and writes it to the system catalog, a user created by the Boolean model using the catalog manager and storage engine Documents that satisfy the query It is possible to save / index / search for large amounts of data by using a database under the search system. However, since there is no mention of memory management, it is possible to improve the search speed through the memory manager. There is a problem in the efficient management of memory.
또한, 선행특허로 미국특허 "Multiprocessor memory management method[권리권자 Bishop; Thomas P. 외 4인, 등록번호 941703, 1989.3.7]"는 논리적으로 두 부분으로 나누어지지 않고 공유되지 않는 자신의 메모리를 가진 다수의 프로세서를 가진 다중 프로세서 시스템에서, 각각의 프로세서 메모리 요구를 하는 프로세서들에게 효과적으로 메모리를 할당시켜주는 메모리 할당 방법을 위해 각각의 프로세서가 자신의 메모리를 가지고 있고, 응용프로그램을 수행하는 프로세스는 프로그램 수행을 위해 프로세서에게 메모리를 요구하면 프로세서들은 공유되지 않는 논리적으로 두 부분으로 나누어진 프로세스들의 메모리 요구를 만족시켜줌으로써 다중 프로세서 환경에서 프로세스들의 메모리 관리 요구를 효과적으로 처리할 수 있으나, 다 사용자용 정보검색 시스템에서의 메모리관리 효과를 기대하기는 어려운 문제점이 따른다.Also, as a prior patent, the US patent "Multiprocessor memory management method [right holder Bishop; Thomas P. et al. 4, registration number 941703, 1989.3.7]" has its own memory that is not logically divided into two parts and shared. In a multiprocessor system with multiple processors, each processor has its own memory for a memory allocation method that effectively allocates memory to the processors that make each processor memory request. Requiring memory from a processor for execution can effectively handle the memory management requirements of processes in a multiprocessor environment by satisfying the memory requirements of two logically unshared processes. Menu in the system Lee managed to look forward to effective follow this difficult problem.
일반적으로 메모리를 할당받는 방법은 시스템 콜(system call)을 사용하는데, 메모리 할당 시스템 콜은 많은 시간을 필요로 한다.In general, the method of allocating memory uses a system call, which requires a lot of time.
따라서 이 방법을 사용하면 메모리를 할당받는 횟수에 비례해서 검색속도가 현저하게 줄어들기 때문에 소규모의 검색 셀에 대해서는 유용하겠지만 대용량의 검색 셀에 대해서는 사용하기에는 적합하지 못한 문제점이 따른다.Therefore, this method reduces the search speed in proportion to the number of memory allocations, which is useful for small search cells, but not suitable for large search cells.
상기 문제점을 해결하기 위해 본 발명은, 다 사용자용 정보검색시스템에서 메모리 관리기를 사용하여 대용량의 데이터룰 검색할 때 검색 속도를 향상시키고, 검색 과정에서 메모리의 사용을 효율적으로 수행하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to improve the search speed when searching a large data rule using a memory manager in a multi-user information retrieval system, and to efficiently use the memory in the retrieval process. .
본 발명에서는 클라이언트/서버의 형태를 이루는 검색 시스템에서 서버가 초기 수행될 때 검색 결과를 처리하기 위한 메모리를 할당받아 메모리 풀(pool)을 만든다.In the present invention, when a server is initially performed in a search system in the form of a client / server, a memory pool is created by allocating memory for processing a search result.
검색을 수행하기 위해 사용자는 검색 클라이언트를 이용해 정보를 찾기 위한 질의를 생성하게 되고, 생성된 질의는 서버로 전달된다.In order to perform a search, a user generates a query to find information using a search client, and the generated query is transmitted to a server.
서버에서는 질의에 포함된 각각의 키워드(keyword)에 대해 적합한 문서의 셋(set)을 색인 정보로부터 검색한다.The server retrieves a set of appropriate documents from the index information for each keyword included in the query.
이때 각각의 키워드에 대한 검색 결과가 존재하면 검색결과를 저장해야 할 필요가 발생하며, 저장 공간을 확보하기 위해서 검색기에서는 메모리 관리기에 필요한 메모리를 요청해 얻게 된다.At this time, if a search result for each keyword exists, it is necessary to store the search result. In order to secure the storage space, the searcher requests a memory required for the memory manager.
메모리 관리기는 자체 알고리즘을 통해 검색기의 메모리 요청에 응답한다.The memory manager responds to the searcher's memory request through its algorithm.
메모리 요청을 동시에 다수의 사용자가 클라이언트를 통해 발생시키므로 메모리 관리기는 라킹(locking) 메커니즘을 통해 둘 이상의 사용자가 같은 메모리를 사용할 수 없도록 한다.Since memory requests are issued by the client simultaneously by multiple users, the memory manager uses a locking mechanism to prevent more than one user from using the same memory.
사용이 끝난 메모리는 메모리 관리기에 되돌려지게 되어 다른 사용자의 검색 요구시에 다시 사용될 수 있다.The used memory is returned to the memory manager so that it can be used again when another user's search request is made.
메모리 관리기가 관리하는 메모리 풀(pool)은 서버가 종료될 때 일괄적으로 시스템에 되돌려진다.The memory pool managed by the memory manager is returned to the system in batches when the server shuts down.
도 1은 본 발명이 적용되는 메모리 관리 장치 블럭 구성도,1 is a block diagram of a memory management apparatus to which the present invention is applied;
도 2는 본 발명에 따른 메모리 관리기에 대한 블럭 구성도,2 is a block diagram illustrating a memory manager according to the present invention;
도 3은 본 발명에 따른 메모리 관리방법 처리 흐름도.3 is a flowchart illustrating a memory management method according to the present invention;
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
100 : 검색 클라이언트 200 : 검색 서버100: search client 200: search server
210 : 메모리 관리기 211 : 동시성 제어 모듈210: memory manager 211: concurrency control module
212 : 메모리 관리기 제어 모듈 213 : 오버플로우 처리 모듈212: memory manager control module 213: overflow processing module
214 : 가변 메모리 풀 관리 모듈 215 : 메모리 할당 해제 모듈214: variable memory pool management module 215: memory deallocation module
216 : 데이터 타입 모듈 217 : 메모리 관리 풀 인덱스 관리 모듈216: data type module 217: memory management pool index management module
220 : 검색 엔진 300 : 메인 메모리220: search engine 300: main memory
310 : 메모리 풀 311 : 메모리 풀 인덱스310: memory pool 311: memory pool index
312 : 데이터 유형 400 : 하드 디스크312: Data Type 400: Hard Disk
410 : 색인 데이터410 index data
상기 목적을 달성하기 위해 본 발명은, 다수의 검색 클라이언트로부터 검색 요구에 대해 요구된 검색 모델에 따라 하드디스크에 저장된 색인 데이터를 검색해 필요한 데이터를 추출해 추출한 데이터의 조합/가중치 부여/랭킹을 수행하는 다수개의 검색 엔진, 검색 엔진의 요구에 대해 요구한 데이터 유형과 메모리 풀 인덱스를 구비한 메모리 풀을 가진 메인 메모리에서 사용가능한 메모리를 찾아 상기 검색 엔진에 전달하는 메모리 관리기로 이루어진 검색 서버를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention provides a plurality of search clients that perform index combination / weighting / ranking of extracted data by searching index data stored on a hard disk according to a search model required for a search request. Search engine, a search server comprising: a memory manager for finding available memory in main memory having a memory pool having a data type requested by the search engine and a memory pool index, and delivering the available memory to the search engine It is done.
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1 은 본 발명이 적용되는 메모리 관리 장치 블럭 구성도로서 검색 클라이언트/서버로 구성된 다 사용자용 정보검색시스템에서 빠른 검색 속도을 제공하기 위해 본 발명에서 제안하는 메모리 관리 장치는, 사용자 검색 인터페이스를 제공하고 서버에 검색을 요청하는 검색 클라이언트(100), 검색 모델에 따라 하드디스크(400)에 저장된 색인 데이터(410)를 검색해 그 결과의 조합/가중치 부여/랭킹을 수행하는 검색 엔진(220), 메인 메모리에 위치한 메모리 풀(310)에서 검색 엔진의 메모리 요구에 대한 데이터유형(312)과 메모리 풀 인덱스(311)를 이용해 사용가능한 메모리를 제공 및 관리하는 메모리 관리기(210)를 구비하여 상기 검색 클라이언트의 검색 요구에 대해 검색을 수행하는 검색 서버(200)로 이루어진다.1 is a block diagram illustrating a memory management apparatus to which the present invention is applied. The memory management apparatus proposed by the present invention provides a user search interface for providing a fast search speed in a multi-user information retrieval system composed of a search client / server. A search client 100 requesting a search to a server, a search engine 220 for searching the index data 410 stored in the hard disk 400 according to a search model, and performing combination / weighting / ranking of the results and a main memory A memory manager 210 that provides and manages available memory using a data type 312 for memory requirements of a search engine and a memory pool index 311 in a memory pool 310 located at It consists of a search server 200 that performs a search for the request.
상기 검색 클라이언트(100)의 검색 요구가 검색 서버(200)에서 발생하면 검색 서버는 하나의 검색 엔진을 실행시킨다.When a search request of the search client 100 occurs in the search server 200, the search server executes one search engine.
검색 엔진(220)은 요구된 검색을 수행하기 위해 검색 질의에 포함된 각각의 키워드에 대해 하드 디스크(400)에 존재하는 색인 데이터(410)를 검색하여 필요한 데이터를 추출한다.The search engine 220 searches the index data 410 present in the hard disk 400 for each keyword included in the search query to extract the required data in order to perform the requested search.
추출한 데이터를 저장하기 위해 검색엔진(220)은 메모리 관리기(210)에게 필요한 메모리를 요구하게 되고 메모리 관리기(210)는 메모리 풀(310)에 존재하는 사용 가능 메모리를 찾아 검색 엔진(220)에 전달한다.In order to store the extracted data, the search engine 220 requests a memory required by the memory manager 210, and the memory manager 210 searches for available memory existing in the memory pool 310 and delivers it to the search engine 220. do.
검색 엔진(220)은 각각의 키워드의 검색 결과를 처리하기 위해 계속해서 상기 메모리 관리기(210)에 메모리를 요구하게 된다.The search engine 220 continues to request memory from the memory manager 210 to process the search results of each keyword.
모든 키워드에 대해 검색이 수행되면 검색엔진(220)은 검색한 결과를 조합하고 가중치를 부여하여 랭킹한 결과를 검색을 요구한 검색 클라이언트(100)에 전달하면서 하나의 검색이 완료된다.When the search is performed for all the keywords, the search engine 220 combines and weights the searched results and delivers the ranking results to the search client 100 requesting the search.
이때 다수의 검색 클라이언트(100)가 하나의 검색 서버(200)에 검색 요구를 발생시키므로 검색 서버(200)는 N개의 검색 엔진(220)을 실행시키고 각각의 검색엔진(220)은 하나의 메모리 관리기(210)를 통해 필요한 메모리를 얻어 검색을 수행하게 된다.In this case, since a plurality of search clients 100 generate a search request to one search server 200, the search server 200 executes N search engines 220, and each search engine 220 has one memory manager. Through 210, a required memory is obtained to perform a search.
도 2 는 본 발명에 따른 메모리 관리기에 대한 블럭 구성도로서, 메모리 관리기(210)는 동시성 제어 모듈(211), 메모리 관리기 제어 모듈(212), 오버플로우(overflow) 처리 모듈(213), 가변 메모리 풀 관리 모듈(214), 메모리 할당/해제 모듈(215), 데이터 타입 관리 모듈(216), 메모리 풀 인덱스 관리 모듈(217)로 구성된다.2 is a block diagram of a memory manager according to the present invention, in which the memory manager 210 includes a concurrency control module 211, a memory manager control module 212, an overflow processing module 213, and a variable memory. The pool management module 214, the memory allocation / release module 215, the data type management module 216, and the memory pool index management module 217 are configured.
상기 동시성 제어 모듈(211)은 메모리 풀(310)에 존재하는 메모리에 대한 무결성을 보장하기 위하여 동시성 제어 기능을 수행하는데, 다수의 메모리에 대한 요청이 동시 다발적으로 발생할 경우 메모리 풀(310)에 존재하는 메모리를 접근하는 연산에 대한 직열성이 보장되지 않으면 메모리 풀(310)의 내용에 결함이 발생한다.The concurrency control module 211 performs a concurrency control function to ensure the integrity of the memory existing in the memory pool 310. When a request for a plurality of memories occurs simultaneously, the concurrency control module 211 If the seriality of the operation that accesses the existing memory is not guaranteed, a defect occurs in the contents of the memory pool 310.
이때, 직열성이 보장되도록 메모리 풀(310)을 접근하는 연산이란 각 연산의 시작과 종료 사이에 아무런 방해나 중단이 발생하지 않는 것을 보장하는 연산을 의미한다.In this case, the operation of approaching the memory pool 310 to guarantee the directivity means an operation that guarantees that no interruption or interruption occurs between the start and end of each operation.
따라서, 이러한 직열성 보장의 연산을 위하여 유닉스(UNIX)의 오퍼레이팅 시스템에서 제공하는 세마포어(semaphore)를 사용하여 동시성 제어를 수행한다.Therefore, concurrency control is performed by using semaphores provided by the operating system of UNIX.
메모리 관리기 제어 모듈(212)은 검색 엔진(220)으로부터 메모리 관리기(210)로 발생한 요구를 제어하는 모듈이다.The memory manager control module 212 is a module for controlling a request generated from the search engine 220 to the memory manager 210.
메모리 관리기(210)에 발생되는 일은 크게 네가지인데, 첫째로 메모리 풀에 있는 메모리 요구, 둘째로 사용이 끝난 메모리의 메모리 풀로의 반납, 셋째로 메모리 관리기의 초기화, 넷째로 메모리 관리기의 실행 종료이다.There are four major things happening in the memory manager 210: first, the memory request in the memory pool, second, the return of the used memory to the memory pool, third, the initialization of the memory manager, and fourth, the execution of the memory manager.
상기 오버플로우(overflow) 처리 모듈(213)은 메모리 풀에 더 이상 사용가능한 메모리가 없을 때 처리하는 모듈이다.The overflow processing module 213 is a module that processes when there is no more memory available in the memory pool.
더 이상 사용가능한 메모리가 없는 상태에서 메모리 요구가 들어오면 오버플로우 처리모듈(213)은 새로운 메모리를 할당가능한지 체크한다.When a memory request comes in when there is no more memory available, the overflow processing module 213 checks whether a new memory can be allocated.
만약 메모리 관리기(210)가 초기에 설정한 하나의 블럭만 사용하도록 되어 있다면 더 이상 사용가능한 메모리가 없다는 메시지를 메모리를 요구한 검색엔진(220)에 넘겨준다.If the memory manager 210 is configured to use only one block initially set, the memory manager 210 sends a message to the search engine 220 requesting the memory that there is no more memory available.
그러나 메모리 관리기(210)가 여러개의 메모리 블럭을 사용하도록 설정되어 있다면 가변 메모리 풀 관리 모듈(214)을 호출해 새로운 M개의 메모리 블럭을 시스템으로부터 할당받는다.However, if the memory manager 210 is configured to use multiple memory blocks, the variable memory pool management module 214 is called to allocate new M memory blocks from the system.
가변 메모리 풀 관리 모듈(214)은 더 이상 사용 가능한 메모리가 풀에 있지 않은 상황에서 새로운 메모리 요구에 대해 대처하는 기능을 한다.The variable memory pool management module 214 functions to cope with new memory requests in situations where no more available memory is in the pool.
즉 동적으로 시스템으로부터 메모리를 할당받아 메모리 관리기(210)가 정상적으로 작동하도록 함으로서 유연한 메모리 관리를 수행하도록 한다.That is, the memory manager 210 operates normally by dynamically allocating memory from the system to perform flexible memory management.
가변 메모리 풀 관리 모듈(214)을 사용함에 따라 메모리 관리기가 처음으로 시작할 때 많은 메모리를 초기화해서 사용하지 않아도 됨으로써 효율적인 메모리 관리가 이루어질 수 있다.The use of the variable memory pool management module 214 enables efficient memory management by eliminating the need to initialize and use much memory when the memory manager first starts.
메모리 할당/해제 모듈(215)은 시스템으로부터 메모리를 할당받아 메모리 풀(310)을 생성하고 메모리 관리기 종료시 할당받은 메모리를 메모리 풀(310)로부터 시스템에 반납하는 기능을 수행한다.The memory allocation / release module 215 generates a memory pool 310 by allocating memory from the system and performs a function of returning the allocated memory from the memory pool 310 to the system at the end of the memory manager.
메모리 할당은 메모리 관리기(210)가 시작할 때와 메모리 요구시 더 이상 사용 가능한 메모리가 메모리 풀(310)에 존재하지 않을 때 일어나며 메모리 해제는 메모리 관리기(210)의 종료시에 일어난다.Memory allocation occurs at the start of the memory manager 210 and at the memory request when no more memory is available in the memory pool 310 and memory release occurs at the end of the memory manager 210.
데이터 타입 관리 모듈(216)은 메모리 관리기(210)에서 취급하는 메모리에 저장되는 데이터 타입에 대한 관리를 수행하는 모듈로서 임의의 타입의 데이터를 위한 메모리 요구에 메모리 관리기(210)가 대처하도록 하는 기능을 수행한다.The data type management module 216 is a module that manages data types stored in a memory handled by the memory manager 210, and allows the memory manager 210 to respond to memory requests for any type of data. Do this.
메모리 풀 인덱스 관리 모듈(217)은 메모리 풀(310)에 존재하는 메모리들의 사용상태를 나타내는 메모리 풀 인덱스(311)를 관리하는 기능을 수행한다.The memory pool index management module 217 manages a memory pool index 311 indicating a state of use of memories existing in the memory pool 310.
메모리 요구나 반납시에는 반드시 메모리 풀 인덱스(311)를 참조해야 하므로 메모리 풀 인덱스(311)는 빠른 속도로 검색이 가능해야 한다.Since the memory pool index 311 must be referred to at the time of a memory request or return, the memory pool index 311 should be searchable at a high speed.
이에 메모리 풀 인덱스(311)와 부가적으로 메모리 풀(310)에서 사용가능한 메모리를 가리키는 포인터를 유지함으로써 메모리 요구시 바로 사용가능한 메모리를 제공할 수 있다.Accordingly, the memory pool index 311 and additionally, a pointer indicating the memory available in the memory pool 310 may be maintained to provide a memory that is readily available upon request.
또한 하나의 데이터 타입에 대한 요구뿐만 아니라 같은 타입의 여러개의 데이터를 한번에 제공하는 기능도 함께 수행한다.In addition to the request for a single data type, it also provides the function of providing multiple data of the same type at once.
도 3 은 본 발명에 따른 메모리 관리방법 처리 흐름도로서, 메모리 관리기(210)에 요구되는 일은 크게 메모리 풀(311)에 있는 메모리 요구, 사용이 끝난 메모리의 메모리 풀(311)로의 반납, 메모리 관리기(210)의 초기화, 메모리 관리기(210)의 실행 종료의 네가지이다.3 is a flowchart illustrating a memory management method according to the present invention, in which the memory manager 210 requires a large number of requests for memory in the memory pool 311, returning used memory to the memory pool 311, and a memory manager ( There are four phases of initialization of 210 and termination of execution of memory manager 210.
첫번째로, 메모리 요구가 발생하는지 판단하여(S1) 발생하면, 우선 메모리 풀에 대한 동시성 처리를 시작한다(S2).First, it is determined whether a memory request occurs (S1), and if so, first, concurrency processing for the memory pool is started (S2).
그리고 요구된 메모리의 유형이 무엇인지 체크하고(S3) 그 유형에 맞는 사용 가능 메모리가 메모리 풀에 있는지 판단한다(S4).Then, it checks what type of memory is requested (S3) and determines whether there is an available memory for that type in the memory pool (S4).
판단 후 만약 메모리 풀에 사용 가능 메모리가 존재한다면 하나의 메모리를 꺼내고(S5) 메모리 풀의 상태를 유지하는 메모리 풀 인덱스를 변경하여(S6) 인덱스와 메모리 풀의 상태를 일치시킨 후 새로운 요구가 메모리 풀에 대해 가능하도록 동시성 처리를 종료한다(S7).After the determination, if there is available memory in the memory pool, one memory is taken out (S5) and the memory pool index that maintains the state of the memory pool is changed (S6) to match the state of the index and the memory pool, and then a new request is made. The concurrency process ends so as to enable the pool (S7).
따라서 메모리를 요구한 검색엔진은 필요한 메모리를 얻게되어(S8) 계속해서 다음 작업을 진행하게 된다.Therefore, the search engine requesting the memory obtains the required memory (S8) and continues to the next task.
만약 메모리 풀에 사용가능 메모리가 존재하지 않으면 새로운 메모리를 할당하는 조건을 만족하는지 판단한다(S9).If the available memory does not exist in the memory pool, it is determined whether a condition for allocating a new memory is satisfied (S9).
새로운 메모리 할당 조건은 현재 할당된 메모리 블럭의 개수가 최대 할당 블럭의 개수를 넘지 않았는가이다.The new memory allocation condition is whether the number of currently allocated memory blocks exceeds the maximum number of allocated blocks.
이때 응용에 따라서 처음에 한번만 메모리 블럭을 할당하는 경우가 가능하다.At this time, depending on the application, it is possible to allocate a block of memory only once.
그러나 여러번 메모리 블럭을 할당하는 경우라면 가변 메모리 풀 관리가 필요하게 된다.However, variable memory pool management is required when allocating multiple memory blocks.
새로운 메모리 할당 조건을 만족하지 않으면 에러 메시지를 출력(S10)하고 메모리 관리기를 종료하며, 만약 만족한다면 새로운 M개의 메모리 블럭은 시스템으로부터 할당받는다(S11).If the new memory allocation condition is not satisfied, an error message is output (S10) and the memory manager is terminated. If satisfied, new M memory blocks are allocated from the system (S11).
이렇게 되면 메모리 풀에 사용가능 메모리가 존재하게 되고 필요한 메모리를 얻게 된다(S12).In this case, available memory exists in the memory pool and the required memory is obtained (S12).
이후 메모리 풀의 상태를 유지하는 메모리 풀 인덱스를 변경하여(S6) 인덱스와 메모리 풀의 상태를 일치시킨 후 새로운 요구가 메모리 풀에 대해 가능하도록 동시성 처리를 종료하며(S7) 메모리를 요구한 검색 엔진에 필요한 메모리를 넘겨준다(S8).After that, the memory pool index that maintains the state of the memory pool is changed (S6) to match the state of the index and the memory pool, and then the concurrency processing is terminated so that a new request is possible for the memory pool (S7). Pass the memory required for (S8).
두번째로, 상기 메모리 요구 발생 판단(S1) 후 발생하지 않으면 메모리 반납 요구가 발생하는지 판단하여(S13) 발생하면 동시성 처리를 시작하고(S14), 반납될 메모리를 메모리 풀에 반납하고(S15) 메모리 풀의 상태를 유지하는 메모리 풀 인덱스를 변경하여(S16) 인덱스와 메모리 풀의 상태를 일치시킨 후 새로운 요구가 메모리 풀에 대해 가능하도록 동시성 처리를 종료한다(S17).Secondly, if it does not occur after the memory request occurrence determination (S1), it is determined whether a memory return request occurs (S13). If so, the concurrency process is started (S14), and the memory to be returned is returned to the memory pool (S15). After changing the memory pool index maintaining the state of the pool (S16) to match the state of the index and the memory pool, the concurrency process is terminated so that a new request is possible for the memory pool (S17).
반납된 메모리는 이후 검색 엔진의 요구에 의해 재사용이 가능해진다.The returned memory can then be reused at the request of a search engine.
세번째로, 상기 판단(S13) 후 메모리 반납 요구가 발생하지 않으면 메모리 관리기 초기화 요구가 발생하는지를 판단하여(S18) 메모리 관리기 초기화 요구가 발생하면 N개의 메모리 블럭을 시스템으로부터 할당받아 메모리 풀을 생성하고(S19), 또한 메모리 풀의 상태를 나타내는 메모리 풀 인덱스도 생성한(S20) 후 메모리 풀의 상태와 마찬가지로 메모리 풀 인덱스를 초기 상태로 만든다(S21).Third, if the memory return request does not occur after the determination (S13), it is determined whether a memory manager initialization request occurs (S18). When a memory manager initialization request occurs, N memory blocks are allocated from the system to generate a memory pool (S18). In operation S19, a memory pool index indicating a state of the memory pool is also generated (S20), and then the memory pool index is initialized as in the state of the memory pool (S21).
네번째로, 초기화 요구가 발생하지 않아 메모리 관리기 종료 요구가 발생하면, 메모리 풀의 모든 메모리를 원래대로 시스템에게 반납하고(S22) 메모리 인덱스를 삭제(S23)한 후 메모리 관리기를 종료한다.Fourth, when the memory manager termination request occurs because the initialization request does not occur, all memory in the memory pool is returned to the system (S22), the memory index is deleted (S23), and the memory manager is terminated.
상술한 바와 같이 본 발명의 다 사용자용 정보검색시스템을 위한 메모리 관리 장치 및 그 방법은, 정보 검색 시스템에서 빠른 검색 속도를 기대할 수 있으며, 클라이언트/서버로 동작하면서 많은 메모리를 동적으로 사용하는 응용에 활용한다면 메모리 사용과 응용 프로그램 속도를 향상시킬 수 있는 효과를 가진다.As described above, the memory management apparatus and method for a multi-user information retrieval system of the present invention can be expected in a fast retrieval speed in the information retrieval system, and is used for applications that dynamically use a lot of memory while operating as a client / server. Doing so has the effect of improving memory usage and application speed.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980036774A KR20000018923A (en) | 1998-09-07 | 1998-09-07 | Memory managing method and a device for information searching system for plurality of users |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980036774A KR20000018923A (en) | 1998-09-07 | 1998-09-07 | Memory managing method and a device for information searching system for plurality of users |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20000018923A true KR20000018923A (en) | 2000-04-06 |
Family
ID=19549789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980036774A KR20000018923A (en) | 1998-09-07 | 1998-09-07 | Memory managing method and a device for information searching system for plurality of users |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20000018923A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210001504A (en) | 2019-06-28 | 2021-01-06 | 이준호 | Multi-stage storage case device of carrier type |
-
1998
- 1998-09-07 KR KR1019980036774A patent/KR20000018923A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210001504A (en) | 2019-06-28 | 2021-01-06 | 이준호 | Multi-stage storage case device of carrier type |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3433737B1 (en) | Memory sharing for working data using rdma | |
US5666532A (en) | Computer method and apparatus for asynchronous ordered operations | |
US5197148A (en) | Method for maintaining data availability after component failure included denying access to others while completing by one of the microprocessor systems an atomic transaction changing a portion of the multiple copies of data | |
Kung et al. | On optimistic methods for concurrency control | |
US7584222B1 (en) | Methods and apparatus facilitating access to shared storage among multiple computers | |
US5842226A (en) | Virtual memory management for a microkernel system with multiple operating systems | |
US5946711A (en) | System for locking data in a shared cache | |
US7467282B2 (en) | Migrating a traditional volume to a virtual volume in a storage system | |
US5574903A (en) | Method and apparatus for handling request regarding information stored in a file system | |
US20180373561A1 (en) | Hierarchical stalling strategies | |
EP0447160A2 (en) | Maintaining data consistency in cache storage systems | |
WO2004066079A2 (en) | Memory-resident database management system and implementation thereof | |
US6115790A (en) | System, method and computer program product for organizing page caches | |
JP2000089989A (en) | Method for starting service using property imparted to document | |
JPH11327919A (en) | Method and device for object-oriented interruption system | |
Shatdal et al. | Using shared virtual memory for parallel join processing | |
Carter et al. | Khazana: An infrastructure for building distributed services | |
US6505284B1 (en) | File segment subsystem for a parallel processing database system | |
US7233946B1 (en) | File interval lock generation interface system and method | |
KR20000018923A (en) | Memory managing method and a device for information searching system for plurality of users | |
Ujibashi et al. | Design of a Shared Memory mechanism for efficient paralell processing in PostgreSQL | |
US11914556B2 (en) | Lazy virtual filesystem instantiation and caching | |
US7219206B1 (en) | File system virtual memory descriptor generation interface system and method | |
US20240143594A1 (en) | Offloading graph components to persistent storage for reducing resident memory in distributed graph processing | |
Warner et al. | The impact of multilevel security on database buffer management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |