13AMP 8. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled RT jazyky RT jazyky Modula Modula Modula II Modula II.

Slides:



Advertisements
Podobné prezentace
13AMP 11. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Co je to RT systém Co je to RT systém Velké RT systémy Velké RT systémy Klasické
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vývoj aplikací s využitím JavaFX
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Funkce Připomeňme si program pro výpočet faktoriálu:
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Algoritmizace od algoritmu k Pascalu.
10. Dynamické datové struktury
Fronta - a)Implementace s využitím statických struktur (pole) b)Implementace s využitím dynamických struktur (spojového seznamu) odebírá se ze začátku.
Pole, ukazatele a odkazy
Programování v Pascalu Přednáška 10 RNDr. Hana Havelková.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
● SWIG - Simplified Wrapper and Interface Generator ● + google a diskusní fóra ● nástroj zjednodušující (a sjednocující)
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Programování v Pascalu Přednáška 7
Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy.
C++0x stručný náhled na nadcházející revizi standardu programovacího jazyka C++ (ISO/IEC 14882) Jan Ringoš.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
ČVUT Praha, Fakulta elektrotechnická Diplomová práce Informační systém házenkářského turnaje Petr Plodík.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Databázové systémy II Přednáška č. 4, 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
Algoritmy a programovací techniky
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Počítače a programování 1
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
VYTVOŘENÍ TŘÍDY KOMPLEXNÍHO ČÍSLA Vytvořte třídu proměnné, která bude prezentovat komplexní číslo. Zadávat se budou dvě složky, reálná a imaginární. Dále.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
PROJEKT : SCADA systémy na mobilních zařízeních AUTOŘI : Ing. Ondřej Krejcar Ing. Stanislav Slíva.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Šesté cvičení Výjimky Balíky.
Juliovy množiny 1.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
13AMP 10. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Co je to softwarové inženýrství Co je to softwarové inženýrství Metoda a metodologie.
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
4. Typ pole 4.1 Jednorozměrná pole
Architektury a techniky DS Cvičení č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Počítačová grafika.
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Počítače a programování 2
Databázové systémy a SQL
Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina
Databázové systémy a SQL
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
C# přehled vlastností.
Transkript prezentace:

13AMP 8. přednáška Ing. Martin Molhanec, CSc.

Co jsme se naučili naposled RT jazyky RT jazyky Modula Modula Modula II Modula II

ADA (1980) Tento jazyk by vyvinut na žádost USA min. obrany Tento jazyk by vyvinut na žádost USA min. obrany Je určen pro velice rozsáhlé projekty, bezpečnost, přenositelnost Je určen pro velice rozsáhlé projekty, bezpečnost, přenositelnost Je velice rozsáhlý Je velice rozsáhlý Modularita, generické moduly Modularita, generické moduly Podpora procesů a synchronizace Podpora procesů a synchronizace

ADA (1980) 1. Etapa: 1976, projekt TINMAN, východisko: Pascal, PL/1, Algol68 2. Etapa: 1977, projekt IRONMAN, 4 firmy →yellow, blue, (red, green→vítězové, Pascal zdroj) 3. Etapa: 1978, projekt STEELMAN, 2 firmy→red a green, vítěz green→ADA 4. Etapa: 1980, testování 1983 – ANSI standard 1987 – ISO standard 1995 – ADA95, přidáno klasické OOP

moduly -- specifikační část package ZASOBNIK is procedure VLOZ(X: in POLOZKA); procedure ODEBER(X: out POLOZKA); end ZASOBNIK; -- další deklarace -- implementační část package body ZASOBNIK is -- globální deklarace procedure VLOZ(X: in POLOZKA) is begin -- tělo procedury end VLOZ; -- další procedury end ZASOBNIK;

procesy -- specifikace task SERVER is entry Request(X: in integer); end SERVER; -- implementace task body SERVER is -- jako u normálního package Použití: Procedure P is A: SERVER; -- další deklarace begin -- tělo procedury end; Zde se spustí všechny deklarované tasky

randevous (obecně) PROCES A entryname(arguments); PROCES B accept entryname(arguments) do -- tělo acceptu end entyname;

randevous PROCES A POSLI(25); PROCES B accept POSLI(X: in integer) do Y := Y +X; end POSLI;

semafor v ADA task CRT is entry PIS; end CRT; task body CRT is beginloop accept PIS do -- zde píši na obrazovku end; end loop; end CRT; Použití: CRT.PIS; specifikace implementace

producent - konsument producent task BUFFER.ZAPIS(DATA); konsument task BUFFER.CTI(DATA);

task BUFFER is entry ZAPIS(X: in DATA); entry CTI(X: out DATA); end BUFFER; task body BUFFER is -- deklarace bufferu begin loopselect when NENI_PLNY  accept ZAPIS(DATA: in TYPE) do -- zapiš do bufferu end ZAPIS; or when NENI_PRAZDNY  accept CTI(DATA: out TYPE) do -- čti z bufferu end CTI; end select; end loop; end BUFFER; specifikace implementace

