Jinx Hata Ayıklayıcı - Jinx Debugger

Uğursuzluk bir eşzamanlılık hata ayıklayıcı Paylaşılan bellek etkileşimlerine odaklanarak işlemci çekirdeklerinde iş yüklerinin harmanlanmasını belirleyici olarak kontrol eden. Jinx, bu deterministik yaklaşımı kullanarak, bazen adı verilen anlaşılması zor paylaşılan bellek hatalarının oluşma sıklığını artırmayı amaçladı. Heisenbugs. Jinx artık mevcut değil. Jinx'i geliştiren şirket Corensic tarafından satın alındı. F5 Ağları ve Jinx projesi iptal edildi.[1]

Jinx, eşzamanlılık hatalarına yol açma olasılığı en yüksek olan bir dizi potansiyel araya eklemeyi (yani alternatif olasılıklar veya bazı gelecekteki koşullar altında gerçekleşecek yürütme senaryoları) dinamik olarak oluşturarak çalıştı ve aşağıdaki gibi eşzamanlılık sorunlarını ortaya çıkarmak için bu yürütme yollarını hızla test etti. kilitlenmeler, yarış koşulları ve bulunan atomiklik ihlalleri çoklu işlem uygulamalar.

Model denetleyicilerinden farklı olarak Jinx, bir modelin spesifikasyonuna ihtiyaç duymadı. Aksine dinamik ve statik kod analizi yöntemlerinde Jinx, hiçbir yanlış pozitif (sahte hata raporları) üretmemesi bakımından dikkate değerdi. Bunun nedeni, Jinx'in, kaynak kodunu analiz ederek veya bir programın yürütülmesini gözlemleyerek bu senaryoları çıkarmanın aksine, hata olma olasılığı yüksek senaryoları test etmesiydi.

Jinx bir hipervizör yazılım ortamının tüm öğelerinin iş parçacığı serpiştirme üzerindeki etkilerini gözlemleme yeteneği verir. Jinx, herhangi bir programlama dilinden veya kitaplık veya araçlardan bağımsız olarak çalıştı.

Jinx, Washington Üniversitesi'nde yapılan araştırmaya göre Seattle, Washington'da Corensic adlı (artık feshedilmiş) bir şirket tarafından geliştirildi.[2] ve ilk olarak 2009 ASPLOS konferansında sunuldu.

Referanslar

  1. ^ Bartosz Milewski [@BartoszMilewski] (23 Eylül 2014). "@double_thunk Corensic F5 tarafından satın alındı ​​ve Jinx iptal edildi. Üzgünüm!" (Tweet) - aracılığıyla Twitter.
  2. ^ http://sampa.cs.washington.edu/sampa/Projects#Deterministic_Shared_Memory_Multiprocessing_.28DMP.29