POCETNA STRANA

 
SEMINARSKI RAD IZ PROGRAMIRANJA
 

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:

  1. - formiranje (stvaranje procesa) i odstranjivanje procesa
  2. - 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;
  3. - 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);
  4. - raspodela resursa fizičke arhitekture među procesima;
  5. - obezbeđenje pristupa programskim resursima
  6. - obezbeđenje zaštitnog mehanizma, upravljanje pristupom i bezbednošću informacije;
  7. - 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.

Merenje kašnjenja ulaska u rutinu za obradu prekida
Sl 1. Merenje kašnjenja ulaska u rutinu za obradu prekida


Merenje kašnjenja smene programskih niti
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:
ASTRONOMIJA | BANKARSTVO I MONETARNA EKONOMIJA | BIOLOGIJA | EKONOMIJA | ELEKTRONIKA | ELEKTRONSKO POSLOVANJE | EKOLOGIJA - EKOLOŠKI MENADŽMENT | FILOZOFIJA | FINANSIJE |  FINANSIJSKA TRŽIŠTA I BERZANSKI    MENADŽMENT | FINANSIJSKI MENADŽMENT | FISKALNA EKONOMIJA | FIZIKA | GEOGRAFIJA | INFORMACIONI SISTEMI | INFORMATIKA | INTERNET - WEB | ISTORIJA | JAVNE FINANSIJE | KOMUNIKOLOGIJA - KOMUNIKACIJE | KRIMINOLOGIJA | KNJIŽEVNOST I JEZIK | LOGISTIKA | LOGOPEDIJA | LJUDSKI RESURSI | MAKROEKONOMIJA | MARKETING | MATEMATIKA | MEDICINA | MEDJUNARODNA EKONOMIJA | MENADŽMENT | MIKROEKONOMIJA | MULTIMEDIJA | ODNOSI SA JAVNOŠCU |  OPERATIVNI I STRATEGIJSKI    MENADŽMENT | OSNOVI MENADŽMENTA | OSNOVI EKONOMIJE | OSIGURANJE | PARAPSIHOLOGIJA | PEDAGOGIJA | POLITICKE NAUKE | POLJOPRIVREDA | POSLOVNA EKONOMIJA | POSLOVNA ETIKA | PRAVO | PRAVO EVROPSKE UNIJE | PREDUZETNIŠTVO | PRIVREDNI SISTEMI | PROIZVODNI I USLUŽNI MENADŽMENT | PROGRAMIRANJE | PSIHOLOGIJA | PSIHIJATRIJA / PSIHOPATOLOGIJA | RACUNOVODSTVO | RELIGIJA | SOCIOLOGIJA |  SPOLJNOTRGOVINSKO I DEVIZNO POSLOVANJE | SPORT - MENADŽMENT U SPORTU | STATISTIKA | TEHNOLOŠKI SISTEMI | TURIZMOLOGIJA | UPRAVLJANJE KVALITETOM | UPRAVLJANJE PROMENAMA | VETERINA | ŽURNALISTIKA - NOVINARSTVO


preuzmi seminarski rad u wordu » » »   

Besplatni Seminarski Radovi

SEMINARSKI RAD