KR20060096569A - A apparatus and method for pool resource management by using multi-step allocation - Google Patents

A apparatus and method for pool resource management by using multi-step allocation Download PDF

Info

Publication number
KR20060096569A
KR20060096569A KR1020050017194A KR20050017194A KR20060096569A KR 20060096569 A KR20060096569 A KR 20060096569A KR 1020050017194 A KR1020050017194 A KR 1020050017194A KR 20050017194 A KR20050017194 A KR 20050017194A KR 20060096569 A KR20060096569 A KR 20060096569A
Authority
KR
South Korea
Prior art keywords
resources
idle
eventid
objptr
indexid
Prior art date
Application number
KR1020050017194A
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 KR1020050017194A priority Critical patent/KR20060096569A/en
Publication of KR20060096569A publication Critical patent/KR20060096569A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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]

Abstract

본 발명은 시스템의 메모리를 임의로 정해지는 최대 그룹 수 내의 생성될 수 있는 최대 자원 수만큼 식별자 큐를 생성하고, 초기에 아이들한 자원을 관리하기 위한 초기 아이들 풀 그룹을 생성한다. 이후, 초기 아이들한 풀 그룹에 할당된 자원들이 모두 사용 중일 경우 다음 아이들 풀 그룹을 생성하고, 상기 초기 아이들한 풀 그룹에서 사용이 완료된 자원을 반환하여 아이들한 자원수가 정해진 임계값 이상일 경우 상기 다음 풀 그룹의 자원들을 삭제함으로써 메모리의 자원을 효율적으로 관리하는 것이다.The present invention creates an identifier queue by the maximum number of resources that can be created within a predetermined maximum number of groups of memory of the system, and creates an initial idle pool group for managing idle resources initially. Subsequently, if all resources allocated to the initial idle pool group are in use, a next idle pool group is created, and if the number of idle resources is greater than a predetermined threshold, the next pool is returned. By deleting the resources of the group, it is possible to efficiently manage the resources of the memory.

Pool Resource Management, Resource generation/ assignment/ restoration. idle Pool Group Pool Resource Management, Resource generation / assignment / restoration. idle Pool Group

Description

다단계 할당 방식을 이용한 풀 자원 관리 방법{A Apparatus And Method For Pool Resource Management By Using Multi-Step Allocation}A Apparatus And Method For Pool Resource Management By Using Multi-Step Allocation}

도 1은 일반적인 풀 구조를 보여주는 도면.1 shows a typical pool structure.

도 2는 본 발명의 바람직한 실시예에 따른 다단계 풀 구조를 보여주는 도면.Figure 2 shows a multi-stage pool structure according to a preferred embodiment of the present invention.

도 3은 본 발명의 바람직한 실시예에 따른 다단계 풀 구조를 보여주는 도면.Figure 3 shows a multi-stage pool structure according to a preferred embodiment of the present invention.

도 4는 본 발명의 바람직한 실시예에 따른 초기 풀 자원 생성 작업 흐름도.4 is a flowchart of an initial pool resource creation operation according to a preferred embodiment of the present invention.

도 5는 본 발명의 바람직한 실시예에 따른 풀 자원 할당 작업 흐름도.5 is a flowchart of a pool resource allocation task in accordance with a preferred embodiment of the present invention.

도 6은 본 발명의 바람직한 실시예에 따른 풀 자원 반환 및 불필요 자원 삭제 작업 흐름도.6 is a flowchart illustrating a pool resource return and unnecessary resource deletion operation according to a preferred embodiment of the present invention.

본 발명은 이동통신 시스템의 자원 관리 방법에 관한 것으로서, 특히 풀(Pool) 방식으로 많은 개수의 객체(Object)나 데이터들을 구성하여 관리하는 자원 관리 방법에 관한 것이다.The present invention relates to a resource management method of a mobile communication system, and more particularly, to a resource management method for configuring and managing a large number of objects or data in a pool manner.

이동통신 시스템과 같이 실시간적으로 대용량의 자원(Resource)을 관리해야 하는 시스템들 에서는 내부적으로 많은 개수의 데이터나 객체들을 풀 방식으로 관리하고, 외부 프로세스(Process)의 요청에 의해 자원을 할당한 후, 상기 사용한 자원의 사용이 종료되면 다시 풀로 반환하는 형태로 사용되고 있다. 일반적으로, 이러한 풀들은 최대 크기를 갖는 배열(Array), 리스트(List), 맵(Map) 형태 등의 STL(Standard Template Library)을 이용해서 관리된다. In systems that need to manage a large amount of resources in real time, such as mobile communication systems, internally manage a large number of data or objects in a pooled manner, and allocate resources at the request of an external process. When the usage of the used resource is finished, the resource is used to return to the pool. In general, these pools are managed using a Standard Template Library (STL) such as an array, a list, and a map having a maximum size.

도 1은 일반적인 풀 구조를 보여주는 도면이다.1 is a view showing a general pool structure.

도 1을 참조하면, 시스템의 내부 메모리에 외부 프로세서에서 제공될 수 있는 인덱스(Index) 정보의 최대 값만큼 자원을 생성하고, 임의의 인덱스 정보와 매핑되고 있는 자원을 할당받는 형태로 구성된다.Referring to FIG. 1, a resource is generated in the internal memory of the system by a maximum value of index information that can be provided by an external processor, and is allocated a resource which is mapped with arbitrary index information.

상기한 바와 같이 순수 데이터 혹은 객체로 구성되는 자원들은, 시스템을 초기 구동하는 경우 혹은 내부적으로 처리 중에 필요로 하는 최대 크기만큼 생성되어 구성되는 간단한 구조이기 때문에 풀 내에 존재하는 자원을 할당/반환 시에 사용상의 편이성이 있다. As described above, resources composed of pure data or objects have a simple structure that is created and configured to the maximum size required during initial operation of the system or internally. Therefore, when allocating / returning resources existing in the pool, Ease of use

그러나, 상기한 바와 같은 풀 구조는, 시스템 내의 많은 메모리를 점유하며, 특히 각각의 자원들의 데이터 크기가 큰 경우에는 더욱 시스템 메모리를 비효율적으로 점유하는 문제점이 있었다. 또한, 풀 방식이 아닌 데이터나 객체를 다이나믹하게 생성 및 삭제하는 방식으로 자원을 관리하는 경우에는 시스템 성능 저하의 문제점이 있었다. However, the above-described full structure occupies a lot of memory in the system, and in particular, when the data size of each resource is large, there is a problem in that the system memory is inefficiently occupied. In addition, there is a problem of degrading system performance when managing resources by dynamically creating and deleting data or objects rather than a pool method.

