Statik İkili Kod Analiz Araçları
En Kötü Durum Yürütme Süresi (WCET) hesaplaması
Çalışma zamanı ve eşzamanlılık hata tespiti
"En Kötü Durum Yürütme Süresi" nedir?
Görev açısından kritik uygulamalar kaynak kodunun doğru, tutarlı ve deterministik olmasını gerektirir.
Örneğin, havacılık ve uzay uygulamalarında DO-178C (ED-12C), DAL C ve üzeri kritiklik seviyeleri için bu hedefi gerektirir.
Diğer faaliyetlerin yanı sıra, gerekli yürütme sürelerinin belirli bir marj içinde karşılanmasını sağlamak için mevcut tüm görevlerin en kötü durum yürütme süresinin (WCET) belirlenmesi ve analiz edilmesi gerekir.
Nasıl hesaplanıyor?
Herhangi bir olası yürütme koşulu için görevin veya programın en kötü yürütme süresi elde edilerek hesaplanır. Farklı kod dallarının yanı sıra kesintiler veya farklı görevlerin yürütme bağlamındaki değişiklikler nedeniyle olası eşzamansız yürütmeleri de hesaba katmak gerekir.
İşlemcininboru hattıveönbellekgibi programın yürütülmesini hızlandıran mekanizmaları gibi daha düşük seviyeli başka etkiler de vardır; bu sayede bir komutun yürütülme süresi daha önce yürütülen işlemlere bağlı olarak değişir. Son olarak, çok çekirdekliişlemcilerde WCET'in hesaplanması, çekirdekler arasındaki çapraz konuşmanın etkisinin yukarıdakilere eklenmesi gerektiğinden daha karmaşık hale gelir.
Bu nedenle, en kötü yürütme süresine neden olan program yürütme koşulunu veya görevini elde etmek günümüz uygulamalarında imkansızdır. Elde edilebilecek olan, WCET'in gerçek olandan daha yüksek olacak, ancak küçük bir marjla bir üst sınırıdır.
AbsInt araçları ile WCET analizi
WCET üst sınırını hesaplayan üç AbsInt aracı vardır. Araçlar nihai ikili kodun statik analizine dayanmaktadır: Timing Profiler, aiT ve TimeWeaver.