Domanda

Da quello che ho letto in passato, siete invitati a non modificare la priorità delle applicazioni di Windows a livello di codice, e se lo fai, non si dovrebbe mai cambiare loro di 'tempo reale'.

Che cosa significa l'impostazione della priorità del processo 'in tempo reale' fare, rispetto a 'High' e 'superiore al normale'?  entrare descrizione dell'immagine qui entrare descrizione dell'immagine qui

È stato utile?

Soluzione

Un thread priorità realtime può mai essere anticipata dalla interrupt del timer e funziona con una priorità più alta rispetto a qualsiasi altro thread nel sistema. Come tale CPU bound tempo reale filo priorità può completamente rovinare una macchina.

La creazione di discussioni prioritarie in tempo reale richiede un privilegio ( SeIncreaseBasePriorityPrivilege ) in modo che possa essere fatto solo da utenti amministrativi.

Per Vista e oltre, un'opzione per le applicazioni che richiedono che corrono in tempo reale priorità è quella di utilizzare il Multimedia Class Scheduler Service (MMCSS) e lasciare gestire la vostra priorità discussioni. Il MMCSS impedirà l'applicazione da utilizzare tempo di CPU troppo in modo da non dovete preoccuparvi di tanking la macchina.

Altri suggerimenti

Semplicemente, la "Real Time" classe di priorità è più alto di classe "alta" la priorità. Non credo che ci sia molto di più ad esso che quello. Oh sì - si deve avere il SeIncreaseBasePriorityPrivilege mettere un filo nella classe Tempo reale

.

Windows a volte aumentare la priorità di un thread per vari motivi, ma non aumentare la priorità di un thread in un'altra classe di priorità. Inoltre, non aumenterà la priorità dei thread nella classe di priorità in tempo reale. Quindi un filo ad alta priorità non otterrà alcuna spinta temporanea d'ufficio nella classe di priorità Tempo reale.

capitolo di Russinovich "Inside Windows" a modo in cui Windows gestisce priorità è una grande risorsa per imparare come funziona:

Si noti che non c'è assolutamente nessun problema con un filo che ha una priorità in tempo reale su un sistema normale di Windows - non sono necessariamente per i processi speciali in esecuzione su macchine dedicatd. Immagino che i conducenti e / o processi multimediali potrebbero avere bisogno di discussioni con una priorità in tempo reale. Tuttavia, una tale discussione non dovrebbe richiedere molto CPU -. Dovrebbe essere bloccando la maggior parte del tempo al fine di normali eventi di sistema per ottenere l'elaborazione

Sarebbe la massima definizione delle priorità a disposizione, e di solito essere utilizzata solo sulla scatola che è stato dedicato all'esecuzione di tale programma specifico. In realtà è abbastanza alto che potrebbe causare la fame dei fili di tastiera e mouse nella misura in cui diventano non risponde.

Quindi, fondamentalmente, se si deve chiedere, non usarlo:)

in tempo reale è la priorità più alta class disponibile per un processo. Pertanto, è diverso da 'High' in quanto si tratta di un passo maggiore, e 'superiore al normale' in quanto si tratta di due passi maggiore.

Analogamente, in tempo reale, anche un livello di priorità thread.

La priorità processo class aumenta o diminuisce tutte le priorità di thread efficaci nel processo ed è pertanto considerato il 'priorità di base'.

Così, un processo ha una:

  1. processo di Base classe di priorità .
  2. singolo filo , offset della classe priorità di base.

Dal momento che si suppone in tempo reale da riservare per le applicazioni che assolutamente deve anticipare gli altri processi in esecuzione, non v'è un privilegio speciale di sicurezza per la protezione contro l'uso casuale di esso. Questo è definito dalla politica di sicurezza.

In NT6 + (Vista +), l'uso della Vista Multimedia Class Scheduler è il modo corretto per ottenere operazioni in tempo reale in quello che è non un sistema operativo in tempo reale. Funziona, per la maggior parte, anche se non è perfetto in quanto il sistema operativo non è stato progettato per operazioni in tempo reale.

Microsoft considera questa priorità molto pericoloso, è giusto così. Nessuna applicazione dovrebbe usarlo se non in circostanze molto specializzati, e anche allora cercare di limitare il suo utilizzo per esigenze temporanee.

Una volta che Windows viene a sapere di un programma utilizza superiore a priorità normale sembra che limita la priorità sul processo.

Impostazione della priorità dal minimo a REALTIME NON cambia l'utilizzo della CPU.

ho trovato su My multi-processore AMD CPU che se cadere una delle CPU ot come l'ultimo l'utilizzo della CPU sarà MAX OUT e l'ultimo CPU rimane inattiva. La velocità del processore aumenta al 75% sul mio quad AMD.

Utilizzare Task Manager-> selezionare processo-> tasto destro sulla processo-> Seleziona-> Imposta affinità Fare clic tutti, ma l'ultimo processore. L'utilizzo della CPU aumenta al MAX sui restanti processori e conteggi Telaio se elaborazione video aumenterà.

E 'in fondo è più alta / più grande in tutto il resto. Una tastiera è meno di una priorità rispetto al processo in tempo reale. Questo significa che il processo sarà presa in considerazione più veloce di tastiera e, se non in grado di gestire questo, allora la tastiera è rallentato.

Come tutte le altre risposte prima in tempo reale dà quel programma la classe di priorità massima. Nulla viene elaborato fino a quel programma è stato elaborato.
Sulla mia macchina Pentium 4 Minecraft ho impostato al tempo reale un sacco in quanto aumenta le prestazioni del gioco molto, e il sistema sembra completamente stabile. così in tempo reale non è così male come sembra, solo se si dispone di un multi-core impostare l'affinità di un programma per un nucleo o core (semplicemente non tutti, solo per lasciare tutto il resto in grado di eseguire nel caso in cui il tempo reale specifica programmi impostati ottiene appeso) e impostare la priorità al tempo reale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top