Osobone Sistema Za Rad u Realnom Vremenu

12
Naziv predmeta Programiranje u realnom vremenu Seminarski rad: Osobine sistema za rad u realnom vremenu koje uticu na programiranje.

description

seminarski

Transcript of Osobone Sistema Za Rad u Realnom Vremenu

BELGRADE COLLEGE OF COMPUTER SCIENCES

Naziv predmeta

Programiranje u realnom vremenuSeminarski rad:

Osobine sistema za rad u realnom vremenukoje uticu na programiranje.www.BesplatniSeminarskiRadovi.comSadraj U radu je prikazana realizacija operativnog sistema za rad u realnom vremenu (Nitros) u zatvorenim okruenjima (eng. embedded systems). Rad obuhvata kratak pregled razvoja operativnih sistema, zatim osobine operativnih sistema u realnom vremenu, kao i osobine operativnog sistema Nitros. Takoe je i predstavljena realizovana aplikativna programska podrka po POSIX standardu.I. UVOD

Osnovna funkcija operativnog sistema je da obezbedi spregu izmeu fizike arhitekture raunarskog sistema I korisnika. To podrazumeva usklaeno rukovanje resursima sistema. Rukovanje resursima zasnovano je na pojmu procesa koji se u ovom kontekstu definie kao program pripremljen za izvravanje ili u stanju izvravanja. Iz toga proistie da proces predstavlja korisnika resursa (potroaa). 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 raunarskog sistema koji se moe definisati preko raznovrsnih upravljakih funkcija koje stavlja na raspolaganje korisnkim programima (resursima). To su sledee funkcije:

formiranje (stvaranje procesa) i odstranjivanje procesa

upravljanje tokom realizacije procesa, odnosno, obezbeenje, da se svaki logiki proces, odvija nesmetano, a da ni jedan proces ne moe blokirati odvijanje drugog procesa beskonano; delovanje u uslovima izuzetnih dogaaja koji se pojavljuju u toku izrenja procesa (npr. aritmetike i mainske greke, prekidi, adresne greke, ili naruavanje zatitnih mehanizama);

raspodela resursa fizike arhitekture meu procesima;

obezbeenje pristupa programskim resursima

obezbeenje zatitnog mehanizma, upravljanje pristupom i bezbednou informacije;

