Szenzorhálózatok programfejlesztési kérdései. Orosz György

Hasonló dokumentumok
Beágyazott rendszerek alapkomponensei II. : Software

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Tartalomjegyzék. Előszó... 10

Operációs rendszerek II. Folyamatok ütemezése

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Firmware fejlesztés. Mártonfalvi Zsolt Hardware programozó

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Ütemezés (Scheduling),

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

Irányítástechnika Elıadás. PLC-k programozása

(kernel3d vizualizáció: kernel245_graph.mpg)

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Dr. Schuster György október 3.

Operációs rendszerek. Folyamatok ütemezése

Elosztott rendszerek

Matematikai és Informatikai Intézet. 4. Folyamatok

Ütemezés (Scheduling),

SZENZORMODUL ILLESZTÉSE LEGO NXT PLATFORMHOZ. Készítette: Horváth András MSc Önálló laboratórium 2 Konzulens: Orosz György

Aktív zajcsökkentést demonstráló rendszer továbbfejlesztése. Csofcsics Donát Gusztáv Tamás

Operációs rendszerek. Bemutatkozás

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

OPERÁCIÓS RENDSZEREK. Elmélet

Nagy Gergely április 4.

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Az interrupt Benesóczky Zoltán 2004

Architektúra, megszakítási rendszerek

Számítógép architektúra

Az operációs rendszer szerkezete, szolgáltatásai

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Labor gyakorlat Mikrovezérlők

Operációs Rendszerek II.

Mintavételes szabályozás mikrovezérlő segítségével

ARM Cortex magú mikrovezérlők 10. RTOS alapok

operációs rendszer A TinyOS - Bevezető - [ Beágyazott Információs Rendszerek Tervezése ]

Operációs rendszerek. 3. előadás Ütemezés

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

evosoft Hungary Kft.

Labor gyakorlat Mikrovezérlők

Számítógépek felépítése

Bevezetés az informatikába

Dr. Illés Zoltán

Számítógépes alapismeretek

Párhuzamos programozási platformok

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Bevezetés a párhuzamos programozási koncepciókba

Teljesítménymodellezés

Folyamatok. 6. előadás

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Informatika Rendszerek Alapjai

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

A LabVIEW 8.5 támogatja a többmagos processzorok lehetőségeinek kihasználását

Az AVR programozás alapjai. Előadja: Both Tamás

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Új kompakt X20 vezérlő integrált I/O pontokkal

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Prolan Zrt. fejlesztéseiben. Petri Dániel

Arduino bevezető Szenzorhálózatok és alkalmazásaik

Szenzorkommunikációs lehetőségek az IoT világában. Dr. Fehér Gábor BME Távközlési és Médiainformatikai Egyetem

Fábián Zoltán Hálózatok elmélet

Előadás_#02. Előadás_02-1 -

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Programok, statikus linkelés

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Konkurens TCP Szerver

UNIX: folyamatok kommunikációja

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

Bevezetés a számítástechnikába

Informatikai rendszerek alapjai (Informatika I.)

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

Párhuzamos programozási platformok

webalkalmazások fejlesztése elosztott alapon

Autóipari beágyazott rendszerek. Local Interconnection Network

Párhuzamos és Grid rendszerek

Operációs rendszerek MINB240

Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve őszi félév első zhval bezárólag.

Digitális eszközök típusai

Dr. Illés Zoltán

Concurrency in Swing

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS

Készítette: Oláh István mestertanár

Intelligens épületfelügyeleti rendszer tervezése mikrokontrollerrel

Házi feladatok Szenzorhálózatok és alkalmazásaik

A TinyOS. operációs rendszer. (bevezető) Beágyazott Információs Rendszerek.

Labor 2 Mikrovezérlők

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Párhuzamos és Grid rendszerek

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

Aktív zajcsökkentő rendszerek megvalósítása szenzorhálózattal

Jelfeldolgozás a közlekedésben

Utolsó módosítás:

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Hálózati réteg. WSN topológia. Útvonalválasztás.

Kooperáció és intelligencia kis HF-ok/ Kooperáció és intelligencia, Dobrowiecki T., BME-MIT 1

Átírás:

Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30.

Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen kezelése: Lekérdezés IT (megszakítás) Assembly Kisebb feladatok megoldása Időkritikus alkalmazások Nehézkes (tovább)fejlesztés és debugolás Magasszintű programozási nyelv (C, Java???) Kisebb hatásfok (nem feltétlenül) Gyorsabb fejlesztés Továbbfejlesztés egyszerűbb, skálázhatóság Beágyazott operációs rendszer

Feladatkiszolgálás Alapvető feladat: események kezelése Kommunikáció (rádió/protokoll kezelés) Megfigyelések végzése Perifériák kiszolgálása Időzítések Processzor: szekvenciális végrehajtás A feladatok kezelését tervezni kell (ütemezés) Szempontok Feladat kiszolgálásának hossza (végrehajtási ideje) Feladat fontossága (válaszidő biztosítása) Megfelelő processzorkihasználtság: jól el kell osztani a feladatokat Példa: egy gyorsan változó mennyiség (pl. hang, rezgés) mérését pontosan kell elvégezni, itt nem engedhető meg változó válaszidő. Az adatok továbbításának ütemezése viszont nem kritikus, lényeg, hogy elküldjük valamikor az adatokat: elegendő kisebb prioritás. Szenzorhálózat: elosztott rendszer. Ugyanaz a program fut sok eszközön Gyakorlat kell annak átlátásához, hogy egyazon program hogyan működik több eszközön eltérő üzemállapotban, eltérő körülmények között

