LabView Academy. 4. óra párhuzamos programozás

Hasonló dokumentumok
4. Példa: Másodfokú egyenlet megoldása (program2_1.vi)

Tanúsítvány áttekintése

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

Mérés és adatgyűjtés Laboratóriumi jegyzet

Széchenyi István Egyetem

LabView Academy. 3. óra - cluster, for ciklus, while ciklus, DAQ alapok

5. Példa: Olvasás szöveges fájlból (program3_1.vi)

eseményvezérelt megoldások Vizuális programozás 5. előadá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.

LabView Academy. Alapismeretek II.

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Summer of LabVIEW The Sunny Side of System Design

LabVIEW Academy. 6. óra state machine

Java II. I A Java programozási nyelv alapelemei

LabVIEW gyakorlatok. National Instrument anyagok alapján készítette:

Párhuzamos és Grid rendszerek

Pénzügyi algoritmusok

LabVIEW tutorial. Budapesti Műszaki és Gazdaságtudományi Egyetem. Budapest. Méréstechnika és Információs Rendszerek Tanszék VIMIA312 1.

Virtuális Instrumentáció LabVIEW-el

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Mérés és adatgyűjtés

Felhasználó által definiált adattípus

A C programozási nyelv IV. Deklaráció és definíció

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

C# gyorstalpaló. Készítette: Major Péter

Széchenyi István Egyetem

MMK-Informatikai projekt ellenőr képzés 4

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

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Occam 1. Készítette: Szabó Éva

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

LabView Academy. Bevezetés

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Az interrupt Benesóczky Zoltán 2004

Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com

ROS Remote Operations Service

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

Programozási technológia

Fogalomtérkép. IHMC CmapTools version Felhasználása. Elérhetőség. Rendszerkövetelmény (Windows OS esetén):

VBA makrók aláírása Office 2007 esetén

Java II. I A Java programozási nyelv alapelemei

Mechatronika II (BMEGEFOAMM2)

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

HDL tervezés. Gábor Bata FPGA Developer Microwave Networks Ericsson Hungary Ltd.

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

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

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói

C#, OOP. Osztályok tervezése C#-ban

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Pénzügyi algoritmusok

7. példa: Grafikus megjelenítés (program4_1.llb)

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

LabVIEW alapismeretek

Operációs Rendszerek II. labor. 2. alkalom

Programozási nyelvek II.: JAVA

Fordítás Kódoptimalizálás

Informatika terméktervezőknek

Szkriptnyelvek. 1. UNIX shell

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

1. mérés - LabView 1

munkafüzet open eseményéhez

A szoftverfejlesztés eszközei

Jelgenerálás virtuális eszközökkel. LabVIEW 7.1

Programozási nyelvek (ADA)

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

VBA. Visual Basic for Applications

A programozás alapjai

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

A LabView-ról röviden kezdoknek

PQRM Ux Ix xx xx (PS) Háromfázisú multifunkciós teljesítmény távadó. Kezelési útmutató

Termelő-fogyaszt. fogyasztó modell

Swing GUI készítése NetBeans IDE segítségével

1. Számítógépes mérések vezérlőszoftverei

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

A C programozási nyelv I. Bevezetés

webalkalmazások fejlesztése elosztott alapon

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

A ChipScope logikai analizátor

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

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

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

CGS Civil 3D Extensions 2012 telepítése

VBA makrók aláírása Office XP/2002/2003 esetén

A C# programozási nyelv alapjai

Minta. LabVIEW TM Core 2 Feladatok. A tanfolyam szoftveranyagának verziószáma augusztus kiadás Termékkód: B-0131

Vizuális, eseményvezérelt programozás XI.

Programozás alapjai. 5. előadás

Bevezetés a C++ programozási nyelvbe

VISUAL BASIC ALAPISMERETEK

Laborsegédlet 3. Labor

6. Közös változóval rendelkező párhuzamos program, Közös változó,

Pick Pack Pont kereső és boltválasztó alkalmazás

Web-technológia PHP-vel

Python tanfolyam Python bevezető I. rész

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Átírás:

LabView Academy 4. óra párhuzamos programozás

Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét bekötjük egy másik subvi error in cluster-jébe c) Az Error list ablakban bejelöljük a Show Warnings jelölőnégyzetet 2

Ellenőrző kérdések Az alábbiak közül melyek az error cluster elemei? a) Status: Boolean b) Error: String c) Code: 32-bit integer d) Source: String 3

String String Length Concatenate String subset Trim whites Normalize end of line Replace subset Stb. 4

String példák Match pattern Search and replace 5

Case Structures» Case structure Bool, egész szám, enum Számnál és enumnál alapértelmezett» Default case Értékek tól ig határokkal 1..200 1..200, 220..240 6

Case 7

String Gyakorlás: pelda05_1_string_case.pdf Gyakorlás: Lva.04.strings.docx pelda08_build_string.vi 8

Switch/Latch mechanical action Boolean latch action nem kompatibilis a local változókkal. Próbáljuk ki ezt a következő feladat előtt! 9

Párhuzamosság Két különböző frekvenciájú koszinusz jel, két ciklusban, egy stop gombbal leállítva 10

Párhuzamosság Helyes-e a következő elgondolás? Nem! 11

Párhuzamosság Helyes-e a következő elgondolás? (Változók) pelda05_local_variables.vi Igen! 12