따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명의 목적은, 풀 내의 자원으로 구성되는 객체나 데이터들을 일정 개수씩 그룹으로 구분하여 풀 내의 전체 자원 개수를 효과적으로 관리하는 방법을 제공하는 것이다.Accordingly, an object of the present invention, which is designed to solve the problems of the prior art operating as described above, is a method of effectively managing the total number of resources in the pool by dividing the object or data composed of resources in the pool into a certain number of groups. To provide.

본 발명의 다른 목적은, 초기 그룹에 할당된 자원이 모두 사용 중인 상태가 되는 경우, 지정된 그룹 내의 개수만큼 단계적으로 자원을 생성해서 다음 그룹을 구성한 후 풀에 추가로 할당하는 방법을 제공하는 것이다.Another object of the present invention is to provide a method of generating resources in increments as many as the number in a designated group, when the resources allocated to the initial group are all in use, and then additionally assigning the pool to the pool.

본 발명의 또 다른 목적은, 사용이 완료된 자원을 풀 그룹에 반환하여 해당 풀 그룹의 아이들한 자원이 정해진 임계값 개수 이상일 경우에는 불필요한 다음 그룹 내의 자원들을 삭제 처리하는 방법을 제공하는 것이다. It is still another object of the present invention to provide a method of deleting resources in a next group that are not needed when the resources used are returned to a pool group and the idle resources of the pool group are equal to or larger than a predetermined threshold number.

상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 실시예는, 풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 생성하는 방법에 있어서,In order to achieve the above object, an embodiment of the present invention provides a method for generating an initial resource in a resource management method of managing resources in a pull manner.

외부 프로세스에서 자원 할당 혹은 반환 요청 시 제공되는 인덱스 정보와 직접 인덱싱을 하기 위한 인덱스 식별자 큐(IdQueue)의 자원(Tn) 인덱스(i) 와 아이들 풀 그룹의 인덱스(j)를 0으로 초기화하는 과정과,Initializing the index (i) of the index identifier queue (IdQueue) and the index (j) of the idle pool group to 0 for indexing directly provided from resource allocation or return request from an external process, and ,

상기 i를 하나씩 늘려서 해당 i가 메모리의 총 자원수인 시스템 내의 생성될 수 있는 최대 그룹 수(MaxGn)* 각 그룹당 생성될 수 있는 최대 자원수(MaxTn)만큼에 도달하였는지 판단하는 과정과,Increasing the i one by one to determine whether i reaches the maximum number of groups MaxGn * that can be created in the system, which is the total number of resources in memory, and the maximum number of resources MaxTn that can be created for each group;

상기 판단결과 i가 총 자원수에 도달하지 않았으면, 해당 i에 생성된 자원의 메모리 어드레스가 매핑되는 ObjPtr테이블의 ObjPtr[i] 필드를 널(Null)로 채우고, If the i does not reach the total number of resources, the ObjPtr [i] field of the ObjPtr table to which the memory addresses of the resources generated in i are mapped is filled with null,

상기 판단결과 i가 총 자원수에 도달하였으면, 상기 총 자원수에 도달한 i들을 첫 번째 아이들 풀 그룹으로 그룹핑하는 과정과,If i reaches the total number of resources, grouping the i numbers that have reached the total number of resources into a first idle pool group;

상기 그룹핑된 i 각각 생성된 자원들의 메모리 어드레스를 해당 i별로 ObjPool에 저장한 후, 상기 i별로 생성한 아이들한 자원의 메모리 어드레스를 매핑하고 있는 ObjPool[indexId]에서 상기 할당받은 indexId에 해당하는 메모리 어드레스 정보를 획득하여 해당 ObjPtr 테이블을 구성하는 과정을 포함하여 구성되는 것을 특징으로 한다.After storing the memory addresses of the resources generated in each of the grouped i in the ObjPool for each i, the memory address corresponding to the allocated indexId in the ObjPool [indexId] that maps the memory address of the idle resources generated by the i It is characterized by being configured to include the process of obtaining the information to configure the ObjPtr table.

본 발명의 다른 실시예는, 풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 할당하는 방법에 있어서, Another embodiment of the present invention provides a method for allocating initial resources in a resource management method of managing resources in a pull manner.

외부 프로세서로부터 'eventId'를 갖는 자원 할당 요구를 수신하는 과정과,Receiving a resource allocation request having an 'eventId' from an external processor,

상기 eventId에 대해 아이들한 자원들을 관리하는 첫 번째 아이들 풀 그룹에서 임의의 indexId를 할당받고, 상기 첫 번째 아이들 풀 그룹에서 상기 할당받은 indexId를 삭제하는 과정과,Receiving a random indexId from a first idle pool group managing idle resources with respect to the eventId, and deleting the allocated indexId from the first idle pool group;

상기 indexId별로 생성한 아이들한 자원의 메모리 어드레스를 매핑하고 있는 ObjPool[indexId]에서 해당 indexId의 메모리 어드레스 정보를 획득하여 해당 ObjPtr 테이블을 구성하는 과정과,Acquiring memory address information of the corresponding indexId from the ObjPool [indexId] mapping the memory addresses of the idle resources generated for each indexId and configuring the ObjPtr table;

상기 첫 번째 아이들 풀 그룹의 자원들이 모두 할당되었는지 확인하여, 모두 할당되었으면 넥스트 아이들 풀 그룹을 생성하는 과정을 포함하여 구성되는 것을 특징으로 한다.And checking whether all the resources of the first idle pool group are allocated, and if all are allocated, generating a next idle pool group.

본 발명의 또 다른 실시예는, 풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 반환하는 방법에 있어서,Another embodiment of the present invention, in the resource management method for managing resources in a pull method, in the method for returning the initial resources,

외부 프로세스로부터 'eventId'를 갖는 자원 해제 요구를 수신하는 과정과,Receiving a resource release request with 'eventId' from an external process,

상기 'eventId'에 대해 현재 할당된 ObjPtr[eventId]가 활성화 상태일 경우, 상기 ObjPtr[eventId] 필드에 접근하여 널로 천이시키고 상기 'eventId'에 해당하는 indexId를 획득한 후, 상기 indexId를 아이들한 자원들의 인덱스(indexId)를 관리하는 첫번째 아이들 풀에 반환하는 과정과, When the currently assigned ObjPtr [eventId] for the 'eventId' is activated, the ObjPtr [eventId] field is accessed, transitioned to null, and an indexId corresponding to the 'eventId' is obtained, and then the resource that idles the indexId. Returning to the first children pool that manages their indexId,

총 할당된 아이들 풀 그룹 내에 현재 아이들한 IndexId 개수가 시스템 내에서 정해지는 그룹당 생성될 수 있는 최대 자원수(MaxTn) + MaxTn/Rn보다 큰지 확인하는 과정과,Checking whether the number of IndexIds currently idle in the total allocated idle pool group is greater than the maximum number of resources (MaxTn) + MaxTn / Rn that can be created per group determined in the system;

