Supervisory Thread for External Process Monitoring and Crash Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems lack the ability to externally monitor and control processes such as applications and communication programs, making it difficult to detect and recover from crashes without user intervention, and do not allow for controlled initiation or termination of processes.

Innovation Solution

A supervisory thread is created externally to monitor processes, allowing for automatic crash detection and recovery through a defined recovery plan, and enabling external control over process initiation and termination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If processes run independently with their own internal rules, then each process maintains autonomy and flexibility, but it becomes difficult to externally monitor and control process execution and interactions

Engineering Contradiction:
Improveexternal process controlVSAvoidprocess monitoring system
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a monitor program as an intermediary component that sits between the operating system and user processes. This monitor program externally observes process creation, execution, and termination without requiring modifications to the processes themselves. The monitor program receives notifications from the operating system about process events and can independently determine whether processes are running according to their defined rules, thus enabling external control while maintaining process autonomy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If processes define their own initiation and termination rules internally, then processes maintain independence, but crash detection and recovery require user intervention

Engineering Contradiction:
Improveautomatic crash recoveryVSAvoidcrash detection capability
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The monitor program implements a feedback mechanism by continuously observing process events and comparing actual process behavior against predefined rules. When a process terminates, the monitor program receives a termination notification and automatically determines whether this termination was expected or unexpected based on its monitoring of process rules. This feedback loop enables automatic crash detection and triggers recovery actions without user intervention, improving reliability while maintaining automation.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If a process cannot be terminated from external code, then process autonomy is maintained, but controlled termination and recovery planning are impossible

Engineering Contradiction:
Improveprocess termination controlVSAvoidprocess management flexibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent extracts the termination control capability from the individual processes and centralizes it in the monitor program. The monitor program maintains a set of rules that define when and how processes should be terminated. When a process is no longer needed or has crashed, the monitor program can externally terminate the process by communicating with the operating system, enabling controlled termination and recovery planning without requiring the process itself to have this capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8332826B2Software process monitor
Publication Date: 2012.12.11 UNITED PARCEL SERVICE OF AMERICAN INC
  • US8332826B2 patent drawing
  • US8332826B2 patent drawing
  • US8332826B2 patent drawing

AI summary

A monitor program executes a set of client processes upon reboot of a computer, starts, stops and monitors client processes running on the computer, and/or detects and recovers automatically from process crashes. The program monitors a client process using a supervisory thread it creates when the client process is started, and uses the process's handle to detect its termination. When process termination is detected, the state table within the monitor program is checked to determine if the client process crashed or was exited normally. If the exit was the result of a crash, the program can automatically execute crash recovery using a preconfigured plan.