Home Indexe Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  News   Archives   Companies   Tips  

Gerçek-Zaman Linux (RT-Linux)

Yazar: Ismael Ripoll

Çeviri: Derya Güngörmüş ve Sinan Ülker (Gözden geçirilmekte)


Gerçek-Zaman Nedir??

İşletim Sistemi ve Gerçek Zaman

RT-Linux'un Geleçeği

Sonuşlar

Gerçek-Zaman'ın Temel Kavramları (RT). RT-Linux ile Katı Gerçek-Zaman

Gerçek-Zaman Nedir?

RT-Linux nedir tanitmadan once Real-time ilgili bazi bilgileri gozden gecirmemiz lazim. 

" Real-time sisteminin duzeltilmesi sadece algoritmalarin mantiksal ciktilarina bagli degil,ciktilarin meydana geldigi vakite de bagli olan bir bilgi sistemidir. "

Sonuctaki ciktinin tam dogru olmasi yeterli degil,bu cikti belirli bir araliginda cikmali.Real-time sisteminin gerekli kadar hizli olmadigina dikkat edin.Mesela,geminin rehberlik sistemi onceden IReal-time/I sistemi olmaya bilir,cunku onun hizi dusuk ve genellikle kontrol kararini vermek icin 'yeterli' vakiti var.Buna ragmen,tanimiza gore bu IRT/I sistemidir. 

Dikkat,tanim verdigimiz sey 'I'Real-time sistemi/I'' idi,'I'Sistem in real time'/I' degil.''ISistem in real time/I'' genelde 'gercegin' etkisini hizli sistemlerdir.Tipik olarak,simulasyon ve interaktif oyunlar kullaniciya zaman devamliliginin gorunusunu ve bir zaman biriminde olusan suretlerin cogunu vermeleri lazim. 

Zaman kisitlamasi 'kavramini ayrintili olarak dusunelim.Dusunun ki,birisi motorun degisken yukune bagli hizini kontrol etmek istiyor,digeri ise PID kontrolunu (proprtional-integral-derivative) yapmak istiyor.Bizim bakis acimizdan,PID kontrolunu bir kac tane parametre (bu ornekte motorun hizi) olan ve motora (voltaj motora temin edilmeli) uygulanmali olan kontrol sinyalin degerini geri gonderen bir fonksiyondur.PID algoritmalarinin dizayninin teorisi ,hem genis olup,hesaplama zamaninin ihmal edilebildigini var sayiyor,yani,motorun hizini okuma zamanindan bizim hareket ettigimize kadar gecen sure cok kucuktur.Normal sartlarda sistemler az gecikme zamanini hesaba katar.Bu tip kontrolun diger karakter ozelligi devamli calistirilmak zorunda olmasidir,yani.PID algoritmasi devamli calistirilmali.Eger PID fonksiyonunun iki art arta gelen calistirmalar arasindaki zaman uzunsa,motor istenilen hiza ulasmayabirir Ozetleme: PID fonksiyonu devamli calistirilmasi gereken bir program gibi dusunebilir(Pi);baslama vakti ve bitirme vakti arasindaki zaman araligi PID dizayni tarafindan belirlenen maksimum zaman araligindan az olmali(Di);ve islemcinin hizina gore PID belirli bir vakit alir(Ci). 

Pi: Period of Task i. 

Di: Deadline for task i. 

Ci: worse case Computational time for task i. 

Eger sistem sadece bir gorev icin yapilmissa o zaman real time icin problemler yok ; 
islemci programi gerekli zamanda calistilri veya calistirmaz.Eger islemci kafi hizli degilse , 
o sadece CPU'i daha hizli birisine degistirir. 

RT sistemi nin birkac tane gorev icin yapilmissa,islemci gucunu onlarin arasinda 
paylasmaihtiyaci duyuldugu zaman problemler cikar.Bu bizi Linux gibi klasik paylasilmis 
time sisteminin kullanmasindan onluyor.Tabii ki,'real-time'da ihtiyac duyan 
proglamlarin'Windows'un altinda yazmaya calismaya bile gerek yok.Daha iyi bir tavsiye 
- o platform altinda hicbir turlu program yazmamak. 

Real-time sistemlerinin hepsi ayni degil,ABS kesilme sistemini ucak motorundaki 
yanma injeksiyon sistemini kontrol etmek veya mpeg dosyasinin dekompresini veya 
canlandirmasini kontrol etmek ayni sey degildir.Birincisinde,icra zamanindaki kucukk 
geciktirme bir insanin hayatini  veya onemli hayati organlarinin kaybetmesine neden 
olabilir.Ikincisinde,sistemin kalitesinin kolayca alcalmasi gorulmektedir(goruntu durabilir 
ve bazi resimler kaybolabilir).Sistemlerin birinci tipi 'Hard real-time systems' diye bilinir, 
ikinci tip 'Soft Real-Time systems'.Biz tartismamizi 'Hard real-time' sistemlerine 
konsantre edecegiz 

Real-time sisteminin dizayni birkac tane safhadan geciyor.Birincisi,gorev yapilmali  ve 
zaman kisitlamasi kafi olmali ve ispatlanmali,ikincisi,kod yazilmali ve son olarak her 
gorevin calisma zamani olculmeli ve sistem calisirken program yapma testi gorevin 
bolge sinirini kaybetmeme garanti ile yapildi.Program yapma testi birkac tane 
testingorevlerin hepsine uygulamasindan olusur ve eger onlar  testi gecerseler 
,gorevlerin hicbirisi sinirinikaybetmemesini garanti etmek mumkun olur.Eger testler 
gecemezseler ,o zaman dizaynimizi bastan baslatmaliyiz. 

Sonuc olarak,gorevler Pi,Di ve Ci uc zaman degeri ile fark gozetilmamis sistemin 
amaci butun gorevlerin (butun calistirilmalarinda) sinirlarinin icerisinde bulunmalarini 
garanti etmektir .Calistirmazamanini garanti etmmek icin sistem onceden bildirilebilir
olmali.Sistem 'real-time'veya sistem onceden bildirilebilir demek.pratik olarak.ayni 
seydir. 

Normal iþletim sistemi ile Real-Time iþletim sistemi arasýndaki iliþki nedir? 

Bu sorunun ceveabýnýn anlamsal açýklamasý programcýlarýn sorumluluðudur, geçici açýklamasý ise iþletim sistemine baðlýdýr. 

Ýþletim sisteminin bütün iþlerin yapýlmasýna yardým etmesi ve onlarý organize etmesi gerekir. Bu arada kesiklikleri de idare etmek onun 
görevidir.Ýþletim sisteminin sunmasý gerekenler: 
 

  •  Programlama için kurallar listesi
  • Ýþlemler arasýndaki iletiþim için mekanizma 
  • Kesintileri idare etmek 
  • Herbir noktadaki görevlerini baþlatmak 
'' Normal''  iþletim sisteminin tersine,  Real-Time iþletim sisteminin amacý karýþýklýklarý azaltmaktýr.Bir çok þey yapan iþletim sistemine 
gerek yoktur, önemli olan iþlerin önceden tahmin edilecek þekilde , hýzlýca yönetilmesidir. 

Metin deðiþikliði yapýlýþýnda normalde 10 zaman  birimi süren ,hatta daha da kötü 12 zaman birimi süren  Ý.S. ortalama 3 zaman birimi süren 
Ý.S 'lerden daha fazla tercih edilebilir;fakatzamanla  o 20 zaman biriminin üstüne çýkabilir. 

Real-Time iþletim sistemini normal iþletim sisteminden yavaþ olduðu bulmak bizi þaþýrtmamalýdýr. Bazen  önceden tahmin edilebilen 
davranýþlara ulaþmak için, performans kayýplarýyla birlikte gizli hafýzaya zarar vermek bile gerekebilir.Gizli hafýza , boru hattý birimleriyle 
birlikte iþlemci ve atlama tahmini için kurallar listesi ,önceden tahmin edilebilmenin baþlýca zorluklarýdýr;bu nedenle Real-Time iþletim 
sisteminin de ... 

POSIX TR  Ýlaveleri 

POSIX , Portatif Ýþletim Sistemi ortak naoktalarý için bir ilktir.(Ve sonunda bir X olmayan  Ý.S. nedir? ) Bukaynak kural sýnýrlarýnda bir yazýlým kolaylýðý oluþturmayý  kasteden bir standarttýr. Baþka bir deyiþle,bir iþletim sistemi için bir program olan POSIX , baþka bir imalatçýdan olsa bile diðer baþka Posix altýnda derleyebilmeli ve görevini sounsuzca yapmalýdýr.POSIX standartý Ý.S.'nin uygulamalarýnda 
sunmasý gereken ortak noktalarý belirler: Sistem çaðrýlarýnýn ayarý. POSIX  Elektirik ve Elektronik Mühendisliði Enstitüsü  tarafýndan geliþtiriliyor ve American Ulusal Standartlar Enstitüsü tarafýndan tek tipe indiriliyor. 

