A che serve la priorità "in tempo reale" per un processo?


12

Nella mia esperienza, impostare qualsiasi processo in tempo reale rallenterà il tuo computer a un ritmo di lumache. A che serve questa impostazione, se rende il computer inutilizzabile?


2
Se si dispone di un processore multi-core o di un sistema multi-processore, è possibile impostare l'affinità per un solo core. In questo modo, il resto del sistema rimarrà reattivo e potrai goderti il ​​resto dei vantaggi di un processo in tempo reale. Questo ovviamente funziona bene solo per i processi che richiedono solo un core per funzionare.
AndrejaKo

Risposte:


7

Esattamente quello che descrivi, a costo di rallentare il resto del tuo computer fino a una scansione, esegue il processo in tempo reale dandogli una priorità più alta rispetto a tutto il resto. Questo è necessario solo per le applicazioni che richiedono molto tempo, molte persone non le vedono nella loro vita quotidiana ...


Alcuni programmi molto comuni, come i server audio (PulseAudio e JACK come due esempi di Linux), utilizzano thread prioritari in tempo reale.
user1686

@grawity: JACK non è un server, ma solo un kit di sviluppo. Entrambi sono multipiattaforma. Un buon punto però che le cose audio richiedono priorità in tempo reale, ma stavo parlando da un punto di vista di Windows 7 in cui questi processi specificati non ottengono priorità in tempo reale. Windows ha qualcosa chiamato Scheduler di classe multimediale per questo tipo di processi ...
Tamara Wijsman,

Che cos'è jackd, quindi, se non un server audio? (Da quello che ho capito finora, sia PA che JACK funzionano allo stesso modo in quanto forniscono sia un server audio che una libreria / kit per accedervi ...)
user1686

Ciò non rende il kit improvvisamente diventare un server. Stiamo parlando di processi qui, non di discussioni ...
Tamara Wijsman,

1
Altri esempi di app in tempo reale sono le app mediche e la robotica controllata direttamente. Cose in cui 10 µs sono la differenza tra il corretto funzionamento e il fallimento (dove il fallimento può comportare la guida di un robot da una scogliera o un paziente esposto a troppe radiazioni).
ligos,

2

Ciò può sembrare superfluo, ma quando viene avviato un processo è possibile passare parametri che impostano l'esecuzione del processo a vari livelli di priorità. Task Manager lo mostra come un'impostazione opzionale perché è un'opzione che può essere impostata per il processo dal software che ne ha avviato l'esecuzione. La maggior parte dei software funziona a un livello "Normale", ma di tanto in tanto potresti vederne alcuni che sono in esecuzione a un livello inferiore per impostazione predefinita. Non ho mai visto un software che si avvia in uno stato sopra normale.

Vale anche la pena ricordare che esiste un caso in cui un processo può essere eseguito con la massima priorità e non sembra influire notevolmente sulle prestazioni del sistema. Ad esempio, se un processo viene avviato e viene assegnato a funzionare solo su 1, ad esempio, 8 core della CPU, impostando la priorità dei processi su "tempo reale", si vorrebbe dire che consumerebbe un processore, lasciando che 7 venga utilizzato dal Sistema operativo e qualsiasi altro software. In questo caso, l'esecuzione in tempo reale potrebbe non avere quasi alcun effetto sul sistema ma dare una spinta ragionevole alle prestazioni del processo ad alta priorità.

Non consiglierei quasi mai di impostare manualmente un processo da eseguire in "tempo reale" dal Gestore di sistema. Questo perché si stanno modificando le impostazioni di esecuzione per un processo che potrebbe essere stato progettato per funzionare in uno stato di esecuzione specifico. La modifica della priorità di esecuzione può, in alcuni casi, arrestare in modo anomalo l'applicazione e, se si tratta di un'operazione di scrittura dei dati, è possibile che i dati vengano danneggiati!

Tuttavia, ci sono alcuni casi in cui l'utilizzo di un'impostazione di priorità massima di esecuzione per un processo può essere la cosa giusta da fare, ma anche in tal caso, tali impostazioni di priorità devono essere configurate dall'applicazione di controllo e non dall'utente finale attraverso una finestra di dialogo di gestione del sistema.

Personalmente, consiglierei MAI di modificare una priorità delle attività a meno che non ti interessi davvero se si arresta in modo anomalo e l'attività è COMPLETAMENTE non critica. Se la documentazione del software afferma esplicitamente che è possibile elevare il processo per l'esecuzione a una velocità più elevata al fine di accelerare un carico molto elevato di lavoro del processore, anche questo sarebbe accettabile, tuttavia, sarei un po 'scettico se un meccanismo da all'interno dell'applicazione non è fornito.

Come aneddoto personale, di tanto in tanto cambio solo manualmente un processo: le applicazioni di compressione del software. Non ho avuto a decomprimere un file enorme in un tempo lungo, ma ho scoperto che se mi trovo in fretta ( ahem essere impaziente) posso alzare la priorità del processo e ottenere un urto moderata in termini di prestazioni. Poiché queste applicazioni avviano un'attività di lavoro e si chiudono al termine, non devo preoccuparmi di annullare le impostazioni del mio processore perché quando l'applicazione avrà terminato di estrarre i dati, si fermerà da sola. Questa è l'unica volta in cui l'ho trovato personalmente utile per controllare la velocità del processore attraverso la gestione del sistema.


1
Come programmatore non riesco proprio a pensare a una situazione in cui dare a un programma più risorse lo
manderebbe in

Come programmatore, sì, ma l'impostazione di un processo per l'esecuzione a un livello specifico può causare problemi, soprattutto se il software è stato scritto (forse anche in modo scadente) per essere eseguito contemporaneamente con altri processi. I miei suggerimenti provengono sia dall'esperienza che dalla consapevolezza che non tutti gli utenti sono sviluppatori. Stabilire le priorità dei processi in esecuzione che non sono stati sviluppati può certamente suscitare comportamenti inaspettati. Non voglio spaventare nessuno, tuttavia, non voglio anche incoraggiare altri utenti a pasticciare con le impostazioni del processo se c'è la possibilità che le loro modifiche possano essere dannose.
RLH,

0

Uso la priorità in tempo reale per velocizzare i giochi sul mio laptop non gaming. Non mi interessa il processo in background quando sono in gioco e ottengo un'esperienza molto più piacevole dall'allocare la mia potenza di elaborazione in questo modo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.