Mavi Ekran Hatası Bir Arabada Olsaydı? Neden Mars'taki Robotlar Windows Kullanmaz?
Hız mı, zamanlama mı? Otonom araçların ve Mars robotlarının neden Windows yerine RTOS kullandığını, determinizm ve jitter kavramlarıyla inceliyoruz.
Mavi Ekran Hatası Bir Arabada Olsaydı? Neden Mars’taki Robotlar Windows Kullanmaz?
Ölümcül Bir Senaryo
Kendinizi saatte 120 km hızla giden otonom bir aracın içinde düşünün. Önünüze aniden bir engel çıktığında, aracın fren sisteminin saniyeler içinde karar vermesi gerekir.
Bilgisayar oyunu oynarken “donma” (lag) olursa sadece sinirleniriz veya Netflix’te dizi izlerken video donarsa hayati bir sonucu olmaz. Bu gecikme sadece keyfimizi kaçırır.
Fakat ya aynı şey az önce verdiğim araç örneğinde olsaydı? Aracın önüne bir engel çıktığında fren sisteminin karar verme sürecinde bu tür bir gecikme yaşansaydı sonuçları ne olurdu?
Yazılım dünyasında genellikle “hız” konuşulur; ancak robotik ve gömülü sistemler dünyasında kral “zamanlama”dır. Bu yazıda, modern robotiğin omurgası olan RTOS (Gerçek Zamanlı İşletim Sistemleri) kavramının derinliklerine ineceğiz.
“Hızlı İşlemci Her Şeyi Çözer” Sanrısı
Bir sınıf düşünün. Sınıfın en zeki ve en hızlı öğrencisi (buna bir i9 işlemci diyelim) sınav sorularını 5 dakikada bitiriyor. Ki bu oldukça hızlı bir süre.
Ama eğer bu öğrenci, sınav kağıdını hoca sınıftan çıktıktan 1 saniye sonra teslim etmeye kalkarsa, aldığı not koca bir SIFIRDIR.
İşte Real-Time (Gerçek Zamanlı) sistemlerin mantığı budur. Önemli olan işlemi ne kadar çabuk yaptığınız değil, işlemi belirlenen sürede (deadline) teslim edip etmediğinizdir. Robotikte de durum böyledir; işlemciniz ne kadar güçlü olursa olsun, frene basma emrini ‘deadline’ geçtikten sonra verirse, o güç işe yaramaz.
İki Farklı Dünya: Soft vs. Hard Real-Time
Mühendislikte sistemleri toleranslarına göre ikiye ayırırız.
Soft Real Time (Yumuşak Gerçek Zamanlı) Nedir?
Soft Real Time bir sistemde, teslim tarihi (deadline) kaçırılırsa sistem çalışmaya devam eder, ancak hizmet kalitesi düşer.
Örneğin, Netflix’te film izlerken internet yavaşlarsa görüntü kalitesi düşer veya oyun oynarken kare hızı (FPS) azalır. Canımız sıkılır ama sistem “çökmüş” sayılmaz. Kimse zarar görmez.
Hard Real-Time (Sert Gerçek Zamanlı) Nedir?
Hard Real-Time sistemlerde gecikmeye tolerans sıfırdır. Gecikmiş sinyaller tamamen sistemin başarısızlığına yol açar.
Mesela bir otonom aracı veya cerrahi robotu düşünün. Saatte 100 km hızla giden bir araçta, kaza sensörünün veriyi işlemesi ve hava yastığını tetiklemesi için milisaniyelerle sınırlı bir süresi vardır. Eğer sistem 5ms geç bile tepki verirse, hava yastığı açılsa bile sistem başarısız olmuştur. İşte bu, hataya tahammülü olmayan Hard Real-Time dünyasıdır.
GPOS (Windows/Linux) Neden Yetersiz?
Windows, macOS veya standart Linux dağıtımları GPOS (General Purpose Operating System) yani Genel Amaçlı İşletim Sistemleri olarak adlandırılır. Bu sistemlerin temel felsefesi “Adalet” (Fairness) ve “İş Hacmi” (Throughput) üzerine kuruludur.
İşlemci, o an çalışan tarayıcıya, müzik çalarına ve arka plandaki güncellemeye “eşit” davranmaya çalışır. Hepsine sırayla minik süreler tanır.
Ancak robotikte adalet değil, “Öncelik” (Priority) aranır. Dengesi bozulan bir drone’un motorlarını düzeltmesi gerekirken, işletim sisteminin “Sıranı bekle, şu an Wi-Fi sinyalini kontrol ediyorum” deme lüksü yoktur.
Bir fabrikadaki robotik kolun, çalışanlar çalışma alanına girdiğinde anında durabilmesi gerekir. GPOS’taki belirsizlik (non-determinism), burada yaralanmalara yol açabilir. Bu yüzden kritik görevlerde GPOS yerine RTOS kullanılır.
Çözüm: RTOS ve Determinizm
Peki mühendisler ne kullanıyor? İşte burada karşımıza RTOS (Real-Time Operating System / Gerçek Zamanlı İşletim Sistemi) çıkıyor.
RTOS’u standart bir işletim sisteminden ayıran temel özellik, kodun daha hızlı çalışması değil; kodun ne zaman çalışacağının garanti edilmesidir. Bir gömülü sistem mühendisi için en kutsal kelime “Determinizm”dir.
Determinizm; sisteme bir girdi verdiğinizde, çıktının her zaman, her koşulda aynı sürede verileceğini bilmektir. Asla şaşmaz, gecikmez, hızlanmaz.
RTOS’un en büyük düşmanı ‘Jitter’. Jitter için İstanbul trafiğine benzetmesi yapılabilir. Yola çıkarsınız ama ne zaman varacağınız asla belli olmaz. Robotlar da bu belirsizlikten nefret ediyor işte. Bir robot kolunu hareket ettiren motorlara giden sinyal, bir seferinde 1 milisaniyede, diğer seferinde 5 milisaniyede giderse, o robot kolu titremeye başlar.
RTOS, bu süreyi mikrosaniyeler hassasiyetinde sabit tutarak sistemin pürüzsüz çalışmasını sağlar.
Kaputun Altı: İşlemci Nasıl Karar Veriyor?
Bu noktada aklınıza şu soru gelebilir: “Bir işlemci, o sırada elinde bir iş varken (mesela bir veriyi kaydediyorken), daha acil bir iş geldiğini nasıl anlıyor ve ona geçiyor?”
İşte mühendisliğin “sihri” burada devreye giriyor. RTOS’un çalışma mantığını çok basit iki metaforla anlatabiliriz:
1. Acımasız Trafik Polisi (Preemptive Scheduling)
Standart sistemlerde işlemci “kibar” davranır. Bir program çalışırken onun bitmesini bekleyebilir. Ancak RTOS’un zamanlayıcısı , acımasız bir trafik polisi gibidir.
Sisteme “Yüksek Öncelikli” bir iş (örneğin önüne engel çıkan arabanın fren sistemi) geldiği anda, polis o sırada yoldan geçen düşük öncelikli aracı (örneğin klima kontrolü) zorla durdurur. “Lütfen kenara çekil” demez, akışı anında keser ve ambulansa (fren sistemine) yol verir. Bu “kesip atma” yeteneği, robotların anlık refleks göstermesini sağlar.
2. Kapı Zili Etkisi (Interrupts)
İşlemci, sensörleri sürekli “Bir şey oldu mu?” diye kontrol etmez. Bu hem yorucu hem de verimsizdir. Bunun yerine “Interrupt” (Kesme) dediğimiz mekanizma kullanılır.
Bunu evinizde otururken kargocuyu beklemeye benzetebilirsiniz. Sürekli pencereden bakmazsınız, işinize gücünüze bakarsınız. Kargocu geldiğinde zile basar (Interrupt). Zilin sesi, o an ne yapıyorsanız yapın dikkatinizi çeker ve hemen kapıya yönelirsiniz. RTOS’ta sensörler işlemciye “zile basarak” ulaşır.
Gerçek Hayattan Kanıtlar: Mars ve Endüstri
Anlattıklarım size sadece teorik geldiyse, gözümüzü biraz yukarı, Kızıl Gezegen’e çevirelim. NASA’nın Perseverance veya Curiosity gibi Mars gezginlerinin neden Windows kullanmadığını hiç düşündünüz mü?
Cevap çok basit: Gecikme (Latency).
Dünya ile Mars arasındaki mesafe o kadar fazladır ki, buradan gönderilen bir sinyalin araca ulaşması ortalama 14 dakika sürer. Mars atmosferine giriş anında yaşanan o meşhur “7 Dakikalık Dehşet” sırasında, araç her şeye tek başına karar vermek zorundadır.
O kritik dakikalarda paraşütü ne zaman açacağını, iticileri ne zaman ateşleyeceğini mikrosaniyeler içinde hesaplamalıdır. Eğer işletim sistemi o sırada “Bellek temizliği yapıyorum” diye 50 milisaniyelik bir gecikme yaşatsa, milyar dolarlık proje Mars yüzeyine çakılan bir metal yığınına döner. İşte bu yüzden Mars’ta VxWorks gibi gelişmiş RTOS sistemleri çalışır.
Sonuç
Gömülü sistemler ve çip tasarımı üzerine yaptığım bu araştırmalar bana şunu gösterdi: İyi bir mühendis olmak sadece “çalışan kod” yazmak değil, donanımın sınırlarını ve zamanı yönetebilen kod yazmaktır.
