Grafické znázornění vláken a klasické problémy synchronizace

Rozměr: px
Začít zobrazení ze stránky:

Download "Grafické znázornění vláken a klasické problémy synchronizace"

Transkript

1 Grafické znázornění vláken a klasické problémy synchronizace Naďa Jašíková Vít Koumar Jindřich Samec 1

2 Grafické znázornění vláken a jejich komunikace v UML Unified Modelling Language (UML) se používá k abstraktní vizualizaci modelů systémů, nejčastěji se jedná o softwarové projekty. Zahrnuje několik diagramů kterými lze vývoj projektu mapovat. Každý z těchto diagramů poskytuje jiné možnosti pro vizualizaci a má rovněž jiný účel a cílového uživatele. Diagram tříd (Class Diagram) slouží především programátorům a analytikům k jednodušší orientaci v kódu, diagram případů užití (Use-Case Diagram) poslouží k testování aplikace a také k funkčnímu popisu pro zákazníka. Ke znázornění vláken a komunikace zatím neexistuje standard ani v rámci UML. Pro naši práci jsme vybrali dva diagramy, sekvenční diagram (Sequence Diagram) a diagram aktivit (Activity Diagram). Sekvenční diagram Sekvenční diagram umožňuje znázornit několik objektů a posílání zpráv mezi těmito objekty. Respektuje přitom linii času, takže události jsou rozloženy chronologicky seshora dolů. Objektem v případě paralelního programování rozumíme vlákno a zprávy mezi objekty tak představují komunikaci mezi vlákny. Na následujícím obrázku je příklad sekvenčního diagramu, který znázorňuje jeden z klasických problémů synchronizace vláken - problém večeřících filosofů. Konkrétně je na obrázku vidět situace deadlocku, tedy stav, kdy má každý z filosofů (resp. procesů) uchopenou pravou vidličku (resp. alokován jeden ze dvou zdrojů nutných k činnosti procesu) a marně čeká na levou vidličku (tedy na druhý zdroj). Výsledkem je, jak známo, několik mrtvých filosofů kolem stolu plného jídla. Konkrétní stavy objektů jsou znázorněny modrými obdélníčky podél životní čáry objektu. 2

3 Obrázek 1 - Sekvenční diagram: Problém večeřících filosofů Diagram aktivit Diagram aktivit je dalším z diagramů, jež může pomoci při návrhu multi-vláknové aplikace. Nelze sice bez obtíží znázornit několik vláken a pro účely diagramu to ani není nutné - představuje totiž přehledný popis životního cyklu objektu (resp. vlákna) spolu s přechodovými aktivitami a momenty rozhodování. Na obrázku níže je diagram aktivit opět pro problém večeřících filosofů. Tentokrát ale můžeme sledovat stavy, kterými filosof prochází. 3

4 Obrázek 2 - Diagram aktivit: Problém večeřících filosofů 4

5 Další možnost vizualizace vláken Jako další příklad možnosti vizualizace vláken a jejich komunikace zde uvádíme postup použitý ve vývojovém prostředí Jitan Environment navrženém pro vývoj multivláknových aplikací v Javě. Jitan je vyvíjen na univerzitě v Nice projektem OASIS. Způsob v Jitanu použitý se nám zdál vcelku přehledný a použitelný, leč jde pouze o diagramy zachycující jednotlivé stavy vláken a objektů v čase a nelze v něm tedy pomocí jednoho obrázku zachytit způsob komunikace vláken. Pouze jejich reálný vývoj při běhu aplikace. Jitan používá pro znázornění vlákna či objektu elipsu uvnitř s názvem vlákna či objektu. Barva vnitřku elipsy zachycuje stav vlákna (tedy stavy jako runnable, dead, executing apod.). U objektů barva vyjadřuje, je-li objekt zamčen či nikoli. Komunikace mezi vlákny je znázorněna pomocí orientovaných hran, které ještě navíc mohou obsahovat upřesňující informaci. Takováto informace může být například, zda dané vlákno má zámek k nějakému objektu (na hranu je přidáno kolečko s písmenem L jako Lock), zda vlákno čeká až se uvolní zámek objektu držený jiným vláknem (kolečko s písmenem B jako blocked) či zda spí (kolečko s písmenem D jako Dormant). Možné stavy znázorňuje poslední obrázek. Následující obrázek zachycuje ukázku stavu průběhu programu řešícího klasický Problém producenta a konzumenta. V tuto chvíli je vlákno main mrtvé, vlákno Consumer2 spí a čeká až Producer4 zapíše data do objektu CubbyHole1. Vlákno Producer4 provádí synchronizovanou metodu a vlastní tedy zámek objektu CubbyHole1 a vlákno Consumer5 je blokováno tímto zámkem a stejně tak jako vlákno Consumer2 čeká na vydání zámku. Tímto způsobem se dají postihnou i velice složité mezivláknové komunikace. 5

