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 unix 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, konuyu oradan anlatmak istiyorum. Öncelikle evrendeki her şeyi çalıştıran, her matematiksel hesabı yapan ve görüp duyduğumuz her şeyin simülasyonunu yapabilen bir işlemcinin  olduğunu düşünün. Yaşadığımız hayatın bir işletim sistemi olduğunu, bizlerin ise bu işletim sistemine bağlı kullanıcılar olduğumuzu düşünün. Aynı Windows veya Linux işletim sisteminde oturum 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 ve işlemci kaynağı 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 saat(Clock) sinyaline ihtiyaç duyar. Bu sinyal her bir komutu işlemek için gereklidir. Doğal olarak ne kadar yüksek frekansta saat frekansıyla ç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 için bu işlemcinin sinyal frekansını, ram’ini ve farklı donanımları kullanıma 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 fazla 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 giriş ünitesinden gelen sinyali kontrol ederken aynı zamanda başka bir giriş ü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ı. Hatta kesmeler meydana geldiğinde ana thread deki kod durduğundan bu çoğu zaman problemlere sebep olmaktaydı. RTOS, düşük katmanda  paralel şekilde işleyebilir fonksiyonlar oluşturabilmemizi sağlıyor. Buna “thread” diyoruz.  Aslında bunları yine kesmeler yardımıyla yapıyor.  Fakat bu işlem, biraz daha alt katmanda oluyor.  RTOS da birden fazla paralel bir şekilde işleyen “Thread” fonksiyonlarının kullandığı ortak hafızaları semafor denilen yapılarla senkron hale getirebiliyoruz. Aynı zamanda kesme modüllerini yine semafor denilen yapılar  kullanarak belli “thread” ler üzerinden çalıştırıp işleyebiliyoruz. Bu da bize sanki birden çok işlemci üzerinde program koşturuyor muşuz gibi bir avantaj sağlıyor.  Aynı zamanda “Thread” fonksiyonları arasındaki öncelikleri, kullanacakları saat 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 tabi ki. RTOS sadece kaynak kodlardan ve kütüphanelerden ibaret bir yapıdır. İş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.

Yusuf

Yusuf

Bir Mühendis.

Önerilen makaleler

8 Yorum

  1. Avatar

    Konuya giriş anlamında bana çok yardımcı oldu.Çok teşekkürler

    1. admin

      Yorumunuz için ben teşekkür ederim.

  2. Avatar

    Çok güzel açıklamışsınız elinize sağlık..

  3. Avatar

    Güzel bir anlatım olmuş.Konu hakkında herhangi bir bilgim yoktu, şuanda kafamda birşeyler oluştu.

  4. Avatar

    Olayı aklımda canlandırabilmemi sağladı. Teşekkürler.

  5. Avatar

    Bir layman olarak RTOSmantigini anladim. Tesekkurler.

    1. Yusuf

      Yorumunuz için teşekkürler. 🙂

fix4jax için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Translate »