Process Reflection for Non-Disruptive Software Diagnosis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional live diagnosis techniques for processes on computing devices are disruptive to users, often requiring suspension of the process for extended periods, which can last from tens of seconds to several hours or days, and may prevent process restart until diagnosis is complete.

Innovation Solution

Process reflection techniques create a reflected process that allows analysis to be performed while the target process continues executing, enabling diagnosis and debugging with minimal user disruption by replicating the target process's data to create a reflected process for analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional live diagnosis techniques are used to analyze a process, then diagnosis and debugging can be performed, but the process must be suspended for extended periods causing user disruption

Engineering Contradiction:
Improvediagnosis capabilityVSAvoiduser disruption
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent creates a reflected process that is a copy of the target process, allowing diagnosis to be performed on the reflected process while the target process continues to run. The reflection module copies the target process's memory space, registers, and other state information to create this reflected copy, enabling non-disruptive analysis through the copy rather than the original.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent separates the diagnosis function from the target process by creating a distinct reflected process. The reflection module divides the system into the running target process and the analyzed reflected process, allowing them to operate independently without interfering with each other's execution.

Inventive Principle:
Principle #1Segmentation

2Reliability

If traditional live diagnosis techniques are used, then process problems can be identified, but the process cannot be restarted until diagnosis is complete

Engineering Contradiction:
Improvediagnosis capabilityVSAvoidprocess downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By performing diagnosis on a reflected process copy rather than the target process itself, the target process can be restarted immediately after the triggering event without waiting for lengthy diagnosis to complete. The diagnosis occurs in parallel on the reflected process, eliminating the sequential dependency that causes downtime.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The target process continues to execute normally while the reflected process undergoes diagnosis, maintaining continuous useful action. The reflection module enables the target process to remain operational throughout the diagnosis period, rather than being suspended.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If process suspension is used for diagnosis, then analysis can be performed, but user experience deteriorates due to disruption

Engineering Contradiction:
Improvediagnosis accuracyVSAvoiduser experience
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The reflection module creates a reflected process that accurately replicates the target process's state, allowing precise diagnosis measurements to be taken from the copy without affecting the user's interaction with the original process. The copied memory space and registers maintain the necessary fidelity for accurate analysis.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7908521B2Process reflection
Publication Date: 2011.03.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7908521B2 patent drawing
  • US7908521B2 patent drawing
  • US7908521B2 patent drawing

AI summary

Process reflection techniques are described in which a reflected process is created to facilitate analysis of a process. Events are detected to initiate reflection of a target process. Process reflection of a target process may be initiated by an external process or by the target process itself. A reflected process of the target process is created. In an implementation, data defining the target process is replicated, copied, or otherwise collected from the target process to create the reflected process. Then, analysis may be performed on the reflected process while execution of the target process continues.