A folyamat prioritásainak kezelése a Windows rendszerben

Beszéljünk A Windows folyamat prioritásai. A legtöbb esetben nem kell „játszani” a prioritások meghatározásával, de néha az illetékes rendszergazda segíthet a rendszeren a processzor idejének jobb elosztása a futó feladatok között. Nincs egyetlen recept, de a "kiválasztás és felsorolás" révén ez nagyon megvalósítható. Hol lehet erre? Például egy 1C-SQL csomóban több processzoridőt adhat az 1C-nek és az SQL-nek, mint a legkritikusabb folyamatok az erőforrások számára.

Általában megtekintheti és módosíthatja a futó folyamat prioritását a Feladatkezelőn keresztül

A windows NT / 2000 /7/ 2008

A Windows 2012 rendszerben kicsit mélyebben "eltemették"

A fenti példákból látható, hogy csak 6 prioritás áll rendelkezésre (amint később kiderül, ez prioritási osztályok). Elég? A Microsoft szerint igen. De emlékezzünk vissza Bill Geist „legendás” mondatára, amely szerint „640 KB RAM mindenki számára elegendő lesz.” Az idő azonban megmutatta, hogy ez messze nem a helyzet. :)

Most lássuk, hogy van valójában.

Valójában a Windowsban 32 prioritási szint van, 0-tól 31-ig.

Az alábbiak szerint vannak csoportosítva:

  • 31-16 valós idejű szintek;
  • 15 - 1 dinamikus szintek;
  • 0 - rendszerszint fenntartva a nulla oldalas szál számára.

A folyamat létrehozásakor a hat egyike lesz hozzárendelve prioritási osztályok:

  1. Valósidejű osztály (24. érték),
  2. Magas osztály (13. érték),
  3. Normál osztály felett (10. érték),
  4. Normál osztály (8. érték),
  5. Normál osztály alatt (6. érték),
  6. vagy alapjárati osztály (4. érték).

A Task Manager segítségével láthatja a folyamat prioritását..

megjegyzés: A normál feletti és a normál feletti prioritások a Windows 2000 óta jelentek meg.

Az egyes szálak prioritása (alapszál prioritás) a folyamat prioritásáról és relatív prioritás maga az áramlás. Hét relatív szál prioritás van:

  1. Normál: ugyanaz, mint a folyamat;
  2. Normál felett: +1 a prioritás feldolgozásához;
  3. Normál alatt: -1;
  4. Legmagasabb: +2;
  5. Legalacsonyabb: -2;
  6. Időkritikus: a valós idejű osztály folyamának alapvető prioritását 31-re, más osztályokra 15-re állítja.
  7. Alapjárat: a valósidejű osztály folyamának alapvető prioritását 16-ra, más osztályokra pedig 1-re állítja.

Az alábbi táblázat bemutatja a folyamat prioritásait, a relatív és az alapvető szál prioritásokat..

Áramlási prioritásFolyamat osztályFolyamat osztály
AlapjáratNormál osztály alattNormál osztályNormál osztály felettMagas osztályValós idejű osztály
1tétlentétlentétlentétlentétlen
2A legalacsonyabb
3Alább ...
4Alapjárat normálisA legalacsonyabb
5Fent ... Alább ...
6Normál osztály alatt legmagasabbnormálisA legalacsonyabb
7Fent ... Alább ...
8Normál osztály legmagasabbnormálisA legalacsonyabb
9Fent ... Alább ...
10Normál osztály felett legmagasabbnormális
11Fent ... A legalacsonyabb
12legmagasabbAlább ...
13Magas osztály normális
14Fent ...
15legmagasabb
15IdőkritikusIdőkritikusIdőkritikusIdőkritikusIdőkritikus
16tétlen
17
18
19
20
21
22A legalacsonyabb
23Alább ...
24Valós idejű osztály normális
25Fent ...
26legmagasabb
27
28
29
30
31Időkritikus

Most, hogy mindannyian megtanultuk ezt, mit tehetünk mindezzel? Nos, például kezdje el használni.

Hogyan lehet elindítani a folyamatot egy "nem szabványos" prioritással vagy változással?

1. módszer: Futtassa a feladatot / folyamatot, és módosítsa a prioritást a Feladatkezelőn.

A módszer hátrányai:

  • Csak 6 prioritás áll rendelkezésre
  • A prioritásváltás az egérrel történik, nem automatizált.

