Preemptive Page Eviction Using Markup Constructs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory management algorithms in computer systems often waste resources by initially writing infrequently accessed pages to faster memory, leading to inefficient use of valuable storage resources, as they rely on time-based monitoring to identify and evict unused pages.
Innovation Solution
Implementing a preemptive page eviction method where a markup construct is used to identify infrequently accessed regions of code or data during software development, allowing development tools to flag these regions for immediate transfer to slower memory levels, thereby avoiding the initial waste of writing them to faster memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory managers use time-based algorithms (LRU/LFU) to determine page allocation, then pages are eventually swapped out based on access patterns, but infrequently accessed pages initially occupy faster memory for extended periods wasting valuable storage resources
Solution Approach 1:
The system performs preliminary identification of infrequently accessed code regions during the compilation phase using markup constructs. This allows the memory manager to preemptively evict these pages to slower memory before they are loaded into faster memory, avoiding the time waste of having them occupy premium storage resources unnecessarily.
Solution Approach 2:
The compilation process itself generates the information needed for memory management decisions. By embedding markup constructs in the source code that identify infrequently accessed regions, the system enables the memory manager to make informed decisions without requiring runtime monitoring and analysis of access patterns.
2Reliability
If memory managers monitor access patterns to make swapping decisions, then pages can be swapped based on actual usage, but this requires large amounts of computational and storage overhead
Solution Approach 1:
Instead of monitoring access patterns at runtime, the system performs the analysis phase during compilation. Markup constructs are inserted into the source code to identify regions that will be infrequently accessed, allowing the memory manager to make decisions based on pre-computed information rather than requiring complex runtime monitoring infrastructure.
Solution Approach 2:
The system extracts the memory management decision-making process from runtime operations and moves it to the compilation phase. By separating the identification of infrequently accessed regions from the actual execution, the system eliminates the need for complex runtime monitoring while maintaining accurate page swapping decisions.
3Speed
If memory managers place pages in faster memory initially, then pages are readily accessible, but infrequently accessed pages waste valuable faster memory storage resources
Solution Approach 1:
The system preemptively identifies and evicts infrequently accessed pages to slower memory before they are needed, based on markup constructs in the source code. This ensures that faster memory capacity is reserved for frequently accessed pages, maximizing the utilization of premium storage resources while maintaining quick access when needed.
Solution Approach 2:
The system applies different memory allocation strategies to different regions of code based on their access characteristics. By identifying specific regions marked with markup constructs as infrequently accessed, the system allocates them to slower memory while keeping frequently accessed regions in faster memory, optimizing the overall memory hierarchy utilization.
Data Source
AI summary
A method, system, and computer program product for preemptive page eviction in a computer system are provided. The method includes identifying a region in an input file for preemptive page eviction, where the identified region is infrequently accessed relative to other regions of the input file. The method also includes generating an output file from the input file, where the identified region is flagged as a page for preemptive page eviction in the output file. The method further includes loading the output file to a memory hierarchy including a faster level of memory and a slower level of memory, wherein the flagged page is preemptively written to the slower level of memory.


