Yusuf Bülbül

An Engineer

RTOS(Real Tıme Operatıng System) Nedir? Ne işe yarar?

Sanırım Matrix filmini izlemeyen yoktur. Matrix deyince aklıma hemen işletim sistemleri geliyor. Çünkü biliyorsunuz ki filmde anlatılan dünya, aslında ünix işletim sistemlerinin örnek alındığı bir işletim sistemi olarak gösterilmişti. Bir işletim sistemini matrix filmi üzerinden anlatmak daha keyifli ve anlaşılır olduğu için ben konuyu oradan anlatmak istiyorum. Öncelikle evrendeki herşeyi çalıştıran, her matematiksel hesabı yapan ve görüp duyduğumuz her şeyin similasyonunu yapabilen bir işlemcinin  olduğunu düşünün. Yaşadığımız hayatın bir işletim sistemi olduğunu, bizler ise bu işletim sistemine bağlı kullanıcılar olduğumuzu düşünün. Aynı windows’daki oturup açmak gibi hayat aslında. Biten her hayat bu oturumu sonlandırmak gibi. Her yeni doğan bebek için yeni bir kullanıcı hesabı açılıyor ve bu hesap, kişinin hayatı boyunca edindiği bilgi ve tecrübelerle, geliştirdiği yetenek ve yönleriyle şekilleniyor.

Bir işletim sistemini gerekli kılan en önemli şey bunca fazla işlemin ve programın aynı anda oldukça verimli bir şekilde işlemci tarafından çalıştırılmasını sağlamak ve bu işlemler arasındaki hafıza paylaşımını yönetmektir. Çünkü işlemci çalışma prensibi olarak aynı anda bir tane komutu işleyebilir. Fakat bunca işi sıra sıra yapmak oldukça mantıksız ve kullanışsızdır.

İşlemci komutları işlerken bir clock sinyaline ihtiyac duyar. Bu sinyal her bir komutu işlemek için gereklidir. Doğal olarak ne kadar yüksek frekansta clock sinyaliyle çalışırsanız o kadar hızlı işlem yaparsınız. Fakat belli bir hızdan sonra daha hızlı olmak fazla bir işe yaramıyor. Asıl işe yarayacak olan şey, farklı işlemler yapan program fonksiyonlarını ya da programları aynı anda çalıştırabilmektir. Bu yüzden, işletim sistemlerinin temel amacı farklı programlar icin bu işlemcinin sinyal frekansını bölerek programlar arasında paylaşımlı kullandırmaktır. Bu sayede sanki birden fazla işlemci varmış ama asıl işlemci hızını o kadar işlemciye bölüyormuş gibi olur.  Yani bunu örneklendirecek olursak; mesela ekmek yapan bir fırıncı düşünün. Sırada 10 kişinin 10 ar adet ekmek beklediğini ve bu ekmekleri alıp hemen yediklerini düşünün. Fırıncı 10 ekmeği yapıp birisine vermek yerine, her ekmek yaptığında sırayla dağıtırsa hem sıradakiler aç kalmayacaktır hem de zamanlama konusunda daha verimli bir dağılım olacaktır.

RTOS(Real Time Operating System) da bu yüzden var. Gömülü programlamada önceki yıllarda C ile programlarımızı kesme(interrupt) modüllerini kullanarak birden fazla işlevi yerine getirmeye çalışırdık.  Birden fazla işlevden kastım; örneğin bir input ünitesinden gelen sinyali kontrol ederken aynı zamanda başka bir input ünitesini de kontrol etmek gibi denilebilir. Bu gibi kesme modüllerinin artması meydana gelen kesme işlemlerinde çakışmalar meydana getiriyordu. Bu senkronizasyonu sağlamak oldukça zor kimi zaman imkansızdı. RTOS, düşük katmanda  paralel şekilde işleyebilir fonksiyonlar olusturabilmemezi sağlıyor. Buna thread diyoruz. Birden fazla paralel bir şekilde işleyen Thread fonksiyonlarının kullandığı ortak hafızaları semafor denilen yapilarla senkronize hale getirebiliyoruz. Aynı zamanda kesme modüllerini yine semafor denilen yapılar  kullanarak belli threadler üzerinden çalıştırıp işleyebiliyoruz. Bu da bize sanki birden çok işlemci üzerinde program koşturuyormuşuz gibi bir avantaj sağlıyor.  Aynı zamanda Thread fonksiyonları arasındaki öncelikleri, kullanacakları clock frekansını belirleme fırsatı da buluyoruz.

Sonraki yazılarımda bunlarla alakalı program örnekleri vermeyi düşünüyorum. RTOS özellikle linux’ün kernel katmanı gibi önemli yerlerde de kullanıldığı için oldukça önemli. Normal bir işletim sistemi gibi değil tabiki. İşletim sistemi şeklinde adlandırılmasının tek sebebi threadler oluşturup bunların görev dağılımını yapabilmenizden kaynaklanıyor. Kullanımı da oldukça basittir. Yani daha önce kullanmayanların gözleri korkmasına hiç gerek yok. Bir iki örnek ile olayı hemen kavrayabilirsiniz.

2 Yorum Mevcut

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © Tüm Hakları Saklıdır.