WO2017188484A1 - Memory management method, computer program therefor, and rrecording medium therefor - Google Patents

Memory management method, computer program therefor, and rrecording medium therefor Download PDF

Info

Publication number
WO2017188484A1
WO2017188484A1 PCT/KR2016/004524 KR2016004524W WO2017188484A1 WO 2017188484 A1 WO2017188484 A1 WO 2017188484A1 KR 2016004524 W KR2016004524 W KR 2016004524W WO 2017188484 A1 WO2017188484 A1 WO 2017188484A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
file
transaction
data
memory page
Prior art date
Application number
PCT/KR2016/004524
Other languages
French (fr)
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 PCT/KR2016/004524 priority Critical patent/WO2017188484A1/en
Publication of WO2017188484A1 publication Critical patent/WO2017188484A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • 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/44Arrangements for executing specific programs
    • 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]

Definitions

  • the present invention relates to a memory management method, a computer program for the same, and a recording medium thereof, wherein the memory management associated with performing various transactions when the application program is executed using a computing means is performed in association with an auxiliary storage device.
  • the present invention relates to a memory management method configured to reduce the use of memory resources required for providing an undo and redo function, a computer program therefor, and a recording medium thereof.
  • the computing means When an application program for an authoring tool, such as CAD, is executed on a computing means, the computing means writes the data of the authored object into memory and the object's attributes (e.g., shape, size, position, orientation, etc.) When the data is changed (eg, generated, modified, or deleted) in response to the computing means, the data recorded in the memory is changed and managed.
  • the object's attributes e.g., shape, size, position, orientation, etc.
  • the center coordinates and the radius data are recorded in the memory for the first drawn circle, and the center coordinates or the radius by the user's manipulation input.
  • the recorded data is changed and managed.
  • Such application programs for authoring tools are generally provided with user interfaces such as undo and redo functions for user convenience.
  • a user operation input stored before and after the execution of the undo or redo function is conventionally used to perform reverse execution, or Techniques for remembering and using memory state changes before and after executing an undo or redo function have been proposed in a memory in which data about an object is stored.
  • US Patent No. 6,618,851 (Registration Date 2003.09.09.) Proposes a configuration that stores and uses memory state changes before and after a transaction in order to provide an undo and redo function. It was.
  • the memory area is protected and a change in the memory state is detected by using an exception handler provided by the OS to determine whether a change in the memory area occurs.
  • an object generated by an application program for an authoring tool such as CAD is defined as a modeling object in two or three dimensions, and a large amount of data is required to define or change a single object.
  • the present invention has been made in view of the above-described problems, and by undoing and resuming the memory management associated with execution of various transactions at the time of execution of an application program using a computing means to be performed in conjunction with an auxiliary storage device, It is an object of the present invention to provide a memory management method, a computer program, and a recording medium configured to reduce the use of memory resources required for providing a redo function.
  • a method for managing a memory state change associated with the execution of a transaction of the application program in the computing means 1) the at least one memory page allocated to the object auxiliary storage device Storing in a first file of the data file a transaction record, the data relating to a location reference of the first file; 2) performing a first transaction on the object; 3) a memory in which a memory state is converted by comparing a second hash code generated for each memory page after execution of the first transaction with a first hash code generated for each memory page stored in the first file.
  • Detecting a page 4) Generates converted data for the memory page detected as having changed the memory state in step 3), and stores the converted data in a second file of the auxiliary storage device, and stores data regarding a location reference of the second file as a transaction record. Doing; And 5) updating and storing the memory page detected as having been changed in the memory state in the first file of the auxiliary storage device in step 3).
  • the second file when a request for returning to the state before the execution of the first transaction is input, the second file is read with reference to the transaction record, and the memory is based on the converted data stored in the second file. Returning a page to a memory state equivalent to that before the first transaction; And 7) updating and storing the memory page in which the memory state is returned in step 6) in a first file of the auxiliary storage device.
  • allocating at least one memory page for the requested object further comprises.
  • the hash code and the transaction record is kept in memory.
  • the transaction is performed by a user input to the application program or a response of the application program accordingly.
  • the converted data is page difference data between data written in the memory page before conversion and data written in the memory page after conversion.
  • the converted data is stored in the second file in a compressed state.
  • the present invention further comprises: 8) re-performing the first transaction for the object based on the re-execution request, further comprising the steps 3) to 5) based on the re-executed first transaction. It is characterized by executing.
  • the present invention further includes, after step 5) or step 7), 9) additionally performing at least one transaction for the object, based on the additionally performed transaction; And at least one of step 5), or steps 6) to 7), or step 8).
  • the second file stores and manages each converted data generated as a result of each transaction in a stack structure based on a transaction execution order.
  • the second file is to delete-manage the converted data located above the current pointer among the converted data stored and managed in the stack structure.
  • the current pointer is directly required to return the memory page of the most recently performed transaction. Indicates the location of the data.
  • said transaction record further comprises: an address of said first file or second file in auxiliary storage, offset data of converted data stored in a memory page or second file stored in said first file, and And at least one of a memory page stored in the first file or a size of the converted data stored in the second file.
  • the application program is a CAD program
  • the object is characterized in that one geometric unit object or a combination object combined with one or more unit objects generated by the execution of the CAD program.
  • the first hash code is generated in step 1) or step 3).
  • the auxiliary memory device is a memory device using a semiconductor memory element.
  • a computer program stored in a recording medium in combination with hardware to execute the memory management method is disclosed.
  • a computer-readable recording medium having a computer program recorded thereon for executing the memory management method is disclosed.
  • the present invention has the advantage of reducing the use of memory resources required to provide the undo and redo functions when executing the application program using the computing means.
  • the present invention provides a method for undoing and redoing a transaction in an authoring tool in which a large amount of memory resources are used for object modeling, such as CAD, by reducing the use of memory resources.
  • the advantage is that the number of provisions can be greatly increased.
  • the present invention uses a hash function generated from a memory page to detect a change in memory state according to a transaction, a complex interworking process such as OS level function call or API interworking is not required. have.
  • FIG. 1 is a block diagram of a computing means for executing an application program according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram for explaining the concept of a transaction according to an embodiment of the present invention
  • FIG. 3 is a flowchart of a memory management method according to an embodiment of the present invention.
  • FIG. 4 is a view for explaining a memory and file state change in accordance with the flow of the memory management method according to an embodiment of the present invention
  • FIG. 5 is a diagram illustrating a memory and file state change according to a flow of a memory management method according to another exemplary embodiment of the present invention.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • FIG. 1 is a block diagram of a computing means for executing an application program according to an embodiment of the present invention
  • Figure 2 is a schematic diagram for explaining the concept of a transaction according to an embodiment of the present invention
  • Figure 3 is an embodiment of the present invention 4 is a flowchart illustrating a memory management method according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating a memory and file state change according to the flow of the memory management method according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating another embodiment of the present invention.
  • FIG. 10 is a diagram illustrating memory and file state changes according to a flow of a memory management method.
  • the computing means is a central processing unit (CPU), memory (RAM), auxiliary storage (e.g., hard disk, SSD), input / output means (e.g., display, keyboard, Mouse), an external connection interface, and the like, as understood by conventional computing means.
  • CPU central processing unit
  • RAM random access memory
  • auxiliary storage e.g., hard disk, SSD
  • input / output means e.g., display, keyboard, Mouse
  • external connection interface e.g., keyboard, Mouse
  • the application program may be understood as an application program for an authoring tool such as CAD, which has a general operation input function including an undo and redo function. It can also be a tool for creating images and multimedia files.
  • CAD authoring tool
  • the application program may be understood as an application program for an authoring tool such as CAD, which has a general operation input function including an undo and redo function. It can also be a tool for creating images and multimedia files.
  • an object is a combination of one geometric unit object (eg, circle, triangle, rectangle, triangle column, sphere, etc.) or one or more unit objects generated by execution of the CAD program. Can be understood as a combination object.
  • a transaction may be a user input to an application program (eg, a drawing command for a specific object, a coordinate setting, a size setting, etc.) or a response of an application program (eg, an object according to a user input command) accordingly.
  • Display execution, automatic drawing function by preset logic, etc. and may be understood as a program processing process involving a state change of a memory.
  • one transaction includes at least one event (or task), and a series of events are organically combined to form one transaction.
  • the memory may be understood as a normal RAM, and from a logical point of view, a plurality of memory pages may be allocated to regions of the memory to define positions and sizes of each page, and data may be stored for each memory page. have.
  • the allocation of memory pages, management of location and size, and management of memory state changes may be performed by a memory management module provided in the computing means.
  • the memory state change is caused by a change (eg, deletion, addition, substitution, etc.) of data stored or recorded in each memory page (eg, binary or hexa-data). .
  • the application program is a CAD program having an undo and redo function
  • the object is a geometric unit object (eg, circle, triangle, square) created by execution of the CAD program. , Triangular pillars, spheres, curved surfaces, etc.) or a combination thereof, and the computing means is exemplarily understood as a case of a normal PC running a CAD program.
  • the computing means 100 of the present embodiment includes a user input module 102 that receives and provides an operation input of a user, an object management module 104 that creates, modifies, deletes, and stores an object by operation input, and a transaction processing.
  • a transaction processing module 106 for performing the operation a memory management module 108 for managing memory page allocation for object creation and changes in each memory page state before and after executing a transaction, and control necessary for executing the overall functions of each module.
  • the control module 110, the auxiliary memory device 120, and the memory 130 are provided.
  • Each module may be understood as a module in terms of a function according to execution of an application program, and may be understood in terms of a software, but may be provided in a combined state of hardware.
  • the auxiliary memory device 120 is a memory device using a semiconductor memory element, for example, may be a conventional solid state disk (SSD). Since a memory device using a semiconductor memory device provides improved functions in terms of data writing and access speed compared with a conventional hard disk, it is possible to provide a high speed when storing and accessing a first file or a second file which will be described later.
  • SSD solid state disk
  • the computing means allocates at least one memory page to the object for which creation is requested. For example, memory page allocation requests memory to the memory management module through the Alloc function, and the memory management module allocates memory from the computing means in units of pages and puts it in a free list, and within the free list. This can be done by truncating the requested memory page size and returning it to the user and managing the free list.
  • the memory is generally managed in units of pages (eg, 4096 bytes), and the present embodiment may manage memory pages in a similar manner.
  • the computing means stores at least one memory page allocated for the object in a first file of auxiliary storage, and stores data relating to a location reference of the first file as a transaction record.
  • the data regarding the location reference of the file may be, for example, the location of the file itself in the auxiliary storage device, the page location of the memory page stored in the file, the size of the file or the memory page, and the like.
  • the transaction record may include an address of the first file or a second file, which will be described later, and offset data of the converted data stored in the memory page or the second file stored in the first file. At least one of a memory page stored in the first file or a size of the converted data stored in the second file.
  • the offset data means a distance from a start position of a file to a memory page or translation data.
  • the transaction record is kept in memory, preferably in a stack structure.
  • the memory management method of the present embodiment can be implemented with a small memory resource.
  • a memory device using a semiconductor memory element, such as SSD as an auxiliary memory device, there is an advantage that can provide a substantially high speed in terms of data access speed.
  • the computing means performs a first transaction on the object.
  • the first transaction may draw a circle object having a specific radius around a specific coordinate.
  • step S3 the computing means compares the second hash code generated for each memory page after the execution of the first transaction with the first hash code generated for each memory page stored in the first file. Detects a memory page whose state has been translated. Whether or not the memory state is converted may be determined by comparing the first hash code and the second hash code for each memory page, and detecting that the memory pages having different code values are the memory pages of which the state is converted.
  • the first hash code is generated in step S1 or S3, and the second hash code is generated in step S3.
  • Each hash code (eg, 64 bit) may be obtained one by one for each memory page by applying a normal hash function to each memory page.
  • a hash function for example, a known hash function including cityHash and crc (cyclic redundency checksum) can be used.
  • the hash code may be managed, for example, in the form of a table containing a page address and a hash key value. Each hash code is kept in memory.
  • the computing means In the step S4, the computing means generates the converted data for the memory page detected as having the memory state changed in the step S3, stores the converted data in the second file of the auxiliary storage device, and stores the data regarding the location reference of the second file. Keep a record of the transaction.
  • the data relating to the location reference of the file may be, for example, the location of the file itself in the auxiliary storage device, the data location of the conversion data stored in the file, the size of the file or data block, and the like.
  • the converted data may be page difference data between data written in a memory page before conversion and data written in a memory page after conversion.
  • the page difference data may be understood as data in which only the data difference is recorded by comparing before and after state transition of a memory page by a transaction.
  • the data of the memory page before conversion may be used as the conversion data in the post-conversion state, or vice versa.
  • the converted data may be stored in the second file in a compressed state.
  • this compression process there is an advantage that the amount of converted data can be further reduced. Since the compression processing algorithm can selectively use a known compression algorithm (eg, Lossless LZ4 method), detailed description thereof will be omitted.
  • step S5 the computing means updates and stores the memory page detected as having changed in the memory state in step S3 in the first file of the auxiliary storage device.
  • the first file stores a memory page updated to the most recent state
  • the second file stores the converted data of the memory page in a stack structure
  • the transaction file records the first file and the second file. It may be understood to record data relating to a location reference of a.
  • the first file and the second file are stored in auxiliary storage, and transaction records are stored and managed in memory.
  • the computing means reads the second file with reference to the transaction record, and stores a memory page based on the converted data stored in the second file. Return to the same memory state as before the first transaction.
  • step S7 the computing means updates and stores the memory page in which the memory state is returned in the step S6 in the first file of the auxiliary storage device.
  • step S8 the computing means re-performs the first transaction for the object based on the re-execute (redo) request.
  • steps S3 to S5 are further executed based on the retransmitted first transaction.
  • step S9 the computing means further performs at least one or more transactions on the object. Further execution of the transaction may be accomplished by the user's further operation input or preset transaction logic.
  • At least one of the steps S3 to S5 (transaction), the steps S6 to S7 (revert), or the step S8 (reexecute) is further executed based on the additionally performed transaction.
  • the second file stores and manages each converted data generated as a result of each transaction in a stack structure based on the transaction execution order. From the illustrated example of the second file of FIG. 4 or 5, the form in which the converted data (page difference data) is stored and managed in a stack structure can be exemplarily understood.
  • the second file preferably deletes and manages the converted data located above the current pointer among the converted data stored and managed in the stack structure.
  • the current pointer indicates the location of the translation data directly needed to return the memory page of the most recently performed transaction.
  • the lateral arrow displayed next to the second file shown in FIG. 4 or 5 may be understood as an example of the current pointer.
  • the current point is located in the transform data corresponding to [6'-6], but after the revert command for the converted data corresponding to [6'-6] [
  • a current point is located in the converted data corresponding to 2'-2] + [4'-4].
  • the converted data corresponding to [6'-6] is added to the top of the converted data stored and managed in the stack structure, and the current point is located there.
  • Embodiments of the present invention include a program for performing various computer-implemented operations and a computer readable medium recording the same.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROM, DVD, USB drives, magnetic-optical media such as floppy disks, and ROM, RAM, Hardware devices specifically configured to store and execute program instructions, such as flash memory, are included.
  • the medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like.
  • program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

Abstract

The present invention relates to a memory management method, a computer program therefor, and a recording medium therefor. According to one aspect of the present invention, disclosed is a memory management method by which a computing means manages a memory state change involved in the performance of a transaction of an application program, comprising the steps of; 1) storing, in a first file of an auxiliary memory device, at least one memory page allocated for an object and keeping data on a location reference of the first file as a transaction record; 2) performing a first transaction for the object; 3) comparing a second hash code, generated for each memory page after performing the first transaction, with a first hash code generated for each memory page stored in the first file, so as to detect a memory page having a changed memory state; 4) generating conversion data for the memory page detected, in step 3), as having a changed memory state, storing the generated conversion data in a second file of the auxiliary memory device, and keeping data on a location reference of the second file as a transaction record; and 5) updating and storing, in the first file of the auxiliary memory device, the memory page detected, in step 3), as having a changed memory state.

