KR101619989B1 - 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 - Google Patents
메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 Download PDFInfo
- Publication number
- KR101619989B1 KR101619989B1 KR1020140188731A KR20140188731A KR101619989B1 KR 101619989 B1 KR101619989 B1 KR 101619989B1 KR 1020140188731 A KR1020140188731 A KR 1020140188731A KR 20140188731 A KR20140188731 A KR 20140188731A KR 101619989 B1 KR101619989 B1 KR 101619989B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- file
- transaction
- data
- memory page
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.
본 발명의 일측면에 따르면, 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서, 1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계; 3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계; 4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및 5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법이 개시된다.
본 발명의 일측면에 따르면, 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서, 1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계; 3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계; 4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및 5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법이 개시된다.
Description
본 발명은 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것으로서, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에 다양한 트랜잭션 수행에 수반되는 메모리 관리를 보조 기억장치와 연동하여 이뤄지도록 구성함으로써, 되돌리기(undo) 및 다시실행(redo) 기능 제공 시 필요한 메모리 자원의 사용을 저감할 수 있도록 구성된 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.
캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램이 컴퓨팅 수단에서 실행되는 경우, 컴퓨팅 수단은 저작된 객체의 데이터를 메모리에 기록하고 객체의 속성(예, 모양, 크기, 위치, 방향 등)이 사용자 입력 또는 그에 대한 컴퓨팅 수단의 반응에 의해 변경(예, 생성, 수정, 삭제)되면 메모리에 기록한 데이터를 변경 관리하게 된다.
예를 들어, 캐드 작업을 통해 객체로서 하나의 원을 드로잉하는 경우, 최초로 드로잉된 원에 대하여 중심 좌표 및 반경(radius) 데이터가 메모리에 기록되고, 사용자의 조작 입력에 의해 중심 좌표 또는 반경(radius)에 변경이 발생된 경우, 기록된 데이터를 변경 관리하게 된다.
이러한 저작 툴용 애플리케이션 프로그램에는 일반적으로 사용자의 작업 편의성을 위해 되돌리기(undo) 및 다시실행(redo) 기능과 같은 사용자 인터페이스가 제공된다.
되돌리기(undo) 및 다시실행(redo) 기능의 제공을 위해서, 종래에는 되돌리기(undo) 또는 다시실행(redo) 기능 실행 전후에 입력된 사용자 오퍼레이션 입력을 기억하고 이를 이용하여 역의 실행을 하도록 하거나, 객체에 관한 데이터가 보관되는 메모리에서 되돌리기(undo) 또는 다시실행(redo) 기능 실행 전후의 메모리 상태 변화를 기억하여 이를 이용하는 기술 등이 제안된 바 있다.
일예로, 미국등록특허 US6,618,851호(등록일자 2003.09.09.)는 되돌리기(undo) 및 다시실행(redo) 기능의 제공을 위해, 트랜잭션 수행 전후의 메모리 상태 변화를 기억하여 이를 이용하는 구성을 제안하였다.
상기 예시된 종래 기술은 메모리 영역을 프로텍션 처리하고, 메모리 영역의 변화 발생 여부를 OS에서 제공하는 예외 처리기(exception handler)를 이용하여 메모리 상태 변화를 감지하는 방식을 취하였다.
그런데, 상기 예시된 종래 기술은 트랜잭션 수행에 따른 메모리 상태 변화의 감지가 애플리케이션 프로그램 수준에서 수행되지 않고 OS 수준에서 실행되므로, 메모리 상태 변화 감지를 위한 기능 구현 과정에 있어서 OS에 대한 API 연동과 같은 복잡한 연동 처리 과정이 필요하다는 한계점이 있었다.
한편, 캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램에서 생성하는 객체는 2차원 또는 3차원 상의 모델링 객체로 정의되는 것으로서, 하나의 객체를 정의하거나 변경 관리하기 위하여 많은 양의 데이터가 소요된다.
이로 인해, 되돌리기(undo) 및 다시실행(redo) 기능의 실행 시에 객체의 변경 전후의 차이 데이터를 메모리에 기록하는 과정에서 많은 메모리 자원이 필요하므로, 되돌리기(undo)/다시실행(redo) 제공 횟수를 증가시키는데 많은 제약이 있었다.
본 발명은 상기와 같은 문제점을 감안하여 안출한 것으로서, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에 다양한 트랜잭션 수행에 수반되는 메모리 관리를 보조 기억장치와 연동하여 이뤄지도록 구성함으로써, 되돌리기(undo) 및 다시실행(redo) 기능 제공 시 필요한 메모리 자원의 사용을 저감할 수 있도록 구성된 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체를 제공하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서, 1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계; 3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계; 4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및 5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법이 개시된다.
바람직하게 본 발명은, 6) 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시키는 단계; 및 7) 상기 6) 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 더욱 포함하여 구성된다.
바람직하게 본 발명은, 상기 1) 단계 이전에, PS1) 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당하는 단계;를 더욱 포함하여 구성된다.
바람직하게, 상기 해시 코드 및 트랜잭션 기록은 메모리에 보관 관리되는 것을 특징으로 한다.
바람직하게, 상기 트랜잭션은 애플리케이션 프로그램에 대한 사용자 입력 또는 그에 따른 애플리케이션 프로그램의 응답에 의해 수행되는 것을 특징으로 한다.
바람직하게, 상기 4) 단계에서, 상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터인 것을 특징으로 한다.
바람직하게, 상기 4) 단계에서, 상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장하는 것을 특징으로 한다.
바람직하게 본 발명은, 8) 재수행 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행하는 단계;를 더욱 포함하며, 상기 재수행된 제1 트랜잭션에 근거하여 상기 3) 내지 5) 단계를 더욱 실행하는 것을 특징으로 한다.
바람직하게 본 발명은, 상기 5) 단계 또는 상기 7) 단계 이후, 9) 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행하는 단계;를 더욱 포함하며, 상기 추가 수행된 트랜잭션에 근거하여 상기 3) 내지 5) 단계, 또는 상기 6) 내지 7) 단계, 또는 상기 8) 단계 중의 적어도 어느 하나를 더욱 실행하는 것을 특징으로 한다.
바람직하게, 상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리하는 것을 특징으로 한다.
상기 제2 파일은, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리하는 것- 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타냄-을 특징으로 한다.
바람직하게, 상기 트랜잭션 기록은, 보조 기억장치에서의 상기 제1 파일 또는 제2 파일의 주소와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관하는 것을 특징으로 한다.
바람직하게, 상기 애플리케이션 프로그램은 CAD 프로그램이며, 상기 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체 또는 하나 이상의 단위 객체가 결합된 조합 객체인 것을 특징으로 한다.
바람직하게, 상기 제1 해시 코드는 상기 1) 단계 또는 상기 3) 단계에서 생성되는 것을 특징으로 한다.
바람직하게, 상기 보조 기억장치는 반도체 기억 소자를 사용한 기억 장치인 것을 특징으로 한다.
본 발명의 또 다른 일측면에 따르면, 하드웨어와 결합되어 상기 메모리 관리 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램이 개시된다.
본 발명의 또 다른 일측면에 따르면, 상기 메모리 관리 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체가 개시된다.
이와 같은 본 발명은, 컴퓨팅 수단을 이용한 애플리케이션 프로그램의 실행 시에, 되돌리기(undo) 및 다시실행(redo) 기능 제공에 필요한 메모리 자원의 사용을 저감할 수 있다는 장점이 있다.
특히, 본 발명은, 메모리 자원의 사용 저감을 통해, 캐드(CAD)와 같이 객체 모델링을 위해 대용량의 메모리 자원이 사용되는 저작 툴에 있어서, 트랜잭션에 대한 되돌리기(undo) 및 다시실행(redo)의 제공 횟수를 대폭 증가시킬 수 있다는 장점이 있다.
또한, 본 발명은, 트랜잭션 수행에 따른 메모리 상태 변화의 감지를 메모리 페이지로부터 생성한 해시 함수를 이용하는 방식을 취하므로, OS 수준의 기능 호출이나 API 연동과 같은 복잡한 연동 처리 과정이 필요하지 않다는 장점이 있다.
도 1은 본 발명의 일실시예에 따른 애플리케이션 프로그램이 실행되는 컴퓨팅 수단의 구성도,
도 2는 본 발명의 일실시예에 따른 트랜잭션의 개념을 설명하기 위한 모식도,
도 3은 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름도,
도 4는 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면,
도 5는 본 발명의 또다른 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 트랜잭션의 개념을 설명하기 위한 모식도,
도 3은 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름도,
도 4는 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면,
도 5는 본 발명의 또다른 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면이다.
본 발명은 그 기술적 사상 또는 주요한 특징으로부터 벗어남이 없이 다른 여러가지 형태로 실시될 수 있다. 따라서, 본 발명의 실시예들은 모든 점에서 단순한 예시에 지나지 않으며 한정적으로 해석되어서는 안 된다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다", "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일실시예에 따른 애플리케이션 프로그램이 실행되는 컴퓨팅 수단의 구성도, 도 2는 본 발명의 일실시예에 따른 트랜잭션의 개념을 설명하기 위한 모식도, 도 3은 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름도, 도 4는 본 발명의 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면, 도 5는 본 발명의 또다른 일실시예에 따른 메모리 관리 방법의 흐름에 따라 메모리 및 파일 상태 변화를 설명하기 위한 도면이다.
본 실시예에 있어서, 컴퓨팅 수단은 일반 개인용 컴퓨터(PC)와 같이 중앙처리유닛(CPU), 메모리(RAM), 보조 기억장치(예, 하드 디스크, SSD), 입출력 수단(예, 디스플레이, 키보드, 마우스), 외부 연결용 인터페이스 등을 갖춘 통상의 컴퓨팅 수단으로 이해될 수 있다.
본 실시예에 있어서, 애플리케이션 프로그램은 되돌리기(undo) 및 다시실행(redo) 기능을 포함한 일반적인 오퍼레이션 입력 기능을 구비한 캐드(CAD)와 같은 저작 툴용 애플리케이션 프로그램으로 이해될 수 있으며, 이외에도 다양한 문서, 도면, 이미지, 멀티미디어 파일 생성 툴이 될 수도 있다.
본 실시예의 애플리케이션 프로그램을 CAD 프로그램으로 이해하는 경우, 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체(예, 원, 삼각형, 사각형, 삼각 기둥, 구 등) 또는 하나 이상의 단위 객체가 결합된 조합 객체로 이해될 수 있다.
본 실시예에 있어서, 트랜잭션(transaction)은 애플리케이션 프로그램에 대한 사용자 입력(예, 특정 객체에 대한 그리기 명령, 좌표 설정, 크기 설정 등) 또는 그에 따른 애플리케이션 프로그램의 응답(예, 사용자 입력 명령에 따른 객체 디스플레이 실행, 미리 설정된 로직에 의한 자동 그리기 기능 등)에 의해 수행되며, 메모리의 상태 변화를 수반하는 프로그램 처리 과정으로 이해될 수 있다. 도 2에 예시된 바와 같이, 하나의 트랜잭션에는 적어도 하나의 이벤트(또는 태스크)가 포함되고, 일련의 이벤트가 유기적으로 결합하여 하나의 트랜잭션을 이루게 된다.
본 실시예에 있어서, 메모리는 통상의 RAM으로 이해될 수 있으며, 논리적 관점에서 메모리의 영역에는 복수의 메모리 페이지가 할당되어 각 페이지의 위치 및 사이즈가 정의되고, 각 메모리 페이지 별로 데이터가 보관될 수 있다. 메모리 페이지의 할당, 위치 및 사이즈 관리, 메모리 상태 변화 관리는 컴퓨팅 수단에 구비된 메모리 관리 모듈에 의해 실행될 수 있다.
본 실시예에 있어서, 메모리 상태 변화는 각각의 메모리 페이지에 보관 내지 기록된 데이터(예, 바이너리 또는 헥사 데이터)에 변경(예, 데이터의 삭제, 추가, 치환 등)이 발생되는 것으로 이해될 수 있다.
이하의 설명에서, 애플리케이션 프로그램은 되돌리기(undo) 및 다시실행(redo) 기능을 구비한 캐드(CAD) 프로그램이고, 객체는 CAD 프로그램의 실행에 의해 생성되는 기하학적 단위 객체(예, 원, 삼각형, 사각형, 삼각 기둥, 구, 곡면 등) 또는 그 조합 객체이며, 컴퓨팅 수단은 캐드(CAD) 프로그램이 구동 중인 통상의 PC인 경우로 예시하여 이해한다.
본 실시예의 컴퓨팅 수단(100)은, 사용자의 오퍼레이션 입력을 받아 제공하는 사용자 입력 모듈(102)과, 오퍼레이션 입력에 의해 객체를 생성 및 수정, 삭제, 저장하는 객체 관리 모듈(104)과, 트랜잭션 처리를 수행하는 트랜잭션 처리 모듈(106)과, 객체 생성을 위한 메모리 페이지 할당과 트랜잭션 수행 전후의 각 메모리 페이지 상태 변화를 관리하는 메모리 관리 모듈(108)과, 상기 각 모듈의 전체적인 기능 실행에 필요한 제어를 수행하는 제어 모듈(110)과, 보조 기억장치(120)와, 메모리(130)를 구비한다. 상기 각 모듈은 애플리케이션 프로그램의 실행에 따른 기능 관점의 모듈로 이해될 수 있으며, 소프트웨어 관점으로 이해될 수 있지만 하드웨어 관점의 구현이 결합된 상태로 제공될 수도 있다.
바람직하게, 상기 보조 기억장치(120)는, 반도체 기억 소자를 사용한 기억 장치가 사용되며, 예를 들어, 통상의 SSD(Solid State Disk)가 될 수 있다. 반도체 기억 소자를 사용한 기억 장치는 종래의 하드 디스크에 비해 데이터 기록 및 접근 속도면에서 향상된 기능을 제공하므로, 후술하는 제1 파일 또는 제2 파일의 저장 및 접근 시에 빠른 속도를 제공할 수 있다.
도 3 내지 도 5를 참조하여, 본 발명의 일실시예에 따른 메모리 관리 방법을 설명한다.
이하에서는 객체 생성을 위한 메모리 페이지 할당과 트랜잭션 수행에 대하여 설명한다.
PS1 단계에서 컴퓨팅 수단은, 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당한다. 일예로, 메모리 페이지 할당은, Alloc 함수를 통해 메모리 관리 모듈에게 메모리를 요청하고, 메모리 관리 모듈이 페이지 단위로 컴퓨팅 수단으로부터 메모리를 할당받아서 이것을 프리 리스트(free list)에 넣어 두고, 프리 리스트 내에서 요청된 메모리 페이지 사이즈 만큼 잘라서 사용자에게 리턴하고, 프리 리스트를 관리하는 방식으로 이뤄질 수 있다. 메모리는 페이지(예, 4096 bytes) 단위로 관리되는 것이 일반적이며, 본 실시예도 유사한 형태로 메모리 페이지를 관리할 수 있다.
S1 단계에서 컴퓨팅 수단은, 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관한다. 파일의 위치 참조에 관한 데이터는, 일예로, 보조 기억장치에서 파일 자체의 위치, 파일에 저장된 메모리 페이지의 페이지 위치, 파일 또는 메모리 페이지의 사이즈 등이 될 수 있다.
일예로, 상기 트랜잭션 기록은, 보조 기억장치에서의 상기 제1 파일 또는 후술하는 제2 파일의 주소와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와, 상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관한다. 상기 오프셋(offset) 데이터는 파일의 시작 위치로부터 메모리 페이지 또는 변환 데이터까지의 거리를 의미한다. 상기 트랜잭션 기록은 메모리에 보관 관리되며, 바람직하게는 스택 구조로 보관된다.
이와 같이, 용량이 큰 메모리 페이지는 보조 기억장치의 제1 파일에 저장하며, 용량이 상대적으로 작은 트랜잭션 기록은 메모리에 보관 관리하는 방식을 취하므로, 본 실시예의 메모리 관리 방법은 적은 메모리 자원으로도 많은 용량의 메모리 페이지를 저장 관리할 수 있다. 또한, 보조 기억장치로서 SSD와 같이 반도체 기억 소자를 사용한 기억 장치를 사용하는 경우, 데이터 접근 속도면에서도 실질적으로 빠른 속도를 제공할 수 있다는 장점이 있다.
S2 단계에서 컴퓨팅 수단은, 상기 객체에 대한 제1 트랜잭션을 수행한다. 제1 트랜잭션은 예를 들어, 특정 좌표를 중심으로 특정 반경을 갖는 원 객체를 그리는 것을 예로 들 수 있다.
S3 단계에서 컴퓨팅 수단은, 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출한다. 메모리 상태의 변환 여부는, 각 메모리 페이지 별로 제1 해시 코드와 제2 해시 코드를 비교하여, 서로 다른 코드값을 갖는 메모리 페이지를 상태가 변환된 메모리 페이지인 것으로 검출할 수 있다.
바람직하게, 상기 제1 해시 코드는 상기 S1 단계 또는 상기 S3 단계에서 생성되며, 상기 제2 해시 코드는 상기 S3 단계에서 생성된다. 상기 각 해시 코드(예, 64 bit)는 통상의 해시 함수를 각각의 메모리 페이지에 적용하여 각 메모리 페이지마다 하나씩 얻어질 수 있다. 해시 함수로서는 예를 들어, cityHash, crc(cyclic redundency checksum)를 포함한 공지의 해시 함수가 사용될 수 있다. 해시 코드는 예를 들어, 페이지 주소와 해시 키값이 포함된 테이블 형태로 관리될 수 있다. 상기 각 해시 코드는 메모리에 보관 관리된다.
S4 단계에서 컴퓨팅 수단은, 상기 S3 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관한다. 파일의 위치 참조에 관한 데이터는, 일예로, 보조 기억장치에서 파일 자체의 위치, 파일에 저장된 변환 데이터의 데이터 위치, 파일 또는 데이터 블록의 사이즈 등이 될 수 있다.
바람직하게, 상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터가 될 수 있다. 페이지 차이(page difference) 데이터는 트랜잭션에 의한 메모리 페이지의 상태 변환 전후를 비교하여 그 데이터 차이만을 기록한 데이터로 이해될 수 있다. 다른 예로, 변환 전의 메모리 페이지의 데이터를 변환 후 상태에 있어서 변환 데이터로 사용하거나, 그 역의 경우도 가능하다.
페이지 차이(page difference) 데이터를 변환 데이터로 사용하는 경우, 변환 전의 메모리 페이지의 데이터를 그대로 변환 데이터로 사용하는 경우에 비해 저장해야 할 변환 데이터의 양이 적게 될 수 있다는 장점이 있다.
또한, 바람직하게, 상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장할 수 있다. 이러한 압축 처리를 거치는 경우, 변환 데이터의 양이 더욱 적게 될 수 있다는 장점이 있다. 압축 처리 알고리즘은 공지의 압축 알고리즘(예, Lossless LZ4 방식)이 선택적으로 사용 가능하므로, 상세한 설명은 생략한다.
S5 단계에서 컴퓨팅 수단은, 상기 S3 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장한다.
한편, 상기 과정에 있어서, 제1 파일에는 가장 최근 상태로 갱신된 메모리 페이지가 저장되며, 제2 파일에는 메모리 페이지의 변환 데이터가 스택 구조로 저장되며, 트랜잭션 기록에는 상기 제1 파일과 제2 파일의 위치 참조에 관한 데이터를 기록 보관하는 것으로 이해될 수 있다. 상기 제1 파일과 제2 파일은 보조 기억장치에 저장되며, 트랜잭션 기록은 메모리에 보관 및 관리된다.
이하에서는 객체에 대한 트랜잭션 수행 후 되돌리기(undo) 실행 과정을 설명한다.
S6 단계에서 컴퓨팅 수단은, 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시킨다.
S7 단계에서 컴퓨팅 수단은, 상기 S6 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장한다.
이하에서는 객체에 대한 되돌리기(undo) 실행 후 다시실행(redo) 기능의 실행 과정을 설명한다.
S8 단계에서 컴퓨팅 수단은, 재수행(다시실행) 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행한다.
이후, 상기 재수행된 제1 트랜잭션에 근거하여 상기 S3 내지 S5 단계를 더욱 실행한다.
이하에서는 객체에 대한 트랜잭션 수행이 2회 이상 연속적으로 수행되는 과정을 설명한다.
상기 S5 단계(제1 트랜잭션 종료) 또는 상기 S7 단계(되돌리기 종료) 이후, S9 단계에서 컴퓨팅 수단은, 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행한다. 트랜잭션의 추가 수행은 사용자의 추가 오퍼레이션 입력 또는 미리 설정된 트랜잭션 로직에 의해 이뤄질 수 있다.
이후, 상기 추가 수행된 트랜잭션에 근거하여 상기 S3 내지 S5 단계(트랜잭션), 또는 상기 S6 내지 S7 단계(되돌리기), 또는 상기 S8 단계(다시실행) 중의 적어도 어느 하나를 더욱 실행한다.
상기와 같이, 트랜잭션 수행이 2회 이상 연속적으로 수행되는 과정에서, 상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리한다. 도 4 또는 도 5의 제2 파일의 도시 예로부터, 변환 데이터(페이지 차이 데이터)가 스택 구조로 저장 관리되는 형태가 예시적으로 이해될 수 있다.
특히, 상기 제2 파일은 바람직하게, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리한다. 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타낸다. 도 4 또는 도 5에 도시된 제2 파일 옆에 표시된 횡방향 화살표가 커런트 포인터의 예로 이해될 수 있다. 도 5를 참조할 때, 제2 트랜잭션 종료 후에는 [6'-6]에 해당하는 변환 데이터에 커런트 포인트가 위치하지만, [6'-6]에 해당하는 변환 데이터에 대하여 되돌리기 명령 종료 후에는 [2'-2]+[4'-4]에 해당하는 변환 데이터에 커런트 포인트가 위치한 것을 예시적으로 이해할 수 있다. 일예로, 이후에 다시실행 명령이 이뤄져 종료된 상태에서는 스택 구조로 저장 관리하는 변환 데이터의 상단에 [6'-6]에 해당하는 변환 데이터가 다시 추가되고 여기에 커런트 포인트가 위치하게 된다.
본 발명의 실시예 들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램과 이를 기록한 컴퓨터 판독가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD, USB 드라이브와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
100: 애플리케이션 프로그램이 구동되는 컴퓨팅 수단
102: 사용자 입력 모듈
104: 객체 관리 모듈
106: 트랜잭션 처리 모듈
108: 메모리 관리 모듈
110: 제어 모듈
120: 보조 기억수단
130: 메모리
102: 사용자 입력 모듈
104: 객체 관리 모듈
106: 트랜잭션 처리 모듈
108: 메모리 관리 모듈
110: 제어 모듈
120: 보조 기억수단
130: 메모리
Claims (17)
- 애플리케이션 프로그램의 트랜잭션 수행에 수반되는 메모리 상태 변화를 컴퓨팅 수단에서 관리하는 방법으로서,
1) 객체에 대하여 할당된 적어도 하나의 메모리 페이지를 보조 기억장치의 제1 파일에 저장하며, 상기 제1 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계;
2) 상기 객체에 대한 제1 트랜잭션을 수행하는 단계;
3) 상기 제1 트랜잭션의 수행 후의 각각의 메모리 페이지에 대하여 생성된 제2 해시 코드와, 상기 제1 파일에 저장된 각각의 메모리 페이지에 대하여 생성된 제1 해시 코드를 비교하여 메모리 상태가 변환된 메모리 페이지를 검출하는 단계;
4) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지에 대하여 변환 데이터를 생성하여 보조 기억장치의 제2 파일에 저장하며, 상기 제2 파일의 위치 참조에 관한 데이터를 트랜잭션 기록으로 보관하는 단계; 및
5) 상기 3) 단계에서 메모리 상태가 변환된 것으로 검출된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 포함하여 구성된 메모리 관리 방법.
- 제1항에 있어서,
6) 상기 제1 트랜잭션의 수행 전 상태로의 복귀 요청이 입력된 경우, 상기 트랜잭션 기록을 참조하여 상기 제2 파일을 독출하고, 제2 파일에 저장된 변환 데이터에 근거하여 메모리 페이지를 상기 제1 트랜잭션 수행 전과 동등한 메모리 상태로 복귀시키는 단계; 및
7) 상기 6) 단계에서 메모리 상태가 복귀된 메모리 페이지를 보조 기억장치의 제1 파일에 갱신 저장하는 단계;를 더욱 포함하여 구성된 메모리 관리 방법.
- 제1항에 있어서,
상기 1) 단계 이전에,
PS1) 객체 생성 요청이 입력된 경우, 생성 요청된 객체에 대하여 적어도 하나의 메모리 페이지를 할당하는 단계;를 더욱 포함하여 구성된 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 해시 코드 및 트랜잭션 기록은 메모리에 보관 관리되는 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 트랜잭션은 애플리케이션 프로그램에 대한 사용자 입력 또는 그에 따른 애플리케이션 프로그램의 응답에 의해 수행되는 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 4) 단계에서,
상기 변환 데이터는, 변환 전의 메모리 페이지에 기록된 데이터와 변환 후의 메모리 페이지에 기록된 데이터의 페이지 차이(page difference) 데이터인 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 4) 단계에서,
상기 변환 데이터는 압축 처리한 상태로 상기 제2 파일에 저장하는 것을 특징으로 하는 메모리 관리 방법.
- 제2항에 있어서,
8) 재수행 요청에 근거하여 상기 객체에 대한 제1 트랜잭션을 재수행하는 단계;를 더욱 포함하며,
상기 재수행된 제1 트랜잭션에 근거하여 상기 3) 내지 5) 단계를 더욱 실행하는 것을 특징으로 하는 메모리 관리 방법.
- 제8항에 있어서,
상기 5) 단계 또는 상기 7) 단계 이후,
9) 상기 객체에 대한 적어도 하나 이상의 트랜잭션을 추가 수행하는 단계;를 더욱 포함하며,
상기 추가 수행된 트랜잭션에 근거하여 상기 3) 내지 5) 단계, 또는 상기 6) 내지 7) 단계, 또는 상기 8) 단계 중의 적어도 어느 하나를 더욱 실행하는 것을 특징으로 하는 메모리 관리 방법.
- 제9항에 있어서,
상기 제2 파일은, 각각의 트랜잭션 수행 결과로 생성된 각각의 변환 데이터를 트랜잭션 수행 순서에 근거한 스택 구조로 저장 관리하는 것을 특징으로 하는 메모리 관리 방법.
- 제10항에 있어서,
상기 제2 파일은, 상기 스택 구조로 저장 관리하는 변환 데이터 중 커런트 포인터(current pointer)보다 위에 위치한 변환 데이터는 삭제 관리하는 것- 상기 커런트 포인터는 가장 최근 수행된 트랜잭션의 메모리 페이지 복귀에 직접 필요한 변환 데이터의 위치를 나타냄-을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 트랜잭션 기록은,
보조 기억장치에서의 상기 제1 파일 또는 제2 파일의 주소와,
상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 오프셋(offset) 데이터와,
상기 제1 파일에 저장된 메모리 페이지 또는 제2 파일에 저장된 변환 데이터의 사이즈 중 적어도 어느 하나를 보관하는 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 애플리케이션 프로그램은 CAD 프로그램이며,
상기 객체는 CAD 프로그램의 실행에 의해 생성되는 하나의 기하학적 단위 객체 또는 하나 이상의 단위 객체가 결합된 조합 객체인 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 제1 해시 코드는 상기 1) 단계 또는 상기 3) 단계에서 생성되는 것을 특징으로 하는 메모리 관리 방법.
- 제1항에 있어서,
상기 보조 기억장치는 반도체 기억 소자를 사용한 기억 장치인 것을 특징으로 하는 메모리 관리 방법.
- 하드웨어와 결합되어 제1항 내지 제15항 중의 어느 한 항에 따른 메모리 관리 방법을 실행시키기 위하여 기록 매체에 저장된 컴퓨터 프로그램.
- 제1항 내지 제15항 중의 어느 한 항에 따른 메모리 관리 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140188731A KR101619989B1 (ko) | 2014-12-24 | 2014-12-24 | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140188731A KR101619989B1 (ko) | 2014-12-24 | 2014-12-24 | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101619989B1 true KR101619989B1 (ko) | 2016-05-13 |
Family
ID=56023667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140188731A KR101619989B1 (ko) | 2014-12-24 | 2014-12-24 | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101619989B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017188484A1 (ko) * | 2016-04-29 | 2017-11-02 | 주식회사 울프슨랩 | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20040153718A1 (en) | 1999-10-19 | 2004-08-05 | Shen Andrew W. | Stored memory recovery system |
US7802135B2 (en) | 2007-04-24 | 2010-09-21 | Denso Corporation | Rollback method and information processing apparatus executing the same |
-
2014
- 2014-12-24 KR KR1020140188731A patent/KR101619989B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20040153718A1 (en) | 1999-10-19 | 2004-08-05 | Shen Andrew W. | Stored memory recovery system |
US7802135B2 (en) | 2007-04-24 | 2010-09-21 | Denso Corporation | Rollback method and information processing apparatus executing the same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017188484A1 (ko) * | 2016-04-29 | 2017-11-02 | 주식회사 울프슨랩 | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6629407B2 (ja) | 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品 | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
CN102934114B (zh) | 用于文件系统的检查点 | |
CN106575297B (zh) | 使用盲更新操作的高吞吐量数据修改 | |
US10719404B2 (en) | Excluding files in a block based backup | |
US20160026394A1 (en) | Image processing device, data accessing method, and computer program product | |
US8959293B2 (en) | Data deduplication in a virtualization environment | |
JP6218869B2 (ja) | Ssdへのコピーオンライト用システム及び方法 | |
US20140325148A1 (en) | Data storage devices which supply host with data processing latency information, and related data processing methods | |
CN107564558B (zh) | 实现分散原子i/o写入 | |
CN105493043A (zh) | 用于虚拟机转换的系统和方法 | |
US20200218465A1 (en) | Selective erasure of data in a ssd | |
WO2019174205A1 (zh) | 一种垃圾回收的方法、装置及存储设备 | |
TWI421869B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
CN106469022A (zh) | 存储驱动器的存储管理方法和系统 | |
US10019331B2 (en) | Memory allocation and recovery strategies for byte-addressable non-volatile RAM (NVRAM) | |
CN109313593A (zh) | 存储系统 | |
US10642531B2 (en) | Atomic write method for multi-transaction | |
KR101619989B1 (ko) | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
US10216433B2 (en) | Accessing a virtual volume on a storage array | |
US9766990B1 (en) | Checkpoint block storage device | |
US20170039110A1 (en) | Computer | |
US10055304B2 (en) | In-memory continuous data protection | |
US20130262804A1 (en) | Data duplication system, data duplication method, and program thereof | |
US8977814B1 (en) | Information lifecycle management for binding content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 4 |