Pengenalan

Pengenalan

Keupayaan pengguna untuk melampirkan nilai keutamaan kepada prosesnya sendiri apabila pelaksanaan menentukan sama ada anda bersikap baik kepada pengguna anda pada sistem yang sama. Adakah anda baik atau anda hanya menyalahgunakan sumber sistem tanpa alasan yang jelas? Dalam artikel ini, anda akan belajar bagaimana menguruskan proses anda dari segi berapa banyak kuasa pemprosesan yang mereka makan dan bagaimana mengubah nilai keutamaan proses anda menggunakan Bagus & Renice Perintah Linux. Kami akan bermula dengan beberapa teori asas mengenai proses, proses penjadualan, bagaimana untuk memainkan proses baru dan kemudian kami bergerak ke Bagus perintah dan terangkan cara menukar nilai keutamaan proses.

Apa itu proses

Dalam kata -kata mudah proses adalah konvensyen penamaan yang digunakan oleh Linux untuk memainkan peranan dalam program yang sedang berjalan. Proses adalah koleksi peraturan yang mana program tertentu menggunakan masa pemproses, memori dan sumber I/O yang diberikan. Setiap proses yang dijalankan pada sistem Linux mempunyai ID Proses sendiri (PID) yang boleh dipantau dan ditadbir.

Kernel Linux direka untuk mengumpulkan pelbagai maklumat mengenai setiap proses. Ini termasuk, tetapi tidak terhad kepada:

  • Status proses (runnable, tidur, zombie atau berhenti)
  • Keutamaan Pelaksanaan Proses (Niceness)
  • maklumat mengenai sumber terpakai
  • pemilik proses
  • Pelabuhan dan fail rangkaian apa yang dibuka setiap proses tertentu
  • Dan banyak lagi ..

Sekarang kita mempunyai idea tentang apa prosesnya kita boleh meneruskan dan membuat beberapa proses. Untuk melakukan ini hanya buka terminal anda dan laksanakan perintah ya di latar belakang dan mengalihkan outputnya ke /dev /null:

$ ya> /dev /null & [1] 5997 

Selepas itu gunakan arahan PS -L, kami tidak dapat mengeluarkan maklumat mengenai proses YA kami:

$ ps -l f s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 5830 3283 0 80 0 - 6412 Tunggu pts/0 00:00:00 bash 0 r 1000 5997 5830 99 80 0 - 1757 - pts/ 0 00:00:09 Ya 0 R 1000 5998 5830 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Dari yang di atas kita dapat membaca untuk mengikuti maklumat:

  • F - Bendera: Proses ini tidak bermula dengan keistimewaan super. Jika tidak, kita akan melihat nombor 4 atau jumlah 1 dan 4. Periksa lelaki ps untuk maklumat lanjut.
  • S - Negeri: Proses sedang berjalan
  • Uid - ID pengguna pengguna yang memulakan proses. Uid sebenarnya alias untuk euid (id pengguna yang berkesan)
  • Pid - Proses ID kami Ya Perintah adalah 5997
  • Ppid - ID proses induk. Ini adalah ID proses dari mana arahan YES kami telah dicabul dari. Dalam kes ini ia adalah bash dengan PID 5830.
  • C - Nilai integer penggunaan pemproses dalam % .
  • Pri - Keutamaan proses. Nilai yang lebih tinggi adalah keutamaan yang lebih rendah.
  • Ni - Nilai bagus dengan jarak dari -20 hingga 19. Nilai yang lebih tinggi semakin baik anda kepada pengguna lain dengan kata lain nilai yang lebih tinggi keutamaan yang lebih rendah.

Penjadualan proses

Bahagian ini boleh dilangkau jika anda tidak merasa ingin mendapatkan maklumat lanjut mengenai keutamaan dan penjadualan proses. Di sini kita akan cuba menerangkan proses Linux dengan mudah untuk memahami ringkasan asas kerana topik ini dapat merangkumi beberapa halaman dan itu akan menjadi satu -satunya pengenalan.

Dari sudut pandangan kita, kita perlu memahami bahawa linux (versi kernel linux> = 2.6) Penjadual adalah pendahuluan. Ini adalah keupayaan yang membolehkan kernel memilih untuk melaksanakan tugas keutamaan yang lebih tinggi ke atas yang mempunyai keutamaan yang lebih rendah. Selain itu, kernel memisahkan senarai keutamaan kepada tugas masa nyata dan tugas pengguna yang mengamuk dari 1 - 100 dan 101 - 140 masing -masing.

Tambahan pula, kernel Linux menyerahkan kepada tugas keutamaan yang lebih tinggi masa kuantum yang lebih lama dan tugas keutamaan yang lebih rendah masa kuantum yang lebih pendek ini adalah kira -kira 200 ms dan 10 ms, masing -masing. Dengan kata lain setiap tugas dibenarkan untuk melaksanakan hanya jika ia mempunyai beberapa slice masa yang tinggal. Oleh itu, slice masa yang lebih singkat untuk melaksanakan proses penyebab untuk kekal lebih singkat dalam runqueue aktif dan dengan itu mengambil sumber yang kurang. Sebaik sahaja kepingan masa proses kosong, proses dipindahkan ke Runqueue yang telah tamat tempoh di mana keutamaannya dikira semula dan kemudian dipindahkan lagi ke Runqueue aktif. Hubungan ini digambarkan pada rajah di sebelah kanan anda. Penting untuk menyebutkan bahawa kedua -dua runqueues yang aktif dan tamat tempoh mengandungi senarai tugas yang disusun mengikut keutamaan mereka.

Proses kitaran hayat

Prinsip asas pengurusan proses linux mengandungi dua operasi yang berbeza ketika membuat proses baru. Operasi adalah di mana proses menyalin sendiri garpu () Hubungi dan dengan itu membuat proses baru dengan PID yang unik. Operasi garpu paling biasa diikuti oleh exec () operasi yang melaksanakan program baru. Proses pertama yang dibuat semasa masa boot adalah di dalamnya yang selalu ditugaskan PID 1. Semua proses lain dianggap proses kanak -kanak proses init. Dalam keadaan biasa sebelum proses kanak -kanak dibenarkan mati peristiwa ini perlu diakui oleh proses induk dengan menghantar nilai keluar. Penamatan yang berjaya menghantar nilai proses induk 0. Sekiranya dari sebab tertentu proses anak -anak melebihi proses induk di dalamnya akan menerima proses ini sebagai proses yatim piatu.

Menggunakan arahan yang bagus

Oleh kerana kuasa pemprosesan masih dan masih berkembang pesat selama bertahun -tahun kepentingan perintah yang baik semakin berkurangan pada kadar yang sama. Oleh itu, sebagai hasilnya, hari ini anda akan terpaksa menukar keutamaan proses secara manual. Walau bagaimanapun, keupayaan ini ada dan masih boleh berguna dalam beberapa situasi. Secara lalai bagus akan menetapkan tahap yang bagus hingga 10.

$ bagus ya> /dev /null & [1] 5199 $ ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 3383 3380 0 80 0 - 6445 Tunggu pts/0 00:00:00 bash 0 r 1000 5199 3383 99 90 10 - 1757 - pts/0 00:00 - : 07 Ya 0 R 1000 5200 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Untuk memulakan proses dengan nilai bagus lain daripada 10 kita boleh menggunakan -n suis.

