İşletim sistemleri yalnızca bilgisayarlarınız içinde bulunmuyor. Birçok farklı cihaz kontrolleri için işletim sistemlerine, kritik işlerde kullanılanlar ise gerçek zamanlı işletim sistemlerine ihtiyaç duyuyorlar.

İşletim sistemleri ilk etapta disk işletim sistemi (Disk Operating System) olarak karşımızaçıkmaya başladı. Bunun sebebi ilk etapta işletim sistemlerinin makineye gömülü ROM’lardan(salt okunur bellekler) çalışması ve geri kalan her şeyin harici bir ortama(mesela disket)kaydedilmedikleri takdirde bilgisayar kapandığında silinip gitmeleri olsa gerek. Son kullanıcıya hitap eden işletim sistemleri son 30 senedir bundan uzak; diskinizi kuruluyorlar, güncelleniyorlar, sürekli yazılıp silinebilir ortamlarda kendi bilgilerini tutuyorlar. Bu kısmını geçtik; esas kısım veriyi işleme mimarisinde. Çağdaş mikro işlemciler ve bu işlemcilerle çalışan işletim sistemleri aynı komutu bitene kadar çalıştırmazlar.

Tek bir yazılım çalışırken arka planda aslında birçok iş yürümeye devam eder. Bu yazılımlar işletim sisteminin yönetiminde öncelik alırlar, daha yüksek önceliğe sahip işlemler işlemcinin üzerinde daha fazla çalışma zamanına sahip olurlar, diğerleri ise işlemcinin gücüne göre aralara girerler veya ikinci veya diğer çekirdekleri meşgul ederler. Bu öncelik sırasına göre sistemin diğer bileşenlerine erişme hakları olur. Fakat bu erişimde de öncelik her zaman işletim sistemindeki öncelik sırasına göre belirlenir ve önem sırasına göre gerçekleşir.
Dolayısıyla işletim sistemi gelen talepleri bir süre (mikro saniye cinsinden de olsa) bekletir, o anda uğraşması gereken şey bitince oraya gider ve diğer işe geçer. İşler arasında geçişlerisağlamak ve araya girmek için kesme denilen alt seviye sistem komutları kullanılır. Bu sayedearaya diğer işlemler “sokuşturulur” ve biraz ondan biraz bundan şeklinde yazılımlar çalışır. Bu senaryo bizim masaüstü veya sunucu sistemlerimizde çalışan işletim sistemleri için geçerligenel senaryodur.
Bu senaryoda “acil” veya “anında” kavramı yoktur. Sistem kendisi için önemli olanı belirler veelinden geldiğince her şeye yetişmeye çalışır. Saniyenin yüzdelik veya bindelik dilimlerindekigecikmeler olağan karşılanır.

Saniyenin binde birindeki gecikmeler sizin için pek bir şey ifade etmese de saniyede 1 milyar döngü yapan bir işlemcinin olabileceğinden milyonda bir oranında daha hantal çalışması anlamına gelecektir. Bu fikre kendinizi alıştırdığınızda sıradan işletim sistemlerinin özlerinde ne kadar da hantal olduğunu anlayabilirsiniz. Evet gündelik kullanımınız için mükemmel olabilirler ama işin aslı, çok yavaşlar ve sizin verdiğiniz komutu işleyene kadar binlerce milyonlarca komut döngüsü boyunca başka şeylerle ilgileniyorlar! Bu korkunç! Tamam, burada biraz abarttık ama yine de idealden çok uzak olduğu bir gerçek, değil mi? Değil, merak etmeyin. İdeal işletim sistemi her işe koşturan çok amaçlı işletim sistemidir, gerçek zamanlı işletim sistemi (RTOS, real-time operating system) ise tamamen başka bir şey.

Kritik Görevler İçin Özel İşletim Sistemi

Gerçek zamanlı işletim sistemleri (RTOS, real-time operating system) kritik görevler için tasarlanmış donanımlar üzerinde çok hızlı tepkiler veren, belirli işlemler için sistemin geri kalanının keyfini beklemeyen çekirdek mimarilerine sahip işletim sistemleridir. Gerçek zamanlı işletim sistemlerinde, çekirdek belirli komutlara düşük ve sapmadan uzak sürede yanıt verir. Yanıt verdikten sonra ise ortaya çıkabilecek sonuç veya tetiklenecek diğer şey ise artık sistemin nasıl yapılandırıldığıyla ilgili bir şey denebilir. Tepki ve işlem süresinin kısa olması tek başına gerçek zamanlı işletim sisteminin var olmasını sağlamaz. Önemli olan aynı veya benzer işlemler için az değişkenlik gösterecek şekilde bir standart çerçevesinde tepki verilebilmesidir. Gerçek zamanlı işletim sistemlerinin tasarımında iki temel yaklaşım bulunur. Bunlardan bir tanesi olay temelli görev geçişi yapandır.
Normal iş akışında araya daha yüksek önceliğe sahip bir talep (iş parçacığı) girerse işlemci doğrudan ona dönüş yapar. Zaman paylaşımlı görev geçişi ise aktif görevler arasında belirli zaman aralıklarıyla geçiş yaparak onları kontrol eder. Bu iki temel yaklaşımın yanında diğer önemli konu ise kaynaklara erişim ve kaynak yönetimidir. Bu kaynaklardan en önemlisi şüphesiz bellektir. Bellek atamasını iyi yönetmek, parçalara ayrılmamış bellek bölümlerinin tedarikini sağlamak ve kritik görevler için gerekebilecek bellek bölümlerini sürekli hazır tutmak gerçek zamanlı işletim sistemleri ve bunlar üzerine çalışan yazılımların işi haline geliyor.

Gerçek Zamanlı İşletim Sistemleri Nerede kullanılır?

Gerçek zamanlı işletim sistemleri, insan hayatının tehlikede olabileceği araçların ve sistemlerin yönetiminden tutun da uzaya gönderilen araçlardan tıbbi uygulamalara, nükleer reaktörlere ve otomobillerin birçok kontrollerine kadar gerçek zamanlı işletim sistemleri kullanılıyor. Gerçek zamanlı işletim sistemleri birçok farklı donanım üzerinde ve farklı işlemci mikro mimarileri üzerinde çalışabiliyorlar. Uzay projelerinde çokça kullanılan gerçek zamanlı işletim sistemleri uyduların kontrolü gibi işlerde oldukça faydalılar.
Ufak boyutları, verimli işlemci ve bellek gereksinimleri ile kararlı yapıları sayesinde gerçek zamanlı işletim sistemlerinin teknolojinin en kritik noktalarında yer almaya devam edecekler. En popüler gerçek zamanlı işletim sistemlerinden bir tanesi geçtiğimiz yıllarda BlackBerry tarafından satın alınan ve BlackBerry 10 mobil işletim sisteminin de temelini oluşturan QNX olsa gerek. Yılların bir ürünü olan QNX, zamanında x86 mimarisi için derlenmiş ve masaüstüarayüzüyle yalnızca 1,44 MB’lık diskete bile sığabilmesiyle insanların büyülemiş bir işletim sistemidir.
Bir diğer ünlü gerçek zamanlı işletim sistemi de FreeRTOS olarak karşımıza çıkıyor. FreeRTOS ile dilerseniz açık kaynak kod lisanslama yapabiliyorsunuz dilerseniz de kodunuzu kapalı tutmak ve destek almak için farklı bir lisanslama modelini takip edebiliyorsunuz. Aynı şekilde FreeRTOS üzerine geliştirme yapmak istiyorsanız tüm kaynakları internet sitesinde bulmanız mümkün.

Yazar: Enes Eker

CEVAP VER

Please enter your comment!
Please enter your name here