2. módszer. A START parancsot használhatja a megfelelő gombokkal

A rendelkezésre álló prioritási kulcsok a következők (szándékosan elhagyom a parancs parancssori beállításait) START nem kapcsolódik a prioritásokkal kapcsolatos munka leírt folyamatához):

C: \> start /?
Elindít egy külön ablakot egy megadott program vagy parancs futtatásához.
KEZDÉS ["cím"] [/ D útvonal] [/ I] [/ MIN] [/ MAX] [/ SEPARATE | / MEGOSZTOTT]
[/ LOW | / NORMÁL | / MAGAS | / REALIME | / ABOVENORMAL | / BELOWNORMAL]
[/ NODE] [/ AFFINITY] [/ WAIT] [/ B]
[parancs / program] [paraméterek]
LOW       Indítsa el az alkalmazást az IDLE prioritási osztályban.
NORMAL     Indítsa el az alkalmazást a NORMAL prioritási osztályban.
HIGH       Indítsa el az alkalmazást a MAGAS prioritási osztályban.
REALTIME   Indítsa el az alkalmazást a REALTIME prioritási osztályban.
ABOVENORMAL Indítsa el az alkalmazást az ABOVENORMAL prioritási osztályban.
belownormal Indítsa el az alkalmazást a BELOWNORMAL prioritási osztályban.

Mint láthatja, a START parancs lehetővé teszi a folyamat elindítását ugyanazon 6 prioritással, amelyek a Feladatkezelőn keresztül érhetők el

Módszer mínusz:

  • Csak 6 prioritás áll rendelkezésre

3. módszer. A wmic.exe segédprogram használata

Mint fentebb látható, a Feladatkezelő és a START parancs elég ügyetlen ahhoz, hogy prioritássá tegye a feladatot. Lássuk, hogyan lehet rugalmasabban alkalmazni. Mi fogjuk használni a segédprogramot Wmic.exe.

Parancssor:

wmic folyamat, ahol name = "AppName" CALL setpriority ProcessIDLevel

Példa:

wmic folyamat, ahol name = "calc.exe" CALL setpriority 32768

vagy

wmic folyamat, ahol name = "calc.exe" CALL beállítási prioritás "normál felett"

Prioritások (előre meghatározott):

  • alapjáraton: 64
  • normál alatt: 16384
  • normál: 32
  • normál feletti: 32768
  • kiemelt prioritás: 128
  • valós idő: 256
visszavonulás. Mi van, ha több azonos nevű folyamat létezik? A folyamat prioritása megváltoztatható mind a folyamat nevével, mind a folyamat PID (Process ID) felhasználásával.

Íme egy rövid példa a wmic.exe futtatásához a szükséges információk beszerzéséhez

A következő parancsot használjuk:

wmic folyamatlista rövid

megjegyzés: Nem adok példát a parancs végrehajtására. Túl nagy a folyamatok listája. Csináld magad, ha szükséges.

Kap egy listát a helyi számítógépen futó folyamatokról. Most futtasd a parancsot:

wmic folyamatlista rövid | "cmd.exe" keresése

Eredmény:

Kifejezetten a cmd.exe több példányát indította el, hogy az ábra teljesebb legyen.

Most a folyamatok listája csak azokra a folyamatokra korlátozódik, amelyek a futtatható modul nevében vannak, amelyeknek a "cmd.exe" sor található. Vegye figyelembe a folyamat (ok) PID-jét.

Most próbáljuk meg kiválasztani a számunkra érdeklődő folyamatokat, közvetlenül a WMI használatával és a szokásos parancssori eszközök igénybevétele nélkül. Ehhez egyszerűen írjon:

wmic folyamat, ahol a description = "cmd.exe" lista rövid

Eredmény:

Hasonlítsa össze az eredményeket. Ne feledje a CMD.EXE folyamat PID-jét.

Parancssor a wmic.exe elindításához

wmic folyamat, ahol processid = "XXXX" CALL setpriority ProcessIDLevel

Nos, most megváltoztathatjuk egy adott folyamat prioritását (például PID = 8476 esetén):

wmic folyamat, ahol processid = "8476" CALL setpriority 32768

vagy

wmic folyamat, ahol processid = "8476" CALL beállítási prioritás "normál felett"

Mi lesz a következő? Becsülje meg, próbálja ki, válassza ki és finoman állítsa be a prioritásokat. A szolgáltatások és folyamatok, valamint a végfelhasználók munkájának javítása.