Description

메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체Memory management method, computer program, recording medium therefor
본 발명은 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것으로서, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에 다양한 트랜잭션 수행에 수반되는 메모리 관리를 보조 기억장치와 연동하여 이뤄지도록 구성함으로써, 되돌리기(undo) 및 다시실행(redo) 기능 제공 시 필요한 메모리 자원의 사용을 저감할 수 있도록 구성된 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.The present invention relates to a memory management method, a computer program for the same, and a recording medium thereof, wherein the memory management associated with performing various transactions when the application program is executed using a computing means is performed in association with an auxiliary storage device. The present invention relates to a memory management method configured to reduce the use of memory resources required for providing an undo and redo function, a computer program therefor, and a recording medium thereof.
캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램이 컴퓨팅 수단에서 실행되는 경우, 컴퓨팅 수단은 저작된 객체의 데이터를 메모리에 기록하고 객체의 속성(예, 모양, 크기, 위치, 방향 등)이 사용자 입력 또는 그에 대한 컴퓨팅 수단의 반응에 의해 변경(예, 생성, 수정, 삭제)되면 메모리에 기록한 데이터를 변경 관리하게 된다. When an application program for an authoring tool, such as CAD, is executed on a computing means, the computing means writes the data of the authored object into memory and the object's attributes (e.g., shape, size, position, orientation, etc.) When the data is changed (eg, generated, modified, or deleted) in response to the computing means, the data recorded in the memory is changed and managed.
예를 들어, 캐드 작업을 통해 객체로서 하나의 원을 드로잉하는 경우, 최초로 드로잉된 원에 대하여 중심 좌표 및 반경(radius) 데이터가 메모리에 기록되고, 사용자의 조작 입력에 의해 중심 좌표 또는 반경(radius)에 변경이 발생된 경우, 기록된 데이터를 변경 관리하게 된다. For example, when drawing a circle as an object through a CAD operation, the center coordinates and the radius data are recorded in the memory for the first drawn circle, and the center coordinates or the radius by the user's manipulation input. In the event that a change occurs, the recorded data is changed and managed.
이러한 저작 툴용 애플리케이션 프로그램에는 일반적으로 사용자의 작업 편의성을 위해 되돌리기(undo) 및 다시실행(redo) 기능과 같은 사용자 인터페이스가 제공된다. Such application programs for authoring tools are generally provided with user interfaces such as undo and redo functions for user convenience.
되돌리기(undo) 및 다시실행(redo) 기능의 제공을 위해서, 종래에는 되돌리기(undo) 또는 다시실행(redo) 기능 실행 전후에 입력된 사용자 오퍼레이션 입력을 기억하고 이를 이용하여 역의 실행을 하도록 하거나, 객체에 관한 데이터가 보관되는 메모리에서 되돌리기(undo) 또는 다시실행(redo) 기능 실행 전후의 메모리 상태 변화를 기억하여 이를 이용하는 기술 등이 제안된 바 있다. In order to provide an undo and redo function, a user operation input stored before and after the execution of the undo or redo function is conventionally used to perform reverse execution, or Techniques for remembering and using memory state changes before and after executing an undo or redo function have been proposed in a memory in which data about an object is stored.
일예로, 미국등록특허 US6,618,851호(등록일자 2003.09.09.)는 되돌리기(undo) 및 다시실행(redo) 기능의 제공을 위해, 트랜잭션 수행 전후의 메모리 상태 변화를 기억하여 이를 이용하는 구성을 제안하였다. For example, US Patent No. 6,618,851 (Registration Date 2003.09.09.) Proposes a configuration that stores and uses memory state changes before and after a transaction in order to provide an undo and redo function. It was.
상기 예시된 종래 기술은 메모리 영역을 프로텍션 처리하고, 메모리 영역의 변화 발생 여부를 OS에서 제공하는 예외 처리기(exception handler)를 이용하여 메모리 상태 변화를 감지하는 방식을 취하였다. In the above-described conventional technology, the memory area is protected and a change in the memory state is detected by using an exception handler provided by the OS to determine whether a change in the memory area occurs.
그런데, 상기 예시된 종래 기술은 트랜잭션 수행에 따른 메모리 상태 변화의 감지가 애플리케이션 프로그램 수준에서 수행되지 않고 OS 수준에서 실행되므로, 메모리 상태 변화 감지를 위한 기능 구현 과정에 있어서 OS에 대한 API 연동과 같은 복잡한 연동 처리 과정이 필요하다는 한계점이 있었다. However, in the above-described conventional technology, since the detection of the memory state change according to the transaction execution is executed at the OS level instead of the application program level, it is complicated to implement the API for the OS in the process of implementing the function for detecting the memory state change. There was a limitation that the interworking process is required.
한편, 캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램에서 생성하는 객체는 2차원 또는 3차원 상의 모델링 객체로 정의되는 것으로서, 하나의 객체를 정의하거나 변경 관리하기 위하여 많은 양의 데이터가 소요된다. Meanwhile, an object generated by an application program for an authoring tool such as CAD is defined as a modeling object in two or three dimensions, and a large amount of data is required to define or change a single object.
이로 인해, 되돌리기(undo) 및 다시실행(redo) 기능의 실행 시에 객체의 변경 전후의 차이 데이터를 메모리에 기록하는 과정에서 많은 메모리 자원이 필요하므로, 되돌리기(undo)/다시실행(redo) 제공 횟수를 증가시키는데 많은 제약이 있었다.As a result, when undo and redo functions are executed, a large amount of memory resources are required in the process of writing the difference data before and after the change of an object to memory, thereby providing an undo / redo. There were many constraints on increasing the number of times.
본 발명은 상기와 같은 문제점을 감안하여 안출한 것으로서, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에 다양한 트랜잭션 수행에 수반되는 메모리 관리를 보조 기억장치와 연동하여 이뤄지도록 구성함으로써, 되돌리기(undo) 및 다시실행(redo) 기능 제공 시 필요한 메모리 자원의 사용을 저감할 수 있도록 구성된 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체를 제공하는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems, and by undoing and resuming the memory management associated with execution of various transactions at the time of execution of an application program using a computing means to be performed in conjunction with an auxiliary storage device, It is an object of the present invention to provide a memory management method, a computer program, and a recording medium configured to reduce the use of memory resources required for providing a redo function.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서, 1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계; 3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계; 4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및 5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법이 개시된다. According to an aspect of the present invention for achieving the above object, a method for managing a memory state change associated with the execution of a transaction of the application program in the computing means, 1) the at least one memory page allocated to the object auxiliary storage device Storing in a first file of the data file a transaction record, the data relating to a location reference of the first file; 2) performing a first transaction on the object; 3) a memory in which a memory state is converted by comparing a second hash code generated for each memory page after execution of the first transaction with a first hash code generated for each memory page stored in the first file. Detecting a page; 4) Generates converted data for the memory page detected as having changed the memory state in step 3), and stores the converted data in a second file of the auxiliary storage device, and stores data regarding a location reference of the second file as a transaction record. Doing; And 5) updating and storing the memory page detected as having been changed in the memory state in the first file of the auxiliary storage device in step 3).
바람직하게 본 발명은, 6) 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시키는 단계; 및 7) 상기 6) 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 더욱 포함하여 구성된다. Preferably, in the present invention, 6) when a request for returning to the state before the execution of the first transaction is input, the second file is read with reference to the transaction record, and the memory is based on the converted data stored in the second file. Returning a page to a memory state equivalent to that before the first transaction; And 7) updating and storing the memory page in which the memory state is returned in step 6) in a first file of the auxiliary storage device.
바람직하게 본 발명은, 상기 1) 단계 이전에, PS1) 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당하는 단계;를 더욱 포함하여 구성된다. Preferably, before the step 1), when the PS1) object creation request is input, allocating at least one memory page for the requested object; further comprises.
바람직하게, 상기 해시 코드 및 트랜잭션 기록은 메모리에 보관 관리되는 것을 특징으로 한다. Preferably, the hash code and the transaction record is kept in memory.
바람직하게, 상기 트랜잭션은 애플리케이션 프로그램에 대한 사용자 입력 또는 그에 따른 애플리케이션 프로그램의 응답에 의해 수행되는 것을 특징으로 한다. Preferably, the transaction is performed by a user input to the application program or a response of the application program accordingly.
바람직하게, 상기 4) 단계에서, 상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터인 것을 특징으로 한다. Preferably, in step 4), the converted data is page difference data between data written in the memory page before conversion and data written in the memory page after conversion.
바람직하게, 상기 4) 단계에서, 상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장하는 것을 특징으로 한다. Preferably, in step 4), the converted data is stored in the second file in a compressed state.
바람직하게 본 발명은, 8) 재수행 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행하는 단계;를 더욱 포함하며, 상기 재수행된 제1 트랜잭션에 근거하여 상기 3) 내지 5) 단계를 더욱 실행하는 것을 특징으로 한다. Preferably, the present invention further comprises: 8) re-performing the first transaction for the object based on the re-execution request, further comprising the steps 3) to 5) based on the re-executed first transaction. It is characterized by executing.
바람직하게 본 발명은, 상기 5) 단계 또는 상기 7) 단계 이후, 9) 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행하는 단계;를 더욱 포함하며, 상기 추가 수행된 트랜잭션에 근거하여 상기 3) 내지 5) 단계, 또는 상기 6) 내지 7) 단계, 또는 상기 8) 단계 중의 적어도 어느 하나를 더욱 실행하는 것을 특징으로 한다. Preferably, the present invention further includes, after step 5) or step 7), 9) additionally performing at least one transaction for the object, based on the additionally performed transaction; And at least one of step 5), or steps 6) to 7), or step 8).
바람직하게, 상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리하는 것을 특징으로 한다. Preferably, the second file stores and manages each converted data generated as a result of each transaction in a stack structure based on a transaction execution order.
상기 제2 파일은, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리하는 것- 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타냄-을 특징으로 한다. The second file is to delete-manage the converted data located above the current pointer among the converted data stored and managed in the stack structure. The current pointer is directly required to return the memory page of the most recently performed transaction. Indicates the location of the data.
바람직하게, 상기 트랜잭션 기록은, 보조 기억장치에서의 상기 제1 파일 또는 제2 파일의 주소와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관하는 것을 특징으로 한다. Advantageously, said transaction record further comprises: an address of said first file or second file in auxiliary storage, offset data of converted data stored in a memory page or second file stored in said first file, and And at least one of a memory page stored in the first file or a size of the converted data stored in the second file.
바람직하게, 상기 애플리케이션 프로그램은 CAD 프로그램이며, 상기 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체 또는 하나 이상의 단위 객체가 결합된 조합 객체인 것을 특징으로 한다. Preferably, the application program is a CAD program, and the object is characterized in that one geometric unit object or a combination object combined with one or more unit objects generated by the execution of the CAD program.
바람직하게, 상기 제1 해시 코드는 상기 1) 단계 또는 상기 3) 단계에서 생성되는 것을 특징으로 한다. Preferably, the first hash code is generated in step 1) or step 3).
바람직하게, 상기 보조 기억장치는 반도체 기억 소자를 사용한 기억 장치인 것을 특징으로 한다. Preferably, the auxiliary memory device is a memory device using a semiconductor memory element.
본 발명의 또 다른 일측면에 따르면, 하드웨어와 결합되어 상기 메모리 관리 방법을 실행시키기 위하여 기록 매체에 저장된 컴퓨터 프로그램이 개시된다. According to another aspect of the present invention, a computer program stored in a recording medium in combination with hardware to execute the memory management method is disclosed.
본 발명의 또 다른 일측면에 따르면, 상기 메모리 관리 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체가 개시된다.According to yet another aspect of the present invention, a computer-readable recording medium having a computer program recorded thereon for executing the memory management method is disclosed.
이와 같은 본 발명은, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에, 되돌리기(undo) 및 다시실행(redo) 기능 제공에 필요한 메모리 자원의 사용을 저감할 수 있다는 장점이 있다. The present invention has the advantage of reducing the use of memory resources required to provide the undo and redo functions when executing the application program using the computing means.
특히, 본 발명은, 메모리 자원의 사용 저감을 통해, 캐드(CAD)와 같이 객체 모델링을 위해 대용량의 메모리 자원이 사용되는 저작 툴에 있어서, 트랜잭션에 대한 되돌리기(undo) 및 다시실행(redo)의 제공 횟수를 대폭 증가시킬 수 있다는 장점이 있다. In particular, the present invention provides a method for undoing and redoing a transaction in an authoring tool in which a large amount of memory resources are used for object modeling, such as CAD, by reducing the use of memory resources. The advantage is that the number of provisions can be greatly increased.
또한, 본 발명은, 트랜잭션 수행에 따른 메모리 상태 변화의 감지를 메모리 페이지로부터 생성한 해시 함수를 이용하는 방식을 취하므로, OS 수준의 기능 호출이나 API 연동과 같은 복잡한 연동 처리 과정이 필요하지 않다는 장점이 있다.In addition, since the present invention uses a hash function generated from a memory page to detect a change in memory state according to a transaction, a complex interworking process such as OS level function call or API interworking is not required. have.
도 1은 본 발명의 일실시예에 따른 애플리케이션 프로그램이 실행되는 컴퓨팅 수단의 구성도, 1 is a block diagram of a computing means for executing an application program according to an embodiment of the present invention,
도 2는 본 발명의 일실시예에 따른 트랜잭션의 개념을 설명하기 위한 모식도, 2 is a schematic diagram for explaining the concept of a transaction according to an embodiment of the present invention,
도 3은 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름도, 3 is a flowchart of a memory management method according to an embodiment of the present invention;
도 4는 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면, 4 is a view for explaining a memory and file state change in accordance with the flow of the memory management method according to an embodiment of the present invention;
도 5는 본 발명의 또다른 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a memory and file state change according to a flow of a memory management method according to another exemplary embodiment of the present invention.
본 발명은 그 기술적 사상 또는 주요한 특징으로부터 벗어남이 없이 다른 여러가지 형태로 실시될 수 있다. 따라서, 본 발명의 실시예들은 모든 점에서 단순한 예시에 지나지 않으며 한정적으로 해석되어서는 안 된다.The present invention can be embodied in many other forms without departing from the spirit or main features thereof. Therefore, the embodiments of the present invention are merely examples in all respects and should not be interpreted limitedly.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다", "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise", "comprise", "have", and the like are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification. Or other features or numbers, steps, operations, components, parts or combinations thereof in any way should not be excluded in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and are not construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be denoted by the same reference numerals regardless of the reference numerals and redundant description thereof will be omitted. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.
도 1은 본 발명의 일실시예에 따른 애플리케이션 프로그램이 실행되는 컴퓨팅 수단의 구성도, 도 2는 본 발명의 일실시예에 따른 트랜잭션의 개념을 설명하기 위한 모식도, 도 3은 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름도, 도 4는 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면, 도 5는 본 발명의 또다른 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면이다. 1 is a block diagram of a computing means for executing an application program according to an embodiment of the present invention, Figure 2 is a schematic diagram for explaining the concept of a transaction according to an embodiment of the present invention, Figure 3 is an embodiment of the present invention 4 is a flowchart illustrating a memory management method according to an embodiment of the present disclosure. FIG. 4 is a diagram illustrating a memory and file state change according to the flow of the memory management method according to an embodiment of the present invention. FIG. 5 is a diagram illustrating another embodiment of the present invention. FIG. 10 is a diagram illustrating memory and file state changes according to a flow of a memory management method.
본 실시예에 있어서, 컴퓨팅 수단은 일반 개인용 컴퓨터(PC)와 같이 중앙처리유닛(CPU), 메모리(RAM), 보조 기억장치(예, 하드 디스크, SSD), 입출력 수단(예, 디스플레이, 키보드, 마우스), 외부 연결용 인터페이스 등을 갖춘 통상의 컴퓨팅 수단으로 이해될 수 있다. In the present embodiment, the computing means is a central processing unit (CPU), memory (RAM), auxiliary storage (e.g., hard disk, SSD), input / output means (e.g., display, keyboard, Mouse), an external connection interface, and the like, as understood by conventional computing means.
본 실시예에 있어서, 애플리케이션 프로그램은 되돌리기(undo) 및 다시실행(redo) 기능을 포함한 일반적인 오퍼레이션 입력 기능을 구비한 캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램으로 이해될 수 있으며, 이외에도 다양한 문서, 도면, 이미지, 멀티미디어 파일 생성 툴이 될 수도 있다. In the present embodiment, the application program may be understood as an application program for an authoring tool such as CAD, which has a general operation input function including an undo and redo function. It can also be a tool for creating images and multimedia files.
본 실시예의 애플리케이션 프로그램을 CAD 프로그램으로 이해하는 경우, 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체(예, 원, 삼각형, 사각형, 삼각 기둥, 구 등) 또는 하나 이상의 단위 객체가 결합된 조합 객체로 이해될 수 있다. When the application program of the present embodiment is understood as a CAD program, an object is a combination of one geometric unit object (eg, circle, triangle, rectangle, triangle column, sphere, etc.) or one or more unit objects generated by execution of the CAD program. Can be understood as a combination object.
본 실시예에 있어서, 트랜잭션(transaction)은 애플리케이션 프로그램에 대한 사용자 입력(예, 특정 객체에 대한 그리기 명령, 좌표 설정, 크기 설정 등) 또는 그에 따른 애플리케이션 프로그램의 응답(예, 사용자 입력 명령에 따른 객체 디스플레이 실행, 미리 설정된 로직에 의한 자동 그리기 기능 등)에 의해 수행되며, 메모리의 상태 변화를 수반하는 프로그램 처리 과정으로 이해될 수 있다. 도 2에 예시된 바와 같이, 하나의 트랜잭션에는 적어도 하나의 이벤트(또는 태스크)가 포함되고, 일련의 이벤트가 유기적으로 결합하여 하나의 트랜잭션을 이루게 된다. In the present embodiment, a transaction may be a user input to an application program (eg, a drawing command for a specific object, a coordinate setting, a size setting, etc.) or a response of an application program (eg, an object according to a user input command) accordingly. Display execution, automatic drawing function by preset logic, etc.), and may be understood as a program processing process involving a state change of a memory. As illustrated in FIG. 2, one transaction includes at least one event (or task), and a series of events are organically combined to form one transaction.
본 실시예에 있어서, 메모리는 통상의 RAM으로 이해될 수 있으며, 논리적 관점에서 메모리의 영역에는 복수의 메모리 페이지가 할당되어 각 페이지의 위치 및 사이즈가 정의되고, 각 메모리 페이지 별로 데이터가 보관될 수 있다. 메모리 페이지의 할당, 위치 및 사이즈 관리, 메모리 상태 변화 관리는 컴퓨팅 수단에 구비된 메모리 관리 모듈에 의해 실행될 수 있다. In the present embodiment, the memory may be understood as a normal RAM, and from a logical point of view, a plurality of memory pages may be allocated to regions of the memory to define positions and sizes of each page, and data may be stored for each memory page. have. The allocation of memory pages, management of location and size, and management of memory state changes may be performed by a memory management module provided in the computing means.
본 실시예에 있어서, 메모리 상태 변화는 각각의 메모리 페이지에 보관 내지 기록된 데이터(예, 바이너리 또는 헥사 데이터)에 변경(예, 데이터의 삭제, 추가, 치환 등)이 발생되는 것으로 이해될 수 있다. In the present embodiment, it can be understood that the memory state change is caused by a change (eg, deletion, addition, substitution, etc.) of data stored or recorded in each memory page (eg, binary or hexa-data). .
이하의 설명에서, 애플리케이션 프로그램은 되돌리기(undo) 및 다시실행(redo) 기능을 구비한 캐드(CAD) 프로그램이고, 객체는 CAD 프로그램의 실행에 의해 생성되는 기하학적 단위 객체(예, 원, 삼각형, 사각형, 삼각 기둥, 구, 곡면 등) 또는 그 조합 객체이며, 컴퓨팅 수단은 캐드(CAD) 프로그램이 구동 중인 통상의 PC인 경우로 예시하여 이해한다. In the following description, the application program is a CAD program having an undo and redo function, and the object is a geometric unit object (eg, circle, triangle, square) created by execution of the CAD program. , Triangular pillars, spheres, curved surfaces, etc.) or a combination thereof, and the computing means is exemplarily understood as a case of a normal PC running a CAD program.
본 실시예의 컴퓨팅 수단(100)은, 사용자의 오퍼레이션 입력을 받아 제공하는 사용자 입력 모듈(102)과, 오퍼레이션 입력에 의해 객체를 생성 및 수정, 삭제, 저장하는 객체 관리 모듈(104)과, 트랜잭션 처리를 수행하는 트랜잭션 처리 모듈(106)과, 객체 생성을 위한 메모리 페이지 할당과 트랜잭션 수행 전후의 각 메모리 페이지 상태 변화를 관리하는 메모리 관리 모듈(108)과, 상기 각 모듈의 전체적인 기능 실행에 필요한 제어를 수행하는 제어 모듈(110)과, 보조 기억장치(120)와, 메모리(130)를 구비한다. 상기 각 모듈은 애플리케이션 프로그램의 실행에 따른 기능 관점의 모듈로 이해될 수 있으며, 소프트웨어 관점으로 이해될 수 있지만 하드웨어 관점의 구현이 결합된 상태로 제공될 수도 있다. The computing means 100 of the present embodiment includes a user input module 102 that receives and provides an operation input of a user, an object management module 104 that creates, modifies, deletes, and stores an object by operation input, and a transaction processing. A transaction processing module 106 for performing the operation, a memory management module 108 for managing memory page allocation for object creation and changes in each memory page state before and after executing a transaction, and control necessary for executing the overall functions of each module. The control module 110, the auxiliary memory device 120, and the memory 130 are provided. Each module may be understood as a module in terms of a function according to execution of an application program, and may be understood in terms of a software, but may be provided in a combined state of hardware.
바람직하게, 상기 보조 기억장치(120)는, 반도체 기억 소자를 사용한 기억 장치가 사용되며, 예를 들어, 통상의 SSD(Solid State Disk)가 될 수 있다. 반도체 기억 소자를 사용한 기억 장치는 종래의 하드 디스크에 비해 데이터 기록 및 접근 속도면에서 향상된 기능을 제공하므로, 후술하는 제1 파일 또는 제2 파일의 저장 및 접근 시에 빠른 속도를 제공할 수 있다. Preferably, the auxiliary memory device 120 is a memory device using a semiconductor memory element, for example, may be a conventional solid state disk (SSD). Since a memory device using a semiconductor memory device provides improved functions in terms of data writing and access speed compared with a conventional hard disk, it is possible to provide a high speed when storing and accessing a first file or a second file which will be described later.
도 3 내지 도 5를 참조하여, 본 발명의 일실시예에 따른 메모리 관리 방법을 설명한다. 3 to 5, a memory management method according to an embodiment of the present invention will be described.
이하에서는 객체 생성을 위한 메모리 페이지 할당과 트랜잭션 수행에 대하여 설명한다. The following describes memory page allocation and transaction execution for object creation.
PS1 단계에서 컴퓨팅 수단은, 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당한다. 일예로, 메모리 페이지 할당은, Alloc 함수를 통해 메모리 관리 모듈에게 메모리를 요청하고, 메모리 관리 모듈이 페이지 단위로 컴퓨팅 수단으로부터 메모리를 할당받아서 이것을 프리 리스트(free list)에 넣어 두고, 프리 리스트 내에서 요청된 메모리 페이지 사이즈 만큼 잘라서 사용자에게 리턴하고, 프리 리스트를 관리하는 방식으로 이뤄질 수 있다. 메모리는 페이지(예, 4096 bytes) 단위로 관리되는 것이 일반적이며, 본 실시예도 유사한 형태로 메모리 페이지를 관리할 수 있다. In the PS1 stage, when the object generation request is input, the computing means allocates at least one memory page to the object for which creation is requested. For example, memory page allocation requests memory to the memory management module through the Alloc function, and the memory management module allocates memory from the computing means in units of pages and puts it in a free list, and within the free list. This can be done by truncating the requested memory page size and returning it to the user and managing the free list. The memory is generally managed in units of pages (eg, 4096 bytes), and the present embodiment may manage memory pages in a similar manner.
S1 단계에서 컴퓨팅 수단은, 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관한다. 파일의 위치 참조에 관한 데이터는, 일예로, 보조 기억장치에서 파일 자체의 위치, 파일에 저장된 메모리 페이지의 페이지 위치, 파일 또는 메모리 페이지의 사이즈 등이 될 수 있다. In step S1, the computing means stores at least one memory page allocated for the object in a first file of auxiliary storage, and stores data relating to a location reference of the first file as a transaction record. The data regarding the location reference of the file may be, for example, the location of the file itself in the auxiliary storage device, the page location of the memory page stored in the file, the size of the file or the memory page, and the like.
일예로, 상기 트랜잭션 기록은, 보조 기억장치에서의 상기 제1 파일 또는 후술하는 제2 파일의 주소와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관한다. 상기 오프셋(offset) 데이터는 파일의 시작 위치로부터 메모리 페이지 또는 변환 데이터까지의 거리를 의미한다. 상기 트랜잭션 기록은 메모리에 보관 관리되며, 바람직하게는 스택 구조로 보관된다. For example, the transaction record may include an address of the first file or a second file, which will be described later, and offset data of the converted data stored in the memory page or the second file stored in the first file. At least one of a memory page stored in the first file or a size of the converted data stored in the second file. The offset data means a distance from a start position of a file to a memory page or translation data. The transaction record is kept in memory, preferably in a stack structure.
이와 같이, 용량이 큰 메모리 페이지는 보조 기억장치의 제1 파일에 저장하며, 용량이 상대적으로 작은 트랜잭션 기록은 메모리에 보관 관리하는 방식을 취하므로, 본 실시예의 메모리 관리 방법은 적은 메모리 자원으로도 많은 용량의 메모리 페이지를 저장 관리할 수 있다. 또한, 보조 기억장치로서 SSD와 같이 반도체 기억 소자를 사용한 기억 장치를 사용하는 경우, 데이터 접근 속도면에서도 실질적으로 빠른 속도를 제공할 수 있다는 장점이 있다. As described above, since a large memory page is stored in a first file of the auxiliary storage device, and a transaction record having a small capacity is stored in a memory, the memory management method of the present embodiment can be implemented with a small memory resource. Store and manage large memory pages. In addition, when using a memory device using a semiconductor memory element, such as SSD as an auxiliary memory device, there is an advantage that can provide a substantially high speed in terms of data access speed.
S2 단계에서 컴퓨팅 수단은, 상기 객체에 대한 제1 트랜잭션을 수행한다. 제1 트랜잭션은 예를 들어, 특정 좌표를 중심으로 특정 반경을 갖는 원 객체를 그리는 것을 예로 들 수 있다. In the step S2, the computing means performs a first transaction on the object. For example, the first transaction may draw a circle object having a specific radius around a specific coordinate.
S3 단계에서 컴퓨팅 수단은, 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출한다. 메모리 상태의 변환 여부는, 각 메모리 페이지 별로 제1 해시 코드와 제2 해시 코드를 비교하여, 서로 다른 코드값을 갖는 메모리 페이지를 상태가 변환된 메모리 페이지인 것으로 검출할 수 있다. In step S3, the computing means compares the second hash code generated for each memory page after the execution of the first transaction with the first hash code generated for each memory page stored in the first file. Detects a memory page whose state has been translated. Whether or not the memory state is converted may be determined by comparing the first hash code and the second hash code for each memory page, and detecting that the memory pages having different code values are the memory pages of which the state is converted.
바람직하게, 상기 제1 해시 코드는 상기 S1 단계 또는 상기 S3 단계에서 생성되며, 상기 제2 해시 코드는 상기 S3 단계에서 생성된다. 상기 각 해시 코드(예, 64 bit)는 통상의 해시 함수를 각각의 메모리 페이지에 적용하여 각 메모리 페이지마다 하나씩 얻어질 수 있다. 해시 함수로서는 예를 들어, cityHash, crc(cyclic redundency checksum)를 포함한 공지의 해시 함수가 사용될 수 있다. 해시 코드는 예를 들어, 페이지 주소와 해시 키값이 포함된 테이블 형태로 관리될 수 있다. 상기 각 해시 코드는 메모리에 보관 관리된다. Preferably, the first hash code is generated in step S1 or S3, and the second hash code is generated in step S3. Each hash code (eg, 64 bit) may be obtained one by one for each memory page by applying a normal hash function to each memory page. As the hash function, for example, a known hash function including cityHash and crc (cyclic redundency checksum) can be used. The hash code may be managed, for example, in the form of a table containing a page address and a hash key value. Each hash code is kept in memory.
S4 단계에서 컴퓨팅 수단은, 상기 S3 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관한다. 파일의 위치 참조에 관한 데이터는, 일예로, 보조 기억장치에서 파일 자체의 위치, 파일에 저장된 변환 데이터의 데이터 위치, 파일 또는 데이터 블록의 사이즈 등이 될 수 있다. In the step S4, the computing means generates the converted data for the memory page detected as having the memory state changed in the step S3, stores the converted data in the second file of the auxiliary storage device, and stores the data regarding the location reference of the second file. Keep a record of the transaction. The data relating to the location reference of the file may be, for example, the location of the file itself in the auxiliary storage device, the data location of the conversion data stored in the file, the size of the file or data block, and the like.
바람직하게, 상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터가 될 수 있다. 페이지 차이(page difference) 데이터는 트랜잭션에 의한 메모리 페이지의 상태 변환 전후를 비교하여 그 데이터 차이만을 기록한 데이터로 이해될 수 있다. 다른 예로, 변환 전의 메모리 페이지의 데이터를 변환 후 상태에 있어서 변환 데이터로 사용하거나, 그 역의 경우도 가능하다. Preferably, the converted data may be page difference data between data written in a memory page before conversion and data written in a memory page after conversion. The page difference data may be understood as data in which only the data difference is recorded by comparing before and after state transition of a memory page by a transaction. As another example, the data of the memory page before conversion may be used as the conversion data in the post-conversion state, or vice versa.
페이지 차이(page difference) 데이터를 변환 데이터로 사용하는 경우, 변환 전의 메모리 페이지의 데이터를 그대로 변환 데이터로 사용하는 경우에 비해 저장해야 할 변환 데이터의 양이 적게 될 수 있다는 장점이 있다. When using page difference data as conversion data, there is an advantage that the amount of conversion data to be stored may be smaller than when using the data of the memory page before conversion as the conversion data.
또한, 바람직하게, 상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장할 수 있다. 이러한 압축 처리를 거치는 경우, 변환 데이터의 양이 더욱 적게 될 수 있다는 장점이 있다. 압축 처리 알고리즘은 공지의 압축 알고리즘(예, Lossless LZ4 방식)이 선택적으로 사용 가능하므로, 상세한 설명은 생략한다. Also, preferably, the converted data may be stored in the second file in a compressed state. In this compression process, there is an advantage that the amount of converted data can be further reduced. Since the compression processing algorithm can selectively use a known compression algorithm (eg, Lossless LZ4 method), detailed description thereof will be omitted.
S5 단계에서 컴퓨팅 수단은, 상기 S3 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장한다. In step S5, the computing means updates and stores the memory page detected as having changed in the memory state in step S3 in the first file of the auxiliary storage device.
한편, 상기 과정에 있어서, 제1 파일에는 가장 최근 상태로 갱신된 메모리 페이지가 저장되며, 제2 파일에는 메모리 페이지의 변환 데이터가 스택 구조로 저장되며, 트랜잭션 기록에는 상기 제1 파일과 제2 파일의 위치 참조에 관한 데이터를 기록 보관하는 것으로 이해될 수 있다. 상기 제1 파일과 제2 파일은 보조 기억장치에 저장되며, 트랜잭션 기록은 메모리에 보관 및 관리된다. In the above process, the first file stores a memory page updated to the most recent state, the second file stores the converted data of the memory page in a stack structure, and the transaction file records the first file and the second file. It may be understood to record data relating to a location reference of a. The first file and the second file are stored in auxiliary storage, and transaction records are stored and managed in memory.
이하에서는 객체에 대한 트랜잭션 수행 후 되돌리기(undo) 실행 과정을 설명한다.Hereinafter, a undo execution process after executing a transaction on an object will be described.
S6 단계에서 컴퓨팅 수단은, 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시킨다. In operation S6, when a return request to the state before the execution of the first transaction is input, the computing means reads the second file with reference to the transaction record, and stores a memory page based on the converted data stored in the second file. Return to the same memory state as before the first transaction.
S7 단계에서 컴퓨팅 수단은, 상기 S6 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장한다. In step S7, the computing means updates and stores the memory page in which the memory state is returned in the step S6 in the first file of the auxiliary storage device.
이하에서는 객체에 대한 되돌리기(undo) 실행 후 다시실행(redo) 기능의 실행 과정을 설명한다. Hereinafter, the execution process of the redo function after undoing an object will be described.
S8 단계에서 컴퓨팅 수단은, 재수행(다시실행) 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행한다. In step S8, the computing means re-performs the first transaction for the object based on the re-execute (redo) request.
이후, 상기 재수행된 제1 트랜잭션에 근거하여 상기 S3 내지 S5 단계를 더욱 실행한다. Subsequently, steps S3 to S5 are further executed based on the retransmitted first transaction.
이하에서는 객체에 대한 트랜잭션 수행이 2회 이상 연속적으로 수행되는 과정을 설명한다. Hereinafter, a process of performing a transaction on an object two or more times in succession will be described.
상기 S5 단계(제1 트랜잭션 종료) 또는 상기 S7 단계(되돌리기 종료) 이후, S9 단계에서 컴퓨팅 수단은, 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행한다. 트랜잭션의 추가 수행은 사용자의 추가 오퍼레이션 입력 또는 미리 설정된 트랜잭션 로직에 의해 이뤄질 수 있다. After the step S5 (end of the first transaction) or the step S7 (end of the reversion), in step S9, the computing means further performs at least one or more transactions on the object. Further execution of the transaction may be accomplished by the user's further operation input or preset transaction logic.
이후, 상기 추가 수행된 트랜잭션에 근거하여 상기 S3 내지 S5 단계(트랜잭션), 또는 상기 S6 내지 S7 단계(되돌리기), 또는 상기 S8 단계(다시실행) 중의 적어도 어느 하나를 더욱 실행한다. Thereafter, at least one of the steps S3 to S5 (transaction), the steps S6 to S7 (revert), or the step S8 (reexecute) is further executed based on the additionally performed transaction.
상기와 같이, 트랜잭션 수행이 2회 이상 연속적으로 수행되는 과정에서, 상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리한다. 도 4 또는 도 5의 제2 파일의 도시 예로부터, 변환 데이터(페이지 차이 데이터)가 스택 구조로 저장 관리되는 형태가 예시적으로 이해될 수 있다. As described above, in a process in which transaction execution is continuously performed two or more times, the second file stores and manages each converted data generated as a result of each transaction in a stack structure based on the transaction execution order. From the illustrated example of the second file of FIG. 4 or 5, the form in which the converted data (page difference data) is stored and managed in a stack structure can be exemplarily understood.
특히, 상기 제2 파일은 바람직하게, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리한다. 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타낸다. 도 4 또는 도 5에 도시된 제2 파일 옆에 표시된 횡방향 화살표가 커런트 포인터의 예로 이해될 수 있다. 도 5를 참조할 때, 제2 트랜잭션 종료 후에는 [6'-6]에 해당하는 변환 데이터에 커런트 포인트가 위치하지만, [6'-6]에 해당하는 변환 데이터에 대하여 되돌리기 명령 종료 후에는 [2'-2]+[4'-4]에 해당하는 변환 데이터에 커런트 포인트가 위치한 것을 예시적으로 이해할 수 있다. 일예로, 이후에 다시실행 명령이 이뤄져 종료된 상태에서는 스택 구조로 저장 관리하는 변환 데이터의 상단에 [6'-6]에 해당하는 변환 데이터가 다시 추가되고 여기에 커런트 포인트가 위치하게 된다. In particular, the second file preferably deletes and manages the converted data located above the current pointer among the converted data stored and managed in the stack structure. The current pointer indicates the location of the translation data directly needed to return the memory page of the most recently performed transaction. The lateral arrow displayed next to the second file shown in FIG. 4 or 5 may be understood as an example of the current pointer. Referring to FIG. 5, after the second transaction ends, the current point is located in the transform data corresponding to [6'-6], but after the revert command for the converted data corresponding to [6'-6] [ For example, it may be understood that a current point is located in the converted data corresponding to 2'-2] + [4'-4]. For example, in a state in which the redo command is executed later, the converted data corresponding to [6'-6] is added to the top of the converted data stored and managed in the stack structure, and the current point is located there.
본 발명의 실시예 들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램과 이를 기록한 컴퓨터 판독가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD, USB 드라이브와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the present invention include a program for performing various computer-implemented operations and a computer readable medium recording the same. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROM, DVD, USB drives, magnetic-optical media such as floppy disks, and ROM, RAM, Hardware devices specifically configured to store and execute program instructions, such as flash memory, are included. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