상기 IndexId가 클 경우, 아이들한 자원을 관리하는 넥스트 아이들 풀 그룹에 할당된 자원들을 삭제하는 과정을 포함하여 구성되는 것을 특징으로 한다.If the IndexId is large, it is configured to include the process of deleting the resources allocated to the next idle pool group for managing idle resources.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 도면상에 표시된 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호로 나타내었으며, 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들 로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the preferred embodiment of the present invention. Like reference numerals are used to designate like elements even though they are shown in different drawings, and detailed descriptions of related well-known functions or configurations are not required to describe the present invention. If it is determined that it can be blurred, the detailed description thereof will be omitted. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.

본 발명은 시스템의 메모리를 임의로 정해지는 최대 그룹 수 내의 생성될 수 있는 최대 자원 수만큼 식별자 큐를 생성하고, 초기에 아이들한 자원을 관리하기 위한 초기 아이들 풀 그룹을 생성한다. 이후, 초기 아이들한 풀 그룹에 할당된 자원들이 모두 사용 중일 경우 다음 아이들 풀 그룹을 생성하고, 상기 초기 아이들한 풀 그룹에서 사용이 완료된 자원을 반환하여 아이들한 자원수가 정해진 임계값 이상일 경우 상기 다음 풀 그룹의 자원들을 삭제함으로써 메모리의 자원을 효율적으로 관리하는 것이다.The present invention creates an identifier queue by the maximum number of resources that can be created within a predetermined maximum number of groups of memory of the system, and creates an initial idle pool group for managing idle resources initially. Subsequently, if all resources allocated to the initial idle pool group are in use, a next idle pool group is created, and if the number of idle resources is greater than a predetermined threshold, the next pool is returned. By deleting the resources of the group, it is possible to efficiently manage the resources of the memory.

도 2는 본 발명의 바람직한 실시예에 따른 다단계 풀 구조를 보여주는 도면이다.2 is a view showing a multi-stage pool structure according to a preferred embodiment of the present invention.

도 2를 참조하면, 풀(200) 구조는 IdQueue와, ObjPool로 구성된다.Referring to FIG. 2, the pool 200 structure includes an IdQueue and an ObjPool.

상기 IdQueue는 외부 프로세스에서 제공되는 인덱스(index) 정보와 직접 인덱싱을 하기 위한 인덱스 식별자(indexId)에 대한 큐이다. 상기 인덱스 식별자는 시스템 내의 생성될 수 있는 총 자원 수, 즉 최대 그룹 수(MaxGn)* 각 그룹당 생성될 수 있는 최대 자원수(MaxTn)만큼 생성된다.The IdQueue is a queue for index information provided by an external process and an index identifier (indexId) for direct indexing. The index identifier is generated by the total number of resources that can be created in the system, that is, the maximum number of groups MaxGn * and the maximum number of resources MaxTn that can be generated for each group.

상기 ObjPool은 MaxTn만큼의 자원들로 구성되는 복수개의 풀 그룹들(201,202..)로 구성된다. 상기 복수개의 풀 그룹들(201.202..)은 시스템 내에서 생성될 수 있는 최대 그룹 수(MaxGn)만큼 의 아이들한 자원들로 구성되고, 상기 풀 그룹들(201,202) 각각은 MaxTn만큼 그룹핑 된 인덱스 식별자별로 생성된 자원의 메 모리 어드레스를 저장하고 있다. 상기 시스템 메모리(200)의 총 크기는 MaxTn*MaxGn(214)가 된다.The ObjPool is composed of a plurality of pool groups 201, 202... Configured as resources as MaxTn. The plurality of pool groups 201.202 .. are composed of idle resources of the maximum number of groups MaxGn that can be created in the system, and each of the pool groups 201,202 is an index identifier grouped by MaxTn. It stores the memory address of the generated resource. The total size of the system memory 200 is MaxTn * MaxGn 214.

풀 그룹들(201,202...)은 외부 프로세서로부터 자원 반환 작업으로 인해, 다음 풀 그룹의 순간적인 자원 할당 및 삭제 처리를 방지 할 수 있도록 시스템 내에서 정해지는 넥스트(Next)그룹을 삭제하기 위한 임계 비율값(Rn)으로 나눈 MaxTn/Rn(212)의 범위를 가진다. 상기 작업 반환 작업은 도 6을 참조하여 자세히 후술한다.The pool groups 201, 202, ... are thresholds for deleting the next group defined in the system to prevent the instantaneous resource allocation and deletion processing of the next pool group due to resource return operations from the external processor. It has a range of MaxTn / Rn 212 divided by the ratio value Rn. The job return job will be described later in detail with reference to FIG. 6.

도 3은 본 발명의 바람직한 실시예에 따른 다단계 풀 구조를 보여주는 도면이다.3 is a view showing a multi-stage pool structure according to a preferred embodiment of the present invention.

도 3을 참조하면, 풀 구조는 MaxGn * MaxTn만큼의 인덱스들로 구성되는 IdQueue(300)와, 상기 인덱스 별 생성된 자원에 대한 메모리의 어드레스 주소를 저장할 테이블과 매핑되는 이벤트 아이디로 구성되는 ObjPtr[indexId]로 구성한다.Referring to FIG. 3, the pool structure includes an IdQueue 300 including indexes of MaxGn * MaxTn and an event ID mapped to a table to store address addresses of memories for resources generated by the indexes. indexId].

먼저, 상기 IdQueue(300)의 인덱스 식별자를 MaxTn만큼 할당하여 첫 번째 아이들 풀(idle pool)(302)그룹을 구성하여 MaxTn 수만큼 아이들한 자원들을 생성한다. 이후, 상기 생성된 자원들 각각의 메모리 어드레스(b)와 상기 그룹핑 된 인덱스 식별자(a)를 매핑하여 ObjPool(304)의 첫 번째 그룹을 구성한다. 이후, 상기 아이들 풀 그룹(302) 자원 할당 요청된 인덱스 식별자가 할당될 때마다 해당 인덱스 식별자를 상기 아이들 풀 그룹(302)에서 삭제하고, 외부 프로세서로부터의 반환 요청된 인덱스 식별자를 상기 아이들한 풀 그룹(302)에 다시 추가한다. 이후, 상기 아이들 풀 그룹(302)에서 삭제된 인덱스 식별자는 상기 IdQueue(300)로 반환되어 재사용된다. First, the index identifier of the IdQueue 300 is allocated by MaxTn to form a first idle pool 302 group to generate resources idled by the number of MaxTn. Thereafter, the first group of the ObjPool 304 is configured by mapping the memory address (b) and the grouped index identifier (a) of each of the generated resources. Thereafter, whenever the idle pool group 302 resource allocation requested index identifier is allocated, the corresponding index identifier is deleted from the idle pool group 302, and the pool group having the idle index returned from the external processor is idle. Add to 302 again. Thereafter, the index identifier deleted from the idle pool group 302 is returned to the IdQueue 300 and reused.

