Upravljanje prioritet procesa v operacijskem sistemu Windows

Pogovorimo se Prednostne naloge procesa Windows. V večini primerov se ni treba igrati z določanjem prioritet, včasih pa lahko pristojni sistemski sistem pomaga sistemu, da pravilno porazdeli čas procesorja med izvajanimi nalogami. Enotnega recepta sicer ni, toda s pomočjo "izbire in naštevanja" je to povsem izvedljivo. Kje je to potrebno? Na primer, v kupu 1C-SQL lahko daste več procesorskega časa 1C in SQL, kot najbolj kritične procese za vire.

Na splošno si lahko ogledate in spremenite prednost izvajanja postopka s pomočjo upravitelja opravil

Windows NT / 2000 /7/ 2008

V sistemu Windows 2012 "pokopan" je malo globlje

Kot lahko vidite iz zgornjih primerov, vam je na voljo le 6 prednostnih nalog (kot se pozneje izkaže, da je to) prednostni razredi) Dovolj? Microsoft misli, da. Toda spomnimo se "legendarne" fraze Billa Geista, ki je govorila, da bo "640 KB RAM-a dovolj za vse." Toda čas je pokazal, da to še zdaleč ni tako. :)

Zdaj pa poglejmo, kako je v resnici.

Dejansko je v sistemu Windows 32 prednostnih stopenj, od 0 do 31.

Združeni so tako:

  • 31 - 16 ravni v realnem času;
  • 15 - 1 dinamične ravni;
  • 0 - sistemska raven rezervirana za nit ničelne strani.

Pri ustvarjanju postopka mu dodelimo enega od šestih prednostni razredi:

  1. Razred v realnem času (vrednost 24),
  2. Visok razred (vrednost 13),
  3. Nad običajnim razredom (vrednost 10),
  4. Normalni razred (vrednost 8),
  5. Pod običajnim razredom (vrednost 6),
  6. ali v prostem razredu (vrednost 4).

S pomočjo upravitelja opravil si lahko ogledate prednost postopka..

Opomba: Od leta 2000 se pojavljajo prioritete nad normalno in pod normalno.

Prednost vsake niti (osnovna prednost nit) je sestavljena iz prioritete njegovega procesa in relativna prioriteta sam tok. Obstaja sedem relativnih prednostnih niti:

  1. Običajno: enako kot postopek;
  2. Nad običajnim: +1 za obdelavo prednosti;
  3. Spodaj normalno: -1;
  4. Najvišja: +2;
  5. Najnižje: -2;
  6. Časovno kritičen: osnovna prioriteta toka za realni časovni razred nastavi na 31, za druge razrede na 15.
  7. Mirovanje: osnovna prednost toka za razred realnega časa nastavi na 16, za druge razrede na 1.

Naslednja tabela prikazuje procesne prioritete, relativne in osnovne prioritete niti..

Prednost pretokaProcesni razredProcesni razred
Neaktivni razredPod normalnim razredomNormalni razredNad normalnim razredomVisok razredReal time class
1V prostem tekuV prostem tekuV prostem tekuV prostem tekuV prostem teku
2Najnižje
3Spodaj ...
4Neaktivni razred ObičajnoNajnižje
5Zgoraj ... Spodaj ...
6Pod normalnim razredom NajvišjaObičajnoNajnižje
7Zgoraj ... Spodaj ...
8Normalni razred NajvišjaObičajnoNajnižje
9Zgoraj ... Spodaj ...
10Nad normalnim razredom NajvišjaObičajno
11Zgoraj ... Najnižje
12NajvišjaSpodaj ...
13Visok razred Običajno
14Zgoraj ...
15Najvišja
15Čas kritičenČas kritičenČas kritičenČas kritičenČas kritičen
16V prostem teku
17
18
19
20
21
22Najnižje
23Spodaj ...
24Real time class Običajno
25Zgoraj ...
26Najvišja
27
28
29.
30
31Čas kritičen

Zdaj, ko smo se vsega tega naučili, kaj lahko storimo glede tega? No, na primer, začnite uporabljati.

Kako drugače lahko začnete postopek z "nestandardno" prednostjo ali spremembo?

Metoda 1. Zaženite nalogo / postopek in spremenite prednostno nalogo s pomočjo upravitelja opravil.

