Contiguous Memory Allocation for Diagnostics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory diagnostics face challenges in effectively checking all memory addresses due to the diagnostic application's memory usage, operating system memory consumption, and dealing with fragmented memory, especially when running on systems like Windows or Linux, where the OS may use significant memory and other applications run concurrently.
Innovation Solution
An apparatus and method for allocating computer memory for memory diagnostics that identifies unreserved memory, requests a portion based on this amount, and determines if the allocation consists of contiguous memory addresses, allowing for efficient memory diagnostic testing by locking the allocated memory to prevent paging to disk.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the diagnostic application requests a large amount of memory to check all memory addresses, then the coverage of memory diagnostics is improved, but the system stability deteriorates due to insufficient memory for the operating system and other applications
Solution Approach 1:
The patent applies partial action by requesting a specific portion of unreserved memory (e.g., 50% or less of total unreserved memory) rather than attempting to allocate all available memory. This ensures sufficient memory remains for the operating system and other applications, maintaining system stability while still achieving comprehensive diagnostic coverage of the allocated portion.
2Adaptability or versatility
If the memory diagnostic application runs on an operating system with other applications, then the adaptability of the diagnostic is improved, but the available memory for diagnostics deteriorates due to OS and application memory consumption
Solution Approach 1:
The patent extracts and utilizes unreserved memory - memory that is not currently allocated to the operating system or other applications. By identifying and allocating from this unreserved pool, the diagnostic can operate in shared system environments without conflicting with OS or application memory requirements, enabling compatibility while preserving available memory resources.
3Ease of operation
If the diagnostic application allocates shared memory regions, then the ease of memory allocation is improved, but the measurement accuracy deteriorates because shared memory may be paged to disk
Solution Approach 1:
The patent performs preliminary identification of unreserved memory regions before allocation, specifically selecting regions that are not subject to paging. This advance selection ensures that the allocated memory remains in physical memory throughout the diagnostic process, eliminating paging-related inaccuracies while maintaining allocation simplicity through automated region selection.
4Measurement precision
If the diagnostic checks all memory addresses including fragmented memory, then the completeness of diagnostics is improved, but the device complexity increases due to fragmented memory management
Solution Approach 1:
The patent segments the memory diagnostic process by first identifying unreserved memory regions, then allocating from these segments. This segmentation approach naturally handles fragmented memory by working with naturally occurring unreserved segments rather than attempting to manage or defragment the entire memory space, reducing complexity while maintaining diagnostic completeness across all allocated segments.
Data Source
AI summary
An apparatus for allocating computer memory for memory diagnostics is disclosed. The apparatus may include a processor and memory that stores code executable by the processor, and may include code that identifies an unreserved amount of memory in a computer system, code that requests a portion of the memory based on the unreserved amount of memory, and code that determines whether an allocated portion of the memory comprises non-contiguous memory addresses. In some embodiments, the apparatus includes code that locks the allocated portion of the memory in response to the allocated portion consisting solely of contiguous memory addresses, and code that performs a memory diagnostic test on the allocated portion of the memory.