6 Obrázek 3 - Zobrazení problému Producent-Konzument v Jitan Environment Obrázek 4 - Možné stavy vláken v Jitan Environment 6

7 Grafické znázornění vláken Petriho sítěmi Petriho sítě jsou matematické modely jimiž lze popisovat toky a závislosti informací uvnitř modelovaných systémů. Notaci Petriho sítí stanovil v 60. letech C.A.Petri. Za doby jejich existence se rozšířili o další skupiny sítí. Např. barevné Petriho sítě nebo Petriho sítě s časem. Základy Petriho sítí Základními entitami Petriho sítí jsou přechody (transitions) a místa (place). Místa představují podmínky a přechody představují události, které mají vstupní a výstupní podmínky. Přechody a místa jsou navzájem spojena orientovanými hranami (arcs). Každá hrana může spojovat pouze místo s přechodem nebo přechod s místem. Nikdy ne dvě místa nebo dva přechody. Místa mohou obsahovat libovolný počet teček (tokenů) představující aktuální stav Petriho sítě. Rozložení teček v Petriho síti se nazývá označkování (marking). Přechody odpalují tečky ze vstupních míst do výstupních. Přechod lze provést, pokud je ve vstupním místě alespoň jedna tečka. Odpálením přechodu se tečka odebere ze vstupního místa a přesune se do místa výstupního. Obrázek 5 - Příklad notace Petriho sítí 7

8 Základní řídící struktury v Petriho sítích Níže jsou zakreslené základní řídící struktury v Petriho sítích. sekvence větvení cyklus 8

9 Klasické problémy synchronizace producent-konzument problém večeřících filozofů bankéřův problém problém spícího holiče problém kuřáků cigaret problém čtenářů a písařů Pro zobrazení klasických problémů synchronizace jsme zvolili Petriho sítě. Toto vyjádření komunikace a běhu vláken se nám zdálo nejnázornější Producent-konzument v Petriho sítích spolu s pseudokódem. Tímto pseudo kódem je zapsán problém producent konzument a dále je znázorněn Petriho sítěmi. semaphore full = 0 semaphore empty = BUFFER_SIZE procedure producer() { while (true) { item = produceitem() down(holes) putitemintobuffer(item) up(data) } } procedure consumer() { while (true) { down(data) item = removeitemfrombuffer() up(holes) consumeitem(item) } } V diagramu Petriho sítí jsou po stranách znázorněna vlákna producent a konzument. Mezi těmito vlákny jsou dvě místa - semafory, které určují zda má vlákno čekat nebo nebo pokračovat dál v činnosti. Šipka od semaforu k místu znamená stav wait, šipka od místa k semaforu značí notify. Postup: 9

10 1. Producent čeká až ho semafor pustí k vytvoření dalších prvků. Stav na obrázku odpovídá situaci, kdy dává semafor volno a producent může vytvářet další data. 2. Producent vytvoří data a uloží je do bufferu. 3. Upozorní spotřebitele, že jsou data k dispozici. Tečka se zobrazí v místě Data 4. Semafor pustí čekajícího konzumenta dál, konzument data zpracuje a upozorní producenta, že je potřeba vytvořit data další. Tečka se přesune do místa Holes Obrázek 6 - Problém Producent-Konzument v Petriho sítích 10

