Česká letecká servisní a. s.



Podobné dokumenty
Algoritmy a algoritmizace

TÉMATICKÝ OKRUH Softwarové inženýrství

Management procesu I Mgr. Josef Horálek

Více o konstruktorech a destruktorech

Algoritmizace. 1. Úvod. Algoritmus

1 Nejkratší cesta grafem

PŘÍLOHA C Požadavky na Dokumentaci

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Management procesu II Mgr. Josef Horálek

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Činnost počítače po zapnutí

Paralelní programování

Pohled do nitra mikroprocesoru Josef Horálek

Procesy a vlákna - synchronizace

Výukový materiál zpracován v rámci projektu EU peníze školám

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu Obědvající filosofové

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programování v jazyce C a C++

5. Umělé neuronové sítě. Neuronové sítě

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

BPC2E_C09 Model komunikačního systému v Matlabu

Časová a prostorová složitost algoritmů

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Synchronizace Mgr. Josef Horálek

Identifikátor materiálu: ICT-4-01

Přidělování CPU Mgr. Josef Horálek

Internetový obchod ES Pohoda Web Revolution

Paralelní programování

Software pro vzdálenou laboratoř

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Integrovaná střední škola, Sokolnice 496

Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP.

TÉMATICKÝ OKRUH Softwarové inženýrství

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Algoritmizace- úvod. Ing. Tomáš Otáhal

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Controlweb. Úvod. Specifikace systému

Procesy a vlákna (Processes and Threads)

ČÁST 1. Základy 32bitového programování ve Windows

7. Funkce jedné reálné proměnné, základní pojmy

SPINEL. Komunikační protokol. Obecný popis. Verze 1.0

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Střední odborná škola a Střední odborné učiliště, Hořovice

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

POPIS STANDARDU CEN TC278/WG4. 1 z 5. Oblast: TTI. Zkrácený název: Zprávy přes CN 4. Norma číslo:

1. Dědičnost a polymorfismus

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Programujeme v softwaru Statistica

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

2. lekce Algoritmus, cyklus Miroslav Jílek

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

1 Strukturované programování

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Datové struktury 2: Rozptylovací tabulky

Základy programování Zdrojový kód, dokumentace, týmová práce

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

Základní komunikační operace

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Dynamické datové struktury III.

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Konečný automat. Studium chování dynam. Systémů s diskrétním parametrem číslic. Počítae, nervové sys, jazyky...

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

TÉMATICKÝ OKRUH Softwarové inženýrství

AGP - Accelerated Graphics Port

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Profilová část maturitní zkoušky 2017/2018

Úvod do teorie informace

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Architektury paralelních počítačů II.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Struktura programu v době běhu

Tvorba informačních systémů

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

1 0 0 u 22 u 23 l 31. l u11

Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)

Paralelní a asynchronní programování. Zdeněk Jurka

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

SEKVENČNÍ LOGICKÉ OBVODY

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

11. Přehled prog. jazyků

Možnosti propojení Lotus Notes/Domino a jiných systémů. Ondřej Fuxa Your System spol. s r.o.

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Přidělování paměti I Mgr. Josef Horálek

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí

O autorovi 11 O knize 11 Co v knize najdete? 12 Typografické konvence 13 Doplňující informace 14

Transkript:

Česká letecká servisní a. s. 1/20 Česká letecká servisní a. s. Your integrator of the avionics Česká letecká servisní a. s.

Česká letecká servisní a. s. 2/20 Úvod do problematiky synchronizace tasků O co se jedná Při návrhu aplikací velmi často řešíme problém spuštění jedné úlohy v závislosti na stavu jiné (jiných) úloh. Obdobný problém je řešen v případě, že je jedna úloha závislá na datech, se kterými pracuje jiná úloha.

Česká letecká servisní a. s. 3/20 Typické úlohy Úlohy, kde lze využít synchronizace Význam rámce vyhodnocujeme až poté, kdy je přijat celý rámec. V případě, že rámec není v daném čase přijmut celý, provedeme předepsané operace (odezva, žádost o znovuzaslání dat, vyčištění paměti). Viz ISO/OSI model. Konverzi/úpravu dat provádíme až tehdy, jsou-li data přijata a jsou-li např. "spojitá". Do paměti zapisujeme až poté, proběhne-li test paměti.

Česká letecká servisní a. s. 4/20 Důsledky synchronizace tasků Pro Problematika je rozdělena na menší kompaktní celky. Lépe využíváme systémové prostředky. Vysoká modularita výsledného kódu. Proti Vyšší složitost systému. Vyšší nároky na návrh. Vyšší nároky na testování systému.