DrawObject

POSIX besbellice Unix' e dayanýr.Ý.S.'lerinin çoðunluðu (Windows NT de dahil ) onlarýn çeþitli versiyonlarý olmasýna raðmen POSIX 
uygunluðuna doðru eðilimdedir. 

POSIX sýnýrlarý içinde çalýþma bilgisayar üreticilerini ,yazýlým þirketlerini ,devlet memurlarýný ve bilgisayar otoritelerini içeren birkaç 
çalýþma grubuna bölünür. Herbir grup iþletim sisteminin bir görünüþünü dizayn etmeye bakar.Örneðin Posýx.4 denen grup Real-Ttime 
hakkýndaki bilgileri yaymaya bakar. 

Ek POSIX.4 --1993'ten beri 1003.1b adýný alýr-- Real-Time durumlarýnda bir Ý:S: kullanýþýna izin verir.Açýkça bu ekelrin büyük bir 
çoðunluðu  zaman yönetimi ve iþlem önceliði ile iliþkilidir.Ayrýca iþlemler arasý iletiþimi kolaylaþtýrmak için sistem çaðrýlarý da mevcuttur. 

POSIX ekleri , iþletim sistemi kaynaklarýnýn yönetim kontrolünü arttýrmak için hazýrlanmýþtýr. 

Linux 2.0 Real-Time için birçok POSIX ek sistem çaðrýlarýný tamamlattýrmýþtýr ; fakat linux'un bu görüntüsü bizim gelecek bir makalede 
tartýþacaðýmýz bazý þeylerdir. Büyük bir ihtimalle 2.2 versiyonu  %100 Posýx 1003.1b 'ye uygun olacaktýr. 

Real-Time Linux 

RT Linux Victor Yodaiken ve Michael Barabanov tarafýndan Bilgisayar Bilimlari Enstitüsün'de New Mexico Teknoloji Ve Madencilik için 
geliþtirildi.Bu Michael tarafýndan  Bilgisayar Biliminde tamamlamasý için hocasýna sunduðu iþin bir bölümüdür.En son iþe yarar versiyon 0.6 
'dýr.Zamanla o sadece Intel Mimarlýk için iþe yarar oldu. 

RT  Linux  problemleri kökten, baþka yollarla çözer.Linux çekirdeðini deðiþtirmek yerine onu tahmin edilebilir yapar. Onun yaptýðý þey  direkt 
iþlemci üstünde (i386)programcyla birlikte ufak bir çekirdek --Baðýmsýz Linux çekirdeði --inþa etmektir. Linux çekirdeði çekirdeðin 
zirvesinde diðer RT  iþleriyle birlikte iþlemci paylaþýmýný yönetir. Sonra Linux diðer iþlerle CPU'yu paylaþtýrýr , daha da özetlersek , Linux 
arkaplan iþidir ve sadece diðer hiçbir RT iþleri olamdýðý zaman görev alýr. 
 

Sanýrým birçok okuyucu karýþtýracak ,belki çoðu iþletim sistemini hep güçlü olduðunu ve onla oynanmasýnýn imkansýz olduðunu düþündüler. 
 


DrawObject

Zaman programcýsýný dinamik bir þekilde kurulmasýnýn ve kaldýrýlmasýnýn imkanlý olduðu gerçeðini bilmek bile daha þaþýrtýcýdýr, çünkü o 
bir modül gibi derlenmiþtir. 

