Ingin tahu mekanisme penjadwalan apa yang digunakan pada 15,04, pembagian waktu atau waktu nyata, saya cukup yakin FIFO-nya, Round Robin, SJF?
PS: Baru ke Linux
Penjadwal proses
Penjadwal proses menangani alokasi sumber daya CPU untuk menjalankan proses, dan bertujuan untuk memaksimalkan pemanfaatan CPU secara keseluruhan sambil juga memaksimalkan kinerja interaktif.
Sejak kernel 2.6.23 (yang akan seperti pada Hardy 8.04 LTS) Penjadwal Sepenuhnya Adil (CFS) berdasarkan "Batas Waktu Tangga Berputar". Gambaran umum dari kernel.org :
CFS adalah singkatan dari "Completely Fair Scheduler," dan merupakan penjadwal proses "desktop" baru yang diimplementasikan oleh Ingo Molnar dan digabung dalam Linux 2.6.23. Ini adalah pengganti untuk kode interaktivitas SCHED_OTHER penjadwal vanili sebelumnya.
80% dari desain CFS dapat disimpulkan dalam satu kalimat: CFS pada dasarnya memodelkan "CPU multi-tasking yang ideal dan tepat" pada perangkat keras nyata.
"CPU ideal multi-tasking" adalah CPU (tidak ada :-)) yang memiliki kekuatan fisik 100% dan yang dapat menjalankan setiap tugas pada kecepatan yang sama, secara paralel, masing-masing pada kecepatan 1 / nr_running. Sebagai contoh: jika ada 2 tugas yang berjalan, maka itu berjalan masing-masing dengan kekuatan fisik 50% --- yaitu, sebenarnya secara paralel.
Pada perangkat keras nyata, kita hanya dapat menjalankan satu tugas sekaligus, jadi kita harus memperkenalkan konsep "runtime virtual." Runtime virtual dari suatu tugas menentukan kapan kutu waktu berikutnya akan mulai dieksekusi pada CPU multi-tasking ideal yang dijelaskan di atas. Dalam praktiknya, runtime virtual suatu tugas adalah runtime aktual yang dinormalisasi ke jumlah total tugas yang berjalan.
Penjadwal I / O
Penjadwalan input / output adalah metode yang digunakan sistem operasi untuk memutuskan urutan operasi I / O blok yang akan dikirimkan ke volume penyimpanan.
Artikel Phoronix tentang penjadwalan : Linux 3.16: Tenggat I / O Scheduler Umumnya Memimpin Dengan SSD.
Anda dapat mengubah penjadwal I / O dengan menambahkan opsi "elevator =" ke "GRUB_CMDLINE_LINUX_DEFAULT =" di grub.
Mungkin lebih mudah (dengan asumsi sda dan tenggat waktu) untuk melakukannya seperti ini:
Untuk menampilkan daftar penjadwal yang tersedia:
cat /sys/block/sda/queue/scheduler
Dan untuk mengubah penjadwal (dapat dilakukan dengan cepat):
echo deadline > /sys/block/sda/queue/scheduler
Dari kernel / git / torvalds / linux.git
Anda dapat memeriksa dengan apa yang digunakan (dengan asumsi sda sebagai produk utama):
cat /sys/block/sda/queue/scheduler