$ bagus -n 15 ya> /dev /null & Atau $ bagus -15 ya> /dev /null & [1] 5270 $ ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 3383 3380 0 80 0 - 6447 Wait pts/0 00:00:00 bash 0 r 1000 5270 3383 99 95 15 - 1757 - 0 00:00 - : 02 Ya 0 R 1000 5271 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Untuk menetapkan nilai yang bagus di bawah 0 Kebenaran Root diperlukan. Bagus masih akan memulakan program, bagaimanapun, nilai yang bagus akan ditetapkan kepada 0. Di sini, kami cuba menetapkan nilai yang baik kepada -1 tanpa kebenaran akar:

$ bagus -n -1 ya> /dev /null & [1] 5285 Bagus: Tidak dapat menetapkan Niceness: Kebenaran ditolak $ ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 3383 3380 0 80 0 - 6447 Wait pts/0 00:00:00 bash 0 r 1000 5285 3383 95 80 0 - 1757 - pts/0 00:00 - : 07 Ya 0 R 1000 5295 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Oleh itu, untuk menetapkan nilai yang baik kepada lebih rendah daripada 0 kita perlu melaksanakan program di atas sebagai akar atau menggunakan sudo.

# bagus -n -1 ya> /dev /null & [1] 5537 # ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 4 s 0 5428 3383 0 80 0 - 14430 Tunggu pts/0 00:00:00 su 0 s 0 5436 5428 1 80 0 - 7351 Tunggu pts/0 00:00 : 00 bash 4 r 0 5537 5436 87 79 -1 - 1757 - pts/0 00:00:04 Ya 4 r 0 5538 5436 0 80 0 - 2399 - pts/0 00:00:00 ps 

Menggunakan perintah Renice

Di bahagian sebelumnya, kami telah belajar bagaimana memulakan program dengan nilai yang baik pra-set menggunakan arahan yang bagus. Di sini, kami cuba mengubah nilai bagus program berjalan menggunakan perintah renice. Di sini, kami mempunyai program Running Yes dengan nilai yang baik 10:

$ ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 3383 3380 0 80 0 - 6447 Wait pts/0 00:00:00 bash 0 r 1000 5645 3383 99 90 10 - 1757 - pts/0 00:00 - : 04 Ya 0 R 1000 5646 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Untuk menukar nilainya, kita boleh menggunakan perintah Renice dan membekalkan PID dan nilai yang bagus. Mari ubah nilai yang baik menjadi 15:

$ Renice -N 15 -P 5645 5645 (ID Proses) Keutamaan Lama 10, Keutamaan Baru 15 $ ps -l F s uid pid ppid c pri ni addr sz wchan tty time cmd 0 s 1000 3383 3380 0 80 0 - 6447 Wait pts/0 00:00:00 bash 0 r 1000 5645 3383 99 95 15 - 1757 - pts/0 00:00 - : 31 Ya 0 R 1000 5656 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Peraturan yang harus diikuti ialah pengguna bukan super hanya dapat meningkatkan nilai yang baik (memberi keutamaan yang kurang) kepada sebarang proses. Sekiranya sekarang akan mencuba perubahan kepada nilai yang baik dari 15 kembali ke 10 dia mengikuti kesilapan akan muncul:

$ Renice -N 10 -P 5645 Renice: Gagal menetapkan keutamaan untuk 5645 (ID Proses): Kebenaran ditolak 

Perintah Renice juga memberi pengguna akar keupayaan untuk mengubah nilai yang bagus dari proses pengguna. Ini dilakukan oleh -u suis. Perintah Linux berikut akan mengubah keutamaan semua proses pengguna ke -19.

# Renice -N -19 -U Lubos 1000 (ID Pengguna) Keutamaan Lama 0, Keutamaan Baru -19 

Kesimpulan

Perintah yang bagus boleh menjadi alat yang berguna dan pasti mudah digunakan. Sila ambil perhatian bahawa anda juga boleh menggunakan arahan teratas untuk nilai proses renice.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Gelung bersarang dalam skrip bash
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Pasang Arch Linux di Workstation VMware
  • Ubuntu 20.04 Panduan
  • Cara Dual Boot Kali Linux dan Windows 10
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?