Linux çekirdek þifresi (Diðer Ý.S.'ler gibi) genellikle kesintileri, ayarlarý birbirine uydurmak için bir araç gibi etkisiz kýlar, yada kritik bölümleri tamamlamak için kesintileri azaltýr.Eðer Linux kesintileri etkisiz kýlarken bir saat kesintisi varsa , bu bloke edilmiþ olur ve buna baðlý olarak geçici bir bozukluk meydana  gelir.RT Linux þýk bir çözüm meydana getirir :Cli,sti, ve iret ( kesintilerin durumunu deðiþtiren montajcý çaðrýlar) için bütün çaðrýlar S_CLÝ,S_STÝ, VE S_IRET ,ki onlarla yarýþýr,tarafýndan yeniden iþletilir. Bu yol Linux'un asla kesintileri etkisiz kýlamadýðý yoldur. 

RT Linux'la gelen programcý kusuru baþkasýna engel olaraktýr,sabit öncelikli programcýdýr ve o Linux görevini en az öncelikli görev gibi hesaba katar.Eðer Real-Time görevi bütün iþlemci zamanýný tüketirse ,sonra Linux görevi zamaný CPU'dan alamaz ve bu sistemin duraksadýðýna dair bir etki verebilir. 

Biz RT Linux 'la sadece Real-Time sistemine deðil hem de klasik Ý.S.'ye sahip oluruz.Web'de surf yapabiliriz, ayný zamanda da bir fiziksel sistemi örnek olarak deniyor ve kontrol ediyor oluruz. 

RT-Linux Yuklenmesý 

Dagýtýmýn dosyalarýný http://luz.cs.nt.edu/~rtlinux. adresýnden bulabýlýrsýnýz. 

Lýnux sýstemýýn RT-Lýnux 'a "donusturmek" ýcýn, RT-lýnux ýle gelen yamayý cekýrdek kaynak koduna uygulayýp cekýrdegý yenýden derlememýz gerekýr. Bunun recetesi de burada.  rtlinux-0.6-2.0.33.tgz dosyasinin /usr/src dizininde voldugunu ve /usr/src/rtlinux-0.6 'ya acildigini varsayacagim. Ayni zamanda cekirdegin tum opsiyonlarinin derlenmis oldugunu (make config) ve sonra
 
 

# cd /usr/src/linux
# patch       -p1 <../rtlinux-0.6-2.0.33/kernel_path
# make dep; make clean; make zlilo; make modules; make modules_install
# reboot
Yeni cekirdek her ne kadar bir real time sistemi olalak degismeye hazir olsa da normal cekirdek ile tamamiyla ayni gorunmelidir. /usr/src/rtlinux-0.6-2.0.33/testing dizininde cesitli demo programlari vardir.

Dagitim ile gelen ornekler bir tarafa (testing dizini icinde), Oleg Subbotin tarafindan hazirlanan ve bize islerin calisma diyagramini hazirlama imkani veren baska bir ornegi de indirebilirsiniz.
Bu demonun bir dosyasi  sadece is geciktirmeye musade edecek degisikliklerde  gecikmistir, ama ayni zamanda gonderim bilgisi karar alma hakkindadir.Bu bilgi daha sonra grafik olarak goruntulenebilecek sekilde toplanip bir dosyada saklanir. Bundan dolayi  cesitli islerin hangi sirayla calistirildigi ve yuksek duzeyli islerin alcak duzeylilere nasil ustunluk sagladigini gorebiliriz. Linux isi gosterilmemistir.

Her is bir yatay eksen ile gosterilir. Dik acilar her isin islemciyi ne zaman kullandigini gisterir (ornek olarak sadece bir is calistirilabilir cunku biz tek islemcili bir sistemdeyiz).Bu ornekte her is icin son cizgi onun periyoduna esittir, her isin periyodu 
isin calistirilmak zorunda oldugu bir zaman araligiyla belirlenmistir.(gosterilim: )    Yuksek kisimdaki isler yuksek duzeye sahiptirler ve diger isleri islemciden ustun yapma kapasitesine sahiptir,  ornek olarak 600'de oldugu gibi . 

RT-Linux 'un Gelecegi

Su anda zaten bir cok-islemcili bir RT-Linux surumu var. RT-Linux tarafindan onerilen servisler kasten minimumdur, islevsel 
 , it is not necessary to include functionality not strictly needed in order to keep the system as predictable as possible. Nevertheless, the are several extensions already available that allow to work with semaphores and to control RT-tasks from the Linux processes through /proc/sys. 

Birkac hafta once RT-Linux'un manual dersinin duzenlemesi basladi.
 

Sonuclar 

RT-Linux'un gorunmesinde once real-time sistemini kullanmak isteyen bir cok muhendis MS-DOS kullanip tum suruculeri yuklemek veya bir real-tim isletim sistemi almak zarundaydilar(cok buyuh paralara).Simdi gelistiriciler tam real-time uygulamalarini calisacaklari ayni sistemde gelistirecek bir Isletim Sistemi'ne sahipler.Ayni zamanda web'de surf yaparken ayni anda bir cok real-time uygulamasini calistirabiliriz.
 

Bu serideki diger makalemiz real time uygulamalarinin bir cok ornegini ve kendi real-time uygulamamizi nasil yazacagimizi sorgulayacak. 


 
 
© 1998 Ismael Ripoll
Bu sanalyörenin bakımı Miguel A Sepulveda tarafından yapılmaktadır.