Pojďme si promluvit Priority procesu Windows. Ve většině případů není třeba „hrát“ s nastavováním priorit, ale někdy může příslušný správce systému pomoci systému správně rozdělovat čas procesoru mezi spuštěnými úkoly. Neexistuje jediný recept, ale prostřednictvím „výběru a výčtu“ je to docela proveditelné. Kde to může být potřeba? Například v partii 1C-SQL můžete dát více času procesoru 1C a SQL jako nejdůležitější procesy zdrojům.
Obecně můžete pomocí Správce úloh zobrazit a změnit prioritu spuštěného procesu
Windows NT / 2000 /7/ 2008
V systému Windows 2012 je „pohřben“ trochu hlouběji
Jak můžete vidět z výše uvedených příkladů, máte k dispozici pouze 6 priorit (jak se později ukáže) prioritní třídy) Dost? Microsoft si myslí, že ano. Připomeňme si však „legendární“ větu Bill Geist, která říká, že „všem bude stačit 640 kB paměti RAM.“ Ale čas ukázal, že se to zdaleka nestalo :)
Nyní se podívejme, jak to skutečně je.
Ve Windows je ve skutečnosti 32 úrovní priority od 0 do 31.
Jsou seskupeny takto:
- 31 - 16 úrovně v reálném čase;
- 15: 1 dynamické úrovně;
- 0 - systémová úroveň vyhrazena pro vlákno s nulovou stránkou.
Při vytváření procesu je přiřazen jeden ze šesti prioritní třídy:
- Třída v reálném čase (hodnota 24),
- Vysoká třída (hodnota 13),
- Nad normální třídou (hodnota 10),
- Normální třída (hodnota 8),
- Pod normální třídou (hodnota 6),
- nebo třída nečinnosti (hodnota 4).
Prioritu procesu můžete vidět pomocí Správce úloh..
Poznámka:: Priority Nad normální a pod normální se objevily od Windows 2000.Priorita každého vlákna (základní priorita vlákna) sestává z priority jeho procesu a relativní priorita samotný tok. Existuje sedm relativních priorit vláken:
- Normální: stejné jako proces;
- Nad normální: +1 pro zpracování priority;
- Pod normální: -1;
- Nejvyšší: +2;
- Nejnižší: -2;
- Time critical: nastaví základní prioritu proudu pro třídu Real time na 31, pro ostatní třídy na 15.
- Idle: nastaví základní prioritu proudu pro třídu Real time na 16, pro ostatní třídy na 1.
Následující tabulka ukazuje priority procesu, relativní a základní priority vlákna..
Priorita toku | Třída procesu | Třída procesu | |||||
Volná třída | Pod normální třídou | Normální třída | Nad normální třídou | Vysoká třída | Třída v reálném čase | ||
1 | Nečinný | Nečinný | Nečinný | Nečinný | Nečinný | ||
2 | Nejnižší | ||||||
3 | Níže ... | ||||||
4 | Volná třída | Normální | Nejnižší | ||||
5 | Nad ... | Níže ... | |||||
6 | Pod normální třídou | Nejvyšší | Normální | Nejnižší | |||
7 | Nad ... | Níže ... | |||||
8 | Normální třída | Nejvyšší | Normální | Nejnižší | |||
9 | Nad ... | Níže ... | |||||
10 | Nad normální třídou | Nejvyšší | Normální | ||||
11 | Nad ... | Nejnižší | |||||
12 | Nejvyšší | Níže ... | |||||
13 | Vysoká třída | Normální | |||||
14 | Nad ... | ||||||
15 | Nejvyšší | ||||||
15 | Časově kritický | Časově kritický | Časově kritický | Časově kritický | Časově kritický | ||
16 | Nečinný | ||||||
17 | |||||||
18 | |||||||
19 | |||||||
20 | |||||||
21 | |||||||
22 | Nejnižší | ||||||
23 | Níže ... | ||||||
24 | Třída v reálném čase | Normální | |||||
25 | Nad ... | ||||||
26 | Nejvyšší | ||||||
27 | |||||||
28 | |||||||
29 | |||||||
30 | |||||||
31 | Časově kritický |
Nyní, když jsme se to všichni naučili, co s tím můžeme dělat vše? Například, začít používat.
Jak jinak můžete zahájit proces s „nestandardní“ prioritou nebo změnou?
Metoda 1. Spusťte úlohu / proces a změňte prioritu pomocí Správce úloh.
Nevýhody metody:
- K dispozici je pouze 6 priorit
- Prioritní přepínání se provádí pomocí myši, není automatizované.
Metoda 2. Příkaz START můžete použít s odpovídajícími klávesami
Dostupné prioritní klíče jsou následující (záměrně vynechám možnosti příkazového řádku příkazu START nesouvisí s popsaným procesem práce s prioritami):
C: \> start /?
Spustí samostatné okno pro spuštění zadaného programu nebo příkazu.
START ["title"] [/ D cesta] [/ I] [/ MIN] [/ MAX] [/ SEPARATE | / SHARED]
[/ LOW | NORMÁLNÍ / VYSOKÁ | / REALTIME | ABOVENORMAL / BELOWNORMAL]
[/ NODE] [/ AFFINITY] [/ WAIT] [/ B]
[příkaz / program] [parametry]
Nízké Spusťte aplikaci ve třídě priority IDLE.
Normální Spusťte aplikaci ve třídě priority NORMAL.
Vysoká Spusťte aplikaci ve třídě HIGH priority.
REALTIME Spusťte aplikaci ve třídě priority REALTIME.
ABOVENORMAL Spusťte aplikaci v prioritní třídě ABOVENORMAL.
BELOWNORMAL Spusťte aplikaci ve třídě priority BELOWNORMAL.
Jak vidíte, příkaz START umožňuje zahájit proces se stejnými 6 prioritami, které jsou k dispozici prostřednictvím Správce úloh
Metoda minus:
- K dispozici je pouze 6 priorit
Metoda 3. Použití obslužného programu wmic.exe
Jak je ukázáno výše, Správce úloh a příkaz START jsou natolik neohrabané, že je třeba stanovit priority. Podívejme se, jak ji pružněji aplikovat. Použijeme tento nástroj wmic.exe.
Příkazový řádek:
wmic process where name = "AppName" CALL setpriority ProcessIDLevel
Příklad:
wmic process where name = "calc.exe" CALL setpriority 32768
nebo
wmic process where name = "calc.exe" CALL setpriority "nad normální"
Priority (předdefinované):
- nečinný: 64
- pod normální: 16384
- normální: 32
- nad normální: 32768
- vysoká priorita: 128
- reálný čas: 256
Zde je krátký příklad spuštění wmic.exe k získání potřebných informací
Používáme příkaz:
wmic seznam procesů krátký
Získáte seznam procesů běžících na místním počítači. Nyní spusťte příkaz:
wmic seznam procesů stručný | najít "cmd.exe"
Výsledek:
Speciálně zahájeno několik kopií cmd.exe, takže ilustrace byla úplnější.
Nyní je seznam procesů omezen pouze na procesy ve jménu spustitelného modulu, jehož řádek je "cmd.exe". Věnujte pozornost PID procesu (procesů).
Nyní se pokusíme vybrat procesy, které nás zajímají, pomocí přímo WMI a bez použití standardních nástrojů příkazového řádku. Chcete-li to provést, jednoduše napište:
wmic process where description = "cmd.exe" seznam krátký
Výsledek:
Porovnejte výsledky. Pamatujte si PID procesu CMD.EXE.
Příkazový řádek ke spuštění wmic.exe
wmic process where processid = "XXXX" CALL setpriority ProcessIDLevel
Nyní můžeme změnit prioritu konkrétního procesu (například s PID = 8476):
wmic process where processid = "8476" CALL setpriority 32768
nebo
wmic process where processid = "8476" CALL setpriority "nad normální"
Co bude dál? Odhadněte, zkuste, vyberte a jemně upravte priority. Zlepšení práce služeb a procesů a práce konečných uživatelů.