Gerçek Zamanlı İşletim Sistemleri

Başlatan CoşkuN, 14 Temmuz 2009, 12:57:24

CoşkuN

Yeni alt-forumumuz hayırlı olsun.Uzun zamandır iş yoğunluğu vs.. sebeplerden forumda aktif olarak bulunamadım.Bu vesileyle yeniden katılayım dedim aranıza.Bu başlıkta hep beraber gerçek zamanlı işletim sistemlerini (real time operating systems) tartışalım ve konu hakkındaki bilgilerimiz artıralım istiyorum.Ben başlangıcı yapıyorum, tecrübeli abilerimiz-ablalarımızdan konuya katılım bekliyorum.

Öncelikle "gerçek zamanlı sistem" ve "işletim sistemi" gibi kavramları tartışmamız daha faydalı olur sanırım.Gerçek zaman ifadesi aslında bana biraz tuhaf geliyor ama İngilizceden çevirildiğinde bu anlama geliyor.Bazı yerlerde "gerçel zamanlı" diye ifadeler de gördüm.Burada da yine çeviri problemleri karşımıza çıkıyor. O nedenle terimlerin hem Türkçe hem de İngilizce karşılıklarını kullanmamız daha iyi olur sanırım.
   Gerçek zamanlı sistem dediğimizde bir işi başarıyla yaptığını varsaymamız için yaptığı işi belirli zaman kısıtlamaları içinde gerçekleştirebilen sistemleri kastediyoruz.Yani bir işi tamamlamasının yanında zamanında tamamlamasının da önemli olduğu sistemler.
  İşletim sistemleri bilgisayarlarda donanım ile uygulama programları arasında bulunan, temel fonksiyonları sağlayan ve uygulama yazılımları için yönetim fonksiyonlarını idare eden sistem yazılımlarıdır.Hepimizin bildiği üzere Windows,Linux vs... birer işletim sistemidir.Ancak burada bizim asıl ilgileneceklerimiz gerçek zamanlı işletim sistemleri.

Bir işletim sistemi gerçek zamanlı denildiğinde kastettiğimiz şey belirli görevleri çeşitli zaman kriterleri içinde yerine getirebilmesi ve "deterministik" olara bunu gerçekleştirmesidir.Yani görevi her seferinde ve her zaman aynı süreler içinde gerçekleştirmesidir.Bu nedenle Windows ve Linux (belirli uyarlamaları hariç) gerçek zamanlı değildir.

Biz konumuza mikrodenetleyiciler üzerinde çalışan gerçek zamanlı işletim sistemleri ile devam edeceğiz.Hadi bakalım buradan devam edelim.Konuyla ilgilenen herkesin katılımını bekliyoruz.(picusta özellikle senin :)

CoşkuN


emrahmrcn

Ben ilgileniyorum :) , özellikle merak ettiğim, bir işlemi nasıl parçalara böleceğimiz. Yani 1mS birazını yap sonra git diğer işlemin 10mS sini yap gibi. Birde yaşam süresi denilen bir olay var.?
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

fatihvelid

RTOS ile ilgileniyorum. Projemde kullanmak üzre kendimce basitinden PIC18 için yarı preemptive ve cooperative çalışan bir sistem yazmıştım bir ara. O günden bu yana uğraşmaya hiç fırsatım olmadı. İstediğim gibi stabil çalışmayınca da preemptive yapmaktan vazgeçtim.

Böyle bir sistemi geliştirmek için iyi bir emulator'a sahip olmanız gerek.
Ama en iyisi, problemleri çözülmüş hazır bir RTOS kullanmaktır.
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

Erol YILMAZ

Alıntı yapılan: "emrahmrcn"Ben ilgileniyorum :) , özellikle merak ettiğim, bir işlemi nasıl parçalara böleceğimiz. Yani 1mS birazını yap sonra git diğer işlemin 10mS sini yap gibi. Birde yaşam süresi denilen bir olay var.?

Bahsettiğin, kernelin yapacağı schedular işlemi,
Oluşturulan taskların öncelik sırasına göre çalıştırılmasını sağlıyor.
Tabi OS a göre fonksiyonel manada biraz farklılıkları olabilir :D

Bu durumda öncelikle gerçekleştirilmiş OS ları incelemek iyi gelir,

Önce Salvo,

Ardından çok daha gelişmiş PicOS18 !

Yaşam süresi hakkında bi fikrim yok :)

Bu arada Scheduling algorithms başlıklı Wikipedia da bu alt başlıklar var:

http://en.wikipedia.org/wiki/Category:Scheduling_algorithms

CoşkuN

Benim de RTOS'larla ilgili kısıtlı bir tecrübem var.Burada hep beraber tecrübelerimizle ve kısıtlı bilgilerimizle işi iyice anlayalım istiyorum.
Öncelikle belki neden bu gerçek zamanlı işletim sistemlerine ihtiyaç duyuluyor, normalde başka tekniklerle yapılan şeyler ne zaman yetersiz kalıyor ordan başlayabiliriz.Sonrası da gelecektir eminim.

Kaynak olarak "Embedded software primer" kitabını kullanabiliriz.Gerçekten temelleri iyi anlatan bir kaynak.Baskısı kötü ama idare edeceğiz.

http://picproje.org/main/modules.php?name=Forums&file=viewtopic&p=172360#172360

KaraBekir

Lego Mindstrom RCX e NQC (Not Quite C) ile  programlar yazdım. Kullanıcı "task" lar tanımlayor ve işlemci bu taskları birlikte çalışıtırıyor. Kesme programları kullanılabiliyor. Hızlı ve kolay.

Gömülü sistemler için kullanılan RTOS lar araba fiyatları seviyesinde olabiliyor. Diğer taraftan ücretsiz RTOS larda var. Başka bir durum ise bazı RTOS lar güvenlik standartlarına sahip bazılarında böyle bir standartlar yok. Uzun süredir kullanılan RTOS lar daha kararlı olabiliyor.

vsalma

Bir kaç gündür CCS in rtos una bakıp bir şeyler deniyorum. Oldukça kolay. Diğer sistemler hakkında bilgim yok. CSS rtos hakkında deneyimi olan arkadaşlar deneyimlerini paylaşırlarsa güzel olur.

picusta