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