Claims (17)

  1. 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서, A method of managing, by computing means, changes in memory state associated with transaction execution of an application program,
    1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 1) storing at least one memory page allocated for an object in a first file of auxiliary storage, and storing data relating to a location reference of the first file as a transaction record;
    2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계; 2) performing a first transaction on the object;
    3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계; 3) a memory in which a memory state is converted by comparing a second hash code generated for each memory page after execution of the first transaction with a first hash code generated for each memory page stored in the first file. Detecting a page;
    4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및 4) Generates converted data for the memory page detected as having changed the memory state in step 3), and stores the converted data in a second file of the auxiliary storage device, and stores data regarding a location reference of the second file as a transaction record. Doing; And
    5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법.5) updating and storing the memory page detected as having been changed in the memory state in the first file of the auxiliary storage device in step 3).
  2. 제1항에 있어서, The method of claim 1,
    6) 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시키는 단계; 및 6) When a request to return to the state before the execution of the first transaction is input, the second file is read with reference to the transaction record, and a memory page is read based on the converted data stored in the second file. Returning to a memory state equivalent to that before the execution; And
    7) 상기 6) 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 더욱 포함하여 구성된 메모리 관리 방법.7) updating and storing the memory page of which the memory state has been returned in step 6) in a first file of the auxiliary storage device.
  3. 제1항에 있어서, The method of claim 1,
    상기 1) 단계 이전에, Before step 1) above,
    PS1) 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당하는 단계;를 더욱 포함하여 구성된 것을 특징으로 하는 메모리 관리 방법.PS1) if an object creation request is input, allocating at least one memory page for the object requested to be created; memory management method further comprises.
  4. 제1항에 있어서, The method of claim 1,
    상기 해시 코드 및 트랜잭션 기록은 메모리에 보관 관리되는 것을 특징으로 하는 메모리 관리 방법.The hash code and the transaction record is stored in memory, characterized in that the memory management method.
  5. 제1항에 있어서, The method of claim 1,
    상기 트랜잭션은 애플리케이션 프로그램에 대한 사용자 입력 또는 그에 따른 애플리케이션 프로그램의 응답에 의해 수행되는 것을 특징으로 하는 메모리 관리 방법.And wherein the transaction is performed by a user input to an application program or a response of the application program accordingly.
  6. 제1항에 있어서, The method of claim 1,
    상기 4) 단계에서, In step 4),
    상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터인 것을 특징으로 하는 메모리 관리 방법.And the converted data is page difference data between data written in a memory page before conversion and data written in the memory page after conversion.
  7. 제1항에 있어서, The method of claim 1,
    상기 4) 단계에서, In step 4),
    상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장하는 것을 특징으로 하는 메모리 관리 방법.And the converted data is stored in the second file in a compressed state.
  8. 제2항에 있어서, The method of claim 2,
    8) 재수행 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행하는 단계;를 더욱 포함하며, 8) re-executing a first transaction for the object based on the re-execution request;
    상기 재수행된 제1 트랜잭션에 근거하여 상기 3) 내지 5) 단계를 더욱 실행하는 것을 특징으로 하는 메모리 관리 방법.And executing steps 3) to 5) based on the retransmitted first transaction.
  9. 제8항에 있어서, The method of claim 8,
    상기 5) 단계 또는 상기 7) 단계 이후, After step 5) or step 7),
    9) 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행하는 단계;를 더욱 포함하며, 9) further performing at least one transaction for the object;
    상기 추가 수행된 트랜잭션에 근거하여 상기 3) 내지 5) 단계, 또는 상기 6) 내지 7) 단계, 또는 상기 8) 단계 중의 적어도 어느 하나를 더욱 실행하는 것을 특징으로 하는 메모리 관리 방법.And at least one of steps 3) to 5), or steps 6) to 7), or step 8) based on the additionally performed transaction.
  10. 제9항에 있어서, The method of claim 9,
    상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리하는 것을 특징으로 하는 메모리 관리 방법.And the second file stores and manages each converted data generated as a result of each transaction in a stack structure based on a transaction execution order.
  11. 제10항에 있어서, The method of claim 10,
    상기 제2 파일은, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리하는 것- 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타냄-을 특징으로 하는 메모리 관리 방법.The second file is to delete-manage the converted data located above the current pointer among the converted data stored and managed in the stack structure. The current pointer is directly required to return the memory page of the most recently performed transaction. Memory management method characterized by indicating the location of data.
  12. 제1항에 있어서, The method of claim 1,
    상기 트랜잭션 기록은, The transaction record,
    보조 기억장치에서의 상기 제1 파일 또는 제2 파일의 주소와, An address of the first file or the second file in the auxiliary storage;
    상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와, Offset data of the converted data stored in the memory page or the second file stored in the first file,
    상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관하는 것을 특징으로 하는 메모리 관리 방법.And at least one of a memory page stored in the first file or a size of the converted data stored in the second file.
  13. 제1항에 있어서, The method of claim 1,
    상기 애플리케이션 프로그램은 CAD 프로그램이며, The application program is a CAD program,
    상기 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체 또는 하나 이상의 단위 객체가 결합된 조합 객체인 것을 특징으로 하는 메모리 관리 방법.Wherein the object is one geometric unit object or a combination object in which one or more unit objects are created by execution of a CAD program.
  14. 제1항에 있어서, The method of claim 1,
    상기 제1 해시 코드는 상기 1) 단계 또는 상기 3) 단계에서 생성되는 것을 특징으로 하는 메모리 관리 방법.Wherein the first hash code is generated in step 1) or step 3).
  15. 제1항에 있어서, The method of claim 1,
    상기 보조 기억장치는 반도체 기억 소자를 사용한 기억 장치인 것을 특징으로 하는 메모리 관리 방법.And the auxiliary memory device is a memory device using a semiconductor memory element.
  16. 하드웨어와 결합되어 제1항 내지 제15항 중의 어느 한 항에 따른 메모리 관리 방법을 실행시키기 위하여 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a recording medium in combination with hardware to execute a memory management method according to any one of claims 1 to 15.
  17. 제1항 내지 제15항 중의 어느 한 항에 따른 메모리 관리 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a computer program for executing a memory management method according to any one of claims 1 to 15 on a computer.
