Asynchronous Prefetching of Sharable Memory Pages
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The performance of computer processors is hindered by limitations in available random access memory (RAM), which is costly to increase, necessitating alternative strategies to optimize memory usage.
Innovation Solution
A memory manager identifies and records sharable memory pages that can be swapped between processes, allowing asynchronous prefetching of these pages while a process is running, thereby optimizing memory allocation and reducing bottlenecks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the amount of RAM is increased to reduce memory bottlenecks, then system performance is improved, but cost increases
Solution Approach 1:
The system performs preliminary actions by identifying and recording candidate sharable memory pages before they are needed, and asynchronously prefetching them into memory in advance. This allows the memory manager to have pages ready before processes need them, reducing memory bottlenecks without requiring additional RAM capacity.
Solution Approach 2:
The system creates copies of sharable memory pages in memory for multiple processes to share. Instead of each process requiring its own private copy, the memory manager maintains shared copies that can be accessed by multiple processes, effectively increasing available memory resources without physically adding more RAM.
2Quantity of substance
If memory pages are swapped out to free RAM for other processes, then memory availability is improved, but process resumption time increases
Solution Approach 1:
The system performs preliminary action by asynchronously prefetching candidate sharable memory pages into memory before the process needs them. The memory manager identifies pages that will be needed and loads them in advance, so when the process resumes, the pages are already available in memory rather than needing to be swapped in at that moment.
Solution Approach 2:
The system maintains continuity of useful action by performing asynchronous prefetching operations that continue in the background while processes run. The memory manager continuously monitors and prefetches pages without blocking process execution, ensuring that memory operations proceed continuously without interrupting the main process flow.
3Productivity
If sharable memory pages are repurposed after being swapped out, then memory utilization is improved, but page sharing reliability decreases
Solution Approach 1:
The system performs preliminary action by recording candidate sharable memory pages in a data structure before they are swapped out or repurposed. This record-keeping mechanism ensures that the system tracks which pages are sharable and their associations with processes, allowing reliable reconstruction of sharing relationships even after pages are repurposed or swapped.
Solution Approach 2:
The system implements feedback mechanisms where the memory manager continuously monitors memory page usage and updates the record of candidate sharable pages. When pages are accessed or modified, the system receives feedback and adjusts its prefetching and sharing decisions accordingly, maintaining reliability through adaptive management of shared pages.
Data Source
AI summary
When a process is swapped out of memory, a record of the sharable memory pages of the process is maintained. The sharable memory pages can then be repurposed. When the process is subsequently swapped back into memory, concurrently with the process running the sharable memory pages of the process are prefetched. If during this prefetching the process requests a memory page that is not currently in physical memory, a high priority I/O request is issued for that memory page. The high priority I/O request is placed at the front of an I/O queue, so the high priority I/O request is processed before the pending prefetch requests.