obezbeenje komunikacije meu procesimaII. RAZVOJ OPERATIVNIH SISTEMAU zadnjih nekoliko decenija razvoj operativnih sistema je bio veoma intenzivan. Sa razvojem mikroelektronike mogunosti mikroprocesora su rasle, pa su zahtevi od operativnih sistema bili sve kompleksniji. Taj razvoj se kretao od poetnih pokuaja realizacije operativnih sistema radi podrke obradi grupa programskih paketa, do interaktivnih multiprogramskih sistema I multiprocesorskih operativnih sistema. U toku ovog razvoja uoljivo je nekoliko generacija operativnih sistema. Prva generacija operativnih sistema, odnosi se na jednoprogramske sisteme sa direktnim radom (pedesetih godina). Posao koji se obraivao skupljen je u grupe, a po zapoinjanju posao ima punu kontrolu nad svim resursima raunarskog sistema. Druga generacija operativnih sistema, karakterie se razvojem multiprogramskih operativnih sistema kod kojih se pojavljuje problem deljenja resursa raunarskih sistema izmeu vie programa. Nju karakterie i pojava obrade u vieprocesorskom 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 omoguili upravljanje industrijskim procesima pomou raunara. Trea generacija (sredina 60-tih do sredine 70tih godina) se karakterie pojavom opte namenskih sistema, u koji su integrisani raznovrsni reimi rada (obrada grupe programskih paketa, podela vremena, obrada u realnom vremenu). Ovi sistemi su uveli nivoe programske podrke izmeu korisnika i fizike arhitekture, preko kojih korisnik gubi oseaj o fizikim komponentama i vidi samo ono to mu dozvoljava programska komponenta. etvrta generacija karakterie se primenom raunarskih mrea i direktne obrade na prostorno dislociranim raunarskim resursima. Pojava mikroprocesora, omoguila je pojavu mikroraunara, ija je relativno niska cena omoguila masovnu primenu. Pojavljuje se koncept virtuelnih maina, koji ima za posledicu da je korisnik u kontaktu, samo sa virtualnom. Pojavila se i potreba za podrkom konceptu bazi podataka. Pored toga, sve vie na znaaju 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 ograniena i unapred definisana fizikom platformom i programskom podrkom. Ponovno programiranje ovakvih sistema moe samo u ogranienoj meri proiriti njegovu funkcionalnost. U zadnjih nekoliko decenija, mikroprocesori se proizvode u izuzetno velikim serijama. Time su trokovi proizvodnje postali veoma bitan faktor u dizajniranju raunarskog okruenja. To je dovelo do proizvodnje raunarskih okruenja sa zatvorenom arhitekturom koja imaju specifinu namenu. i ija je cena nia, a performanse skromnije. Ovi sistemi su veoma prisutni u razvoju raunarstva, budui da se procenjuje da 99% mikroprocesora od dananje ukupne svetske proizvodnje radi u zatvorenim okruenjima. Kod velikog broja ovakvih sistema prisutna je potreba da obradu podataka vre u odreenom vremenskom roku. Takvim ureajima kao programska podrka rukovode operativni sistemi za rad u realnom vremenu. Operativni sistemi za rad u realnom vremenu su sistemi koji reaguju na vremenski predvidiv nain na spoljne dogaaje ije je pojavljivanje nepredividivo. To su sistemi kod kojih obraivanje I njihovo korektno funkcionisanje ne zavisi samo od logikog rezultata, nego i od njihove pravovremenosti. Operativni sistemi za rad u realnom vremenu moraju biti veoma pouzdani i sigurni. Oni operiu u realnom okruenju pod razliitim uticajima koji mogu da dovedu do otkaza ili neispravnog funkcionisanja, a koje moe prouzrokovati tetu ili ugroavanje ivota i okoline. U zavisnosti od vremenskih zahteva, operativni sistemi za rad u realnom vremenu se dele na sledei nain:

Nefleksibilni sistemi sa radom u realnom vremenu (eng. Hard Real-Time Systems): u ovu kategoriju spadaju sistemi sa strogim vremenskim zahtevima kod kojih prekoraenje vremenskih zahteva po pravilu dovodi do katastrofalnih posledica po rad sistema.

Polufleksibilni sistemi sa radom u realnom vremenu (eng. Firm Real-Time Systems): prekoraenje vremenskih zahteva za posledicu ima neprihvatljivo smanjenje kvaliteta funkcionisanja sistema.

Fleksibilni sistemi sa radom u realnom vremenu (eng. Soft Real-Time Systems): moe doi do prekoraenja vremenskih zahteva a sistem se kasnije moe 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 obraivanja programskih niti. Rasporeiva programskih niti mora biti realizovan tako da se u svakom trenutku obrauje programska nit najvieg prioriteta. Da bi ovo bilo mogue operativni sistem za rad u realnom vremenu mora imati sposobnost istiskanja programskih niti (eng. preempting), kao i veliki broj prioriteta programskih niti pomou kojih operativni sistem razlikuje vremensku zahtevnost obrade programske niti. Operativni sistemi za rad u realnom vremenu moraju imati sinhronizacione mehanizme koji funkcioniu u unapred odreenim 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 ogranienje koje bi definisalo koliko malo vreme odziva treba da bude, ve to odreuje priroda potrebe za koju se projektuje ovakav operativni sistem. Svaki operativni sistem za rad u realnom vremenu mora imati unapred definisane vremena kanjenja. Vremena kanjenja za koja se oekuje da budu odreena su:

Vreme kanjenja smene programskih niti (eng. Task switching latency). Ovo je vreme koje proe izmeu izvrenja poslednje instrukcije prethodne programske niti i izvrenja prve instrukcije naredne programske niti.

Vreme kanjenja ulaska u rutinu za obradu prekida (eng. interrupt latency). Ovo je vreme koje protekne izmeu izvrenja poslednje instrukcije u programskoj niti i izvrenja prve instrukcije u rutini za obradu prekida.

Vreme kanjenja izlaska iz rutine prekida (eng. Interrupt dispatch latency). Ovo je vreme koje protekne izmeu izvrenja poslednje instrukcije u rutini za obradu prekida i izvrenja prve instrukcije u narednoj programskoj niti.

Vreme kanjenja kreiranja i unitavanja programskih niti

Vreme kanjenja kreiranja i unitavanja 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 funkcionie u zatvorenima okruenjima. Jezgro operativnog sistema ine modul za rukovanje memorijom, modul za rasporeivanje programskih niti, modul za obradu prekida, a sistem ima takoe realizovane vremenske kontrole i sinhronizacione objekte. Modul za rasporeivanje programskim nitima funkcionie po dva algoritma koja se meusobno dopunjuju. Kada operie sa nitima istog prioriteta primenjuje se mehanizam deljenja vremena (eng. timeslice), dok se za raspodelu procesorskog vremena meu nitima razliitog prioriteta koristi mehanizam istiskivanja (eng. preempting). Postoji 256 razliitih nivoa prioriteta programskih niti. Nitros podrava tri instalaciju tri vrste korisnikih rutina za obradu prekida: 1. Rukovaoc prekida (Interrupt Handler) predstavlja rutinu ija se adresa direktno postavlja kao prekidni vektor. Ova rutina se obino pie u asemblerskom jeziku. Programski kod rutine mora da obezbedi ouvanje konteksta tekueg obraivanog procesa. Kompletna obrada prekida se preputa korisniku. 2. Prekidna funkcija (Interrupt Function) je korisnika rutina koja se izvrava iz konteksta obrade prekida. Ouvanje konteksta tekueg obraivanog procesa obezbeuje OS. S obzirom da se prekidna funkcija izvrava iz konteksta prekida skup funkcija koje se iz nje mogu pozivati je ogranien. Na izlasku iz prekidne funkcije Nitros poziva dispeera ime se omoguava smena tekue programske niti. 3. Prekidna nit (Interrupt task) predstavlja programsku nit visokog prioriteta koja se izvrava iz zasebnog konteksta. Prekidna nit se aktivira iz prekidne funkcije a postaje tekua odmah po izlasku iz konteksta prekida. Iz prekidne niti dozvoljeno je pozivati sve funkcije Nitrosa. U Nitrosu je realizovano vie sinhronizacionih mehanizama pomou kojih se omoguuje usaglaavanje korienja resursa. Realizovani su semafori, muteksi I dogaaji (eng. events). Za komunikaciju izmeu programskih niti, u operativnom sistemu Nitros realizovani su sanduii za poruke (eng. message box). Poruke iz sanduia se stavljaju u red, tj po FIFO modelu (First In First Out). Podrani su dva naina rukovanja memorijom. Prvi mehanizam je dinamiko dodeljivanje memorije, pri kojem se na zahtev dodeljuje traena koliina memorije. Ovakav vid dodeljivanja memorije nije vremenski determinisan. Drugi nain je realizovan podelom memorijskog bazena na blokove. Na zahtev se dodeljuje odgovarajui blok memorije, to moe da ima za posledicu neracionalnu potronju memorije. Prednost ovog mehanizma je unapred definisano vreme izvrenja operacije. U Nitros operativnom sistemu je realizovan prilagodni deo fizikoj arhitekturi. To je sloj operativnog sistema koji predstavlja spregu izmeu fizike arhitekture i ostatka programske sprege operativnog sistema. Omoguava jednostavno prilagoenje Nitros operativnog sistema razliitim ciljnim platformama. Prilagoavanje (eng. - porting) RT mikrokernela za konkretnu fiziku raunarsku arkitekturu zasniva se na definisanju tano odreenog skupa tipova (struktura) I funkcija kojima se vri apstrakcija metoda rukovanja fiziki specifinim resursima CPU (eng. HAL Hardware Abstraction Layer). V. PROIRENJE OPERATIVNOG SISTEMA NITROS PROGRAMSKOM APLIKATIVNOM SPREGOM PREMA STANDARDU POSIX POSIX je zajedniko ime za familiju standarda specificiranih od strane IEEE (Institute of Electrical and Electronics Engineers) organizacije i u okviru ove organizacije nosi oznaku IEEE 1003. Zvanina 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 korisniku programsku spregu za operativne sisteme. Aplikacija realizovana prema ovoj specifikaciji se lako prilagoava drugim operativnam sistemima realizovanim prema POSIX standardu. Zbog specifine namene Nitros operativnog sistema, realizovan je samo deo ovog standarda, tanije 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 izmeu korisnika programera I operativnog sistema.VI. PRIKAZ TESTOVA OPERATIVNOG SISTEMA NITROS