Česká letecká servisní a. s. 5/20 Synchronizace pomocí semaforů Úkol 1 Zopakovat funkci semaforů. 2 Navrhnout využití semaforů pro synchronizaci tasků.

Česká letecká servisní a. s. 6/20 Synchronizace pomocí semaforů Princip činnosti Task můžeme synchronizovat s jiným taskem nebo s ISR s využitím semaforů. Synchronizace nesmí vyžadovat přenos dat. Pro přehlednost výkladu uvažujme binární semafor. Semafor je inicializován na hodnotu 0. Např. task inicializuje zpracování I/O a čeká na semafor (je ve waiting listu). Když je dokončena obsluha I/O (taskem nebo ISR) je semafor uvolněn a je spuštěn task z waiting listu. Tento mechanizmus je nazýván unilateral randezvous.

Česká letecká servisní a. s. 7/20 Synchronizace pomocí semaforů Ukázka pseudokódu synchronizace pomocí semaforů INIT { semaphor_sync_init; /* semaphor is set to zero */... }... ISR { IOdriver; POST; }... TASk1 { while (1 == 1) { PEND;.../* data processing */ } }...

Česká letecká servisní a. s. 8/20 Synchronizace pomocí semaforů Nasazení synchronizace pomocí semaforů Tato metoda má velké uplatnění u úloh typu: "po ukončení ISR spust task, který zpracuje data přijatá v ISR". Synchronizace mezi dvěma tasky bez přenosu dat je méně častá (vzájemná synchronizace mezi dvěmi tasky využívající dvou semaforů se nazývá bilateral randezvous).

Česká letecká servisní a. s. 9/20 Event flags Princip činnosti Používají se v případě, kdy je nutné synchronizovat task s více událostmi. Princip je velmi podobný synchronizaci pomocí binárních semaforů. Jediný rozdíl spočívá v tom, že stav není indikován jednobitově, ale pomocí skupiny příznaků (events group). Ta může být 8, 16 nebo 32 bitová. Opět se využívají metody POST a PEND. Metoda POST nastavuje/nuluje eventy, metoda PEND zajišt uje čekání na event (a to bud ve významu ALL nebo ANY).

Česká letecká servisní a. s. 10/20 Meziprocesorová komunikace Popis problematiky Při řešení problémů souvisejících s RTOS je nutné disponovat mechanismem, který zajistí výměnu dat mezi tasky nebo mezi taskem a ISR. Výměnu informací je možné zajistit dvěma způsoby: pomocí globálních proměnných, využitím zpráv. Problematika globálních proměnných byla řešena na předchozí přednášce. Využití zpráv je "vzdáleně podobné volání funkce s parametrem".

Česká letecká servisní a. s. 11/20 Meziprocesorová komunikace Popis problematiky Pro výklad další látky je nezbytně nutné pochopit princip semaforů. Meziprocesová komunikace je založena na stejném principu!!!

Česká letecká servisní a. s. 12/20 Message Mailbox (Message Exchange) Úvod Jedná se o metodu, která umožní předat data (ukazatel na data) z jednoho tasku (ISR) do jiného tasku. Mailboxy je nutné před použitím iniciovat. Pro předání se opět používá kombinace metod PEND a POST. Předávání dat bývá doplněno o time-out. Čekající tasky jsou zpracovány ve speciální struktuře waiting listu.

Česká letecká servisní a. s. 13/20 Ukázka kódu Ukázka kódu využívající Message Mailbox OS_EVENT *mailbox1; OS_EVENT *mailbox2; OS_EVENT *mailbox3;... while (1 == 1) { mbox1_contents = (INT32U *)OSMboxPend(mailbox1, 0, &return_code); alt_ucosii_check_return_code(return_code); printf("task1 received the message: %lu in mailbox 1\n", (*mbox1_contents)++); printf("task1 incremented the message and placed it into mailbox 2\n\n"); return_code = OSMboxPost(mailbox2, (void *)mbox1_contents); /*Post to Mailbox2*/ alt_ucosii_check_return_code(return_code); }... while(1 == 1) { mbox2_contents = (INT32U *)OSMboxPend(mailbox2, 0, &return_code); alt_ucosii_check_return_code(return_code); printf("task2 received the message: %lu in mailbox 2\n", (*mbox2_contents)++); printf("task2 incremented the message and placed it into mailbox 3\n\n"); return_code = OSMboxPost(mailbox3, (void *)mbox2_contents); /*Post to Mailbox3*/ alt_ucosii_check_return_code(return_code); }