Párhuzamosság Adatfolyam architektúra Az adatfolyam határozza meg a végrehajtási sorrendet Jól párhuzamosítható Adatátadás a párhuzamos programrészek között Adatfüggőséget okoz (adatfolyam) Elveszik a párhuzamosság Változók: blokk diagram elemek, amelyek lehetővé teszik adatok beolvasását, illetve tárolását. 13

Változók Lokális változó: Front panel kontrolban/indikátorban tárolja az értéket, csak egy VI-on belül használható Globális változó: Speciális adattárolóban tárol, adatokat így több VI számára elérhető Funkcionális globális:while ciklus inicializálatlan Shift regiszterében tárol értéket Shared: több eszköz és rendszer között hálózati megosztás 14

Lokális változók Létrehozása: Jobb klikk egy kontrol/indikátor terminálon >> Create >> Local variable Functions paletta Írása/olvasása: Jobb klikk >> Change to Read/Write 15

Globális változók Adatcsere különböző VI-ok között Speciális VI, aminek csak Front panelje van Létrehozása: Functions paletta A globális változó Front paneljén elhelyezett egy/több objektum >> összetett változó Írása/olvasása: Összetett változó esetén az al-változó kiválasztása Change to Read/Write 16

Single-process shared variable Adatcsere különböző VI-ok között Létrehozása: Project explorer >> My computer, New >> Variable 17

Single-process shared variable Adatcsere különböző VI-ok, sőt különböző rendszerek között hálózaton Project Explorer 18

A változók túlzott használatának veszélyei A változók nem részei az adatfolyam architektúrának A blokk diagram nehezen olvashatóvá válik a használatukkal Túlzott használatuk rontja a VI teljesítményét 19

Ellenőrző kérdések Mi lesz az értéke? a) Szám=(Szám*5)+2 b) Szám=(Szám*2)+5 c) Szám=Szám*5 d) Szám=Szám+2 e) A kiértékelési sorrend dönt 20

Charts vs. Graphs Multi-plot and XY Graph

Feladat 22

Feladat pelda07_local_variables_order.png Snippet 23

Funkcionális globális változók For, vagy While ciklusok inicializálatlan shiftregisztereiben tárolja az adatot Művelet bemenet (set/get, read/write) Adat bemenet Bonyolultabb adatstruktúrák (verem, sor) is megvalósíthatók így Fájlok, műszerek, DAQ eszközök hozzáférése is szabályozható ezzel pelda06_functional_global_variable.zip 24

Versenyhelyzet Több párhuzamosan futó program használja ugyanazt a megosztott erőforrást (változót) Nehéz azonosítani és debuggolni Elkerülése Megosztott erőforrások korlátozása Kritikus kódrészek védelme (pl. semaphor, funkc. globális változó) Végrehajtási sorrend meghatározása 25

Controlling Shared Resources 26

Megosztott erőforrások Minimalizáljuk a megosztott erőforrások alkalmazását vagy legalább a megosztott erőforrások használóinak számát ha sokan olvassák ugyanazt az erőforrást, az áltatában nem probléma ha sokan írják, az jelent problémát Cél: Egy írásjog Jól definiált végrehajtási sorrend 27

Változók Inicializálatlan változók az alapértelmezett értéket veszik fel. Ökölszabály: előbb inicializáljuk a változót, utána használjuk. 28

Kritikus kódrészlet Definíció: az a kódrészlet, amely közben versenyhelyzet állhat elő Kritikus kód védelme Funkcionális globális változók: non reentrant subvi, egyszerre csak egy helyről futtatható Szemaforok 29

Szemafor használata a kritikus kódrészlet védelmére Acquire semaphore és Release semaphore közti rész védett 30

Ellenőrző kérdések VI-okban érdemes gyakran változókat használni. a) Igaz b) Hamis 31

Ellenőrző kérdések Az alábbiak közül melyek nem alkalmasak adatátvitelre? a) Szemafor b) Funkcionális globális változó c) Lokális változó d) Single-process shared változó 32

Ellenőrző kérdések Az alábbiak közül melyek használhatók kizárólag projektben? a) Lokális változó b) Globális változó c) Funkcionális globális változó d) Single-process shared változó 33

Ellenőrző kérdések Az alábbiak közül melyek nem használhatók különböző VI-ok közti adatátadásra? a) Lokális változó b) Globális változó c) Funkcionális globális változó d) Single-process shared változó 34

Többhurkos tervezési technikák Párhuzamos Több független feladat párhuzamos végrehajtása Kommunikáció a ciklusok között nem egyszerű (változók) 35

Többhurkos tervezési technikák Master/Slave Több független ciklus különböző sebességgel Slave ciklus Különböző frekvenciájú adatgyűjtési feladatok Master ciklus Felhasználói felület kezelése (inputok a felhasználótól) Túl lassú Slave gondot okozhat 36

Többhurkos tervezési technikák Producer/Consumer Továbbfejlesztett adatmegosztás a Master/Slave-hez képest Producer ciklus: Adatot termel Consumer ciklus: Adatot fogyaszt Kommunikáció egy soron keresztül -> nincs adatvesztés 37

Olvasnivaló http://www.ni.com/white-paper/7585/en/ http://labviewwiki.org/race_condition http://www.ni.com/white-paper/4679/en/ http://digital.ni.com/public.nsf/allkb/a1ba7477550dbfde862 565BC006CD410 http://www.ni.com/white-paper/6099/en/ 38