Mengelola Prioritas Proses di Windows

Ayo bicara Prioritas proses Windows. Dalam kebanyakan kasus, tidak perlu "bermain" dengan menetapkan prioritas, tetapi kadang-kadang, administrator sistem yang kompeten dapat membantu sistem mendistribusikan waktu prosesor dengan lebih tepat di antara tugas yang sedang berjalan. Tidak ada resep tunggal, tetapi melalui "seleksi dan penghitungan" ini cukup layak. Di mana ini bisa dibutuhkan? Misalnya, dalam sekelompok 1C-SQL, Anda dapat memberikan lebih banyak waktu prosesor 1C dan SQL, sebagai proses yang paling penting untuk sumber daya.

Secara umum, Anda dapat melihat dan mengubah prioritas proses yang sedang berjalan melalui Task Manager

Windows NT / 2000 /7/ 2008

Di Windows 2012 itu "dikubur" sedikit lebih dalam

Seperti yang Anda lihat dari contoh di atas, hanya 6 prioritas yang tersedia untuk Anda (ternyata nanti, ini kelas prioritas) Cukup? Microsoft berpikir ya. Tapi mari kita ingat frasa "legendaris" Bill Geist, yang mengatakan bahwa "640 KB RAM akan cukup untuk semua orang." Tetapi waktu telah menunjukkan bahwa ini jauh dari kasus ini. :)

Sekarang mari kita lihat bagaimana sebenarnya.

Bahkan, ada 32 level prioritas di Windows, dari 0 hingga 31.

Mereka dikelompokkan seperti ini:

  • 31 - 16 tingkat waktu nyata;
  • 15 - 1 tingkat dinamis;
  • 0 - tingkat sistem dicadangkan untuk utas halaman nol.

Saat membuat proses, itu diberikan salah satu dari enam kelas prioritas:

  1. Kelas waktu nyata (nilai 24),
  2. Kelas tinggi (nilai 13),
  3. Di atas kelas normal (nilai 10),
  4. Kelas normal (nilai 8),
  5. Di bawah kelas normal (nilai 6),
  6. atau kelas idle (nilai 4).

Anda dapat melihat prioritas suatu proses menggunakan Task Manager..

Catatan: Prioritas di atas normal dan di bawah normal muncul sejak Windows 2000.

Prioritas setiap utas (prioritas utas dasar) terdiri dari prioritas prosesnya dan prioritas relatif aliran itu sendiri. Ada tujuh prioritas utas relatif:

  1. Normal: sama dengan proses;
  2. Di atas normal: +1 untuk memproses prioritas;
  3. Di bawah normal: -1;
  4. Tertinggi: +2;
  5. Terendah: -2;
  6. Waktu kritis: menetapkan prioritas dasar aliran untuk kelas waktu nyata ke 31, untuk kelas lain ke 15.
  7. Menganggur: menetapkan prioritas dasar aliran untuk kelas waktu Nyata menjadi 16, untuk kelas lainnya ke 1.

Tabel berikut menunjukkan prioritas proses, prioritas relatif dan prioritas utas..

Prioritas aliranKelas prosesKelas proses
Kelas menganggurDi bawah kelas normalKelas normalDi atas kelas normalKelas tinggiKelas waktu nyata
1MenganggurMenganggurMenganggurMenganggurMenganggur
2Terendah
3Di bawah ...
4Kelas menganggur NormalTerendah
5Di atas ... Di bawah ...
6Di bawah kelas normal TertinggiNormalTerendah
7Di atas ... Di bawah ...
8Kelas normal TertinggiNormalTerendah
9Di atas ... Di bawah ...
10Di atas kelas normal TertinggiNormal
11Di atas ... Terendah
12TertinggiDi bawah ...
13Kelas tinggi Normal
14Di atas ...
15Tertinggi
15Waktu kritisWaktu kritisWaktu kritisWaktu kritisWaktu kritis
16Menganggur
17
18
19
20
21
22Terendah
23Di bawah ...
24Kelas waktu nyata Normal
25Di atas ...
26Tertinggi
27
28
Tanggal 29
30
31Waktu kritis

Sekarang setelah kita semua mengetahui hal ini, apa yang dapat kita lakukan tentang itu semua? Nah, misalnya, mulai menggunakan.

Bagaimana lagi Anda dapat memulai proses dengan prioritas atau perubahan "non-standar"?

Metode 1. Jalankan tugas / proses dan ubah prioritas melalui Task Manager.

