Multimedia Class Scheduler Service Thread Priority Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General purpose operating systems struggle to ensure that time-sensitive threads, such as multimedia threads, gain access to CPU resources quickly enough to meet their demands while also allowing time-insensitive threads to meet their requirements, often leading to performance issues like video freezing or email delays during video playback.

Innovation Solution

The Multimedia Class Scheduler Service (MMCSS) dynamically adjusts the priorities of time-sensitive threads within a general purpose operating system, reserving CPU resources through a system responsiveness cell (SRC) to prioritize multimedia threads while allowing time-insensitive threads access, using APIs like AvSetMmThreadCharacteristics and AvSetMmThreadPriority to manage thread priorities based on system profile tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the operating system allocates CPU resources to time-sensitive threads (e.g., multimedia threads), then the responsiveness and smoothness of multimedia tasks are improved, but the availability of CPU resources for time-insensitive threads (e.g., email processing) deteriorates, leading to delays in non-critical tasks

Engineering Contradiction:
Improvemultimedia task responsivenessVSAvoidtime-insensitive task completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts thread priorities based on real-time conditions. The Multimedia Class Scheduler Service continuously monitors CPU resource usage and adjusts the priority of multimedia threads dynamically, allowing them to receive higher priority when resources are available while yielding to other tasks when resources are constrained, thus resolving the contradiction between ensuring multimedia responsiveness and preventing delays in other tasks

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the scheduling parameter (thread priority) based on system state. By modifying the priority level of multimedia threads according to current CPU utilization and system conditions, the operating system can ensure that multimedia tasks receive adequate resources for smooth operation while allowing time-insensitive tasks to access CPU resources when multimedia demands are lower

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If the operating system uses a simple scheduling algorithm, then the system complexity is reduced and ease of operation is improved, but the ability to meet the specific demands of time-sensitive processes deteriorates, causing performance issues in multimedia applications

Engineering Contradiction:
Improvescheduling system simplicityVSAvoidtime-sensitive process performance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The scheduling system is segmented into multiple layers: the standard Windows scheduling algorithm handles general-purpose scheduling, while the Multimedia Class Scheduler Service provides a specialized scheduling layer for multimedia threads. This segmentation allows the system to maintain simple overall operation while introducing sophisticated scheduling specifically for time-sensitive processes without complicating the entire system

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Multimedia Class Scheduler Service acts as an intermediary between the standard Windows scheduler and multimedia applications. It receives scheduling requests from multimedia threads, applies specialized scheduling logic to meet their time-sensitive demands, and coordinates with the standard scheduler to manage CPU resource allocation, thus improving multimedia performance without requiring complete redesign of the operating system scheduler

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7802256B2Class scheduler for increasing the probability of processor access by time-sensitive processes
Publication Date: 2010.09.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7802256B2 patent drawing
  • US7802256B2 patent drawing
  • US7802256B2 patent drawing

AI summary

A method and apparatus for enabling a general purpose operating system to maximize the probability of time-sensitive threads, e.g., multimedia threads, gaining access to CPU resources quickly enough to meet the demands of time-sensitive tasks while allowing time-insensitive threads to meet the demands of time-insensitive tasks, is disclosed. The priorities of time-sensitive threads in an operating system are adjusted so that the time-sensitive threads have a high probability of gaining access to CPU resources quickly enough to meet the demands of time-sensitive tasks while allowing time-insensitive threads to meet the demands of time-insensitive tasks. A system responsiveness cell (SRC) value is used to determine how quickly the operating system needs to respond to time-sensitive threads and time-insensitive threads. Priorities of threads are dynamically changed according to the relative CPU resource access requirements of system profile tasks. Criteria for mapping time-sensitive tasks are contained in system profile tasks. Priorities of cross-process groups of time-sensitive threads related to specific instances of tasks are adjusted according to the criteria in the system profile tasks. System profile tasks are stored in a system profile which may vary by machine. Priorities of system profile tasks are the regrouped priorities used by the operating system.