|
Osobine sistema za rad u realnom vremenu koje uticu
na programiranje
Sadržaj — U radu je prikazana realizacija operativnog
sistema za rad u realnom vremenu (Nitros) u zatvorenim okruženjima (eng.
embedded systems). Rad obuhvata kratak pregled razvoja operativnih sistema,
zatim osobine operativnih sistema u realnom vremenu, kao i osobine operativnog
sistema Nitros. Takođe je i predstavljena realizovana aplikativna programska
podrška po POSIX standardu.
Osnovna funkcija operativnog sistema je da obezbedi spregu između fizičke
arhitekture računarskog sistema I korisnika. To podrazumeva usklađeno
rukovanje resursima sistema. Rukovanje resursima zasnovano je na pojmu
procesa koji se u ovom kontekstu definiše kao program pripremljen za izvršavanje
ili u stanju izvršavanja. Iz toga proističe da proces predstavlja korisnika
resursa (potrošača). Iako sami procesi, u pravom smislu, nisu resursi,
sistem mora da upravlja sa njima, jer su oni u čvrstoj sprezi sa ostalim
resursima. Prema tome, operativni sistem je integralni deo računarskog
sistema koji se može definisati preko raznovrsnih upravljačkih funkcija
koje stavlja na raspolaganje korisnčkim programima (resursima). To su
sledeće funkcije:
- - formiranje (stvaranje procesa) i odstranjivanje procesa
- - upravljanje tokom realizacije procesa, odnosno, obezbeđenje,
da se svaki logički proces, odvija nesmetano, a da ni jedan proces ne
može blokirati odvijanje drugog procesa beskonačno;
- - delovanje u uslovima izuzetnih događaja koji se pojavljuju u
toku izršenja procesa (npr. aritmetičke i mašinske greške, prekidi,
adresne greške, ili narušavanje zaštitnih mehanizama);
- - raspodela resursa fizičke arhitekture među procesima;
- - obezbeđenje pristupa programskim resursima
- - obezbeđenje zaštitnog mehanizma, upravljanje pristupom i bezbednošću
informacije;
- - obezbeđenje komunikacije među procesima
II. RAZVOJ OPERATIVNIH SISTEMA
U zadnjih nekoliko decenija razvoj operativnih sistema je bio veoma intenzivan.
Sa razvojem mikroelektronike mogućnosti mikroprocesora su rasle, pa su
zahtevi od operativnih sistema bili sve kompleksniji. Taj razvoj se kretao
od početnih pokušaja realizacije operativnih sistema radi podrške obradi
grupa programskih paketa, do interaktivnih multiprogramskih sistema I
multiprocesorskih operativnih sistema. U toku ovog razvoja uočljivo je
nekoliko generacija operativnih sistema. Prva generacija operativnih sistema,
odnosi se na jednoprogramske sisteme sa direktnim radom (pedesetih godina).
Posao koji se obrađivao skupljen je u grupe, a po započinjanju posao ima
punu kontrolu nad svim resursima računarskog sistema. Druga generacija
operativnih sistema, karakteriše se razvojem multiprogramskih operativnih
sistema kod kojih se pojavljuje problem deljenja resursa računarskih sistema
između više programa. Nju karakteriše i pojava obrade u višeprocesorskom
ambijentu, odnosno obrada sa paralelnim procesorima. Kod ove generacije
se pojavljuje podela vremena kao i direktna komunikacija korisnika sistema
preko posebne komunikacione ulazno-izlazne jedinice, sa tastaturom i ekranom,
koja je dobila naziv terminal. U ovoj generaciji su se pojavili i sistemi
za rad u realnom vremenu, koji su omogućili upravljanje industrijskim
procesima pomoću računara. Treća generacija (sredina 60-tih do sredine
70tih godina) se karakteriše pojavom opšte namenskih sistema, u koji su
integrisani raznovrsni režimi rada (obrada grupe programskih paketa, podela
vremena, obrada u realnom vremenu). Ovi sistemi su uveli nivoe programske
podrške između korisnika i fizičke arhitekture, preko kojih korisnik gubi
osećaj o fizičkim komponentama i vidi samo ono što mu dozvoljava programska
komponenta. Četvrta generacija karakteriše se primenom računarskih mreža
i direktne obrade na prostorno dislociranim računarskim resursima. Pojava
mikroprocesora, omogućila je pojavu mikroračunara, čija je relativno niska
cena omogućila masovnu primenu. Pojavljuje se koncept virtuelnih mašina,
koji ima za posledicu da je korisnik u kontaktu, samo sa virtualnom. Pojavila
se i potreba za podrškom konceptu bazi podataka. Pored toga, sve više
na značaju dobija koncept distribuirane obrade, kojim se dodeljuje obrada
na lokacijama gde je to potrebno, umesto da se podaci čuvaju centralizovano
[1].
III. OPERATIVNI SISTEMI ZA RAD U REALNOM VREMENU I NJIHOVE OSOBINE
Zatvoren sistem (eng. Embedded system) - Sistem
čija je funkcionalnost ograničena i unapred definisana fizičkom platformom
i programskom podrškom. Ponovno programiranje ovakvih sistema može samo
u ograničenoj meri proširiti njegovu funkcionalnost. U zadnjih nekoliko
decenija, mikroprocesori se proizvode u izuzetno velikim serijama. Time
su troškovi proizvodnje postali veoma bitan faktor u dizajniranju računarskog
okruženja. To je dovelo do proizvodnje računarskih okruženja sa zatvorenom
arhitekturom koja imaju specifičnu namenu. i čija je cena niža, a performanse
skromnije. Ovi sistemi su veoma prisutni u razvoju računarstva, budući
da se procenjuje da 99% mikroprocesora od današnje ukupne svetske proizvodnje
radi u zatvorenim okruženjima. Kod velikog broja ovakvih sistema prisutna
je potreba da obradu podataka vrše u određenom vremenskom roku. Takvim
uređajima kao programska podrška rukovode operativni sistemi za rad u
realnom vremenu.
Operativni sistemi za rad u realnom vremenu su sistemi koji reaguju na
vremenski predvidiv način na spoljne događaje čije je pojavljivanje nepredividivo.
To su sistemi kod kojih obrađivanje I njihovo korektno funkcionisanje
ne zavisi samo od logičkog rezultata, nego i od njihove pravovremenosti.
Operativni sistemi za rad u realnom vremenu moraju biti veoma pouzdani
i sigurni. Oni operišu u realnom okruženju pod različitim uticajima koji
mogu da dovedu do otkaza ili neispravnog funkcionisanja, a koje može prouzrokovati
štetu ili ugrožavanje života i okoline. U zavisnosti od vremenskih zahteva,
operativni sistemi za rad u realnom vremenu se dele na sledeći način:
- Nefleksibilni sistemi sa radom u realnom vremenu (eng.
Hard Real-Time Systems): u ovu kategoriju spadaju
sistemi sa strogim vremenskim zahtevima kod kojih prekoračenje vremenskih
zahteva po pravilu dovodi do katastrofalnih posledica po rad sistema.
- Polufleksibilni sistemi sa radom u realnom vremenu
(eng. Firm Real-Time Systems): prekoračenje
vremenskih zahteva za posledicu ima neprihvatljivo smanjenje kvaliteta
funkcionisanja sistema.
- Fleksibilni sistemi sa radom u realnom vremenu (eng.
Soft Real-Time Systems): može doći do prekoračenja
vremenskih zahteva a sistem se kasnije može oporaviti, pri čemu je smanjenje
kvaliteta funkcionisanja sistema prihvatljivo. Jedan od osnovnih zahteva
koje operativni sistem za rad u realnom vremenu mora da ispuni je konkurentnost
obrađivanja programskih niti. Raspoređivač programskih niti mora biti
realizovan tako da se u svakom trenutku obrađuje programska nit najvišeg
prioriteta. Da bi ovo bilo moguće operativni sistem za rad u realnom vremenu
mora imati sposobnost istiskanja programskih niti (eng. preempting), kao
i veliki broj prioriteta programskih niti pomoću kojih operativni sistem
razlikuje vremensku zahtevnost obrade programske niti. Operativni sistemi
za rad u realnom vremenu moraju imati sinhronizacione mehanizme koji funkcionišu
u unapred odredjenim vremenima kao i vremenski predvidljive obrade prekida.
Vremenska odrednica funkcionisanja operativnih sistema za rad u realnom
vremenu se uvek posmatra relativno. Ne postoji apsolutno vremensko ograničenje
koje bi definisalo koliko malo vreme odziva treba da bude, već to određuje
priroda potrebe za koju se projektuje ovakav operativni sistem. Svaki
operativni sistem za rad u realnom vremenu mora imati unapred definisane
vremena kašnjenja. Vremena kašnjenja za koja se očekuje da budu određena
su:
- Vreme kašnjenja smene programskih niti (eng. Task switching latency).
Ovo je vreme koje prođe između izvršenja poslednje instrukcije prethodne
programske niti i izvršenja prve instrukcije naredne programske niti.
- Vreme kašnjenja ulaska u rutinu za obradu prekida (eng. interrupt
latency). Ovo je vreme koje protekne između izvršenja poslednje instrukcije
u programskoj niti i izvršenja prve instrukcije u rutini za obradu prekida.
- Vreme kašnjenja izlaska iz rutine prekida (eng. Interrupt dispatch
latency). Ovo je vreme koje protekne između izvršenja poslednje instrukcije
u rutini za obradu prekida i izvršenja prve instrukcije u narednoj programskoj
niti.
- Vreme kašnjenja kreiranja i uništavanja programskih niti
- Vreme kašnjenja kreiranja i uništavanja sinhronizacionih objekata
(semafori,muteksi itd)
IV. OPERATIVNI SISTEM ZA RAD U REALNOM VREMENU NITROS
Nitros je operativni sistem za rad u realnom vremenu koji je realizovan
sa namenom da funkcioniše u zatvorenima okruženjima. Jezgro operativnog
sistema čine modul za rukovanje memorijom, modul za raspoređivanje programskih
niti, modul za obradu prekida, a sistem ima takođe realizovane vremenske
kontrole i sinhronizacione objekte. Modul za rasporedjivanje programskim
nitima funkcioniše po dva algoritma koja se međusobno dopunjuju. Kada
operiše sa nitima istog prioriteta primenjuje se mehanizam deljenja vremena
(eng. timeslice), dok se za raspodelu procesorskog vremena među nitima
različitog prioriteta koristi mehanizam istiskivanja (eng. preempting).
Postoji 256 različitih nivoa prioriteta programskih niti. Nitros podržava
tri instalaciju tri vrste korisničkih rutina za obradu prekida:
1. Rukovaoc prekida (Interrupt Handler) predstavlja
rutinu čija se adresa direktno postavlja kao prekidni vektor. Ova rutina
se obično piše u asemblerskom jeziku. Programski kod rutine mora da obezbedi
očuvanje konteksta tekućeg obrađivanog procesa. Kompletna obrada prekida
se prepušta korisniku.
2. Prekidna funkcija (Interrupt Function) je
korisnička rutina koja se izvršava iz konteksta obrade prekida. Očuvanje
konteksta tekućeg obrađivanog procesa obezbeđuje OS. S obzirom da se prekidna
funkcija izvršava iz konteksta prekida skup funkcija koje se iz nje mogu
pozivati je ograničen. Na izlasku iz prekidne funkcije Nitros poziva dispečera
čime se omogućava smena tekuće programske niti.
3. Prekidna nit (Interrupt task) predstavlja
programsku nit visokog prioriteta koja se izvršava iz zasebnog konteksta.
Prekidna nit se aktivira iz prekidne funkcije a postaje tekuća odmah po
izlasku iz konteksta prekida. Iz prekidne niti dozvoljeno je pozivati
sve funkcije Nitrosa. U Nitrosu je realizovano više sinhronizacionih mehanizama
pomoću kojih se omogućuje usaglašavanje korišćenja resursa. Realizovani
su semafori, muteksi I događaji (eng. events). Za komunikaciju između
programskih niti, u operativnom sistemu Nitros realizovani su sandučići
za poruke (eng. message box). Poruke iz sandučića se stavljaju u red,
tj po FIFO modelu (First In First Out). Podržani su dva načina rukovanja
memorijom. Prvi mehanizam je dinamičko dodeljivanje memorije, pri kojem
se na zahtev dodeljuje tražena količina memorije. Ovakav vid dodeljivanja
memorije nije vremenski determinisan. Drugi način je realizovan podelom
memorijskog bazena na blokove. Na zahtev se dodeljuje odgovarajući blok
memorije, što može da ima za posledicu neracionalnu potrošnju memorije.
Prednost ovog mehanizma je unapred definisano vreme izvršenja operacije.
U Nitros operativnom sistemu je realizovan prilagodni deo fizičkoj arhitekturi.
To je sloj operativnog sistema koji predstavlja spregu između fizičke
arhitekture i ostatka programske sprege operativnog sistema. Omogućava
jednostavno prilagođenje Nitros operativnog sistema različitim ciljnim
platformama. Prilagođavanje (eng. - porting) RT mikrokernela za konkretnu
fizičku računarsku arkitekturu zasniva se na definisanju tačno određenog
skupa tipova (struktura) I funkcija kojima se vrši apstrakcija metoda
rukovanja fizički specifičnim resursima CPU (eng. HAL – Hardware Abstraction
Layer).
V. PROŠIRENJE OPERATIVNOG SISTEMA NITROS PROGRAMSKOM APLIKATIVNOM SPREGOM
PREMA STANDARDU POSIX
POSIX je zajedničko ime za familiju standarda
specificiranih od strane IEEE (Institute of Electrical and Electronics
Engineers) organizacije i u okviru ove organizacije nosi oznaku IEEE 1003.
Zvanična oznaka ovog standarda u ISO organizaciji (International Organization
for Standardization) je ISO/IEC 9945. POSIX je akronim od Portable Unix
System Interface for Unix. Svrha ovog standarda je definisanje specifikacije
za korisničku programsku spregu za operativne sisteme. Aplikacija realizovana
prema ovoj specifikaciji se lako prilagođava drugim operativnam sistemima
realizovanim prema POSIX standardu. Zbog specifične namene Nitros operativnog
sistema, realizovan je samo deo ovog standarda, tačnije pthreads biblioteka.
U okviru ove biblioteke su definisane funkcije koje se koriste za rad
sa programskim nitima, sinhronizacionim objektima i vremenskim kontrolama.
Funkcije su realizovane kao omotač za funkcije jezgra operativnog sistema
Nitros, čime je dobijen novi sloj programske sprege između korisnika programera
I operativnog sistema.
VI. PRIKAZ TESTOVA OPERATIVNOG SISTEMA NITROS
Testiranje operativnog sistema Nitros je vršeno na platformi kompanije
Micronas koja se koristi za razvoj aplikacija u digitalnoj televiziji.
Navedeno okruženje predstavlja sistem za rad u realnom vremenu sa čvrstim
vremenskim ograničenjima. Zakasneli odziv pri obradi ulaznih podataka
dovodi do neprihvatljivog smanjenja kvaliteta. Zbog toga programska podrška,
uključujući I operativni sistem, mora da odgovori postavljenim zahtevima.
Sl 1. Merenje kašnjenja ulaska u rutinu za obradu prekida
Sl. 2 Merenje kašnjenja smene programskih niti
Na sl.1 je prikazan rezultat testa koji se koristio u ciljumerenja kašnjenja
ulaska u rutinu za obradu prekida. Signali su mereni na ulazno izlaznoj
sprezi opšte namene. Sistem je konfigurisan tako da se prekid generiše
na uzlaznoj ivici ulaznog signala. Donji signal predstavlja ulazni signal
kojim se generiše prekid. Gornji signal je signal izlaznog priključka
ulazno izlazne sprege preko kojeg se sakupljaju vrednosti merenja i čija
se vrednost menja pri generisanju prekida. Prva instrukcija rutine za
obradu prekida postavlja izlazni signal na prvobitnuvrednost. Vreme kašnjenja
ulaska u rutinu za obradu prekida iznosi 6.12 μs. Na sl. 2. je prikazan
rezultat testa koji se koristio u cilju merenja kašnjenja smene programskih
niti. Prikazani signal je signal izlaznog priključka ulazno izlazne sprege
opšte namene preko kojeg se sakupljaju vrednosti merenja. Po isteku vremenske
kontrole operativnog sistema, menja se vrednost signala. Prvom instrukcijom
sledeće programske niti vrednost signala se vraća na prvobitnu vrednost.
Vreme kašnjenja smene programskih niti iznosi 30.68 μs.
ZAKLJUČAK
U radu je predstavljeno rešenja operativnog sistema u realnom vremenu
kao i opis njegovih osobina. Na osnovu prikazanih rezultata merenja može
se zaključiti da Nitros odgovara zahtevima koji se postavljaju pred operativni
sistem za rad u realnom vremenu. Posebna pažnja je posvećena primeni datog
rešenja u zatvorenim okruženjima. Realizovani prilagodni deo omogućava
njegovu jednostavno prilagođavanje različitim ciljnim platformama. Platforma
za razvoj aplikacija digitalne televizije predstavlja zatvoren sistem
sa strogim vremenskim zahtevima gde je Nitros uspešno testiran I primenjen.
LITERATURA
[1] Prof. dr Vladimir Kovačević, prof. dr Miroslav Popović, “Sistemska
programska podrška u realnom vremenu”, Fakultet tehničkih nauka Novi
Sad, 2002
[2] The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004
Edition (Internet izdanje): http://www.opengroup.org/onlinepubs/009695399/
[3] The Unix System: http://www.unix.org/
[4] IEEE POSIX® Certification Authority: http://standards.ieee.org/regauth/posix/
PROCITAJ
/ PREUZMI I DRUGE SEMINARSKE RADOVE IZ OBLASTI:
|
|
preuzmi seminarski
rad u wordu » » »
Besplatni Seminarski
Radovi
SEMINARSKI RAD
|
|