JAVA (firma SUN, 1995) Jazyk původně určený pro vestavěné systémy. Jazyk původně určený pro vestavěné systémy. Později určen pro Internet, jako jazyk pro vytváření tzv. appletů. Později určen pro Internet, jako jazyk pro vytváření tzv. appletů. Je podobný jazyku C++. Je podobný jazyku C++. Je multiplatformní, překlad do byte code, běh pomocí interpretace prostřednictvím Java Virtual Machine (JVM) Je multiplatformní, překlad do byte code, běh pomocí interpretace prostřednictvím Java Virtual Machine (JVM)

JAVA (firma SUN, 1995) Modularita: IMPORT Modularita: IMPORT Objektovost: pouze třídy a objekty! Objektovost: pouze třídy a objekty! Multitask: vlákna, výjimky, monitory Multitask: vlákna, výjimky, monitory

Vlákna, 1. způsob public class MYCLASS extends Thread { public void run(){ for(int i=0;i<100;i++){ System.out.println(˝Hello”); }}} 1)Vlákno musí být potomkem třídy Thread. 2)V našem vlákně musí být povinně definována metoda run, která obsahuje vlastní kód vlákna. 3)Vlákno vytvoříme a spustíme takto: MYCLASS MT = new MYCLASS(); MT.start();

Vlákna, 2. způsob public class MYCLASS extends XXX implements Runnable { public void run(){ for(int i=0;i<100;i++){ System.out.println(˝Hello”); }}} 1)Vlákno musí implementovat interface Runnable. 2)V našem vlákně musí být povinně definována metoda run, která obsahuje vlastní kód vlákna 3)Vlákno vytvoříme a spustíme takto: Runnable MT = new MYCLASS(); Thread TH = new Thread(MT); TH.start();

Metody pro práci s multitaskem MT.sleep(long) – čeká určený počet milisekund MT.sleep(long) – čeká určený počet milisekund MT.start() – spustí vlákno MT.start() – spustí vlákno MT.stop() – zastaví vlákno MT.stop() – zastaví vlákno MT.isActive() – zjistí jestli je vlákno aktivní MT.isActive() – zjistí jestli je vlákno aktivní MT.isAlive() – zjístí zdali vlákno žije MT.isAlive() – zjístí zdali vlákno žije MT.join() – čeká na ukončení vlákna MT.join() – čeká na ukončení vlákna MT.join(long) – join s timeoutem MT.join(long) – join s timeoutem MT.setName(string) – pojmenuje vlákno MT.setName(string) – pojmenuje vlákno MT.getName() – zjistí jméno vlákna MT.getName() – zjistí jméno vlákna MT je nějaké konkrétní vlákno!

Metody pro práci s multitaskem Thread.currentThread() – zjistí, které vlákno právě běží Thread.currentThread() – zjistí, které vlákno právě běží Thread.enumerate(pole) – vrátí pole všech vláken Thread.enumerate(pole) – vrátí pole všech vláken Thread.activeCount() – vrátí počet právě běžících vláken Thread.activeCount() – vrátí počet právě běžících vláken Thread je název třídy!

Synchronizace 1) způsob – synchronized methods public class UCET { private float BANKA, POKLADNA; public synchronized void DOBANKY(float X){ POKLADNA -= X; BANKA +=X;} public synchronized void DOPOKLADNY(float X){ BANKA -= X; POKLADNA +=X;} } Použití: UCET mujucet = new UCET(); mujucet.DOBANKY(25.4); Vytváří se semafor (LOCK) na objekt mujucet třídy UCET. Tento semafor platí pro všechny synchronized metody!

Synchronizace 2) způsob – synchronized block synchronized (OBJEKT){ … } Použití: synchronized (mujucet) { S = mujucet.BANKA + mujucet.POKLADNA; } Vytváří se semafor (LOCK) pro objekt mujucet třídy UCET. Tento semafor se využívá pro přístup k objektu mujucet v tomto programovém bloku kódu. Výhoda je v menším rozsahu platnosti.

Další užitečné metody self.wait() – uvolní LOCK a čeká na notify(). self.wait() – uvolní LOCK a čeká na notify(). self.notify() – uvolní vlákno, které má aktivní wait(). self.notify() – uvolní vlákno, které má aktivní wait(). self.notifyAll() – uvolní všechna vlákna, která čekají ve wait(). self.notifyAll() – uvolní všechna vlákna, která čekají ve wait(). Metody nutné pro vytvoření semaforu v Javě. Hned si vysvětlíme. Používají se pouze v bloku synchronized!

Semafor v Jávě Public class SEMAFOR { private int SEM = 0; public synchronized void WAIT(){ while (SEM>0) wait(); SEM = 1; } public synchronized void SIGNAL(){ SEM = 0; notify(); }}

Semafor v Jávě POUŽITÍ SEMAFOR mujsem = new SEMAFOR(); // vytvoření semaforu … mujsem.WAIT(); … // kritická sekce mujsem.SIGNAL(); …