PCT/KR2016/004524 2016-04-29 2016-04-29 Memory management method, computer program therefor, and rrecording medium therefor WO2017188484A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/004524 WO2017188484A1 (en) 2016-04-29 2016-04-29 Memory management method, computer program therefor, and rrecording medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/004524 WO2017188484A1 (en) 2016-04-29 2016-04-29 Memory management method, computer program therefor, and rrecording medium therefor

Publications (1)

Publication Number Publication Date
WO2017188484A1 true WO2017188484A1 (en) 2017-11-02

Family

ID=60159804

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/004524 WO2017188484A1 (en) 2016-04-29 2016-04-29 Memory management method, computer program therefor, and rrecording medium therefor

Country Status (1)

Country Link
WO (1) WO2017188484A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115640103A (en) * 2022-12-26 2023-01-24 北京云道智造科技有限公司 Operation response method and device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197598A (en) * 1991-06-18 1993-08-06 Digital Equip Corp <Dec> Method and apparatus for processing transaction
JPH06195250A (en) * 1992-10-13 1994-07-15 Internatl Business Mach Corp <Ibm> Method, system and device for renewal of database
KR20010022064A (en) * 1997-07-21 2001-03-15 클라스 노린, 쿨트 헬스트룀 A method relating to databases
US6543006B1 (en) * 1999-08-31 2003-04-01 Autodesk, Inc. Method and apparatus for automatic undo support
US6618851B1 (en) * 1999-08-31 2003-09-09 Autodesk, Inc. Method and apparatus for state-reversion
KR101619989B1 (en) * 2014-12-24 2016-05-13 주식회사 울프슨랩 Management method of memory, Computer program for the same, and Recording medium storing computer program for the same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197598A (en) * 1991-06-18 1993-08-06 Digital Equip Corp <Dec> Method and apparatus for processing transaction
JPH06195250A (en) * 1992-10-13 1994-07-15 Internatl Business Mach Corp <Ibm> Method, system and device for renewal of database
KR20010022064A (en) * 1997-07-21 2001-03-15 클라스 노린, 쿨트 헬스트룀 A method relating to databases
US6543006B1 (en) * 1999-08-31 2003-04-01 Autodesk, Inc. Method and apparatus for automatic undo support
US6618851B1 (en) * 1999-08-31 2003-09-09 Autodesk, Inc. Method and apparatus for state-reversion
KR101619989B1 (en) * 2014-12-24 2016-05-13 주식회사 울프슨랩 Management method of memory, Computer program for the same, and Recording medium storing computer program for the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115640103A (en) * 2022-12-26 2023-01-24 北京云道智造科技有限公司 Operation response method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US9996394B2 (en) Scheduling accelerator tasks on accelerators using graphs
US6539500B1 (en) System and method for tracing
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
US9367459B2 (en) Scheduling method and multi-core processor system
US11403214B2 (en) Memory management in non-volatile memory
US9529616B2 (en) Migrating processes between source host and destination host using a shared virtual file system
WO2018216920A1 (en) Device for providing multi-thread based spread sheet document, and operation method thereof
US20170123969A1 (en) Flash memory management
US10078562B2 (en) Transactional distributed lifecycle management of diverse application data structures
US8595394B1 (en) Method and system for dynamic buffering of disk I/O command chains
US20120059997A1 (en) Apparatus and method for detecting data race
WO2017188484A1 (en) Memory management method, computer program therefor, and rrecording medium therefor
Wilcox et al. Design for computational storage simulation platform
WO2023071158A1 (en) Memory optimization method and apparatus, terminal, and storage medium
WO2018080187A1 (en) Apparatus for operating multiple databases of embedded database system, and method therefor
US9841976B2 (en) Lock free streaming of executable code data
US8935471B2 (en) Conditional write processing for a cache structure of a coupling facility
KR101619989B1 (en) Management method of memory, Computer program for the same, and Recording medium storing computer program for the same
US20240036897A1 (en) Operating System Compatibility Layer
JP2010102654A (en) Control apparatus, control program and control method for managing data
JP5811211B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program
WO2022065577A2 (en) Method for offloading disk scan operation to gpu in write-optimized database
JPH0277872A (en) Document processor with active function
JP2015215641A (en) Information processor, emulation program and emulation method
JPS59140564A (en) Information processing device

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16900558

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 20.03.2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16900558

Country of ref document: EP

Kind code of ref document: A1