Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra come configurare il dispositivo per prestazioni in tempo reale.
Nota
L'unico modo per usare questa funzionalità è con un'applicazione e un dispositivo personalizzati per uno scopo specifico. La mappatura delle assegnazioni dei core del processore nei thread dell'applicazione deve corrispondere ai core fisici del dispositivo e alla loro configurazione per i carichi di lavoro in tempo reale rispetto a quelli standard.
Disabilitare gli stati di inattività con
powercfg.exe
Fare riferimento alle linee guida sulla sicurezza per i servizi di sistema per disabilitare i servizi seguenti:
- SysMain (Superfetch)
- DPS (Servizio di criteri diagnostici)
- Audiosrv (Windows Audio)
Disabilitare Windows Update usando queste linee guida.
Nota
In questo modo il dispositivo verrà aperto alle vulnerabilità perché le patch di sicurezza non verranno applicate. Detto questo, è necessario perché l'agente di Windows Update non rispetta l'isolamento del core CPU. È consigliabile disporre di un piano per garantire la sicurezza dei dispositivi e installare gli aggiornamenti durante i periodi in cui il dispositivo può essere disattivato per la manutenzione
Suggerimento
Un buon esempio di gestione degli aggiornamenti durante il tempo di inattività è disponibile nella documentazione di UWF: Servizi dispositivi protetti da UWF Se si usa UWF e soft real-time, questo processo deve occuparsi della necessità di aggiornamento del sistema operativo per entrambe le funzionalità contemporaneamente.
Impostare il fornitore di servizi di configurazione (CSP) WindowsIoT per prestazioni in tempo reale.
Configurare RSS per eseguire la migrazione di ISR/DPC a CPU0
Nota
Questo è dipendente dall'hardware e può essere eseguito solo se la scheda di interfaccia di rete supporta RSS
Facoltativo:Disabilitare DPC threadizzati per il debugging.
Facoltativo: distribuzione di un driver personalizzato di associazione DPC per determinati interrupt hardware seguendo queste indicazioni.
Esecuzione di questa configurazione dalla riga di comando
In questo modo il dispositivo viene configurato durante l'accensione. Per garantire che il dispositivo mantenga le prestazioni soft-RT, è necessario configurare il computer per eseguire questi comandi come script ogni volta che il computer esegue questa guida.
Esegui questi due comandi in un prompt dei comandi cmd. Ciò disabilita gli stati di inattività della CPU, in cui una CPU senza istruzioni per l'esecuzione entrerà in uno stato di risparmio energia. Ciò è indesiderato in scenari in tempo reale perché le CPU inattive hanno un ritardo nell'avvio dell'esecuzione di nuove istruzioni:
powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR IdleDisable 1 powercfg.exe /setactive SCHEME_CURRENT
Esegui questi tre comandi in un prompt dei comandi per disabilitare DPS:
sc query dps sc stop dps sc config dps start=disabled
Eseguire questi tre comandi in un prompt dei comandi per disabilitare Audiosrv:
sc query Audiosrv sc stop Audiosrv sc config Audiosrv start=disabled
Eseguire questi tre comandi in un prompt dei comandi per disabilitare SysMain:
sc query SysMain sc stop SysMain sc config SysMain start=disabled
Eseguire questi tre comandi in un prompt dei comandi per disabilitare Windows Update:
sc query wuauserv sc stop wuauserv sc config wuauserv start=disabled
Eseguire questo comando per disabilitare i DPC threadati
reg add "HKLM\System\CurrentControlSet\Control\Session Manager\kernel" /v ThreadDpcEnable /t REG_DWORD /f /d 0
Garantire che il dispositivo rimanga configurato per il tempo reale
Prima di distribuire un dispositivo in tempo reale in un ambiente di produzione, è necessaria un'altra configurazione per garantire che il dispositivo possa ricevere aggiornamenti e mantenere le prestazioni in tempo reale:
- Configurare uno script in grado di riabilitare Windows Update, installare gli aggiornamenti e disattivare Nuovamente Windows Update
- Configurare i controlli per assicurarsi che i servizi sul dispositivo rimangano disabilitati
Che cos'è il provider di servizi di configurazione WindowsIoT?
WindowsIoT CSP
viene utilizzato per configurare i dispositivi Windows IoT. Attualmente l'unica funzionalità disponibile in questo CSP è configurare un dispositivo per le prestazioni soft real-time. Questo non è l'unico lavoro che deve essere eseguito per usare il soft real-time con un dispositivo. È inoltre necessario eseguire i sei passaggi precedenti. L'utilizzo di questo provider di servizi di configurazione (CSP) per impostare i core a tempo reale soft senza eseguire la configurazione aggiuntiva necessaria porta a un malfunzionamento del sistema e richiede il ripristino per il recupero.
La gerarchia di questo CSP (Configuration Service Provider) è la seguente:
WindowsIoT
SoftRealTimeProperties
SetRTCores
Un valore maggiore di 0 e minore del numero totale di core nel dispositivo deve essere fornito al parametro SetRTCores. È possibile impostare questo CSP usando qualsiasi strumento usato dall'organizzazione per configurare i propri dispositivi o usare la procedura seguente per usare mdm Bridge.
Usare il provider WMI del bridge MDM per configurare il provider CSP WindowsIoT
Questo CSP configura il sistema per le prestazioni in tempo reale. È necessario fornire il numero di core CPU da allocare alle attività in tempo reale, con il resto allocato per l'esecuzione di attività utente standard o di sistema. È necessario specificare un valore numerico nel nodo SetRTCores. Questo è il numero di core CPU dedicati ai carichi di lavoro in tempo reale. I valori numerici validi devono essere almeno 1 e minori del numero di core fisici nella CPU.
Gli ambienti che usano Strumentazione gestione Windows (WMI) possono usare il provider WMI bridge MDM per eseguire questa operazione. Ecco un esempio per impostare la configurazione RealTime con tre core in tempo reale:
Scarica lo strumento psexec.
Avviare un prompt dei comandi con privilegi amministrativi.
Nel prompt dei comandi avviare PowerShell con l'account di sistema
psexec.exe -s -i powershell.exe
Eseguire lo script seguente:
$nameSpaceName="root\cimv2\mdm\dmmap" $className="MDM_WindowsIoT_SoftRealTimeProperties01" $obj = Get-CimInstance -Namespace $namespaceName -ClassName $className Add-Type -AssemblyName System.Web Set-CimInstance -CimInstance $obj $obj.SetRTCores = 3 Set-CimInstance -CimInstance $obj
Riavviare il computer per attivare la modifica.
Suggerimento
È possibile usare lo stesso script per qualsiasi numero di core in tempo reale che è necessario avere, sostituendo semplicemente il 3 nella riga da secondo a ultimo con il numero appropriato. In questo modo i core verranno riservati a partire dal core più alto e scendendo verso il basso. Pertanto, riservando 3 core su una CPU a 4 core si riservano core 3, 2 e 1 e si lascia core 0 per le attività di sistema e non in tempo reale. Si noti che non c'è alcuna garanzia che i core in tempo reale rimarranno più alti, poiché gli indici core in tempo reale rimarranno fissi se aumenta il numero di core CPU in un secondo momento.
Successiva: Sviluppare un'applicazione soft a tempo reale