ObjPtr(306)은 아이들한 상태의 자원들의 ObjPtr[indexId] 필드는 모두 널(Null) 상태이며, 외부 프로세서로부터 임의의 자원 할당 요청 시 상기 Objpool(302)로부터 인덱스 식별자별로 획득된 해당 메모리 어드레스 주소가 해당 ObjPtr[indexId] 필드에 저장된다. 이후, 외부 프로세서로부터 임의의 자원 반환 요청시, 해당 ObjPtr[indexId] 필드는 다시 널 상태로 천이된다.ObjPtr 306 is null all of the ObjPtr [indexId] fields of the resources in the idle state, the corresponding memory address address obtained for each index identifier from the Objpool 302 when the random resource allocation request from an external processor It is stored in the ObjPtr [indexId] field. Subsequently, upon requesting any resource return from the external processor, the corresponding ObjPtr [indexId] field is transitioned back to the null state.

다음으로, 도 3의 풀 구조를 통해 외부 프로세서의 자원 할당 요청 혹은 자원 반환 요청시 동작을 상세히 설명한다. 여기서, 외부 프로세서로부터 자원의 할당 혹은 반환 요청을 하는 이벤트 아이디는 '1'과 최대 자원수(MaxTn*MaxGn)의 범위를 가진다.Next, an operation of a resource allocation request or resource return request of an external processor through the pool structure of FIG. 3 will be described in detail. Here, an event ID for requesting resource allocation or return from an external processor has a range of '1' and a maximum number of resources (MaxTn * MaxGn).

일예로, 외부 프로세서로부터 이벤트 식별자가 '2'인 자원의 할당 요청이 수신되면, ObjPool(304)에서 상기 아이들 풀(302)그룹의 인덱스 식별자 1에 해당하는 메모리의 주소인 &Obj(1)를 읽어온다. 이후, 상기 읽어온 &Obj(1)를 해당 ObjPtr 필드에 저장하고 상기 아이들 풀(302)그룹에서 인덱스 식별자 1을 삭제함으로써 요청된 자원할당을 완료한다. 여기서, 이벤트 아이디와 인덱스 아이디는 IdQueue의 할당 및 삭제 동작으로 인해 일치하지 않을 수 있다. For example, when a request for allocation of a resource having an event identifier of '2' is received from an external processor, the ObjPool 304 reads & Obj (1), which is the address of memory corresponding to the index identifier 1 of the idle pool 302 group. come. Thereafter, the read & Obj (1) is stored in the ObjPtr field and the requested resource allocation is completed by deleting the index identifier 1 from the idle pool 302 group. Here, the event ID and the index ID may not match due to the allocation and deletion operations of the IdQueue.

다음으로, 외부 프로세서로부터 이벤트 식별자가 '2'인 자원의 반환 요청이 수신되면, ObjPtr(306)의 이벤트 아이디 2의 ObjPtr 필드를 확인하여 해당 메모리 주소인 &Obj(1)를 통해 인덱스 식별자 '1'을 획득한다. 이후, 상기 이벤트 아이디 2의 ObjPtr 필드를 널로 천이하고, 상기 획득한 인덱스 식별자(1)를 상기 아이들 풀(302) 그룹에 반환함으로써 반환 동작을 완료한다.Next, when a request for returning a resource having an event identifier of '2' is received from an external processor, the ObjPtr field of event ID 2 of the ObjPtr 306 is checked and the index identifier '1' is determined through the corresponding memory address & Obj (1). Acquire. Thereafter, the ObjPtr field of the event ID 2 is changed to null, and the return operation is completed by returning the obtained index identifier 1 to the idle pool 302 group.

도 4는 본 발명의 바람직한 실시예에 따른 초기 풀 자원 생성 작업 흐름도이다.4 is a flowchart illustrating an initial pool resource creation operation according to a preferred embodiment of the present invention.

도 4를 참조하면, 402단계에서 IdQueue의 인덱스 식별자와, i 및 j를 0으로 초기화한다. 이때, i는 메모리 내의 상기 IdQueue의 자원(Tn) 인덱스이고, j는 메모리 내의 풀 그룹(Gn)의 인덱스이다.Referring to FIG. 4, in step 402, the index identifier, i, and j of the IdQueue are initialized to zero. In this case, i is a resource (Tn) index of the IdQueue in the memory, j is an index of the pool group (Gn) in the memory.

404단계에서 i를 하나씩 증가시키고, 406단계에서 i가 메모리의 총 자원수(MaxGn * MaxTn)에 도달하였는지 판단한다. 상기 판단결과 i가 총 자원수에 도달하지 않았으면, 408단계에서 해당 i에 매핑되는 ObjPtr[i] 필드를 널(Null)로 채우고, 404단계로 복귀한다.In step 404, i is increased by one, and in step 406, it is determined whether i reaches the total number of resources MaxGn * MaxTn of the memory. If i does not reach the total number of resources, in step 408, the ObjPtr [i] field mapped to the i is filled with null and the flow returns to step 404.

상기 판단결과 i가 총 자원수 값에 도달하였으면 MaxTn개의 아이들한 자원들이 그룹핑되었으므로, 410단계에서 첫 번째 풀 그룹(j=1)을 생성한다. 412단계에서 메모리는 IdQueue로부터 인덱스 식별자들을 할당받아 ObjPool의 IndexId 값으로 매핑하고, 상기 indexId별로 생성된 자원의 메모리 어드레스를 상기 ObjPool에 저장한다. 이후, 상기 ObjPool을 통해 얻은 어드레스 주소를 차례로 저장할 해당 i에 매핑되는 ObjPtr[i]테이블을 구성한다.If i reaches the total resource number value, since the MaxTn idle resources are grouped, the first pool group (j = 1) is created in step 410. In step 412, the memory receives index identifiers from the IdQueue, maps them to IndexId values of the ObjPool, and stores the memory addresses of resources generated for each indexId in the ObjPool. Subsequently, an ObjPtr [i] table is mapped to the corresponding i which sequentially stores the address address obtained through the ObjPool.

414단계에서 상기 ObjPool에 상기 첫 번째 풀 그룹 내의 자원이 MaxTn만큼 생성되었는지 확인한다. 상기 확인 결과 MaxTn만큼 자원이 생성되었으면 작업을 종료하고, 상기 확인결과 MaxTn 만큼 자원이 생성되지 않았으면, 412단계로 복귀한다. In step 414, the ObjPool determines whether resources in the first pool group are generated by MaxTn. If the resource is generated as much as MaxTn as a result of the checking, the operation ends. If the resource is not generated as much as MaxTn as a result of the checking, the process returns to step 412.

도 5는 본 발명의 바람직한 실시예에 따른 풀 자원의 할당 작업 흐름도이다.5 is a flowchart illustrating the allocation of pool resources according to a preferred embodiment of the present invention.

도 5를 참조하면, 502단계에서 메모리는 외부 프로세서로부터 'eventId'를 갖는 자원 할당 요구를 수신한다. 이때, 상기 eventId는 '1'과 'MaxGn*MaxTn' 사이의 범위를 가진다.Referring to FIG. 5, in step 502, the memory receives a resource allocation request with 'eventId' from an external processor. At this time, the eventId has a range between '1' and 'MaxGn * MaxTn'.

504단계에서 메모리는 상기 eventId에 대해 첫 번째 아이들 풀 그룹에서 아이들한 indexId를 하나 할당받고, 상기 아이들 풀 그룹에서 상기 할당받은 indexId를 삭제한다. 506단계에서 메모리는 상기 할당받은 indexId를 가지고 ObjPool[indexId]을 인덱싱하여 해당 indexId 자원에 대한 어드레스 정보를 획득한 후, ObjPtr[eventId]에 저장함으로써 자원 내부의 정보를 실제적으로 접근하는 처리를 수행한다.In step 504, the memory is assigned one indexId idle in the first idle pool group with respect to the eventId, and deletes the allocated indexId in the idle pool group. In step 506, the memory indexes ObjPool [indexId] with the allocated indexId, obtains address information on the corresponding indexId resource, and stores the information in the ObjPtr [eventId] to actually access the information inside the resource. .

504단계 내지 506단계를 수행함으로써, 외부 프로세서에서 지정되어 들어온 eventId와 Pool 내부에서 지정된 IndexId 간에 맵핑 처리가 되어 어떠한 eventId가 지정되어 오더라도 현재 할당된 그룹내의 자원 개수만큼 할당이 가능하게 된다.By performing steps 504 to 506, mapping processing is performed between the eventId designated by the external processor and the IndexId designated inside the pool, so that any number of resources in the currently allocated group can be allocated even if any eventId is specified.

이후, 508단계에서 메모리는 계속적인 외부 프로세서 요구에 의해서 상기 아이들 풀 그룹의 자원들이 모두 할당되었는지 확인한다. 상기 확인 결과 마지막 자원까지 모두 할당되었으면, j가 0인 510단계에서 메모리는 512단계로 진행하여 j에 1을 추가하여 다음(next) 아이들 풀 그룹을 지정한다.Thereafter, in step 508, the memory checks whether all resources of the idle pool group are allocated by the continuous external processor request. If all resources are allocated to the last resource as a result of the check, in step 510 where j is 0, the memory proceeds to step 512 to add 1 to j to designate a next idle pool group.

514단계에서 메모리는 IdQueue로부터 인덱스 식별자들을 할당받아 ObjPool에서 다음 아이들 풀 그룹의 IndexId 값으로 매핑하고, 상기 indexId별로 생성된 자원의 메모리 어드레스를 상기 ObjPool에 저장한다. 이후, 상기 ObjPool을 통해 얻 은 어드레스 주소를 차례로 저장할 해당 i에 매핑되는 ObjPtr[i]테이블을 구성한다.In step 514, the memory receives index identifiers from the IdQueue, maps them to the IndexId value of the next idle pool group in the ObjPool, and stores the memory address of the resource generated for each indexId in the ObjPool. Thereafter, an ObjPtr [i] table is mapped to the corresponding i which sequentially stores the address address obtained through the ObjPool.

516단계에서 상기 ObjPool에 상기 첫 번째 풀 그룹 내의 자원이 MaxTn만큼 생성되었는지 확인한다. 상기 확인 결과 MaxTn만큼 자원이 생성되었으면 작업을 종료하고, 상기 확인결과 MaxTn 만큼 자원이 생성되지 않았으면, 514단계로 복귀한다. In step 516, the ObjPool determines whether resources in the first pool group are generated by MaxTn. If the resource is generated as much as MaxTn as a result of the checking, the operation ends. If the resource is not generated as much as MaxTn, the process returns to step 514.

도 6은 본 발명의 바람직한 실시예에 따른 풀 자원 반환 및 불필요 자원 삭제 작업 흐름도이다. 여기서, 첫 번째 아이들 풀 그룹과, 다음 아이들 풀 그룹이 구성된 상태를 예로 든다.6 is a flowchart illustrating a pool resource return and unnecessary resource deletion according to a preferred embodiment of the present invention. Here, the first idle pool group and the next idle pool group are taken as an example.

도 6을 참조하면, 602단계에서 메모리는 외부 프로세스로부터 'eventId'를 갖는 자원 해제 요구를 수신한다. 604단계에서 상기 메모리는 상기 'eventId'에 대해 현재 할당된 ObjPtr[eventId]가 활성화(Active) 상태인지 즉, 해당 자원에 대한 메모리의 어드레스 주소가 있는지 판단한다. 상기 판단 결과 활성화 상태가 아니면 608단계로 진행한다.Referring to FIG. 6, in step 602, the memory receives a resource release request with 'eventId' from an external process. In step 604, the memory determines whether the currently allocated ObjPtr [eventId] for the 'eventId' is active, that is, whether there is an address address of the memory for the corresponding resource. If the determination result is not activated, the process proceeds to step 608.

상기 판단결과 활성화 상태일 경우, 606단계에서 메모리는 상기 ObjPtr[eventId]에 접근하여 상기 'eventId'에 해당하는 indexId를 획득한다. 이후, 상기 indexId를 첫번째 아이들 풀 그룹에 반환하고, 상기 ObjPtr[eventId]는 널로 천이시켜 해당 자원이 정상적으로 반환처리가 되었음을 표시한다. If the determination result is activated, in step 606, the memory accesses the ObjPtr [eventId] to obtain an indexId corresponding to the 'eventId'. Thereafter, the indexId is returned to the first idle pool group, and the ObjPtr [eventId] is changed to null to indicate that the corresponding resource has been normally returned.

해당 eventId에 대해 자원 반환처리가 종료되면, 608단계에서 메모리는 총 할당된 아이들 풀 그룹들 내에 현재 아이들한 IndexId 개수를 조사하여, 610단계에 서 아이들한 IndexId가 (MaxTn + MaxTn/Rn)개수보다 큰지 확인한다. 여기서, 총 할당된 아이듣ㄹ 풀 그룹은 첫 번째 아이들 풀 그룹과 넥스트 아이들 풀 그룹이고, 상기 Rn 값은 시스템에 따라 적절하게 설정되는 값이다.When the resource return processing for the corresponding eventId is finished, the memory checks the number of currently idle IndexIds in the total allocated idle pool groups, and in step 610, the number of IndexIds idle is greater than the number of (MaxTn + MaxTn / Rn). Make sure it's big. Here, the total allocated children pool group is the first idle pool group and the next idle pool group, and the Rn value is a value appropriately set according to the system.