Slabosti metode:

  • Na voljo je samo 6 prioritet
  • Prednostno preklapljanje poteka z miško, ni avtomatizirano.

2. način 2. Ukaz START lahko uporabite z ustreznimi tipkami

Na voljo so naslednji ključi (namerno izpustim možnosti ukazne vrstice ZAČETEK ni povezano z opisanim postopkom dela s prednostnimi nalogami):

C: \> začetek /?
Zažene ločeno okno za zagon določenega programa ali ukaza.
START ["naslov"] [/ D pot] [/ I] [/ MIN] [/ MAX] [/ SEPARATE | / SHARED]
[/ NIZKAJ | / NORMALNO | / VISOKO | / REALTIME | / ABOVENORMAL | / Spodaj]
[/ NODE] [/ AFFINITY] [/ POROČI] [/ B]
[ukaz / program] [parametri]
Nizka       Zaženite aplikacijo v prednostnem razredu IDLE.
Običajno     Začnite uporabo v prednostnem razredu NORMAL.
Visoka       Začnite uporabo v VISOKEM prednostnem razredu.
REALTIME   Zaženite uporabo v prednostnem razredu REALTIME.
ABOVENORMALNO Začnite uporabo v prednostnem razredu ABOVENORMAL.
NIŽJE Začnite uporabo v prednostnem razredu BELOWNORMAL.

Kot lahko vidite, ukaz START omogoča začetek postopka z istimi šestimi prednostnimi nalogami, ki so na voljo prek upravitelja opravil

Minus metoda:

  • Na voljo je samo 6 prioritet

3. način 3. Uporaba pripomočka wmic.exe

Kot je prikazano zgoraj, sta upravitelj opravil in ukaz START nerodna za določitev prednostnih nalog. Poglejmo, kako ga uporabiti bolj prožno. Uporabili bomo pripomoček wmic.exe.

Ukazna vrstica:

wmic proces, kjer name = "AppName" CALL setpriority ProcessIDLevel

Primer:

wmic postopek, kjer name = "calc.exe" CALL setpriority 32768

ali

wmic postopek, kjer name = "calc.exe" CALL setpriority "nad normalno"

Prednostne naloge (vnaprej določene):

  • mirovanje: 64
  • pod normalno: 16384
  • normalno: 32
  • nad normalno: 32768
  • visoka prioriteta: 128
  • realni čas: 256
Umik. Kaj pa, če obstaja več procesov z istim imenom? Prioriteta postopka se lahko spremeni tako po imenu procesa, kot tudi z uporabo PID (ID procesa) procesa.

Tu je kratek primer izvajanja wmic.exe, da dobite potrebne informacije

Uporabljamo ukaz:

kratek seznam wmic procesov

Opomba: Ne bom dajal primera izvedbe tega ukaza. Dobi se prevelik seznam procesov. Po želji naredite sami.

Dobili boste seznam procesov, ki se izvajajo v vašem lokalnem računalniku. Zdaj zaženite ukaz:

seznam wmic procesov kratek | najdi "cmd.exe"

Rezultat:

Posebej je lansiralo več kopij cmd.exe, tako da je bila ilustracija popolnejša.

Zdaj je seznam procesov omejen samo na tiste procese, v imenu izvedljivega modula, katerih vrstica je "cmd.exe". Bodite pozorni na PID postopka.

Zdaj poskusimo izbrati procese, ki nas zanimajo, z uporabo neposredne WMI in brez uporabe standardnih orodij ukazne vrstice. Če želite to narediti, preprosto napišite:

wmic postopek, kjer je opis = "cmd.exe" kratek

Rezultat:

Primerjaj rezultate. Ne pozabite na PID procesa CMD.EXE.

Ukazno vrstico za zagon wmic.exe

wmic proces, kjer Processid = "XXXX" CALL setpriority ProcessIDLevel

No, zdaj lahko spremenimo prednost določenega postopka (na primer s PID = 8476):

wmic postopek, kjer Processid = "8476" CALL setpriority 32768

ali

wmic postopek, kjer je processid = "8476" CALL setpriority "nad normalno"

Kaj sledi? Ocenite, poskusite, izberite in natančno prilagodite prioritete. Izboljšanje dela storitev in procesov ter dela končnih uporabnikov.