KR102254159B1 - 운영체제 커널 메모리의 실시간 오류 검출 방법 - Google Patents
운영체제 커널 메모리의 실시간 오류 검출 방법 Download PDFInfo
- Publication number
- KR102254159B1 KR102254159B1 KR1020200171585A KR20200171585A KR102254159B1 KR 102254159 B1 KR102254159 B1 KR 102254159B1 KR 1020200171585 A KR1020200171585 A KR 1020200171585A KR 20200171585 A KR20200171585 A KR 20200171585A KR 102254159 B1 KR102254159 B1 KR 102254159B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- kernel
- memory area
- error
- area
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000001514 detection method Methods 0.000 claims abstract description 83
- 230000006870 function Effects 0.000 description 14
- 238000012360 testing method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 206010000117 Abnormal behaviour Diseases 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1024—Identification of the type of error
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 실시예들은 소스 코드 없이 실시간으로 대상 프로세스만을 선택하고 대상 프로세스에 대해서만 운영체제 커널의 메모리 오류를 검사하여 커널의 성능 영향을 최소화할 수 있는 커널 메모리의 실시간 오류 검출 방법 및 오류 검출 장치를 제공한다.
Description
본 발명이 속하는 기술 분야는 운영체제 커널 메모리의 실시간 오류 검출 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
소프트웨어의 버그를 찾기 위해 퍼징(Fuzzing)과 콘콜릭 실행(Concolic Execution)이 널리 사용되고 있다. 퍼징과 콘콜릭 실행을 사용해 새로운 테스트 입력을 생성하고 만약 생성된 테스트 입력을 사용하여 프로그램을 실행시켰을 때 프로그램이 비정상 동작을 일으킨다면 소프트웨어 내의 버그가 있다고 판단한다. 이때 프로그램의 비정상 동작은 프로그램이 강제로 종료되는 것을 말한다. 이 같은 동적 테스트 방법은 버그를 발견하기 위해서 프로그램의 비정상 동작 탐지가 필요하므로 프로그램의 비정상 동작이 발생하지 않는 버그는 발견하지 못한다는 문제가 존재한다.
제시된 문제를 해결하기 위해 프로그램에서 강제 종료가 발생하지 않는 메모리 오류 버그를 발견하기 위해 다양한 메모리 오류 탐지 방법들이 제안되었다. 구글에서는 버퍼 오버플로우와 같은 메모리 오류 발생을 검출하기 위한 어드레스 새니타이저(Address Sanitizer)를 발표하였다.
어드레스 새니타이저는 유저 영역에서 실행되는 하나의 프로세스를 대상으로 메모리 오류 감지를 수행한다. 메모리 오류 감지를 수행하기 위해 유저 프로그램을 컴파일할 때 메모리 할당과 해제에 관련된 함수를 변경한다. 변경된 메모리 할당 함수는 메모리 할당시 할당되는 메모리 공간 앞뒤로 레드존을 생성하고 메모리 주소 영역에 대한 섀도우 메모리 영역을 생성한다.
섀도우 메모리는 메모리의 접근 가능 여부에 대한 정보를 저장하고 있다. 이후 메모리 읽기/쓰기 명령어가 실행되면 접근이 발생한 메모리 주소에 대한 섀도우 메모리 값을 검사한 뒤 접근이 가능한 주소면 정상적으로 프로그램을 실행하고 접근이 불가능한 주소면 오류 메시지를 출력한 뒤 프로그램을 종료시킨다.
어드레스 새니타이저는 소스 코드가 있는 소프트웨어에만 적용이 가능하고 소스 코드가 공개되지 않은 운영체제에 적용하는 것은 곤란한 실정이다.
본 발명의 실시예들은 소스 코드 없이 실시간으로 대상 프로세스만을 선택하고 대상 프로세스에 대해서만 운영체제 커널의 메모리 오류를 검사하여 커널의 성능 영향을 최소화하는 데 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 커널 메모리의 실시간 오류 검출 방법에 있어서, 관리 대상 프로세스를 등록하는 단계; 상기 관리 대상 프로세스를 기준으로 상기 커널의 메모리 주소 공간에 메모리 영역을 할당하는 단계; 상기 커널의 인터럽트 핸들러를 이용하여 상기 메모리 영역에 대해서 메모리 오류를 검출하는 단계; 및 상기 메모리 영역에 대해서 할당 해제하는 단계를 포함하는 커널 메모리의 실시간 오류 검출 방법을 제공한다.
복수의 프로세스가 동시에 실행되는 상황에서, 상기 복수의 프로세스가 상기 커널의 메모리 주소 공간을 공유할 수 있다.
상기 메모리 영역을 할당하는 단계는, 실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하지 않으면 상기 커널의 메모리 주소 공간에 일반 메모리 영역을 할당하는 단계; 및 상기 실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하면 상기 커널의 메모리 주소 공간에 검출 대상 메모리 영역을 할당하는 단계를 포함할 수 있다.
상기 메모리 영역을 할당하는 단계는, 상기 검출 대상 메모리 영역에 레드존을 설정하는 단계; 및 상기 커널의 메모리 주소 공간에 상기 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하는 단계를 포함할 수 있다.
상기 메모리 영역을 할당하는 단계는, 상기 커널의 메모리 주소 공간의 가상 주소에 대한 페이지 접근 권한을 변경하는 단계를 포함하고, 상기 메모리 오류를 검출하는 단계는, 상기 커널의 인터럽트 핸들러에 의한 메모리 오류 검사를 통해 접근을 시도하는 가상 주소가 상기 검출 대상 메모리 영역인지 상기 일반 메모리 영역인지 판별하는 단계를 포함할 수 있다.
상기 메모리 오류를 검출하는 단계는, 상기 가상 주소가 상기 검출 대상 메모리 영역에 해당하면, 상기 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하면 제1 상세 오류 유형 플래그를 갖는 오류 정보를 출력할 수 있다.
상기 가상 주소가 상기 검출 대상 메모리 영역에 해당하면, 상기 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하지 않으면 상기 가상 주소에 대한 페이지 접근 권한을 가능으로 변경한 후, 단일 명령어를 실행하고, 이후 상기 가상 주소에 대한 페이지 접근 권한을 불가로 재설정할 수 있다.
상기 가상 주소가 상기 일반 메모리 영역에 해당하면, 상기 커널에 의해 인터럽트를 처리할 수 있다.
상기 할당 해제하는 단계는, 프로세스에 대한 메모리 할당 해제 요청을 수신하면, 상기 관리 대상 프로세스에 해당여부를 판단하고, 상기 관리 대상 프로세스에 해당하면, 상기 커널의 메모리 주소 공간에 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하고, 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역을 할당 해제할 수 있다.
상기 메모리 오류를 검출하는 단계는, 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역의 가상 주소에 대해서 접근 시도하는 상황이면, 제2 상세 오류 유형 플래그를 갖는 오류 정보를 출력할 수 있다.
본 실시예의 다른 측면에 의하면, 커널 메모리의 오류 검출 장치에 있어서, 관리 대상 프로세스를 등록하는 관리 대상 등록 모듈; 상기 관리 대상 프로세스를 기준으로 상기 커널의 메모리 주소 공간에 메모리 영역을 할당하는 메모리 할당 모듈; 상기 커널의 인터럽트 핸들러를 이용하여 상기 메모리 영역에 대해서 메모리 오류를 검출하는 메모리 오류 검출 모듈; 및 상기 메모리 영역에 대해서 할당 해제하는 메모리 해제 모듈을 포함하는 커널 메모리의 오류 검출 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 소스 코드 없이 실시간으로 대상 프로세스만을 선택하고 대상 프로세스에 대해서만 운영체제 커널의 메모리 오류를 검사하여 커널의 성능 영향을 최소화할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치를 예시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 관리 대상 등록 모듈을 예시한 도면이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 할당 모듈을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치가 처리하는 메모리 영역을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 오류 검출 모듈을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 해제 모듈을 예시한 도면이다.
도 8 내지 도 10은 본 발명의 다른 실시예에 따른 커널 메모리의 실시간 오류 검출 방법을 예시한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 관리 대상 등록 모듈을 예시한 도면이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 할당 모듈을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치가 처리하는 메모리 영역을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 오류 검출 모듈을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 해제 모듈을 예시한 도면이다.
도 8 내지 도 10은 본 발명의 다른 실시예에 따른 커널 메모리의 실시간 오류 검출 방법을 예시한 흐름도이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
기존 메모리 오류 검출 기술은 컴파일 과정에서 메모리 검사 코드를 추가하므로 버그 발견 대상의 소스 코드가 필요하다. 운영체제는 소스 코드가 공개되지 않으므로, 내부 관련 개발자가 아니면 컴파일을 통해 소스 코드를 적용하는 것이 곤란하다.
본 실시예는 메모리 오류 검사에 소스 코드가 필요하지 않으므로, 운영체제에 적용할 수 있다. 운영체제의 소스 코드가 공개되었더라도 소스 코드가 제공되지 않은 장치 드라이버와 같은 제3자가 제공하는 소프트웨어 테스트에도 적용 가능하다.
운영체제 커널은 여러 개의 프로세스가 동시에 실행되므로 기존 메모리 오류 검출 기술은 적용하게 되면 큰 성능 저하가 발생한다. 커널은 프로세스 관리, 메모리 관리, 장치 관리 등의 여러 개의 기능을 동시에 수행하고 있으며 이때 모든 기능이 한 번에 테스트에 사용되지 않는다. 따라서 테스트 대상 프로세스에 한정되지 않고 커널 프로세스 전체를 검사 대상으로 포함하는 것은 주소 공간의 낭비는 물론 속도 측면에서 매우 큰 손해를 보게 된다.
커널은 해당 운영체제 상에서 이루어지는 모든 작업에 관여하기 때문에 사용자 프로세스(user process)와 달리 시간-민감(time-critical)한 문제는 물론 다른 모든 작업에 있어 전반적인 지연을 초래한다. 이러한 지연은 곧 퍼저와 같은 오류 검출 도구로 메모리 오류를 검출하는데 더 많은 시간을 요구하게 된다. 즉, 기존 기술은 커널 전체에 대해서 메모리 오류 검사를 수행하므로 테스트 대상이 아닌 기능에 대한 메모리 오류 검사를 수행하고 이는 성능에 직결된다.
본 실시예는 커널의 모든 프로세스에 대해 메모리 오류 검사를 수행하지 않고 특정 프로세스를 선택하여 메모리 오류 검사를 수행하여 커널의 성능 저하를 최소화한다.
본 실시예는 소프트웨어의 비정상 동작이 발생하는 버그 중 사용자가 버그를 발견하고자 하는 테스트 대상 커널 기능 또는 모듈에 대해서만 선택적으로 메모리 오류 검출을 수행하는 방식을 통해 운영체제 커널에 존재하는 버그 중 소프트웨어의 비정상 동작이 발생하지 않는 버그를 발견한다. 발견 가능한 버그의 유형으로는 힙 버퍼 오버플로우(heap buffer overflow), 해제 후 사용(use-after-free), 임계 구역을 초과한 읽기/쓰기(out-of-bounds read/write)가 있다. 출력되는 오류 정보의 상세 오류 유형 플래그를 이용하여 구분이 가능하다.
도 1은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치를 예시한 블록도이다.
커널 메모리의 오류 검출 장치(100)는 운영체제 커널에서 사용되는 동적 메모리를 관리한다. 커널 메모리의 오류 검출 장치(100)는 관리 대상 프로세스를 등록하는 관리 대상 등록 모듈(110), 관리 대상 프로세스를 기준으로 커널의 메모리 주소 공간에 메모리 영역을 할당하는 메모리 할당 모듈(120), 커널의 인터럽트 핸들러를 이용하여 메모리 영역에 대해서 메모리 오류를 검출하는 메모리 오류 검출 모듈(130), 및 메모리 영역에 대해서 할당 해제하는 메모리 해제 모듈(140)을 포함한다.
관리 대상 등록 모듈(110)은 어떤 프로세스(실행파일)가 메모리 검사 대상이 될지 정한다.
메모리 할당 모듈(120)은 메모리 할당 단계에서는 메모리 할당시 메모리 오류 검출을 위한 추가적인 작업을 수행한다. 이때 메모리 할당시 추가적인 작업을 수행하기 위하여 커널 메모리 할당 함수들에 대해 후킹, 인라인 패치 등의 방법을 사용할 수 있다.
메모리 오류 검출 모듈(130)은 메모리 영역이 사용될 때 메모리 오류가 발생하는지를 검사한다.
메모리 해제 모듈(140)은 메모리 검출을 위해 사용된 추가적인 자원들을 정리한다. 이때 커널 메모리 해제 함수들에 대해 후킹, 인라인 패치 등의 방법을 사용할 수 있다.
도 2는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 관리 대상 등록 모듈을 예시한 도면이다.
관리 대상 등록 모듈(110)은 외부 요청(퍼저, 커널 모듈 개발자 등)을 통해 메모리 오류 검사를 지정할 대상을 관리 모듈이 전달받는다. 이때 요청은 이미 실행되고 있는 커널 프로세스, 실행 파일 형태의 커널 모듈이 될 수 있다. 이후 검출 장치에 pid 등 프로세스 간 식별 가능한 정보를 등록하여 메모리 관리 대상 등록을 완료한다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 할당 모듈을 예시한 도면이다.
메모리 할당 모듈(120)은 커널에서 메모리 할당이 요청되면 관리 대상에 등록된 프로세스의 요청인지 확인한다. 만약 등록된 프로세스의 요청이라면 메모리 할당 함수가 호출될 때 본 실시예에 따라 정의된 알고리즘에 따른 함수가 메모리 할당 함수가 실행되기 전/후 호출된다. 이를 통해 메모리 오류 검사를 선택적으로 수행하여 더욱 효율적인 메모리 오류 검출을 가능하게 한다.
프로세스 필터링 모듈은 커널에서 메모리 할당 관련 함수가 호출되면 인라인 후킹을 통해 해당 메모리 영역이 테스트할 프로세스의 영역인지 확인한다. 테스트 대상 프로세스로 확인되면 대상 메모리 할당 모듈에 요청받은 할당 크기를 전송하며 그렇지 않다면 일반적인 메모리 할당을 수행한다.
도 5는 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치가 처리하는 메모리 영역을 예시한 도면이다.
프로세스 필터링 결과 해당 프로세스가 테스트 프로세스라면 메모리 할당 함수가 실행된 후 메모리 오류를 검출하기 위한 추가적인 동작이 수행된다. 먼저 메모리 할당을 수행할 때 요청된 메모리의 크기보다 더 큰 크기의 메모리를 기존 메모리 영역과 분리된 영역에 할당한다.
커널 메모리 영역과 메모리 생성 모듈이 해당 영역에 할당하는 과정을 살펴보면, 커널 어드레스 새니타이저는 할당 영역을 구분하지 않고 모든 메모리 할당을 일반적인 메모리 할당 영역에서 진행하게 된다. 이와 다르게 본 실시예는 검출 대상 프로세스가 사용하는 오류 검출 대상 메모리 영역을 구분하여 사용한다.
도 5에서 오류 검출 대상 메모리 영역이 일반적으로 할당되는 메모리와 구분된 영역에 할당되는 것을 확인할 수 있다. 이러한 작업을 통해 검사 대상 프로세스에 속하는 객체만 메모리 오류 검출을 수행한다. 검출 대상 프로세스가 할당하는 객체에 대해서만 레드존을 생성한다.
레드존을 효율적으로 검사하기 위해 섀도우 메모리는 기존 방법과 다르게 오류 검출 대상 메모리 할당 영역에 대해서만 생성되고 해당 영역 메모리의 접근 가능여부를 기록하고 있다. 레드존과 섀도우 메모리를 생성한 뒤 마지막으로 할당된 메모리의 권한을 변경한다. 메모리의 권한을 접근 불가로 변경하여 해당 메모리에 접근이 발생하면 인터럽트를 발생시켜 메모리 오류 검출을 수행한다.
도 6은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 오류 검출 모듈을 예시한 도면이다.
대상 메모리 할당 모듈이 메모리 오류를 검출하고자 하는 메모리 영역에 대해서 접근 권한을 제거했으므로 프로세스에서 해당 메모리에 읽기 또는 쓰기와 같은 접근을 시도하면 페이지 접근 불가 인터럽트가 발생하게 된다.
인터럽트가 발생할 경우 페이지 오류 핸들러는 주소 검사 장치로 해당 메모리 오류 정보를 전달한다. 이 때 전달되는 정보는 접근 시도한 메모리의 주소이며 해당 정보를 이용하여 주소 검사 장치는 관리 대상 메모리에서 발생한 인터럽트인지 확인한다.
만약 관리 대상 메모리에서 발생했다면 해당 주소에 대한 섀도우 메모리 검사를 수행하여 메모리 오류가 발생하였는지 확인하고 오류가 발생하였다면 오류 정보를 출력한다. 이때 오류 정보는 오류 발생 주소, 상세 오류 종류, 섀도우 메모리 정보가 포함한다.
만약 관리 대상 메모리에서 발생한 인터럽트가 아닌 경우, 커널의 원래 페이지 접근 불가 오류 핸들러를 호출하며 이후 처리는 커널에 맡긴다.
섀도우 메모리 확인 과정을 마친 후 임시로 페이지를 접근 가능하게 만들며 이후 단일 실행을 통해 명령을 실행한다. 그 후 다시 페이지를 접근 불가로 설정한 후 종료한다. 이를 통해 같은 가상 주소에 대한 반복적인 접근에 대해서도 메모리 오류 검출을 수행할 수 있다.
도 7은 본 발명의 일 실시예에 따른 커널 메모리의 오류 검출 장치의 메모리 해제 모듈을 예시한 도면이다.
메모리의 사용이 끝나고 관리 대상 등록 모듈(110)로 메모리 할당 해제가 요청되면 테스트 대상 프로세스인지를 필터링한다. 필터링한 뒤 테스트 대상 프로세스일 경우 메모리 오류 검출을 위한 메모리 할당이 이루어졌기 때문에 이를 처리하기 위한 메모리 해제 모듈에서 섀도우 메모리 설정과 요청 메모리 할당 해제 과정을 거치며 테스트 대상 프로세스가 아닐 경우 일반적인 메모리 할당 해제를 수행한다.
도 8 내지 도 10은 본 발명의 다른 실시예에 따른 커널 메모리의 실시간 오류 검출 방법을 예시한 흐름도이다. 커널 메모리의 실시간 오류 검출 방법은 커널 메모리의 오류 검출 장치에 의해 수행될 수 있다.
도 8을 참조하면, 단계 S210에서 관리 대상 프로세스를 등록한다. 단계 S220에서 관리 대상 프로세스를 기준으로 커널의 메모리 주소 공간에 메모리 영역을 할당한다. 단계 S230에서 커널의 인터럽트 핸들러를 이용하여 메모리 영역에 대해서 메모리 오류를 검출한다. 단계 S240에서 메모리 영역에 대해서 할당 해제한다.
도 9를 참조하면, 단계 S310에서 관리 대상 프로세스를 등록한다. 복수의 프로세스가 동시에 실행되는 상황에서, 복수의 프로세스가 커널의 메모리 주소 공간을 공유한다.
단계 S320에서 메모리 할당 요청 프로세스를 판별한다. 메모리 영역을 할당하는 단계는, 실행 요청된 프로세스가 관리 대상 프로세스에 해당하지 않으면 커널의 메모리 주소 공간의 일반 메모리 영역에 메모리를 할당하는 단계를 포함하고, 실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하면 커널의 메모리 주소 공간의 검출 대상 메모리 영역에 메모리를 할당하는 단계를 포함한다.
단계 S330에서 레드존 및 섀도우 메모리를 생성한다. 메모리 영역을 할당하는 단계는 검출 대상 메모리 영역에 레드존을 설정하는 단계를 포함하고, 커널의 메모리 주소 공간에 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하는 단계를 포함한다.
단계 S340에서 할당 요청된 메모리의 가상 주소에 대한 페이지 접근 불가를 설정한다. 메모리 영역을 할당하는 단계는 커널의 메모리 주소 공간의 가상 주소에 대한 페이지 접근 권한을 변경하는 단계를 포함한다.
메모리 오류를 검출하는 단계는 커널의 인터럽트 핸들러에 의한 메모리 오류 검사를 통해 접근을 시도하는 가상 주소가 검출 대상 메모리 영역인지 일반 메모리 영역인지 판별하는 단계를 포함한다.
도 10을 참조하면, 단계 S410에서 페이지 접근 불가 오류가 발생했는지 판단한다. 단계 S420에서 모든 페이지 접근 불가 오류에 대한 관리 대상 메모리를 판별한다. 단계 S430에서 관리 대상 메모리의 섀도우 메모리 정보를 통한 메모리 오류를 감지한다. 단계 S440에서 메모리 오류 정보를 출력한다.
메모리 오류를 검출하는 단계는, 가상 주소가 상기 검출 대상 메모리 영역에 해당하면, 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하면 제1 상세 오류 유형 플래그(임계 구역 초과)를 갖는 오류 정보를 출력한다.
단계 S450에서 페이지 접근 불가 오류가 발생한 가상 주소에 대한 페이지 접근 가능을 설정한다. 단계 S460에서 단일 명령어를 실행한다. 단계 S470에서 페이지 접근 불가 오류가 발생한 가상 주소에 대한 페이지 접근 불가를 설정한다.
가상 주소가 검출 대상 메모리 영역에 해당하면, 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하지 않으면 가상 주소에 대한 페이지 접근 권한을 가능으로 설정하고, 단일 명령어를 실행하고, 이후 가상 주소에 대한 페이지 접근 권한을 불가로 재설정한다.
가상 주소가 일반 메모리 영역에 해당하면, 커널에 의해 인터럽트를 처리한다.
단계 S510에서 메모리 할당 해제 요청을 판단한다. 단계 S520에서 모든 메모리 할당 해제 요청에 대한 관리 대상 메모리를 판별한다. 단계 S530에서 해제 요청된 메모리 주소에 대한 섀도우 메모리를 설정한다. 단계 S540에서 해제 요청된 메모리 주소에 대한 메모리를 해제한다.
할당 해제하는 단계는, 프로세스에 대한 메모리 할당 해제 요청을 수신하면, 실행 요청된 프로세스가 관리 대상 프로세스인지 해당여부를 판단하고, 관리 대상 프로세스에 해당하면, 커널의 메모리 주소 공간에 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하고, 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역을 할당 해제한다.
메모리 오류를 검출하는 단계는, 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역의 가상 주소에 대해서 접근 시도하는 상황이면, 제2 상세 오류 유형 플래그(해제 후 사용)를 갖는 오류 정보를 출력한다.
커널 메모리의 오류 검출 장치는 적어도 하나의 프로세서, 컴퓨터 판독 가능한 저장매체 및 통신 버스를 포함할 수 있다.
프로세서는 커널 메모리의 오류 검출 장치로 동작하도록 제어할 수 있다. 예컨대, 프로세서는 컴퓨터 판독 가능한 저장 매체에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 컴퓨터 실행 가능 명령어는 프로세서에 의해 실행되는 경우 커널 메모리의 오류 검출 장치로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능한 저장 매체는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체에 저장된 프로그램은 프로세서에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독한 가능 저장 매체는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 커널 메모리의 오류 검출 장치에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스는 프로세서, 컴퓨터 판독 가능한 저장 매체를 포함하는 커널 메모리의 오류 검출 장치의 다른 다양한 컴포넌트들을 상호 연결한다.
커널 메모리의 오류 검출 장치는 또한 하나 이상의 입출력 장치를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스 및 하나 이상의 통신 인터페이스를 포함할 수 있다. 입출력 인터페이스 및 통신 인터페이스는 통신 버스에 연결된다. 입출력 장치는 입출력 인터페이스를 통해 커널 메모리의 오류 검출 장치의 다른 컴포넌트들에 연결될 수 있다.
커널 메모리의 오류 검출 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
커널 메모리의 오류 검출 장치는 하드웨어적 요소가 마련된 컴퓨팅 디바이스 또는 서버에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스 또는 서버는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
도 8 내지 도 10에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 8 내지 도 10에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (15)
- 커널 메모리의 실시간 오류 검출 방법에 있어서,
관리 대상 프로세스를 등록하는 단계;
상기 관리 대상 프로세스를 기준으로 상기 커널의 메모리 주소 공간에 메모리 영역을 할당하는 단계;
상기 커널의 인터럽트 핸들러를 이용하여 상기 메모리 영역에 대해서 메모리 오류를 검출하는 단계; 및
상기 메모리 영역에 대해서 할당 해제하는 단계를 포함하며,
상기 메모리 영역을 할당하는 단계는,
실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하지 않으면 상기 커널의 메모리 주소 공간의 일반 메모리 영역에 메모리를 할당하는 단계; 및
상기 실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하면 상기 커널의 메모리 주소 공간의 검출 대상 메모리 영역에 메모리를 할당하는 단계를 포함하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제1항에 있어서,
복수의 프로세스가 동시에 실행되는 상황에서, 상기 복수의 프로세스가 상기 커널의 메모리 주소 공간을 공유하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 삭제
- 제1항에 있어서,
상기 메모리 영역을 할당하는 단계는,
상기 검출 대상 메모리 영역에 레드존을 설정하는 단계; 및
상기 커널의 메모리 주소 공간에 상기 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하는 단계를 포함하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제4항에 있어서,
상기 메모리 영역을 할당하는 단계는,
상기 커널의 메모리 주소 공간의 가상 주소에 대한 페이지 접근 권한을 변경하는 단계를 포함하고,
상기 메모리 오류를 검출하는 단계는,
상기 커널의 인터럽트 핸들러에 의한 메모리 오류 검사를 통해 접근을 시도하는 가상 주소가 상기 검출 대상 메모리 영역인지 상기 일반 메모리 영역인지 판별하는 단계를 포함하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제5항에 있어서,
상기 메모리 오류를 검출하는 단계는,
상기 가상 주소가 상기 검출 대상 메모리 영역에 해당하면,
상기 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하면 제1 상세 오류 유형 플래그를 갖는 오류 정보를 출력하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제5항에 있어서,
상기 가상 주소가 상기 검출 대상 메모리 영역에 해당하면,
상기 섀도우 메모리 영역을 검사하여 메모리 오류를 확인하고, 오류에 해당하지 않으면 상기 가상 주소에 대한 페이지 접근 권한을 가능으로 변경한 후 단일 명령어를 실행하고, 이후 상기 가상 주소에 대한 페이지 접근 권한을 불가로 재설정하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제5항에 있어서,
상기 가상 주소가 상기 일반 메모리 영역에 해당하면, 상기 커널에 의해 인터럽트를 처리하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제1항에 있어서,
상기 할당 해제하는 단계는,
프로세스에 대한 메모리 할당 해제 요청을 수신하면, 상기 관리 대상 프로세스에 해당여부를 판단하고,
상기 관리 대상 프로세스에 해당하면, 상기 커널의 메모리 주소 공간에 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하고, 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역을 할당 해제하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 제9항에 있어서,
상기 메모리 오류를 검출하는 단계는,
상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역의 가상 주소에 대해서 접근 시도하는 상황이면, 제2 상세 오류 유형 플래그를 갖는 오류 정보를 출력하는 것을 특징으로 하는 커널 메모리의 실시간 오류 검출 방법. - 커널 메모리의 오류 검출 장치에 있어서,
관리 대상 프로세스를 등록하는 관리 대상 등록 모듈;
상기 관리 대상 프로세스를 기준으로 상기 커널의 메모리 주소 공간에 메모리 영역을 할당하는 메모리 할당 모듈;
상기 커널의 인터럽트 핸들러를 이용하여 상기 메모리 영역에 대해서 메모리 오류를 검출하는 메모리 오류 검출 모듈; 및
상기 메모리 영역에 대해서 할당 해제하는 메모리 해제 모듈을 포함하며,
상기 메모리 할당 모듈은,
실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하지 않으면 상기 커널의 메모리 주소 공간의 일반 메모리 영역에 메모리를 할당하고,
상기 실행 요청된 프로세스가 상기 관리 대상 프로세스에 해당하면 상기 커널의 메모리 주소 공간의 검출 대상 메모리 영역에 메모리를 할당하는 것을 특징으로 하는 커널 메모리의 오류 검출 장치. - 제11항에 있어서,
복수의 프로세스가 동시에 실행되는 상황에서, 상기 복수의 프로세스가 상기 커널의 메모리 주소 공간을 공유하는 것을 특징으로 하는 커널 메모리의 오류 검출 장치. - 삭제
- 제11항에 있어서,
상기 메모리 할당 모듈은 상기 검출 대상 메모리 영역에 레드존을 설정하고, 상기 커널의 메모리 주소 공간에 상기 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하고, 상기 커널의 메모리 주소 공간의 가상 주소에 대한 페이지 접근 권한을 변경하고,
상기 메모리 오류 검출 모듈은 상기 커널의 인터럽트 핸들러에 의한 메모리 오류 검사를 통해 접근을 시도하는 가상 주소가 상기 검출 대상 메모리 영역인지 상기 일반 메모리 영역인지 판별하는 것을 특징으로 하는 커널 메모리의 오류 검출 장치. - 제11항에 있어서,
상기 메모리 해제 모듈은,
프로세스에 대한 메모리 할당 해제 요청을 수신하면, 상기 관리 대상 프로세스에 해당여부를 판단하고,
상기 관리 대상 프로세스에 해당하면, 상기 커널의 메모리 주소 공간에 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역에 대한 섀도우 메모리 영역을 할당하고, 상기 메모리 할당 해제 요청에 대응하는 검출 대상 메모리 영역을 할당 해제하는 것을 특징으로 하는 커널 메모리의 오류 검출 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200171585A KR102254159B1 (ko) | 2020-12-09 | 2020-12-09 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
US18/256,702 US20240095174A1 (en) | 2020-12-09 | 2021-12-06 | Method for detecting error of operating system kernel memory in real time |
PCT/KR2021/018312 WO2022124720A1 (ko) | 2020-12-09 | 2021-12-06 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200171585A KR102254159B1 (ko) | 2020-12-09 | 2020-12-09 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102254159B1 true KR102254159B1 (ko) | 2021-05-18 |
Family
ID=76158508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200171585A KR102254159B1 (ko) | 2020-12-09 | 2020-12-09 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240095174A1 (ko) |
KR (1) | KR102254159B1 (ko) |
WO (1) | WO2022124720A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022124720A1 (ko) * | 2020-12-09 | 2022-06-16 | 연세대학교 산학협력단 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
US12061802B2 (en) | 2021-12-23 | 2024-08-13 | Electronics And Telecommunications Research Institute | Dynamic memory management apparatus and method and computer-readable storage medium for the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573419B (zh) * | 2024-01-16 | 2024-04-26 | 上海芯联芯智能科技有限公司 | 一种页面异常处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100645983B1 (ko) * | 2005-08-31 | 2006-11-14 | (주)와이즈로직 | 불법 프로세스 검출 모듈 및 그 방법 |
KR20130131026A (ko) * | 2012-05-23 | 2013-12-03 | 엠디에스테크놀로지 주식회사 | 실시간 커널의 프로세스 별 메모리 사용량 및 오류 감지 방법 |
JP2014067214A (ja) * | 2012-09-26 | 2014-04-17 | Kyocera Document Solutions Inc | エラーチェック装置及びプログラム |
KR102044075B1 (ko) | 2017-12-04 | 2019-11-12 | 한국과학기술원 | 메모리 오류 감지 방법 |
KR20190135337A (ko) * | 2018-05-28 | 2019-12-06 | 삼성전자주식회사 | 메모리 오류를 검출하는 방법 및 시스템 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101155123B1 (ko) * | 2010-10-26 | 2012-06-11 | 한국과학기술원 | 커널 코드의 오류로부터 응용 프로그램의 메모리를 보호하는 장치 및 방법 |
KR102254159B1 (ko) * | 2020-12-09 | 2021-05-18 | 연세대학교 산학협력단 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
-
2020
- 2020-12-09 KR KR1020200171585A patent/KR102254159B1/ko active IP Right Grant
-
2021
- 2021-12-06 WO PCT/KR2021/018312 patent/WO2022124720A1/ko active Application Filing
- 2021-12-06 US US18/256,702 patent/US20240095174A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100645983B1 (ko) * | 2005-08-31 | 2006-11-14 | (주)와이즈로직 | 불법 프로세스 검출 모듈 및 그 방법 |
KR20130131026A (ko) * | 2012-05-23 | 2013-12-03 | 엠디에스테크놀로지 주식회사 | 실시간 커널의 프로세스 별 메모리 사용량 및 오류 감지 방법 |
JP2014067214A (ja) * | 2012-09-26 | 2014-04-17 | Kyocera Document Solutions Inc | エラーチェック装置及びプログラム |
KR102044075B1 (ko) | 2017-12-04 | 2019-11-12 | 한국과학기술원 | 메모리 오류 감지 방법 |
KR20190135337A (ko) * | 2018-05-28 | 2019-12-06 | 삼성전자주식회사 | 메모리 오류를 검출하는 방법 및 시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022124720A1 (ko) * | 2020-12-09 | 2022-06-16 | 연세대학교 산학협력단 | 운영체제 커널 메모리의 실시간 오류 검출 방법 |
US12061802B2 (en) | 2021-12-23 | 2024-08-13 | Electronics And Telecommunications Research Institute | Dynamic memory management apparatus and method and computer-readable storage medium for the same |
Also Published As
Publication number | Publication date |
---|---|
US20240095174A1 (en) | 2024-03-21 |
WO2022124720A1 (ko) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102254159B1 (ko) | 운영체제 커널 메모리의 실시간 오류 검출 방법 | |
US20070006172A1 (en) | Method and system of identifying overlays used by a program | |
US10241894B2 (en) | Data-scoped dynamic data race detection | |
US7363544B2 (en) | Program debug method and apparatus | |
US9501344B2 (en) | Data dump for a memory in a data processing system | |
US10671548B2 (en) | Memory initialization detection system | |
CN113485834A (zh) | 共享内存管理方法、装置、计算机设备和存储介质 | |
Calderón et al. | GMAI: Understanding and exploiting the internals of GPU resource allocation in critical systems | |
JP5392263B2 (ja) | 情報処理装置及びそのメモリ保護方法 | |
US8910004B2 (en) | Information processing apparatus, and method of controlling information processing apparatus | |
US9983914B2 (en) | Memory corruption protection by tracing memory | |
US10417121B1 (en) | Monitoring memory usage in computing devices | |
Calderón et al. | Understanding and exploiting the internals of GPU resource allocation for critical systems | |
CN117149644A (zh) | 内存溢出检测方法、装置、操作系统、设备及存储介质 | |
JP2016537730A (ja) | 割り付けられていないメモリ、または初期化されていないメモリに対するリード・アクセスを検出すること | |
US20150378799A1 (en) | Automatic memory leak detection | |
US20080184365A1 (en) | Information processing method, information processing apparatus, information processing program, and recording medium on which the program is recorded | |
US9691503B2 (en) | Allocation technique for memory diagnostics | |
CN113157513B (zh) | 一种堆内存破坏检测方法、装置、电子设备及存储介质 | |
KR20220095986A (ko) | 임베디드 프로세서의 소스 코드의 컴파일링 방법 및 컴파일러 | |
JP2008071356A (ja) | 割込禁止区間処理装置および方法とページ固定装置および方法 | |
JP4984303B2 (ja) | 後処理カーネルのダイナミックリンキングおよびダイナミックローディング | |
US11914512B2 (en) | Writeback overhead reduction for workloads | |
JP5540890B2 (ja) | 障害処理プログラム、制御方法、及び情報処理装置 | |
US6289435B1 (en) | Re-use of special purposed registers as general purpose registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |