Linux'ta gerçek zamanlı preemption desteğinin varış noktası
- Linux'a gerçek zamanlı destek ekleme çalışmaları 2004'te başladı ve artık son aşamaya girmiş durumda.
- Gerçek zamanlı preemption'ın amacı, en yüksek öncelikli sürecin en az gecikmeyle çalışabilmesini sağlamaktır; bunun için çekirdek mümkün olduğunca çok durumda preempt edilebilir hale getirildi.
- Bu çalışma, çekirdeğin temel bölümlerinin yeniden yazılmasıyla sonuçlandı ve gerçek zamanlı kullanım senaryolarının ötesine geçen faydalar sağladı.
printk() sorununun çözümü
- Çekirdekte sistem konsoluna ve günlüklere mesaj göndermek için kullanılan
printk() fonksiyonu eşzamanlı çalışır; yani yapılandırılmış tüm hedeflere mesaj iletilene kadar geri dönmez.
- Gerçek zamanlı geliştiricileri,
printk() çıktısını ayrı bir iş parçacığına taşıyarak onu eşzamansız hale getirdi, ancak bu yalnızca geçici bir çözümdü.
- 2018'den beri ciddi biçimde ele alınan
printk() sorunu, yaklaşık 300 yama üzerinden çözülme yolunda; ancak hâlâ çözülmesi gereken birkaç karmaşık mesele kaldı.
Gerçek zamanlı preemption kodunun ana dala entegrasyonu beklentisi
- Gerçek zamanlı preemption kodunun kalan kısmının, 2024 sonunda 20. yılını doldurmadan önce ana dala entegre edileceğine dair umut dile getirildi.
printk() kodunda son dönemde bir değişiklik olmasa da, konsol sürücülerinin tek tek güncellenebilmesini sağlamak için handover kodu değiştirildi.
- Önemli mesajların, ilk satır yazdırılmadan önce tamamen mesaj arabelleğine kopyalanması için kod değiştirildi; ayrıca hatalı konsol sürücülerinin sistemi çökertmesini önlemek amacıyla mesajlar önce güvenli konsola yazılıyor.
GN⁺ görüşü
- Linux çekirdeğine gerçek zamanlı preemption desteği ekleme çalışması neredeyse tamamlanma aşamasında ve bu, gerçek zamanlı iş yüklerine ihtiyaç duyan sistemler için büyük fayda sağlayacak.
printk() fonksiyonunun eşzamansız hale getirilmesi, sistemin tepkiselliğini artırıyor ve gerçek zamanlı preemption hedeflerine ulaşmada önemli bir rol oynuyor.
- Bu makale, Linux çekirdeği geliştirmesindeki önemli bir ilerlemeyi gösteriyor ve çekirdek geliştirmeyle ilgilenenler için ilgi çekici içerik sunuyor.
1 yorum
Hacker News görüşü
QNX mikroçekirdeğinin avantajları
Linux'un gerçek zamanlı işleme sorunları
Çekirdeğin loglama işlevi ve gerçek kullanım örnekleri
Gerçek zamanlı donanım/yazılım kombinasyonlarının ikame edilebilirliği
"Hard" ve "soft" gerçek zamanlı uygulamalar ayrımı
Linux çekirdeğinin gerçek zamanlı işleme yetenekleri ve donanımın sınırları
Senkron loglamanın sorunları
Belirli bir sürecin yanıt verebilirliğini garanti etme yöntemleri
Linux'un gerçek zamanlı preemption özelliği ve geçmiş deneyimler
Genel kullanıcıya etkisi