상기 확인결과 상기 IndexId 개수가 (MaxTn + MaxTn/Rn)개수보다 작거나 같으면 반환 작업을 종료한다.As a result of the check, when the number of IndexId is less than or equal to the number of (MaxTn + MaxTn / Rn), the return operation is terminated.

상기 확인결과 상기 IndexId가 (MaxTn + MaxTn/Rn)개수보다 클 경우, 다음 아이들 풀 그룹에 할당된 자원들을 삭제하기 위해 612단계에서 다음 아이들 풀 그룹 내의 i를 조사한다. If the IndexId is greater than (MaxTn + MaxTn / Rn), the i in the next idle pool group is examined in step 612 to delete resources allocated to the next idle pool group.

614단계에서 상기 i가 MaxTn보다 작은지 확인한다. 상기 확인결과 작으면, 616단계에서 상기 i에 해당하는 ObjPool[indexId]에 저장된 자원들을 삭제 처리한 후, 상기 i를 IdQueue에 반환한다. 618단계에서 상기 i에 1을 늘려 614단계로 복귀한다.In step 614, it is checked whether i is smaller than MaxTn. If the check result is small, in step 616, the resources stored in the ObjPool [indexId] corresponding to i are deleted and returned to idQueue. In step 618, the value 1 is increased to i, and the process returns to step 614.

상기 확인결과 상기 i가 MaxTn보다 크거나 같으면, 상기 다음 아이들 풀 그룹의 자원이 모두 삭제되었음으로 반환 작업을 종료한다.If the i is greater than or equal to MaxTn, the return operation ends because all resources of the next idle pool group are deleted.

따라서, 상기 610단계처럼 현재 아이들 풀에 남아 있는 indexId 개수가 MaxTn+ MaxTn/Rn 값보다 많은 경우에만 다음 아이들 풀 그룹 내의 자원을 삭제 처리함으로써 메모리의 풀 내 자원의 급격한 할당 및 삭제 처리를 제한한다. 이후, 상기 삭제된 자원들의 indexId들은 다시 IdQueue에 반환되어 재사용된다. 상기 Rn은, 도 2에서 설명한 바와 같이, 아이들 풀 그룹의 순간적인 자원 할당 및 삭제 처리를 방지 할 수 있도록 시스템 내에서 정해지는 넥스트 그룹을 삭제하기 위해서 미리 정해지는 임계 비율값이다.Therefore, as shown in step 610, when the number of indexIds remaining in the idle pool is greater than the MaxTn + MaxTn / Rn value, the resource in the next idle pool group is deleted to limit the rapid allocation and deletion of resources in the pool of memory. Thereafter, the indexIds of the deleted resources are returned to the IdQueue and reused. As described above with reference to FIG. 2, Rn is a threshold ratio value predetermined to delete the next group determined in the system so as to prevent the instantaneous resource allocation and deletion processing of the idle pool group.

예를 들어, 각각의 아이들 풀 그룹별 MaxTn이 2000개이고, 아이들 풀 그룹이 2개가 할당되었을 경우라 가정 하자. Rn을 4로 설정한 경우, 2개의 아디들 풀 그룹에 각각 2000개씩 자원이 할당되었으나, 외부 프로세서의 반환 요청 등으로 총 할당된 아이들 풀 그룹 내의 아이들한 자원의 개수가 2500개 이상으로 증가하게 된다.For example, suppose that MaxTn is 2000 for each idle pool group, and 2 idle pool groups are allocated. If Rn is set to 4, 2000 resources are allocated to each of the two pools of pools, but the total number of idle resources in the pool of idle pools is increased to 2500 or more due to a request for return from an external processor. .

그러면, 해당 아이들 풀 그룹 내의 아이들한 자원이 2000+2000/4인 2500이상일 경우, 넥스트 아이들 그룹의 자원 2000개를 삭제하도록 함으로써, 순간적인 자원 할당 및 삭제 처리를 방지하도록 할 수 있다. Then, if the idle resource in the idle pool group is 2500 or more, which is 2000 + 2000/4, 2000 resources of the next idle group can be deleted, thereby preventing instantaneous resource allocation and deletion processing.

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the scope of the following claims, but also by those equivalent to the scope of the claims.

이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.In the present invention operating as described in detail above, the effects obtained by the representative ones of the disclosed inventions will be briefly described as follows.

본 발명은, 초기 메모리의 자원을 일정 개수씩 그룹으로 구분하도록 해서 초기에 할당된 풀의 자원이 모두 할당된 상태인 있는 경우에만 단계적으로 다음 그룹의 자원을 생성해서 풀에 추가로 할당하고, 자원의 반환 작업으로 다음 그룹의 자 원의 개수가 정해진 임계값 이하로 떨어지는 경우에는 불필요한 그룹 내의 자원들을 삭제 처리하는 방법으로 자원이 차지할 수 있는 시스템 메모리를 효율적으로 관리할 수 있는 효과가 있다.According to the present invention, the resources of the initial memory are divided into groups by a predetermined number so that the resources of the next group are gradually added and allocated to the pool only when the resources of the initially allocated pool are all allocated. If the number of resources in the next group falls below a predetermined threshold due to the return operation of, the system memory that resources can occupy can be efficiently managed by deleting resources in unnecessary groups.

Claims (15)

풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 생성하는 방법에 있어서,In the resource management method for managing resources in a pooled manner, In the method for creating an initial resource, 외부 프로세스에서 자원 할당 혹은 반환 요청 시 제공되는 인덱스 정보와 직접 인덱싱을 하기 위한 인덱스 식별자 큐(IdQueue)의 자원(Tn) 인덱스(i) 와 아이들 풀 그룹의 인덱스(j)를 0으로 초기화하는 과정과, Initializing the index (i) of the index identifier queue (IdQueue) and the index (j) of the idle pool group to 0 for indexing directly provided from resource allocation or return request from an external process, and , 상기 i를 하나씩 늘려서 해당 i가 메모리의 총 자원수인 시스템 내의 생성될 수 있는 최대 그룹 수(MaxGn)* 각 그룹당 생성될 수 있는 최대 자원수(MaxTn)만큼에 도달하였는지 판단하는 과정과,Increasing the i one by one to determine whether i reaches the maximum number of groups MaxGn * that can be created in the system, which is the total number of resources in memory, and the maximum number of resources MaxTn that can be created for each group; 상기 판단결과 i가 총 자원수에 도달하지 않았으면, 해당 i에 생성된 자원의 메모리 어드레스가 매핑되는 ObjPtr테이블의 ObjPtr[i] 필드를 널(Null)로 채우고, If the i does not reach the total number of resources, the ObjPtr [i] field of the ObjPtr table to which the memory addresses of the resources generated in i are mapped is filled with null, 상기 판단결과 i가 총 자원수에 도달하였으면, 상기 총 자원수에 도달한 i들을 첫 번째 아이들 풀 그룹으로 그룹핑하는 과정과,If i reaches the total number of resources, grouping the i numbers that have reached the total number of resources into a first idle pool group; 상기 그룹핑된 i 각각 생성된 자원들의 메모리 어드레스를 해당 i별로 ObjPool에 저장한 후, 상기 i별로 생성한 아이들한 자원의 메모리 어드레스를 매핑하고 있는 ObjPool[indexId]에서 상기 할당받은 indexId에 해당하는 메모리 어드레스 정보를 획득하여 해당 ObjPtr 테이블을 구성하는 과정을 포함하여 구성되는 것을 특징으로 하는 방법.After storing the memory addresses of the resources generated in each of the grouped i in the ObjPool for each i, the memory address corresponding to the allocated indexId in the ObjPool [indexId] that maps the memory address of the idle resources generated by the i Obtaining information and configuring a corresponding ObjPtr table. 제 1항에 있어서, 상기 IdQueue는, The method of claim 1, wherein the IdQueue, MaxGn* MaxTn만큼 생성된 인덱스들로 구성되는 것을 특징으로 하는 방법.MaxGn * Method consisting of the indexes generated by MaxTn. 제 1항에 있어서, 상기 ObjPtr 테이블은,The method of claim 1, wherein the ObjPtr table, 상기 i별 메모리 어드레스 정보를 저장하기 위한 ObjPtr[eventId] 필드와, 상기 ObjPtr[eventId] 필드를 인덱싱하는 eventId를 포함하여 구성되는 것을 특징으로 하는 방법.And an ObjPtr [eventId] field for storing the i-specific memory address information, and an eventId indexing the ObjPtr [eventId] field. 풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 할당하는 방법에 있어서, In the resource management method for managing resources in a pooled manner, in the initial resource allocation method, 외부 프로세서로부터 'eventId'를 갖는 자원 할당 요구를 수신하는 과정과,Receiving a resource allocation request having an 'eventId' from an external processor, 상기 eventId에 대해 아이들한 자원들을 관리하는 첫 번째 아이들 풀 그룹에서 임의의 indexId를 할당받고, 상기 첫 번째 아이들 풀 그룹에서 상기 할당받은 indexId를 삭제하는 과정과,Receiving a random indexId from a first idle pool group managing idle resources with respect to the eventId, and deleting the allocated indexId from the first idle pool group; 상기 indexId별로 생성한 아이들한 자원의 메모리 어드레스를 매핑하고 있는 ObjPool[indexId]에서 해당 indexId의 메모리 어드레스 정보를 획득하여 해당 ObjPtr 테이블을 구성하는 과정과,Acquiring memory address information of the corresponding indexId from the ObjPool [indexId] mapping the memory addresses of the idle resources generated for each indexId and configuring the ObjPtr table; 상기 첫 번째 아이들 풀 그룹의 자원들이 모두 할당되었는지 확인하여, 모두 할당되었으면 넥스트 아이들 풀 그룹을 생성하는 과정을 포함하여 구성되는 것을 특징으로 하는 방법.Determining whether all of the resources of the first idle pool group are allocated, and if all are allocated, generating a next idle pool group. 제 4항에 있어서, 상기 첫 번째 아이들 풀 그룹은,The method of claim 4, wherein the first group of children pools, 외부 프로세스에서 자원 할당 혹은 반환 요청 시 제공되는 인덱스 정보와 직접 인덱싱을 하기 위한 인덱스 식별자 큐(IdQueue)의 자원(Tn) 인덱스(i)들을 시스템 내에서 정해지는 각 그룹당 생성될 수 있는 최대 자원수(MaxTn)만큼 그룹핑되어 생성되는 것을 특징으로 하는 방법.The maximum number of resources that can be created for each group defined in the system are the index information (Tn) of the index identifier queue (IdQueue) for direct indexing and the index information provided when requesting resource allocation or return from an external process ( Generated by grouping by MaxTn). 제 5항에 있어서, 상기 IdQueue는,The method of claim 5, wherein the IdQueue, 시스템 내의 생성될 수 있는 최대 그룹 수(MaxGn)* 상기 MaxTn만큼 생성된 인덱스들로 구성되는 것을 특징으로 하는 방법.Maximum number of groups (MaxGn) that can be created in the system * characterized in that consisting of the index created by the MaxTn. 제 6항에 있어서, 상기 eventId는,The method of claim 6, wherein the eventId is, '0'에서 MaxGn* MaxTn만큼의 범위를 가지는 것을 특징으로 하는 방법.And a range from '0' to MaxGn * MaxTn. 제 5항에 있어서, 상기 넥스트 아이들 풀 그룹을 생성하는 과정은,The method of claim 5, wherein the generating of the next idle pool group comprises: 상기 IdQueue로부터 MaxTn만큼의 아이들한 자원의 인덱스(i)를 할당받아 상기 ObjPool에서 다음 아이들 풀 그룹의 IndexId로 그룹핑하는 과정과,Receiving an index (i) of idle resources equal to MaxTn from the IdQueue, and grouping the index id of the next idle pool group in the ObjPool; 상기 그룹핑된 indexId별로 생성된 아이들한 자원의 메모리 어드레스를 상기 ObjPool에 저장한 후, 해당하는 indexId의 메모리 어드레스 정보를 획득하여 해당 ObjPtr 테이블을 구성하는 과정을 포함하여 구성되는 것을 특징으로 하는 방법.And storing memory addresses of idle resources generated for each of the grouped indexIds in the ObjPool, and then obtaining memory address information of the corresponding indexId to construct a corresponding ObjPtr table. 제 8항에 있어서, 상기 그룹핑하는 과정은,The method of claim 8, wherein the grouping process comprises: 상기 IdQueue로부터 상기 첫 번째 아이들 풀 그룹에 할당된 IdenxId를 제외한 IndexId들로 구성되는 것을 특징으로 하는 방법.And IndexIds excluding an IdenxId allocated to the first idle pool group from the IdQueue. 제 4항에 있어서, ObjPtr 테이블은,The ObjPtr table according to claim 4, wherein 상기 indexId별 메모리 어드레스 정보를 저장하기 위한 ObjPtr[eventId] 필드와, 상기 ObjPtr[eventId] 필드를 인덱싱하는 eventId를 포함하여 구성되는 것을 특징으로 하는 방법.And an ObjPtr [eventId] field for storing the memory address information for each indexId, and an eventId for indexing the ObjPtr [eventId] field. 풀 방식으로 자원을 관리하는 자원 관리 방법에서, 초기 자원을 반환하는 방법에 있어서,In the resource management method for managing resources in a pooled manner, the method for returning initial resources, 외부 프로세스로부터 'eventId'를 갖는 자원 해제 요구를 수신하는 과정과,Receiving a resource release request with 'eventId' from an external process, 상기 'eventId'에 대해 현재 할당된 ObjPtr[eventId]가 활성화 상태일 경우, 상기 ObjPtr[eventId] 필드에 접근하여 널로 천이시키고 상기 'eventId'에 해당하는 indexId를 획득한 후, 상기 indexId를 아이들한 자원들의 인덱스(indexId)를 관리하는 첫번째 아이들 풀에 반환하는 과정과, When the currently assigned ObjPtr [eventId] for the 'eventId' is activated, the ObjPtr [eventId] field is accessed, transitioned to null, and an indexId corresponding to the 'eventId' is obtained, and then the resource that idles the indexId. Returning to the first children pool that manages their indexId, 총 할당된 아이들 풀 그룹 내에 현재 아이들한 IndexId 개수가 시스템 내에서 정해지는 그룹당 생성될 수 있는 최대 자원수(MaxTn) + MaxTn/Rn보다 큰지 확인하는 과정과,Checking whether the number of IndexIds currently idle in the total allocated idle pool group is greater than the maximum number of resources (MaxTn) + MaxTn / Rn that can be created per group determined in the system; 상기 IndexId가 클 경우, 아이들한 자원을 관리하는 넥스트 아이들 풀 그룹에 할당된 자원들을 삭제하는 과정을 포함하여 구성되는 것을 특징으로 하는 방법. And deleting the resources allocated to the next idle pool group managing idle resources if the IndexId is large. 제 10항에 있어서, 상기 Rn은,The method of claim 10, wherein Rn, 아이들 풀 그룹의 순간적인 자원 할당 및 삭제 처리를 방지 할 수 있도록 시스템 내에서 정해지는 넥스트 그룹을 삭제하기 위해서 미리 정해지는 임계 비율값인 것을 특징으로 하는 방법. And a threshold ratio determined in advance to delete the next group determined in the system so as to prevent the instantaneous resource allocation and deletion processing of the idle pool group. 제 10항에 있어서, 상기 총 할당된 아이들 풀 그룹은,11. The method of claim 10 wherein the total assigned idle pool group, 상기 첫 번째 아이들 풀 그룹과, 상기 넨ㄱ스트 아이들 풀 그룹을 포함하는 것을 특징으로 하는 방법.And said first idle pool group and said nonnest idle pool group. 상기 ObjPtr[eventId] 필드는,The ObjPtr [eventId] field is 상기 indexId별 메모리 어드레스 정보를 저장하고, 상기 ObjPtr[eventId] 필드를 인덱싱하는 eventId를 포함하는 ObjPtr테이블에 포함되는 것을 특징으로 하는 방법.And storing the memory address information for each indexId, and included in an ObjPtr table including an eventId for indexing the ObjPtr [eventId] field. 제 10항에 있어서, 상기 자원 해제가 요구된 'eventId'는,The method of claim 10, wherein the 'eventId' is required to release the resource, 외부 프로세스에서 자원 할당 혹은 반환 요청 시 제공되는 인덱스 정보와 직접 인덱싱을 하기 위한 인덱스 식별자 큐(IdQueue)의 자원(Tn) 인덱스(i)로 반환되는 것을 특징으로 하는 방법.A method characterized in that returned to the resource (Tn) index (i) of the index identifier queue (IdQueue) for direct indexing and index information provided when the resource allocation or return request from the external process.
KR1020050017194A 2005-03-02 2005-03-02 A apparatus and method for pool resource management by using multi-step allocation KR20060096569A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050017194A KR20060096569A (en) 2005-03-02 2005-03-02 A apparatus and method for pool resource management by using multi-step allocation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050017194A KR20060096569A (en) 2005-03-02 2005-03-02 A apparatus and method for pool resource management by using multi-step allocation

