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. 🙂

Bir yanıt yazın

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

Translate »