Feladatok kiszolgálása (ütemezés) Példák Egyszerű ciklikus programszervezés Események egymás utáni lekérdezése és kiszolgálása while(true){ if (eventarequest==true) {serviceeventa(); if (eventbrequest==true) {serviceeventb(); Folyamatos lekérdezés maximális CPU kihasználtság (fogyasztás ) Worst case válaszidő: T A +T B + : garantált (kérés kezdete-kiszolgálás vége) Gyorsan fejleszthető, kiszámítható Új feladatok hozzáadásával nő a válaszidő Nem preemptív kölcsönös kizárás nem gond (nem fut egyszerre két folyamat) Kis válaszidejű események kiszolgálása nem garantált Súlyozás is lehet, pl.: ABAAC ABAAC ( A többször fut) HW kezelés: lekérdezéssel

Egyszerű ciklikus programszervezés Példák: adat lekérdezése (A) és továbbítása (B) rádió folyamatos lekérdezése (A), ha van üzenet annak feldolgozása (B) Időzítési diagram: A B A B A B A B folytonos lekérdezés végzése: nem kell kiszolgálni egyik taszkot sem

Ütemezés Időzített periodikus ütemezés: bizonyos időközönként hajtunk végre egy feladatszekvenciát TimerITServiceRoutine(){ if (eventarequest==true) {serviceeventa(); if (eventbrequest==true) {serviceeventb(); Timer IT Timer IT Timer IT A B A B A B t Egyszerű ciklikus programszervezéshez hasonló tulajdonságok, de csak adott időközönként történik kiszolgálás Itt is lehet súlyozni (IT:AAABAB IT: AAABAB ) Jobb energiafelhasználás: van idle szakasz

Idővezérelt ütemezés 2 Minden feladathoz saját időpont (adminisztráció) hiperciklus A B C A B t Kiszámítható működés Energiafelhasználás Kölcsönös kizárás (nincsenek megszakítások) Fejlesztés nehézkes: időzítések újratervezése

Megszakításokkal (IT) való kiegészítés IT B-t szakítja meg A B A B B IT (interrupt) kell: lekezelés nem lehet lekérdezéssel (időkritikus) A determinisztikusságot elrontja Kölcsönös kizárást biztosítani az IT-kre Válaszidő megnő az IT-k idejével Elterjedt megoldás (általában sok feladat megkívánja) Taszkok hozzáadásával nő a válaszidő IT rutin: fontos feladatok, feldolgozás később

Ütemezett függvények IT vezérelt IT során egy várósorba (queue) tesszük a végrehajtandó taszkokat (fv.-ket), innen valamilyen sorrendben végrehajtjuk TinyOS is hasonló szisztémát követ: putqueue post task ITServiceRoutine_A(){ fasthwhandlea(); putqueue(servicea); ITServiceRoutine_B(){ fasthwhandleb(); putqueue(serviceb);. main(){ while(1){ //gond: processzor folyton fut if (queueisnotempty()){ queuecallnextitem();

Ütemezett függvények Válaszidő: leghosszabb folyamat Kölcsönös kizárásra figyelni IT-k esetén Egyszerű fejleszthetőség Függvények hozzáadása a sorhoz A függvényeket nem kell megkülönböztetni A queue-ból való kiemelés prioritásos alapon is mehet Fontos feladatok válaszideje csökken Nem preemptív

Operációs rendszer (OS) A programozót tehermentesíti az ütemezési feladatok implementálása alól (folyamatok tervezése marad) Biztosítja a párhuzamos programozáshoz szükséges környezetet Transzparens HW kezelést biztosít Pl. analóg-digitális átalakítás, időzítő API: Application Programming Interface Platformfüggetlen (cél) Szinkronizációs, kommunikációs primitívek: pl. szemafor, mutex, queue Memóriakezelés

Operációs rendszer Fejleszthetőség jó Extra erőforrások szükségesek a futásához Futási idő, pl. context switching Memória: adminisztráció, alapkomponensek Taszkok közötti kommunikáció OS szinten Processzor kihasználás/energia (idle) Prioritás kezelhető Preemptív / nem preemptív: OS függő Gyakran extra funkcionalitások (operációs rendszer függő), például: TinyOS: rádiókezelés, magasabb szintű protokollok Filekezelés TCP/IP kommunikáció

Hagyományos vs. Beágyazott operációs rendszerek PC beágyazott Indulás Memóriavédelem Kód felépítés Bootloader: OS-t indít, aztán alkalmazások Erős védelem Külön OS, külön kód Reset alkalmazás OS Gyenge védelem (erőforrás) Egyben fordul a kettő Válaszidő Kódhatékonyság Nem determinisztikus. Több új folyamat, dinamikus felépítés. Nagy tartalék az eszközökben Számítható Csak a szükséges kódrészek