Dispatcher Stack Context Switching for Multi-Core Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor systems, the use of shared run queues for process dispatching can lead to deadlock situations due to the lack of adequate context save and restore mechanisms, resulting in inefficient load balancing and resource allocation among processors.

Innovation Solution

Allocating a dispatcher stack to each processor sharing the run queue allows for context saving and restoring without inter-processor competition, ensuring that context switches are completed before proceeding, thus preventing deadlock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a shared run queue is used for process dispatching among multiple processors, then load balancing and resource allocation are simplified, but deadlock situations occur due to lack of adequate context save and restore mechanisms

Engineering Contradiction:
Improveload balancingVSAvoiddeadlock prevention
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent divides the shared run queue access into separate phases: context save phase and context restore phase. Each processor has its own stack for saving context during the context save phase, while the shared run queue is accessed during the context restore phase. This segmentation eliminates deadlock by preventing simultaneous access to both the shared run queue and stacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs context save operations before accessing the shared run queue. By saving the context of the current process and preparing the next process context in advance, the system ensures that the shared run queue is accessed only when no processor is currently saving context, preventing deadlock conditions.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a local run queue is used for process scheduling, then scalability is improved and cache efficiency is enhanced, but load balancing and resource allocation become complex and costly

Engineering Contradiction:
ImprovescalabilityVSAvoidload balancing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the advantages of local run queues (individual processor stacks for context save) with the benefits of shared run queues (simplified load balancing). Each processor maintains its own stack for context management while sharing a common run queue for process scheduling, achieving both scalability and simplified resource allocation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a mediator mechanism that coordinates between individual processor stacks and the shared run queue. The stack save/restore mechanism acts as an intermediary layer that enables safe sharing of the run queue without requiring explicit inter-processor communication for load balancing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If context save and restore operations are performed without dedicated stacks, then memory usage is reduced, but inter-processor competition and deadlock likelihood increase

Engineering Contradiction:
Improvememory usageVSAvoiddeadlock prevention
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the context save/restore operations into dedicated phases with dedicated stacks for each processor. This segmentation ensures that context save operations on one processor do not interfere with context restore operations on other processors, eliminating deadlock while maintaining efficient memory usage through phased access to the shared run queue.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9619277B2Computer with plurality of processors sharing process queue, and process dispatch processing method
Publication Date: 2017.04.11 HITACHI VANTARA LTD
  • US9619277B2 patent drawing
  • US9619277B2 patent drawing
  • US9619277B2 patent drawing

AI summary

A dispatcher stack is allocated to each of a plurality of processors sharing a run queue. Each processor, in process dispatch processing, saves in a switch-source process stack the context of a switch-source process (the process being run), saves in the dispatcher stack of each of the processors a dispatcher context, inserts the switch-source process into the run queue, removes a switch-destination process from the run queue, and, in addition, restores the context of the switch-destination process from the switch-destination process stack.