Worker Session Mediates GPU Access for Isolated Services

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Remote presentation session services in isolated sessions, such as session 0 in Microsoft Windows, lack access to system resources like the GPU, hindering performance in tasks like image compression and rendering due to security constraints and session isolation.

Innovation Solution

A remote presentation session server creates a persistent 'worker session' that allows services in session 0 to access the GPU by instantiating a graphics stack and hosting a worker process responsible for GPU operations, ensuring uninterrupted service and efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If session 0 is isolated for security purposes, then security is improved, but access to system resources like GPU is lost

Engineering Contradiction:
ImprovesecurityVSAvoidaccess to system resources
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a worker session as an intermediary between session 0 and the GPU. Session 0 communicates GPU operation requests to the worker session, which then executes these requests directly on the GPU. This mediator approach allows session 0 to indirectly access GPU resources without breaking security isolation, as the worker session acts as a controlled interface that translates high-level requests into GPU operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If standard user session is used to enable GPU access, then GPU access is improved, but session stability deteriorates due to user logoff terminating processes

Engineering Contradiction:
ImproveGPU accessVSAvoidsession stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the session structure into multiple distinct sessions with specific roles: session 0 for security-isolated service execution, user sessions for interactive applications, and a dedicated worker session for GPU operations. This segmentation allows each session to have optimized characteristics - the worker session can be configured for persistent GPU access without being tied to user login state, while maintaining security isolation for session 0.

Inventive Principle:
Principle #1Segmentation

3Power

If GPU operations are performed in session 0, then graphics processing capability is improved, but service interruption occurs when user logs off

Engineering Contradiction:
Improvegraphics processing capabilityVSAvoidservice continuity
Core Design Contradiction:
PowerVSDuration of action of stationary object

Solution Approach 1:

The system performs preliminary action by pre-establishing the worker session and configuring it with GPU access permissions before user sessions are created or terminated. This worker session is configured to persist independently of user login state, ensuring that GPU operations can continue uninterrupted. The worker session is prepared in advance to handle GPU requests from session 0 without being affected by user logoff events.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2580658B1Sessions to host processes with special requirements
Publication Date: 2022.03.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2580658B1 patent drawingFigure 1
  • EP2580658B1 patent drawingFigure 2
  • EP2580658B1 patent drawingFigure 3~4

AI summary

Techniques are disclosed for enabling a system service executing in an isolated session to access system resources (such as a graphics processing unit) that it is isolated from. In an embodiment, the system service creates a "worker" session that is not isolated, and a "worker" process inside that worker session. Then, the system service is able to access the system resource that it is directly isolated from accessing by passing a request to the worker process to access the system resource on the system service's behalf. The worker process does so, and passes a result to the system service.