Perkenalan

Perkenalan

Kemampuan pengguna untuk melampirkan nilai prioritas ke prosesnya sendiri setelah eksekusi menentukan apakah Anda bersikap baik kepada sesama pengguna pada sistem yang sama. Apakah Anda bersikap baik atau Anda hanya menyalahgunakan sumber daya sistem tanpa alasan yang jelas? Dalam artikel ini Anda akan belajar bagaimana mengelola proses Anda dalam hal seberapa banyak daya pemrosesan yang mereka konsumsi dan bagaimana mengubah nilai prioritas dari proses Anda menggunakan Bagus & Renice Perintah Linux. Kami akan mulai dengan beberapa teori dasar tentang apa itu proses, penjadwalan proses, cara membayar proses baru dan kemudian kami pindah ke Bagus memerintahkan dan menjelaskan cara mengubah nilai prioritas proses.

Proses apa itu

Dengan kata sederhana suatu proses adalah konvensi penamaan yang digunakan oleh Linux untuk mengambil peran dari program yang sedang berjalan. Suatu proses adalah kumpulan aturan yang digunakan oleh program tertentu yang memanfaatkan waktu prosesor, memori, dan sumber daya I/O yang ditugaskan. Setiap proses berjalan pada sistem Linux memiliki ID prosesnya sendiri (PID) yang dengannya ia dapat dipantau dan dikelola.

Kernel Linux dirancang untuk mengumpulkan berbagai informasi tentang setiap proses. Ini termasuk, tetapi tidak terbatas pada:

  • status proses (runnable, tidur, zombie atau berhenti)
  • Prioritas Eksekusi Proses (kebaikan)
  • Informasi tentang sumber daya bekas
  • pemilik proses
  • Port dan file jaringan apa yang dibuka setiap proses tertentu
  • Dan lebih banyak ..

Sekarang kita memiliki beberapa ide tentang proses apa yang bisa kita lanjutkan dan buat beberapa proses. Untuk melakukan ini cukup buka terminal Anda dan jalankan perintah ya di latar belakang dan mengarahkan outputnya ke /dev /null:

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

Setelah itu gunakan perintah ps -l kami tidak dapat mengekstrak informasi tentang 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 hal di atas kita dapat membaca ke informasi berikut:

  • F - Bendera: Prosesnya tidak dimulai dengan hak istimewa superuser. Kalau tidak, kita akan melihat nomor 4 atau jumlah 1 dan 4. Memeriksa Pria PS untuk info lebih lanjut.
  • S - Negara: Proses sedang berjalan
  • Uid - ID pengguna pengguna yang memprakarsai proses. UID sebenarnya alias untuk EUID (ID pengguna yang efektif)
  • Pid - Proses ID dari kami Ya Perintah adalah 5997
  • PPID - ID Proses Induk. Ini adalah ID proses dari mana perintah yes kami telah bercabang. Dalam hal ini bash dengan PID 5830.
  • C - Nilai integer pemanfaatan prosesor dalam % .
  • Pri - Prioritas proses. Nilai lebih tinggi prioritas yang lebih rendah.
  • Ni - Nilai bagus dengan kisaran -20 hingga 19. Nilai yang lebih tinggi semakin baik Anda untuk pengguna lain dengan kata lain, nilai lebih tinggi, prioritas yang lebih rendah.

Penjadwalan proses

Bagian ini dapat dilewati jika Anda tidak ingin membahas lebih detail tentang prioritas dan penjadwalan proses. Di sini kami akan mencoba menggambarkan proses Linux dengan beberapa ringkasan yang mudah dipahami karena topik ini dapat menjangkau banyak halaman dan itu akan menjadi satu -satunya pengantar.

Dari sudut pandang kami, kami perlu memahami bahwa Linux (Linux Kernel Version> = 2.6) Penjadwal adalah preemptive. Ini adalah kemampuan yang memungkinkan kernel untuk lebih memilih untuk melakukan tugas prioritas yang lebih tinggi daripada yang dengan prioritas yang lebih rendah. Selanjutnya, kernel memisahkan daftar prioritas untuk tugas waktu nyata dan tugas pengguna mengamuk dari masing -masing 1 - 100 dan 101 - 140.

Selain itu, kernel linux menetapkan tugas prioritas yang lebih tinggi lebih lama kuantum dan tugas prioritas yang lebih rendah waktu kuantum yang lebih pendek ini masing -masing sekitar 200 ms dan 10 ms. Dengan kata lain setiap tugas diizinkan untuk mengeksekusi hanya jika ia memiliki beberapa waktu yang tersisa. Oleh karena itu, irisan waktu yang lebih pendek untuk menjalankan penyebab proses untuk tetap waktu yang lebih singkat di runqueue aktif dan dengan demikian mengkonsumsi lebih sedikit sumber daya. Setelah proses waktu proses kosong, proses dipindahkan ke Runqueue kedaluwarsa di mana prioritasnya dihitung ulang dan kemudian dipindahkan lagi runqueue aktif. Hubungan ini diilustrasikan pada diagram di sebelah kanan Anda. Penting untuk menyebutkan bahwa baik di mana runqueues aktif dan kedaluwarsa berisi daftar tugas yang diurutkan berdasarkan prioritas mereka.

Proses siklus hidup

Prinsip dasar manajemen proses Linux berisi dua operasi yang berbeda saat membuat proses baru. Operasi adalah tempat proses menyalin dirinya sendiri garpu() hubungi dan dengan demikian menciptakan proses baru dengan PID unik. Operasi garpu paling sering diikuti oleh exec () operasi yang mengeksekusi program baru. Proses pertama yang dibuat selama waktu boot adalah init yang selalu ditugaskan PID 1. Semua proses lain dianggap sebagai proses anak dari proses init. Dalam keadaan normal sebelum proses anak -anak memungkinkan untuk mati, peristiwa ini perlu diakui oleh proses orang tua dengan mengirimkan nilai keluar. Penghentian yang berhasil mengirim nilai proses induk 0. Jika dari beberapa alasan, proses anak lebih hidup dari proses orang tua init akan menerima proses ini sebagai proses yatim piatu.

Menggunakan perintah yang bagus

Karena kekuatan pemrosesan adalah dan masih tumbuh secara eksponensial selama bertahun -tahun, pentingnya perintah yang bagus berkurang pada kecepatan yang sama. Oleh karena itu, sebagai hasilnya sangat hari ini Anda akan dipaksa untuk mengubah proses prioritas secara manual. Namun demikian, kemampuan ini ada di sana dan mungkin masih berguna dalam beberapa situasi. Secara default Nice akan menetapkan level yang bagus ke 10.

$ bagus ya> /dev /null & [1] 5199 $ ps -l F s uid pid ppid c pri ni addr sz wchan tty waktu 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 memulai proses dengan nilai bagus lainnya dari 10 kita dapat menggunakan sakelar -n.

$ 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 Tunggu pts/0 00:00:00 Bash 0 R 1000 5270 3383 99 95 15 - 1757 - PTS/0 00:00 : 02 Ya 0 R 1000 5271 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Diperlukan untuk menetapkan nilai bagus di bawah 0 izin root. Nice akan tetap memulai program, namun, nilai yang bagus akan diatur ke 0. Di sini, kami mencoba menetapkan nilai bagus ke -1 tanpa izin root:

$ bagus -n -1 ya> /dev /null & [1] 5285 Nice: Can't Set Nelceness: Izin ditolak $ ps -l F s uid pid ppid c pri ni addr sz wchan tty waktu cmd 0 s 1000 3383 3380 0 80 0 - 6447 Tunggu 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 karena itu, untuk menetapkan nilai yang bagus untuk menurunkan dari 0 kita perlu menjalankan program di atas sebagai root 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 waktu 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 PS 

Menggunakan perintah Renice

Di bagian sebelumnya kami telah belajar cara memulai program dengan nilai bagus yang telah ditentukan menggunakan perintah yang bagus. Di sini, kami mencoba mengubah nilai bagus dari program yang berjalan menggunakan perintah Renice. Di sini, kami memiliki program Running Yes dengan nilai bagus 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 Tunggu 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 mengubah nilainya, kita dapat menggunakan perintah Renice dan memasok PID dan nilai yang bagus. Mari kita ubah nilai bagus menjadi 15:

$ Renice -n 15 -p 5645 5645 (ID Proses) Prioritas lama 10, Prioritas Baru 15 $ ps -l F s uid pid ppid c pri ni addr sz wchan tty waktu cmd 0 s 1000 3383 3380 0 80 0 - 6447 Tunggu 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 

Aturan yang harus diikuti adalah bahwa pengguna non-super hanya dapat meningkatkan nilai bagus (memberikan lebih sedikit prioritas) untuk proses apa pun. Jika sekarang akan mencoba mengubah ke nilai bagus dari 15 kembali ke 10 ia mengikuti kesalahan akan muncul:

$ Renice -n 10 -p 5645 Renice: Gagal menetapkan prioritas untuk 5645 (ID proses): izin ditolak 

Perintah Renice juga memberi pengguna root kemampuan untuk mengubah nilai yang bagus dari proses pengguna mana pun. Ini dilakukan oleh -U switch. Perintah Linux berikut akan mengubah prioritas semua proses pengguna menjadi -19.

# Renice -n -19 -u Lubos 1000 (ID pengguna) Prioritas lama 0, prioritas baru -19 

Kesimpulan

Perintah yang bagus bisa menjadi alat yang praktis dan tentu mudah digunakan. Harap dicatat bahwa Anda juga dapat menggunakan perintah atas untuk mengganti nilai proses.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Loop bersarang dalam skrip bash
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Instal Arch Linux di VMware Workstation
  • Ubuntu 20.04 Panduan
  • Cara Dual Boot Kali Linux dan Windows 10
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?