Testiranje operativnog sistema Nitros je vreno na platformi kompanije Micronas koja se koristi za razvoj aplikacija u digitalnoj televiziji. Navedeno okruenje predstavlja sistem za rad u realnom vremenu sa vrstim vremenskim ogranienjima. Zakasneli odziv pri obradi ulaznih podataka dovodi do neprihvatljivog smanjenja kvaliteta. Zbog toga programska podrka, ukljuujui I operativni sistem, mora da odgovori postavljenim zahtevima.

Sl 1. Merenje kanjenja ulaska u rutinu za obradu prekida

Sl. 2 Merenje kanjenja smene programskih niti

Na sl.1 je prikazan rezultat testa koji se koristio u ciljumerenja kanjenja ulaska u rutinu za obradu prekida. Signali su mereni na ulazno izlaznoj sprezi opte namene. Sistem je konfigurisan tako da se prekid generie na uzlaznoj ivici ulaznog signala. Donji signal predstavlja ulazni signal kojim se generie prekid. Gornji signal je signal izlaznog prikljuka 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 kanjenja ulaska u rutinu za obradu prekida iznosi 6.12 s. Na sl. 2. je prikazan rezultat testa koji se koristio u cilju merenja kanjenja smene programskih niti. Prikazani signal je signal izlaznog prikljuka ulazno izlazne sprege opte namene preko kojeg se sakupljaju vrednosti merenja. Po isteku vremenske kontrole operativnog sistema, menja se vrednost signala. Prvom instrukcijom sledee programske niti vrednost signala se vraa na prvobitnu vrednost. Vreme kanjenja smene programskih niti iznosi 30.68 s. U tabeli 1. su prikazani rezultati preostalih merenja vrenih na Nitrosu.

TABELA 1. TESTOVI KANJENJA VRENI NA NITROSU

VII. ZAKLJUAK

U radu je predstavljeno reenja operativnog sistema u realnom vremenu kao i opis njegovih osobina. Na osnovu prikazanih rezultata merenja moe se zakljuiti da Nitros odgovara zahtevima koji se postavljaju pred operativni sistem za rad u realnom vremenu. Posebna panja je posveena primeni datog reenja u zatvorenim okruenjima. Realizovani prilagodni deo omoguava njegovu jednostavno prilagoavanje razliitim ciljnim platformama. Platforma za razvoj aplikacija digitalne televizije predstavlja zatvoren sistem sa strogim vremenskim zahtevima gde je Nitros uspeno testiran I primenjen.

LITERATURA

[1] Prof. dr Vladimir Kovaevi, prof. dr Miroslav Popovi, Sistemska programska podrka u realnom vremenu, Fakultet tehnikih 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/www.BesplatniSeminarskiRadovi.comPAGE - 9 -