11 Problém spícího holiče v Petriho sítích Obrázek 7 - Problém spícího holiče v Petriho sítích Inicializace Semaphore Customers = 0 Semaphore Barber = 0 Semaphore accessseats (mutex) = 1 int NumberOfFreeSeats = N Holič (Thread/Process): while(true) { P(Customers P(accessSeats) NumberOfFreeSeats++ V(Barber) V(accessSeats) } 11

12 Zákazník P(accessSeats) if ( NumberOfFreeSeats > 0 ) { NumberOfFreeSeats V(Customers) V(accessSeats) P(Barber) } else { V(accessSeats) } Problém večeřících filosofů Obrázek 8 - Problém večeřících filosofů v Petriho sítích 12

13 Bankéřův problém Obrázek 9 - Bankéřův problém v Petriho sítích Problém kuřáků cigaret Tento problém má na analogii kuřáků cigaret osvětlit synchronizační problém přístupu více vláken ke stejnému objektu. Analogie je následující. Máme stůl a u stolu sedí tři těžcí kuřáci a jeden rozhodčí (v anglických materiálech označován jako agent ). K přípravě cigarety je zapotřebí vlastnit tabák, papírky a zápalky. Každý ze tří kuřáků pak vlastní právě jednu z 13

14 těchto surovin v neomezeném množství. Rozhodčí vlastní všechny tři suroviny v neomezeném množství (v některých zdrojích se uvádí, že agent nevlastní žádné suroviny, ale pouze vybírá, kteří dva kuřáci mají dát svou surovinu třetímu, aby si tento mohl cigaretu připravit, na samotném problému to však nic nemění). Proces probíhá tak, že rozhodčí náhodně (nedeterministicky) vybere dvě suroviny, položí je na stůl a upozorní kuřáka s třetí surovinou, že si je může vzít. Ten, pokud zrovna nekouří, suroviny vezme, uvědomí o tom rozhodčího, připraví si cigaretu a nějaký čas kouří. Mezitím již rozhodčí vybral další dvě suroviny a upozornil dalšího kuřáka. Upozornil-li opět toho samého kuřáka musí čekat, dokud si tento suroviny nevezme. Do té doby se tedy nic neděje. Tak tento proces pokračuje stále dokola. V tomto případě představuje sdílenou datovou oblast stůl. Rozhodčí na něj nesmí nic položit, pakliže na něm stále je nesebraná surovina a kuřák musí brát ze stolu pouze tehdy, leží-li na něm správná surovina. Tedy analogie problému zápisu a čtení z a do jednoho místa více vlákny. V tomto případě potřebujeme ošetřit výše zmíněné dva problémy. Oběma problémům se můžeme vyhnout použitím binárního semaforu. Binární semafor je takový semafor, který zná pouze dva stavy 0 a 1 či zamčeno a odemčeno. Můžeme jej v tomto případě použít, protože je-li něco na stole (např. data uložena do sdíleného objektu) už na něj nesmí být položena ani jedna další surovina. Semafor je objekt se dvěmi metodami wait() a signal(), datovým atributem counter typu Integer s počáteční nezápornou hodnotou a polem vláken queue[] pro uchování fronty čekajících vláken na semaforu. Zavolá-li nějaké vlákno metodu semafor.wait(), pak je-li counter větší než 0, pak vlákno pokračuje v provádění kódu, je-li však counetr roven 0, vlákno se uspí a semafor si jej uloží do fronty čekajících vláken. Zavolá-li nějaké vlákno metodu semafor.signal(), pak je-li fronta neprázdná, vybere náhodně nějaké vlákno ke zpracování, je-li však fronta prázdná zvýší hodnotu counteru o 1 a vlákno pokračuje v běhu. První problém tedy řeší jeden semafor pro agenta, který mu oznámí, je-li či není-li na stole surovina. Druhý problém v našem případě řeší semafory tři (počet semaforů odpovídá počtu kuřáků). Každý kuřák podle toho co potřebuje čeká na příslušném semaforu, který dostane signál od rozhodčího, čímž rozhodčí kuřákovi signalizuje, že na stole je jeho vytoužená surovina. Takovýto problém může při vícevláknovém programování nastat, když potřebujeme předávat data mezi více vlákny za pomocí jednoho paměťového místa a ještě k tomu potřebujeme zajistit, aby vlákna která čtou četla pouze v okamžiku, kdy zapsaná data jsou určena právě jim. Následující schéma Petriho sítě zobrazuje Problém kuřáků cigaret. Levá strana schématu znázorňuje průběh cyklu uvnitř vlákna Agent a pravá strana znázorňuje kuřáka. Na začátku čeká agent na ingredience (či je pouze vybírá, budeme-li uvažovat, že agent má své suroviny), což znázorňuje stavové kolečko, které je na začátku běhu programu s jedním tokenem, tedy agent vybírá ingredience (či data pro zápis). Má-li je připraveny, položí 14

15 je na stůl a upozorní kuřáka, který je potřebuje. Tedy zapíše data a zavolá na příslušném semaforu metodu signal(), což znázorňuje přechod na stav čekám na prázdný stůl a na semafor pro příslušného kuřáka. Pak se přesune do stavu, kdy čeká až bude stůl prázdný. Na to reaguje kuřák, který byl informován tím, že nekoří-li zrovna, sebere ingredience ze stolu a přes tento přechod se dostane do stavu stůl je prázdný. Na to reaguje přechodem na semafor agenta, čímž ho informuje, že stůl je prázdný a sám se odebere od stolu a jde kouřit. Agent ihned vybírá další ingredience a vrací se na začátek. Kuřák po dokouření opět usedá za stůl a pokračuje od začátku. Obrázek 10 - Problém kuřáků cigaret v Petriho sítích Problém čtenářů a písařů Tento problém je velice podobného ražení jako problém předešlý, až na drobné rozdíly. V tomto problému jde o to, že máme skupinu čtenářů a skupinu písařů, kteří používají stejnou plochu na své čtení a psaní. Aby jejich činnost probíhala bez chyb, je nutné zajistit, aby více písařů nezapisovalo v jeden okamžik a aby čtenáři nečetli ve stejný okamžik, kdy dochází k přepisu předchozího záznamu, jelikož by si s největší pravděpodobností přečetli i kus zápisu z minula. S tímto zadáním se pojí jisté problémy, které musíme vyřešit. Máme-li zajistit, aby písař nezapisoval, když nějaký čtenář čte, nemůžeme sdílený objekt jednoduše uzamknout, jelikož by pak docházelo k podoptimálnímu využití času čtenářských vláken, kterým by nic nemělo bránit, aby jich četlo více najednou. Dále, může-li tedy více čtenářů číst najednou, musíme zařídit, aby nedocházelo k tomu, že noví a noví čtenáři budou žádat o čtení a písaři se nikdy nedostanou na řadu. Je tedy třeba zajistit, aby písař čekající ve frontě na semafor v ní čekal 15

16 jen po dobu nezbytně nutnou. Tyto obtíže lze vyřešit použitím jednoho společného semaforu. Tentokrát však již ne binárního, neboť potřebujeme zajistit, aby čtenáři mohli číst současně, kdežto písař musí být to jediné vlákno, které má v tu dobu přístup ke sdíleným datům. Tento postu znázorňuje další schéma v Petriho sítích. Levá část schématu znázorňuje čtenáře a pravá písaře. Na začátku je semafor otevřen jak psaní tak čtení, dle toho kdo se první přihlásí. Counter semaforu je na začátku nastaven na 10, ale pouze v našem ilustračním příkladě. V reálu se tato hodnota nastaví dle toho jak moc často se mezi čtenáře má vložit písař. Čím je tato hodnota menší, tím je pravděpodobnější, že časové úseky mezi jednotlivými zápisy budou kratší, protože tímto číslem se omezí maximální počet souběžných čtenářů, čímž se snižuje doba po kterou čeká písař ve frontě. Ze schématu plyne, že zavolá-li písařské vlákno metodu semafor.wait(), pak se counter sníží v tomto případě o rovných deset, čímž se zajistí že si do doby, než nedopíše žádné vlákno ani nezapíše ani nezačte. Zavolá-li metodu wait() čtenář, pak se sníží counter o jeden (v Petriho síti se odebere jeden token z kolečka znázorňujícího semafor), čímž se zajistí, aby nemohlo v tuto chvíli dojít k zápisu, ale můžou se stále hlásit další čtenářská vlákna o přístup k datům až do doby, kdy se counter sníží na 0. Pak může začít zápis nebo opět čtení. Obrázek 11 - Problém čtenářů a písařů v Petrho sítích 16

17 Zdroje

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

Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication) ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace

Více

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.

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. 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. Dvě sémantiky vzhledem k hodnotám čítače: 1. čítač >= 0 Operace DOWN zkontroluje

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 16 Semafory Await synchronizace používající await běží na železe = využívají

Více

Operační systémy. Přednáška 5: Komunikace mezi procesy

Operační systémy. Přednáška 5: Komunikace mezi procesy Operační systémy Přednáška 5: Komunikace mezi procesy 1 Semafory Datový typ semafor obsahuje čítač a frontu čekajících procesů. Nabízí tři základní operace: Init(): Čítač se nastaví na zadané číslo (většinou

Více

Principy operačních systémů. Lekce 6: Synchronizace procesů

Principy operačních systémů. Lekce 6: Synchronizace procesů Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 17 Monitor Semafor vedle aktivní (čekací smyčka, busy-wait) i pasivní implementace

Více

PARA Filozofové, kuřáci a holič

PARA Filozofové, kuřáci a holič PARA Filozofové, kuřáci a holič Lenka Carr Motyčková 22. duben 2014 PDS Semafory 1 1. Večeřící filozofové (Dijkstra 1968) Problém: N (typicky 5) flozofů sedí u kulatého stolu, přemýšlí nebo jedí pomocí

Více

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

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové Operační systémy Tomáš Hudec 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu, 6.1.1 Obědvající filosofové, 6.1.2 Producenti a konzumenti, 6.1.3 Problém spících holičů, 6.1.4 Problém pisatelů

Více

Principy počítačů a operačních systémů

Principy počítačů a operačních systémů Principy počítačů a operačních systémů Operační systémy Synchronizace procesů, zablokování Zimní semestr 2011/2012 Přístup ke sdíleným datům Terminologie: souběžné vs. paralelní zpracování Paralelní provádění

Více

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end; Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru

Více

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů Číslo otázky : 16. Otázka : Funkční a dynamická analýza informačního systému. Obsah : 1. Úvod 2. Funkční

Více

Modelování procesů (2) 23.3.2009 Procesní řízení 1

Modelování procesů (2) 23.3.2009 Procesní řízení 1 Modelování procesů (2) 23.3.2009 Procesní řízení 1 Seznam notací Síťové diagramy Notace WfMC Notace Workflow Together Editor Aktivity diagram (UML) FirsStep Designer Procesní mapa Select Prespective (procesní

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Business Process Modeling Notation

Business Process Modeling Notation Business Process Modeling Notation Stephen A. White, IBM Corporation Procesní řízení 1 Co to je BPMN? Standard Business Process Modeling Notation (BPMN) byl vyvinutý skupinou Business Process Management

Více

Procesy a vlákna - synchronizace

Procesy a vlákna - synchronizace ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody

Více

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová Objektově orientované technologie Business proces Diagram aktivit Daniela Szturcová Osnova Bysnys proces pojmy metody, specifikace pomocí diagramů Modelování pomocí aktivitního diagramu prvky diagramu

Více

Základní informace. Modelování. Notace

Základní informace. Modelování. Notace Základní informace BPMS = business process management systems - systémy pro modelování a optimalizace business procesů uvnitř organizace BPMN = business process modeling notation - součást BPMS, notace

Více

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch ZOS 9. cvičení, ukázky kódu Pavel Bžoch Obsah Komunikace mezi procesy Atomické operace TSL a CAS Zámky Semafory Semafory vypsání věty Monitor Bariéra pomocí monitoru Implementace semaforu pomocí monitoru

Více

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová Osnova Modelování interakcí mezi objekty modelování zpráv (mapování zpráv na operace), vytváření a

Více

Popis softwaru pro sledování pohybu UZ sondy

Popis softwaru pro sledování pohybu UZ sondy Popis softwaru pro sledování pohybu UZ sondy Cílem programu je umožnit lékaři, provádějícímu ultrazvukové vyšetření pacientky, zaznamenat a vyhodnotit prostorovou trajektorii sondy. Zaznamenaná trajektorie

Více

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

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21 Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní

Více

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Analýza a modelování dat. Helena Palovská

Analýza a modelování dat. Helena Palovská Analýza a modelování dat Helena Palovská Analýza a modelování pro SW projekt Strukturovaný přístup Dynamická část (procesy, aktivity, funkce) Statická část (data) Objektově orientovaný přístup use case

Více

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem

Více

Popis softwaru pro sledování pohybu UZ sondy

Popis softwaru pro sledování pohybu UZ sondy Popis softwaru pro sledování pohybu UZ sondy Cílem programu je umožnit lékaři, provádějícímu ultrazvukové vyšetření pacientky, zaznamenat a vyhodnotit prostorovou trajektorii sondy. Zaznamenaná trajektorie

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Diagram sekvencí (sequence diagram)

Diagram sekvencí (sequence diagram) Diagramy sekvencí 1 Diagram sekvencí (sequence diagram) Zobrazuje, jak objekty spolupracují Na rozdíl od stavového diagramu zachycují komunikaci více objektů Popisuje zprávy mezi objekty jaké zprávy, komu

Více

AUTOMATIZACE Úvod do programování PLC

AUTOMATIZACE Úvod do programování PLC AUTOMATIZACE Úvod do programování PLC Rostislav Palowski Střední škola, Havířov-Šumbark, Sýkorova 1/613, příspěvková organizace Tento výukový materiál byl zpracován v rámci akce EU peníze středním školám

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdálenost uzlů v neorientovaném grafu Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující

Více

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007 UML úvod Kapitola má seznámit se základy modelovacího jazyka UML. Klíčové pojmy: UML, CASE nástroje, procesní modelování, případy užití, role, diagram tříd, diagram objektů, sekvenční diagramy, digram

Více

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

Více

Operační systémy. Přednáška 4: Komunikace mezi procesy

Operační systémy. Přednáška 4: Komunikace mezi procesy Operační systémy Přednáška 4: Komunikace mezi procesy 1 Časově závislé chyby Dva nebo několik procesů používá (čte/zapisuje) společné sdílené prostředky (např. sdílená paměť, sdílení proměnné, sdílené

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken Jazyk UML - přehled Unified Modeling Language jazyk pro popis objektově orientované analýzy a návrhu aplikací slouží k vzájemné komunikaci mezi zadavatelem a návrhářem systému má několik částí, není nutné

Více

Synchronizace paralelních procesů

Synchronizace paralelních procesů SU Media: Student Středník ČWUT AVC SH Akropolis ikariéra Synchronizace paralelních procesů z ČWUT Obsah 1 Časově závislé chyby, kritické sekce, vzájemné vyloučení 2 Metody vzájemného vyloučení

Více

Pavel Procházka. 3. prosince 2014

Pavel Procházka. 3. prosince 2014 Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

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

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce. Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3

Více

04. Mutexy, monitory. ZOS 2006, L. Pešička

04. Mutexy, monitory. ZOS 2006, L. Pešička 04. Mutexy, monitory ZOS 2006, L. Pešička Administrativa změna termínů zápočtových testů 7.11.2006 (út), EP130, 18:30 12.12.2006 (út), EP130, 18:30 Semafory Ošetření kritické sekce ukázka více nezávislých

Více

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux. Jan Smolík UML UML Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux Zdroj: Wikipedia Unified modelling language Neproprietární

Více

Management procesu I Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více

Více

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

Přednáška 4. Klasické synchronizační úlohy. Implementace procesů, vláken.

Přednáška 4. Klasické synchronizační úlohy. Implementace procesů, vláken. Přednáška 4 Klasické synchronizační úlohy. Implementace procesů, vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Modelování procesů (1) Procesní řízení 1

Modelování procesů (1) Procesní řízení 1 Modelování procesů (1) Procesní řízení 1 Vizualizace procesů Znázornění procesu ve formě diagramatického modelu, vede k jeho zpřehlednění a snadnějšímu pochopení. Označuje se jako: procesní mapa, procesní

Více

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr. Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:

Více

Simulační software Witness. Ing. Michal Dorda, Ph.D.

Simulační software Witness. Ing. Michal Dorda, Ph.D. Simulační software Witness Ing. Michal Dorda, Ph.D. 1 3 2 6 4 5 Základní prvky simulačního modelu Součást ( Part ) záložka Basic součásti představují mobilní prvky, které procházejí simulačním modelem

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Jak funguje element deep history v UML

Jak funguje element deep history v UML Jak funguje element deep history v UML autor RNDr. Ilja Kraval, http://www.objects.cz březen 2007 firma Object Consulting s.r.o. Úvod Již několikrát jsem v internetových diskusích a při školeních narazil

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace Téma 2.2 Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace Obecný postup: Každá tabulka databáze by měla obsahovat pole (případně sadu polí), které jednoznačně identifikuje každý

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Přidělování zdrojů (prostředků)

Přidělování zdrojů (prostředků) Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné

Více

Datové typy a struktury

Datové typy a struktury atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

1. Téma 03 - Rozhodování

1. Téma 03 - Rozhodování 1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

Zadání soutěžních úloh

Zadání soutěžních úloh Zadání soutěžních úloh Kategorie žáci Soutěž v programování 25. ročník Krajské kolo 2010/2011 15. až 16. dubna 2011 Úlohy můžete řešit v libovolném pořadí a samozřejmě je nemusíte vyřešit všechny. Za každou

Více

Reálná čísla. Sjednocením množiny racionálních a iracionálních čísel vzniká množina

Reálná čísla. Sjednocením množiny racionálních a iracionálních čísel vzniká množina Reálná čísla Iracionální číslo je číslo vyjádřené ve tvaru nekonečného desetinného rozvoje, ve kterém se nevyskytuje žádná perioda. Při počítání je potřeba iracionální číslo vyjádřit zaokrouhlené na určitý

Více

Databázové systémy. Vztahy a relace. 3.přednáška

Databázové systémy. Vztahy a relace. 3.přednáška Databázové systémy Vztahy a relace 3.přednáška Terminologie - vztahy Účastníci vztahu Stupeň vztahu počet relací účastnících se na vztahu Unární Binární Ternární Terminologie - vztahy Kardinalita vztahu

Více

Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362

Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Stránka 1 z 21 Obsah 1. Co je systém HELPdesk?... 2 2. Možnosti využití systému HELPdesk:... 2 3.

Více

Vlákna. První jednoduchý program s vlákny:

Vlákna. První jednoduchý program s vlákny: Vlákna Současné operační systémy jsou víceúlohové. Z uživatelského pohledu se zdá, že běží několik úloh zároveň. Je tedy možné napsat i jeden program tak, aby v něm běželo vedle sebe několik relativně

Více

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika 2 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk UML, základní modely, diagramy aktivit, diagramy entit.

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace

2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace Principy počítačů a operačních systémů Operační systém procesy a vlákna plánování interakce a synchronizace Základní pojmy proces vykonávaný program vlákno (thread) oddělení místa vykonávání instrukcí

Více

Nemocnice. Prvotní analýza a plán projektu

Nemocnice. Prvotní analýza a plán projektu Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat

Více

Paralelní programování

Paralelní programování Paralelní programování cvičení Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 13 Cvičení 1 Jazyk C POSIX Threads (UNIX) hlavičkový soubor pthread.h, knihovna

Více

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

Architektura Pentia úvod

Architektura Pentia úvod Architektura Pentia úvod 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné jak

Více

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

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola a Střední odborné učiliště, Dubno

VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola a Střední odborné učiliště, Dubno Číslo projektu Číslo materiálu Název školy Autor Tematická oblast Ročník CZ.1.07/1.5.00/34.0581 VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola

Více

2D-skicování Tato část poskytuje shrnutí 2D-skicování, které je nezbytné ke tvorbě modelů Solid Works.

2D-skicování Tato část poskytuje shrnutí 2D-skicování, které je nezbytné ke tvorbě modelů Solid Works. 2D-skicování Tato část poskytuje shrnutí 2D-skicování, které je nezbytné ke tvorbě modelů Solid Works. Skici v SolidWorks slouží pro všechny tvorbu načrtnutých prvků včetně následujících: Vysunutí Tažení

Více

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda Modelování informačních systémů s využitím jazyka UML Jaroslav Šmarda Využití jazyka UML při vývoji IS na příkladu jednoduché aplikace pro evidenci knih Model IS Modelování případů užití Diagram případů

Více

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština) Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Vzájemné vyloučení procesů

Vzájemné vyloučení procesů PDV 10 2017/2018 Vzájemné vyloučení procesů Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad Bankovní server v cloudu. Dva zákaznici současně vloží 10

Více

Sekvenční logické obvody

Sekvenční logické obvody Sekvenční logické obvody Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou Sekvenční obvody - paměťové členy, klopné obvody flip-flop Asynchronní klopné obvody

Více

Databázové modelování. Analýza Návrh konceptuálního schématu

Databázové modelování. Analýza Návrh konceptuálního schématu Databázové modelování Analýza Návrh konceptuálního schématu 1 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2 Proč modelovat/analyzovat? Standardizované

Více

Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování

Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování Tomáš Foltýnek foltynek@pef.mendelu.cz Paralelní programování strana 2 Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku

Více

Architektura procesorů PC shrnutí pojmů

Architektura procesorů PC shrnutí pojmů Architektura procesorů PC shrnutí pojmů 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné

Více

Hodnocení soutěžních úloh

Hodnocení soutěžních úloh Terč Koeficient 1 soutěžních úloh Kategorie žáci Soutěž v programování 25. ročník Krajské kolo 2010/2011 15. až 16. dubna 2011 Napište program, který zobrazí střelecký terč dle vzorového obrázku. Jak má

Více

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

Algoritmizace- úvod. Ing. Tomáš Otáhal Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století

Více

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

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

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Moje-Projekty.cz Dokumentace k aplikaci

Moje-Projekty.cz Dokumentace k aplikaci Moje-Projekty.cz Dokumentace k aplikaci 12. 3. 2015 Verze: 1.0 Obsah 1. Obecné informace... 3 2. Přihlášení do systému... 4 3. Odhlašování ze systému... 4 4. Jak si změnit heslo... 4 5. Nastavení projektů...

Více

Kurz LSL skriptování. Shiny Iceberg 2009

Kurz LSL skriptování. Shiny Iceberg 2009 Kurz LSL skriptování Shiny Iceberg 2009 2 2 Kurz LSL skriptování Shiny Iceberg v Second Life od roku 2006 shiny.iceberg@virtualmagazine.cz Aktuální projekty virtualmagazine.cz Urbanica, Shinyland Bwindi

Více

2. lekce Algoritmus, cyklus Miroslav Jílek

2. lekce Algoritmus, cyklus Miroslav Jílek 2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává

Více

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

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více