15.04, zaman paylaşımı veya gerçek zamanlı olarak hangi zamanlama mekanizmalarının kullanıldığını bilmek ister misiniz, eminim FIFO, Round Robin, SJF?
PS: Linux'ta yeni
15.04, zaman paylaşımı veya gerçek zamanlı olarak hangi zamanlama mekanizmalarının kullanıldığını bilmek ister misiniz, eminim FIFO, Round Robin, SJF?
PS: Linux'ta yeni
Yanıtlar:
İşlem zamanlayıcı
Bir işlem zamanlayıcı, işlemlerin yürütülmesi için CPU kaynak tahsisini işler ve etkileşimli performansı en üst düzeye çıkarırken genel CPU kullanımını en üst düzeye çıkarmayı amaçlar.
Çekirdek 2.6.23'ten beri (Hardy 8.04 LTS'den itibaren olacaktır) "Döner Merdiven Son Tarihi" ne dayanan Tamamen Adil Zamanlayıcı (CFS) . Kernel.org'dan genel bakış :
CFS, "Tamamen Adil Zamanlayıcı" anlamına gelir ve Ingo Molnar tarafından uygulanan ve Linux 2.6.23'te birleştirilen yeni "masaüstü" süreç zamanlayıcıdır. Önceki vanilya zamanlayıcısının SCHED_OTHER etkileşim kodunun yerini almıştır.
CFS tasarımının% 80'i tek bir cümleyle özetlenebilir: CFS temel olarak gerçek donanımda "ideal, hassas çoklu görev CPU'su" nu modeller.
"İdeal çoklu görev CPU"% 100 fiziksel güce sahip (her biri 1 / nr_running hızında paralel olarak her biri hassas eşit hızda çalıştırabilen (mevcut olmayan :-)) bir CPU'dur. Örneğin: çalışan 2 görev varsa, her biri% 50 fiziksel güçte çalışır - yani aslında paraleldir.
Gerçek donanımda, aynı anda yalnızca tek bir görev çalıştırabiliriz, bu nedenle "sanal çalışma zamanı" kavramını tanıtmamız gerekir. Bir görevin sanal çalışma zamanı, sonraki zaman diliminin yukarıda açıklanan ideal çok görevli CPU'da ne zaman yürütülmeye başlayacağını belirtir. Pratikte, bir görevin sanal çalışma zamanı, çalışan toplam görev sayısına normalleştirilen gerçek çalışma zamanıdır.
G / Ç zamanlayıcı
Giriş / çıkış zamanlaması, işletim sisteminin hangi hacimli blok I / O işlemlerinin depolama birimlerine sunulacağına karar vermek için kullandığı yöntemdir.
Çizelgeleme ile ilgili Phoronix makalesi : Linux 3.16: Son Tarih I / O Zamanlayıcısı Genel Olarak SSD ile Çalışıyor.
I / O zamanlayıcısını grub içinde "elevator =" seçeneğini "GRUB_CMDLINE_LINUX_DEFAULT =" seçeneğine ekleyerek değiştirebilirsiniz.
Yine de böyle yapmak daha kolay (sda ve son tarih varsayarak):
Mevcut programlayıcıların listesini göstermek için:
cat /sys/block/sda/queue/scheduler
Ve bir zamanlayıcıyı değiştirmek için (anında yapılabilir):
echo deadline > /sys/block/sda/queue/scheduler
Çekirdek / git / torvalds / linux.git
Ne ile kullanıldığını kontrol edebilirsiniz (sda'yı birincil olarak kabul ederek):
cat /sys/block/sda/queue/scheduler