Publications (1)

Publication Number Publication Date
KR20060096569A true KR20060096569A (en) 2006-09-13

Family

ID=37624070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050017194A KR20060096569A (en) 2005-03-02 2005-03-02 A apparatus and method for pool resource management by using multi-step allocation

Country Status (1)

Country Link
KR (1) KR20060096569A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010062421A1 (en) * 2008-10-31 2010-06-03 Synopsys, Inc. Method and apparatus for allocating resources in a compute farm
KR101227024B1 (en) * 2010-09-29 2013-01-28 한국과학기술원 Method of distributed scalable concolic testing for software reliability

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010062421A1 (en) * 2008-10-31 2010-06-03 Synopsys, Inc. Method and apparatus for allocating resources in a compute farm
KR101227024B1 (en) * 2010-09-29 2013-01-28 한국과학기술원 Method of distributed scalable concolic testing for software reliability

Similar Documents

Publication Publication Date Title
US7251663B1 (en) Method and apparatus for determining if stored memory range overlaps key memory ranges where the memory address space is organized in a tree form and partition elements for storing key memory ranges
KR101367450B1 (en) Performing concurrent rehashing of a hash table for multithreaded applications
US6941437B2 (en) Memory allocation scheme
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
US5826082A (en) Method for reserving resources
US9086920B2 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
CN108845877B (en) Method, device and system for managing memory
KR20120068454A (en) Apparatus for processing remote page fault and method thereof
KR101634403B1 (en) Approaches to reducing lock communications in a shared disk database system
US20140115291A1 (en) Numa optimization for garbage collection of multi-threaded applications
JP2003523555A (en) A method for dynamically managing storage devices
CN111984425B (en) Memory management method, device and equipment for operating system
CN110727517A (en) Memory allocation method and device based on partition design
US8006064B2 (en) Lock-free vector utilizing a resource allocator for assigning memory exclusively to a thread
CN113010265A (en) Pod scheduling method, scheduler, memory plug-in and system
KR101848450B1 (en) Method for managing many-core based on docker and apparatus managing the same
US20060112254A1 (en) Satisfying memory allocation requests from memory pool or lookaside lists based on memory size requested to be allocated
US20100325360A1 (en) Multi-core processor and multi-core processor system
CN108459842B (en) Model configuration method and device and electronic equipment
CN110162395A (en) A kind of method and device of Memory Allocation
KR101535792B1 (en) Apparatus for configuring operating system and method thereof
KR20060096569A (en) A apparatus and method for pool resource management by using multi-step allocation
CN107562648A (en) Without lock FTL access methods and device
CN117435343A (en) Memory management method and device
CN105988871A (en) Remote memory allocation method, device and system

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination