Penjadwalan proses waktu nyata di Linux


24

Saya telah mempelajari beberapa konsep penjadwalan. Saat ini pemahaman saya sejauh ini adalah seperti di bawah ini.

  • Ada proses waktu nyata dan proses waktu tidak nyata.
  • Proses non real time dapat memiliki nicenilai untuk prioritas mereka di kisaran -20 hingga +20 . Nilai positif yang lebih tinggi menunjukkan bahwa proses memiliki prioritas yang lebih rendah.
  • Proses waktu nyata akan memiliki nilai kebaikan terdaftar -seperti yang dijelaskan dalam jawaban ini di sini . Ini terutama karena proses waktu nyata memiliki prioritas lebih tinggi daripada proses waktu tidak nyata dan nilai kebaikan tidak berlaku untuk mereka.
  • Sekarang, saya dapat menggunakan chrtuntuk melihat atribut waktu nyata dari suatu proses.

Untuk proses waktu nyata, chrtmemberikan output sebagai,

chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99

Seperti yang dapat kita lihat untuk proses 5 , prioritasnya adalah 99 yang merupakan yang tertinggi. Juga, kebijakan penjadwalan adalahSCHED_FIFO

Sekarang, untuk proses non-real time, chrtmemberikan output sebagai,

chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0

Seperti yang dapat kita lihat untuk proses 22383 , prioritasnya adalah 0 dan kebijakan penjadwalannya adalah SCHED_OTHER.

Pertanyaan

  1. Apakah mungkin bagi saya untuk membuat proses apa pun sebagai proses waktu nyata?
  2. Apakah mungkin bagi saya untuk mengatur beberapa algoritma penjadwalan lain selain SCHED_OTHERuntuk proses non-real time?
  3. Dari sini , saya juga melihat bahwa saya dapat memodifikasi atribut untuk proses yang berjalan seperti,

    chrt -p prio pid
    

    Juga, saya melihat chrt -mmemberi saya daftar algoritma penjadwalan. Perintah memberi saya output sebagai,

    SCHED_OTHER min/max priority    : 0/0
    SCHED_FIFO min/max priority     : 1/99
    SCHED_RR min/max priority       : 1/99
    SCHED_BATCH min/max priority    : 0/0
    SCHED_IDLE min/max priority     : 0/0
    

    Sekarang, seperti yang disarankan di atas, jika saya menetapkan chrt -p 55 22383algoritma mana yang akan digunakan?

Jawaban:


19

pertanyaan 1

Dimungkinkan bagi pengguna untuk menggunakan prioritas waktu nyata untuk suatu proses juga. Konfigurasi ini dapat diatur dari /etc/security/limits.conffile. Saya melihat konten di bawah ini di file itu.

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>

Jika kami memeriksa bagian item, kami melihat entri di bawah ini yang memungkinkan untuk menetapkan prioritas waktu nyata bagi pengguna.

#        - rtprio - max realtime priority

Pertanyaan 2 dan Pertanyaan 3

Untuk mengatur kebijakan penjadwalan SCHED_FIFO, masukkan:

chrt -f -p [1..99] {pid}

Untuk mengatur kebijakan penjadwalan SCHED_RR, masukkan:

chrt -r -p [1..99] {pid}

Jadi untuk menjawab pertanyaan 3, kita harus memverifikasi algoritma penjadwalan yang tersedia dan prioritas menggunakan chrt -mperintah dan kemudian menggunakan algoritma penjadwalan yang sesuai dengan kebutuhan kita. Untuk menetapkan prioritas yang berbeda, kita dapat menggunakan perintah seperti di atas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.