Kontra dari metode:

  • Hanya 6 prioritas yang tersedia
  • Peralihan prioritas dilakukan dengan mouse; itu tidak otomatis.

Metode 2. Anda dapat menggunakan perintah MULAI dengan tombol yang sesuai

Kunci prioritas yang tersedia adalah sebagai berikut (saya sengaja menghilangkan opsi baris perintah dari perintah MULAI tidak terkait dengan proses pekerjaan yang dijelaskan dengan prioritas):

C: \> mulai /?
Mulai jendela terpisah untuk menjalankan program atau perintah yang ditentukan.
MULAI ["title"] [/ D path] [/ I] [/ MIN] [/ MAX] [/ TERPISAH | / DIBAGI]
[/ RENDAH | / NORMAL | / TINGGI | / REALTIME | / ABOVENORMAL | / BELOWNORMAL]
[/ NODE] [/ AFFINITY] [/ TUNGGU] [/ B]
[perintah / program] [parameter]
Rendah       Mulai aplikasi di kelas prioritas IDLE.
Normal     Mulai aplikasi di kelas prioritas NORMAL.
Tinggi       Mulai aplikasi di kelas prioritas TINGGI.
REALTIME   Mulai aplikasi di kelas prioritas REALTIME.
ABOVENORMAL Mulai aplikasi di kelas prioritas ABOVENORMAL.
BELOWNORMAL Mulai aplikasi di kelas prioritas BELOWNORMAL.

Seperti yang Anda lihat, perintah MULAI memungkinkan untuk memulai proses dengan 6 prioritas yang sama yang tersedia melalui Task Manager

Metode minus:

  • Hanya 6 prioritas yang tersedia

Metode 3. Menggunakan utilitas wmic.exe

Seperti yang ditunjukkan di atas, Task Manager dan perintah START cukup canggung untuk tugas memprioritaskan. Mari kita lihat bagaimana menerapkannya dengan lebih fleksibel. Kami akan menggunakan utilitas wmic.exe.

Baris perintah:

proses wmic di mana name = "AppName" CALL setpriority ProcessIDLevel

Contoh:

proses wmic di mana name = "calc.exe" CALL setpriority 32768

atau

proses wmic di mana nama = "calc.exe" CALL setpriority "di atas normal"

Prioritas (ditentukan sebelumnya):

  • idle: 64
  • di bawah normal: 16384
  • normal: 32
  • di atas normal: 32768
  • prioritas tinggi: 128
  • waktu nyata: 256
Mundur. Bagaimana jika ada beberapa proses dengan nama yang sama? Prioritas proses dapat diubah baik dengan nama proses, dan menggunakan PID (ID Proses) proses.

Berikut ini adalah contoh singkat menjalankan wmic.exe untuk mendapatkan informasi yang diperlukan

Kami menggunakan perintah:

daftar proses wmic singkat

Catatan: Saya tidak akan memberikan contoh pelaksanaan perintah ini. Daftar proses terlalu besar diperoleh. Lakukan sendiri, jika diinginkan.

Anda akan mendapatkan daftar proses yang berjalan di komputer lokal Anda. Sekarang jalankan perintah:

daftar singkat proses wmic | cari "cmd.exe"

Hasil:

Secara khusus meluncurkan beberapa salinan cmd.exe, sehingga ilustrasinya lebih lengkap.

Sekarang daftar proses hanya terbatas pada proses-proses atas nama modul yang dapat dieksekusi yang ada baris "cmd.exe". Perhatikan PID prosesnya.

Sekarang mari kita coba untuk memilih proses yang menarik bagi kita, menggunakan WMI langsung dan tanpa menggunakan alat baris perintah standar. Untuk melakukan ini, cukup tulis:

proses wmic di mana deskripsi = "cmd.exe" daftar singkat

Hasil:

Bandingkan hasilnya. Ingat PID dari proses CMD.EXE.

Baris perintah untuk memulai wmic.exe

wmic process mana processid = "XXXX" CALL setpriority ProcessIDLevel

Nah, sekarang kita dapat mengubah prioritas proses tertentu (misalnya, dengan PID = 8476):

wmic process dimana processid = "8476" CALL setpriority 32768

atau

proses wmic di mana processid = "8476" CALL setpriority "di atas normal"

Apa selanjutnya Perkirakan, coba, pilih dan sesuaikan prioritas dengan halus. Meningkatkan kerja layanan dan proses, serta karya pengguna akhir.