Poďme sa rozprávať Priority procesu Windows. Vo väčšine prípadov nie je potrebné „hrať“ s určovaním priorít, ale niekedy môže príslušný správca systému pomôcť systému presnejšie rozdeliť čas procesora medzi vykonávané úlohy. Neexistuje jediný recept, ale prostredníctvom „výberu a vymenovania“ je to celkom možné. Kde je to potrebné? Napríklad v skupine 1C-SQL môžete dať viac času procesora 1C a SQL, pretože zdroje sú najdôležitejšie procesy.
Vo všeobecnosti môžete pomocou nástroja Správca úloh zobraziť a zmeniť prioritu bežiaceho procesu
windows NT / 2000 /7/ 2008
V systéme Windows 2012 je to „hlbšie“ pochované
Ako vidíte z vyššie uvedených príkladov, máte k dispozícii iba 6 priorít (ako sa neskôr ukáže) prioritné triedy). Dosť? Microsoft si myslí, že áno. Pripomeňme si však „legendárnu“ vetu Billa Geista, ktorá hovorí, že „všetkým bude stačiť 640 kB pamäte RAM.“ Ale čas ukázal, že to nie je ani zďaleka pravda :) :)
Teraz sa pozrime, aké to je.
V systéme Windows je v skutočnosti 32 úrovní priority od 0 do 31.
Sú zoskupené takto:
- 31 - 16 úrovne v reálnom čase;
- 15 - 1 dynamické úrovne;
- 0 - systémová úroveň vyhradená pre vlákno s nulovou stranou.
Pri vytváraní procesu je priradený jeden zo šiestich prioritné triedy:
- Trieda v reálnom čase (hodnota 24),
- Vysoká trieda (hodnota 13),
- Nad normálnou triedou (hodnota 10),
- Normálna trieda (hodnota 8),
- Pod normálnou triedou (hodnota 6),
- alebo nečinná trieda (hodnota 4).
Pomocou Správcu úloh môžete vidieť prioritu procesu..
poznámka: Priority Nad normálne a pod normálne sa objavili od systému Windows 2000.Priorita každého vlákna (základná priorita vlákna) pozostáva z priority procesu a relatívna priorita samotný tok. Existuje sedem relatívnych prioritných nití:
- Normálne: rovnaké ako proces;
- Nad normálne: +1 na spracovanie priority;
- Pod normálne: -1;
- Najvyššia: +2;
- Najnižšia: -2;
- Časovo kritický: nastaví základnú prioritu toku pre triedu Real Time na 31, pre ostatné triedy na 15.
- Idle: nastaví základnú prioritu toku pre triedu Real time na 16, pre ostatné triedy 1.
Nasledujúca tabuľka zobrazuje priority procesu, relatívne a základné priority vlákna..
Priorita toku | Trieda procesu | Trieda procesu | |||||
Nečinná trieda | Pod normálnou triedou | Normálna trieda | Nad normálnou triedou | Vysoká trieda | Trieda v reálnom čase | ||
1 | nečinný | nečinný | nečinný | nečinný | nečinný | ||
2 | najnižšia | ||||||
3 | Nižšie ... | ||||||
4 | Nečinná trieda | normálne | najnižšia | ||||
5 | Nad ... | Nižšie ... | |||||
6 | Pod normálnou triedou | najvyššiu | normálne | najnižšia | |||
7 | Nad ... | Nižšie ... | |||||
8 | Normálna trieda | najvyššiu | normálne | najnižšia | |||
9 | Nad ... | Nižšie ... | |||||
10 | Nad normálnou triedou | najvyššiu | normálne | ||||
11 | Nad ... | najnižšia | |||||
12 | najvyššiu | Nižšie ... | |||||
13 | Vysoká trieda | normálne | |||||
14 | Nad ... | ||||||
15 | najvyššiu | ||||||
15 | Časovo kritický | Časovo kritický | Časovo kritický | Časovo kritický | Časovo kritický | ||
16 | nečinný | ||||||
17 | |||||||
18 | |||||||
19 | |||||||
20 | |||||||
21 | |||||||
22 | najnižšia | ||||||
23 | Nižšie ... | ||||||
24 | Trieda v reálnom čase | normálne | |||||
25 | Nad ... | ||||||
26 | najvyššiu | ||||||
27 | |||||||
28 | |||||||
29 | |||||||
30 | |||||||
31 | Časovo kritický |
Teraz, keď sme sa všetci naučili, čo s tým môžeme urobiť? Napríklad, začnite používať.
Ako inak môžete proces začať s „neštandardnou“ prioritou alebo zmenou?
Metóda 1. Spustite úlohu / proces a zmeňte prioritu pomocou Správcu úloh.
Nevýhody metódy:
- K dispozícii je iba 6 priorít
- Prioritné prepínanie sa vykonáva pomocou myši, nie je automatizované.
Metóda 2. Príkaz START môžete použiť s príslušnými klávesami
Dostupné prioritné kľúče sú nasledujúce (zámerne vynechávam možnosti príkazového riadku príkazu START nesúvisí s opísaným procesom práce s prioritami):
C: \> štart /?
Spustí samostatné okno na spustenie zadaného programu alebo príkazu.
START ["title"] [/ D path] [/ I] [/ MIN] [/ MAX] [/ SEPARATE | / ZDIEĽANÉ]
[/ LOW | NORMÁLNE / VYSOKÉ | REALTIME ABOVENORMAL / BELOWNORMAL]
[/ NODE] [/ AFFINITY] [/ WAIT] [/ B]
[príkaz / program] [parametre]
LOW Spustite aplikáciu v triede priority IDLE.
NORMAL Spustite aplikáciu v triede priority NORMAL.
HIGH Spustite aplikáciu v triede s vysokou prioritou.
REALTIME Spustite aplikáciu v triede priority REALTIME.
ABOVENORMAL Spustite aplikáciu v triede priority ABOVENORMAL.
BELOWNORMAL Spustite aplikáciu v triede priority BELOWNORMAL.
Ako vidíte, príkaz START umožňuje spustiť proces s rovnakými 6 prioritami, ktoré sú k dispozícii prostredníctvom Správcu úloh
Metóda mínus:
- K dispozícii je iba 6 priorít
Metóda 3. Použitie pomôcky wmic.exe
Ako je uvedené vyššie, Správca úloh a príkaz ŠTART sú dosť neohrabané na to, aby sa dali prioritám úlohy. Pozrime sa, ako ju flexibilnejšie uplatniť. Použijeme tento nástroj Wmic.exe.
Príkazový riadok:
wmic process where name = "AppName" CALL setpriority ProcessIDLevel
Príklad:
wmic process where name = "calc.exe" CALL setpriority 32768
alebo
wmic process where name = "calc.exe" CALL setpriority "nad normálne"
Priority (preddefinované):
- nečinný: 64
- pod normálne: 16384
- normálne: 32
- nad normálne: 32768
- vysoká priorita: 128
- v reálnom čase: 256
Tu je krátky príklad spustenia programu wmic.exe na získanie potrebných informácií
Používame príkaz:
wmic zoznam procesov krátky
Dostanete zoznam procesov bežiacich na lokálnom počítači. Teraz spustite príkaz:
wmic zoznam procesov krátky | nájsť "cmd.exe"
výsledky:
Špeciálne bolo spustených niekoľko kópií cmd.exe, aby bola ilustrácia úplnejšia.
Zoznam procesov je teraz obmedzený iba na procesy v mene spustiteľného modulu, ktorého riadok je cmd.exe. Venujte pozornosť PID procesov (procesov).
Teraz sa pokúsime vybrať procesy, ktoré nás zaujímajú, pomocou priameho rozhrania WMI a bez použitia štandardných nástrojov príkazového riadku. Ak to chcete urobiť, jednoducho napíšte:
wmic process where description = "cmd.exe" zoznam krátky
výsledky:
Porovnať výsledky. Nezabudnite na PID procesu CMD.EXE.
Príkazový riadok na spustenie programu wmic.exe
wmic process where processid = "XXXX" CALL setpriority ProcessIDLevel
Teraz môžeme zmeniť prioritu konkrétneho procesu (napríklad s PID = 8476):
wmic process where processid = "8476" CALL setpriority 32768
alebo
wmic process where processid = "8476" CALL setpriority "nad normálne"
Čo bude ďalej? Odhadnite, vyskúšajte, vyberte a jemne upravte priority. Zlepšenie práce služieb a procesov, ako aj práce koncových užívateľov.