What is the real-time process priority setting?

From what I read in the past, you are not advised to programmatically change the priority of your Windows applications, and if you do, you should never change them to Real-Time.

What does setting the priority of the Real Time process over High and Above Normal do? enter image description hereenter image description here

+64
windows process task thread-priority windows-scheduler taskmanager
Nov 02 '09 at 21:59
source share
7 answers

A real-time priority thread can never be prevented by timer interruptions and operates at a higher priority than any other thread in the system. Because such a processor-related priority stream in real time can completely destroy the machine.

Creating real-time priority streams requires privileges ( SeIncreaseBasePriorityPrivilege ), so this can only be done by the administrator.

For Vista and beyond, one option for applications that require them to run in real-time priority is to use the Media Class Scheduler Service (MMCSS) and let it control the priority of your threads. MMCSS will not allow your application to use too much CPU time, so you do not need to worry about tanking the car.

+76
Nov 03 '09 at 3:07
source share

Just a real-time priority class above a high priority class. I do not think there is much more. Oh yes, you must have a SeIncreaseBasePriorityPrivilege to put the stream in the Real Time class.

Windows sometimes raises the priority of a thread for various reasons, but does not increase the priority of a thread in another priority class. It also does not raise the priority of threads in the real-time priority class. Thus, a high priority thread will not receive any automatic temporary raise in the real-time priority class.

Russinovich's “Inside Windows” chapter on how Windows handles priorities is a great resource for learning how it works:

Please note that there are absolutely no problems with a thread that takes precedence in real time on a regular Windows system - they are not necessary for special processes running on dedicatd machines. I believe that multimedia drivers and / or processes may require real-time priority streams. However, such a thread should not require a large amount of CPU - it should block most of the time so that normal system events can handle.

+24
Nov 02 '09 at 22:01
source share

This will be the highest priority setting available and will usually only be used in the field designed to run this particular program. He is actually tall enough to cause hunger on the keyboard and mouse streams to the extent that they stop responding.

So, if you need to ask, do not use it :)

+16
Nov 02 '09 at 22:03
source share

In real time, this is the highest priority class available to the process. Therefore, it differs from “High” in that it is one step more, and “Above Normal” in that it is two steps more.

Similarly, in real time there is also a stream priority level.

The process priority class raises or lowers all the effective priorities of the threads in the process and is therefore considered a "base priority".

So the process has:

  • The priority class of the underlying process .
  • Individual stream priorities , base class priority offsets.

Since it is assumed that real-time applications are reserved that absolutely must preempt other running processes, there is a special security privilege to protect against accidental use. This is determined by the security policy.

In NT6 + (Vista +), using the Vista Media Class Scheduler is the right way to achieve real-time operations in what is not an operational OS. It works, for the most part, although not ideal, since the OS is not designed for real-time operations.

Microsoft considers this priority very dangerous, rightly. No application should use it, except in special circumstances, and even then try to limit its use to temporary needs.

+2
Apr 23 2018-11-18T00:
source share

As soon as Windows finds out that the program is using a higher priority, it seems that it limits the priority of the process.

Setting priority from IDLE to REALTIME does NOT change CPU usage.

I found on my AMD multiprocessor processor that if I drop one of the processors like LAST, the processor will use MAX OUT and the last CPU will remain inactive. CPU speed increases to 75% on my Quad AMD.

Use Task Manager → select a process-> Right-click a process-> Select-> Set Affinity Click all but the last processor. CPU usage will increase to MAX on the remaining processors and the number of frames if video processing increases.

+1
Oct 21
source share

Basically he is taller / taller in everything else. The keyboard is less important than the real-time process. This means that the process will be counted faster than the keyboard, and if it can not cope with it, then your keyboard will be slowed down.

0
May 23 '15 at 4:47
source share

Like all other answers before real time, this program has the highest priority. Nothing is processed until this program is processed.
On my pentium 4 machine, I installed minecraft in real time, as it greatly increases the performance of the game, and the system seems completely stable. therefore, in real time it is not as bad as it seems, just if you have a multi-core set that binds a program to a specific kernel or kernels (just not all of them, just so that everything else can work in real-time, the set of programs freezes) and install real time priority.

0
Dec 28 '16 at 18:33
source share



All Articles