Česká letecká servisní a. s. 14/20 Message Queues Úvod Message Queues slouží k zaslání jedné nebo více zpráv. Jedná se o rozšíření Mailbox Messages o možnost přenést "pole dat (mailboxů)". Opět se využívají metody POST a PEND. Systém je zcela shodný s Message Mailbox.

Česká letecká servisní a. s. 15/20 Obsluha a zpracování sériové linky Úkol 1 Zpracujte data přicházející po sériové lince. 2 Data jsou rozdělena do čtyř osmibitových bloků, z nichž první obsahuje synchronizační znak a poslední kontrolní součet. 3 Data zpracujte pomocí jednoho ISR a dvou tasků.

Česká letecká servisní a. s. 16/20 Postřehy z realizace úlohy Realizace/Formulace/Prezentace 1 Většinou jste se pokusili vytvořit popis problému přímo v pseudokódu. Porozumění pseudokódu, ale vyžaduje jistou znalost cílové platformy a způsobu zápisu, tak aby mu bylo rozumět (pseudokódy jednotlivých řešitelů se výrazně lišily). 2 Řešení byla někde "na půl cesty". Ani program, ani obecný popis. Představovala zápis myšlenek programátora zjednodušenou formou. Zkušenost je taková, že již za týden by těmto zápisům velmi obtížně rozuměl i autor. 3 Je problém s jasným vyjádřením myšlenek a s prezentací výsledků. Prezentace je minimálně 50% úspěchu!!!

Česká letecká servisní a. s. 17/20 Obecný doporučený způsob realizace pro RTOS Formulace problému 1 Nejprve je nutné problém uchopit a pochopit. Nebojte se vyjádřit zadání vlastními slovy, požádat o upřesnění nebo doplnění. 2 Následně slovně popište, jak bude pracovat Váš program. 3 Tužka a papír jsou velice silné nástroje!!! Zde je pro ně to pravé místo. Např. Příchod dat bude zpracován v ISR. ISR bude komunikovat s TASK1 a to tak, že mu zašle získaná data. K tomu využije mailbox. TASK1 bude sbírat data zaslaná z ISR, hledat synchronizační znak a kontrolovat kontrolní součet. V okamžiku, kdy získá a validuje 4 znaky zašle tyto znaky TASK2 k dalšímu zpracování. K tomu využije queues.

Česká letecká servisní a. s. 18/20 Obecný doporučený způsob realizace pro RTOS Požadavky 1 Pokud je problém složitější je vhodné písemnou formou zpracovat všechny požadavky na systém. Tento krok může být včleněn bud v tomto místě nebo následuje bezprostředně po získání zadání. Tvorba požadavků přesahuje rámec přednášek a většina firem má zpracovaná přesná pravidla jejich tvorby. Je nutné vědět, že pokud jste dostali úkol bez písemných požadavků je více než vhodné, abyste si je vypracovali a projednali se zadavatelem, případně si je nechali schválit. 2 Tvorba požadavků je náročná a lze ji celkově zvládnout až po nabytí praxe.

Česká letecká servisní a. s. 19/20 Obecný doporučený způsob realizace pro RTOS Zpracování algoritmu 1 Před zpracováním algoritmu (tj. jak bude náš systém pracovat) musíme znát požadavky a musíme mít promyšleno a slovně popsáno řešení. 2 V této fázi je nutné řešení zpracovat tak, aby bylo možné vytvořit kód v požadovaném programovacím jazyce. Řešení je více, např: 1 pseudokód, 2 vývojový diagram, 3 UML. 3 Doporučuji používat UML (nejlépe Real-time UML). Pseudokód je značně nepřesný a to hlavně z toho důvodu, že není dostatečně zažitá jednotná syntaxe. Vývojové diagramy velmi špatně vystihují real-time problematiku.

Česká letecká servisní a. s. 20/20 Obecný doporučený způsob realizace pro RTOS Tvorba kódu Teprve nyní je vhodné tvořit kód. Poznámka Uvedený postup představuje jakousi "minimální sadu" kroků, které je vhodné absolvovat při každém řešení problémů z oblasti real-time. Konkrétní postup je většinou dán zvyklostmi firmy, jejím systémem jakosti a způsobem řízení projektů. Vždy platí: "Dvakrát měř a jednou řež." Vynechání analytických kroků má dopad např. na: kvalitu systému, rychlost realizace, ladění chyb, testování, práci v týmu...