Embedded Low-Level OS Memory Isolation for Fast App Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing embedded electronic systems face challenges in managing multiple applications independently and optimizing memory usage, particularly in terms of data security and efficient allocation of volatile and non-volatile memory resources.
Innovation Solution
An embedded electronic system with a low-level operating system that manages volatile memory allocation for multiple high-level operating systems, ensuring data isolation and efficient use by reserving portions for different applications, transferring data between volatile and non-volatile memory as needed, and allowing high-level systems to access a virtual image of the memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If high-level operating systems directly manage physical memories, then memory management flexibility is improved, but application switching speed deteriorates and memory allocation efficiency worsens
Solution Approach 1:
A low-level operating system is introduced as an intermediary between high-level operating systems and physical memory. The low-level OS manages the actual memory allocation and virtualization, while high-level OSs interact with virtual memory interfaces. This mediator enables fast application switching by pre-managing memory pages and allowing seamless transitions without direct high-level OS intervention in physical memory management.
Solution Approach 2:
Memory management is segmented into two layers: virtual memory management handled by high-level operating systems for flexibility, and physical memory management handled by the low-level operating system for efficiency. This segmentation allows each layer to operate independently with optimized strategies - virtual memory can be freely allocated while physical memory uses efficient page-based management for rapid switching.
2Speed
If volatile memory is fully allocated to active applications, then execution speed is improved, but memory availability for other applications deteriorates
Solution Approach 1:
The memory allocation system dynamically adjusts volatile memory distribution based on application state. Active applications receive full volatile memory allocation for maximum execution speed, while standby applications maintain minimal allocations. The low-level OS continuously monitors and reallocates memory pages between active and standby applications, ensuring both speed for running apps and availability for switching to other apps when needed.
Solution Approach 2:
Memory pages for standby applications are pre-loaded and kept in a ready state with minimal volatile memory allocation. When an application needs to switch to standby mode, its memory is already prepared and can be quickly activated without full allocation, thus maintaining execution speed for active apps while preserving memory availability for future switches.
3Quantity of substance
If data is transferred between volatile and non-volatile memory during application switching, then memory optimization is improved, but switching time increases
Solution Approach 1:
Instead of transferring all application data between volatile and non-volatile memory during switching, only essential memory pages are transferred or retained. The low-level OS identifies and keeps only critical pages in volatile memory for standby applications, while less critical data remains in non-volatile memory. This partial action approach optimizes memory usage while minimizing switching time by avoiding complete data transfers.
Solution Approach 2:
Different quality levels of memory retention are applied to different data segments. Critical application data maintains high-quality volatile memory presence for fast access, while non-critical data uses lower-quality non-volatile storage. This local quality differentiation allows optimization of memory usage for each data type while maintaining acceptable switching performance by keeping only essential data in fast memory.
Data Source
AI summary
An embedded electronic system includes a volatile memory and a processor configured to execute a low-level operating system that manages allocation of areas of the volatile memory to a plurality of high-level operating systems. Each high-level operating system executes one or more applications. The system is configured so that execution data of one or a plurality of tasks of a first application are partly transferred, by the low-level operating system, from the volatile memory to a non-volatile memory when the execution of the task of the first application is interrupted by the execution of a task of a second application. The system is also configured so that the applications of any one of the high-level operating systems do not have access to the areas of the volatile memory allocated to the applications of all the other high-level operating systems.


