Program Memory Management for Asynchronous Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programs that experience long periods of inactivity between events require cumbersome state-saving and loading mechanisms to conserve resources, complicating the development process.

Innovation Solution

A mechanism that allows a program to be removed from memory when waiting for asynchronous operations to complete, using a history store to record completion data for re-execution upon response receipt, enabling efficient handling of asynchronous operations without manual state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If the program saves its state to storage between events, then the program can be shut down and removed from memory to conserve resources, but this requires cumbersome code that manually saves and loads state

Engineering Contradiction:
Improvememory resource usageVSAvoidcode complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The execution environment automatically performs state persistence and restoration without requiring manual intervention from the program. The system self-manages saving program state to storage and restoring it when needed, eliminating the need for programmers to write explicit save/load code while still enabling memory resource conservation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an execution environment as an intermediary layer between the program and the storage system. This intermediary automatically handles the complex state management operations, shielding the program from the complexity of manual state persistence while enabling efficient resource usage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If the program remains in memory during idle periods, then it can respond faster to events, but computing resources are wasted during periods of inactivity

Engineering Contradiction:
Improveevent response speedVSAvoidmemory resource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary actions by automatically saving program state to storage before shutting down the program during idle periods. When an event occurs, the state is already persisted and can be quickly restored, enabling fast event response without continuously occupying memory resources during inactive periods.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic memory management where programs can be shut down and removed from memory during idle periods, then dynamically restored when events occur. This dynamic approach allows the system to adapt memory usage based on actual activity levels, improving resource efficiency while maintaining responsive event handling.

Inventive Principle:
Principle #15Dynamics

3Use of energy by moving object

If the program is shut down between events to conserve memory, then resources are optimized, but the program must be re-executed and state must be restored from storage

Engineering Contradiction:
Improvememory resource efficiencyVSAvoidstate restoration time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The execution environment performs preliminary state persistence automatically before program termination. By pre-saving the program state to storage in an optimized manner, the system minimizes the time required for state restoration when the program is re-executed, thus reducing the overall time loss despite the shutdown cycle.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11036551B2Durable program execution
Publication Date: 2021.06.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11036551B2 patent drawing
  • US11036551B2 patent drawing
  • US11036551B2 patent drawing

AI summary

Aspects of the subject matter described herein relate to durable program execution. In aspects, a mechanism is described that allows a program to be removed from memory when the program is waiting for an asynchronous operation to complete. When a response for the asynchronous operation is received, completion data is stored in a history, the program is re-executed and the completion data in the history is used to complete the asynchronous operation. The above actions may be repeated until no more asynchronous operations in the history are pending completion.