Skip to content

Yeni yazı: Priority Inversion ve Mars Pathfinder — FreeRTOS'ta Yeniden Üretim#120

Open
Mavrikant wants to merge 1 commit into
masterfrom
post/2026-06-08-priority-inversion-mars-pathfinder
Open

Yeni yazı: Priority Inversion ve Mars Pathfinder — FreeRTOS'ta Yeniden Üretim#120
Mavrikant wants to merge 1 commit into
masterfrom
post/2026-06-08-priority-inversion-mars-pathfinder

Conversation

@Mavrikant

Copy link
Copy Markdown
Owner

Yeni yazı: Priority Inversion ve Mars Pathfinder — FreeRTOS'ta Yeniden Üretim

Seçilen konu ve neden seçildi

Konu: Mars Pathfinder'ın 1997'deki priority inversion bug'ı, FreeRTOS'ta somut yeniden üretimi, Priority Inheritance vs Priority Ceiling protokollerinin worst-case bloklama analizi.

Alan: RTOS / gerçek zamanlı senkronizasyon.

Neden bu konu:

Hangi derinlik öğesini taşıyor (Bölüm 7)

Üç katmanlı somut derinlik:

  1. Gerçek bug'ın aviyonik anatomisi. Görev isimleri (bc_sched, bc_dist, ASI/MET), VxWorks SEM_INVERSION_SAFE flag'inin tam adı, deadline ihlali kaynaklı reset mekanizması (watchdog değil — zamanlayıcı kontrolünün kendisi).
  2. FreeRTOS yeniden üretim kodu. xSemaphoreCreateBinary() ile patolojiyi, tek satır değiştirip xSemaphoreCreateMutex() ile düzeltmeyi yan yana, ölçülebilir konsol çıktısıyla — H görevinin bloklanma süresi 940 ms → 150 ms.
  3. Worst-case bloklama matematiği. PIP: min(n,m)·C_max. PCP: C_max. 3 görev × 4 mutex'lik somut tabloyla 95 ms vs 40 ms karşılaştırması, schedulability analiziyle bağ.

"Bu konu Türkçe'de neden zor bulunuyor?" (Bölüm 8)

Bug İngilizce kaynaklarda detaylı (Reeves'in orijinal e-postası, Cornell CS614 arşivi, IEEE Sha-Rajkumar-Lehoczky 1990 makalesi) ama Türkçe tarafında yüzeysel — "öncelik tersine dönmesi var" diye geçilip kapanıyor. Bu yazı dört dağınık disiplini (Pathfinder vakası + VxWorks mutex semantiği + FreeRTOS API farkı + PIP/PCP formel sınırları + DO-178C sertifikasyon bağı) ilk kez tek yerde sentezliyor.

Kullanılan kaynaklar

  • Glenn E. Reeves, What really happened on Mars Rover Pathfinder, Cornell CS614 arşivi
  • Reeves'in 1997 orijinal e-postası (CCSU mirror)
  • Wind River, VxWorks semMLib referansı (SEM_INVERSION_SAFE)
  • Sha, Rajkumar, Lehoczky, Priority Inheritance Protocols, IEEE TC, 1990
  • FreeRTOS Kernel Documentation — Mutexes, Priority Inheritance
  • Liu, Real-Time Systems, Prentice Hall, 2000, Bölüm 8
  • POSIX 1003.1-2017, pthread_mutexattr_setprotocol

Öz-eleştiri özeti (Bölüm 6, 13)

  • ✅ Altı seçim kriteri sağlanıyor.
  • ✅ Konu hiçbir yazıyla başlık veya anlam olarak çakışmıyor.
  • ✅ Yazı somut bir derinlik öğesi taşıyor (üç katmanlı).
  • ✅ Tüm olgusal iddialar doğrulandı (tarih: 4 Temmuz 1997, flag adı, görev isimleri).
  • ✅ Kaynaklar gerçek ve erişilebilir.
  • ✅ Hiçbir gizli/proje-spesifik bilgi yok — yalnızca kamuya açık standart ve literatür.
  • ✅ Ön bilgi bloğu mevcut yazıların şemasıyla aynı (YAML doğrulandı).
  • ✅ Türkçe + İngilizce alt-başlık; ton "sahadan", birinci tekil şahıs.
  • ✅ Anti-pattern yok; derinlik gerçek.
  • ✅ Dosya adı 2026-06-08-priority-inversion-mars-pathfinder.md; dal adı post/2026-06-08-priority-inversion-mars-pathfinder.
  • master'a hiçbir şey push edilmedi; teslim yalnızca PR.
  • agent/topics.md defteri güncellendi (açık PR listesi senkronlandı, fikir havuzu yenilendi).

Notlar

  • Background image olarak /img/posts/2.webp seçildi — yayında olan yazılarda henüz kullanılmamış jenerik bir kapak. İstenirse konu-özel bir kapak (priority-inversion-cover.webp) sonradan eklenebilir.
  • Aritmetik (940 ms ve 150 ms bloklanma süreleri) Faz 6 sırasında yeniden hesaplanıp tutarlılaştırıldı.

🤖 Generated with Claude Code

…n üretim

Mars Pathfinder'ın 1997 priority inversion bug'ını anatomisiyle çözümler:
VxWorks SEM_INVERSION_SAFE flag'i, bc_sched/bc_dist/ASI/MET görev etkileşimi,
deadline ihlali kaynaklı reset mekanizması. Ardından FreeRTOS üzerinde
xSemaphoreCreateBinary (inversion) → xSemaphoreCreateMutex (PIP düzeltmesi)
geçişini ölçülebilir gecikme çıktısıyla (940 ms → 150 ms) yeniden üretir.
Sha-Rajkumar-Lehoczky 1990 makalesinden gelen PIP/PCP worst-case bloklama
formüllerini somut hesapla (min(n,m)·C_max vs C_max) karşılaştırır,
DO-178C DAL A sertifikasyonu için RTOS seçim kriterleriyle bağlar.

Konu defteri güncellendi.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant