Téma 8 Od programu k procesu
|
|
- Helena Julie Králová
- před 6 lety
- Počet zobrazení:
Transkript
1 Téma 8 Od programu k procesu Obsah 1. Interpretace a kompilace 2. Od zdrojového textu k procesu 3. Překladač a jeho činnost 4. Generování kódu 5. Výrazy, infixová a postfixová notace, vyhodnocení 6. Binární objektové moduly a jejich obsah 7. Sestavování 8. Zavádění 9. Co se nám sem nevešlo Příprava a zpracování programů Při psaníprogramu je prvním krokem (pomineme-li analýzu zadání a volbu algoritmu) vytvořenízdrojového textu ve zvoleném programovacím jazyku zpravidla vytváříme textovým editorem a ukládáme do souboru s příponou indikující programovací jazyk zdroj.cpro jazyk C prog.java pro jazyk Java text.ccpro C++ Každý takový soubor obsahuje úsek programu označovaný dále jako modul V závislosti na typu dalšího zpracování pak tyto moduly podléhají různým sekvencím akcí, na jejichž konci je jeden nebo několik výpočetních procesů Rozlišujeme dva základní typy zpracování: Interpretace Kompilace (překlad) existuje i řada smíšených přístupů Od programu k procesu 1 Od programu k procesu 2 Interpretace programů Interpretem rozumíme program, který provádípříkazy napsané v nějakém programovacím jazyku vykonává přímo zdrojový kód mnohé skriptovací jazyky a nástroje (např. bash), historické verze BASIC překládázdrojový kód do efektivnější vnitřní reprezentace a tu pak okamžitě vykonává jazyky typu Perl, Python, MATLAB apod. vykonávápředkompilovaný a uložený kód, vytvořený překladačem, který je nadstavbou interpretačního systému Java (překládá se do tzv. byte kódu interpretovaného JVM) Výhody: rychlý vývoj bez potřeby explicitního překladu a dalších akcích nezávislost na cílovém stroji Nevýhody: nízká efektivita běhu programu interpret stále analyzuje zdrojový text(např. v cyklu) nebo se simuluje jiný stroj Důležitý poznatek: binární strojový kód je vždy interpretován hardwarem Od programu k procesu 3 Zdrojový kód Překladač Object modul examle.c Od zdrojového textu k procesu int initialized_variable = 1000; int zero_init_variable; static int* pointer_to_int; int global_function(int argument) { int local_variable= 1; return argument + local_variable + initialized_variable + zero_init_variable; } Překlad compile time example.o example.o: ELF 32-bit LSB, relocatable, Intel 80386, not stripped T global_function D initialized_variable b pointer_to_int C zero_init_variable Statické sestavení Systémové knihovny Sestavení během zavádění Dynamicky připojované knihovny Další object moduly Sestavovací program (linker) Zaveditelný program Zavaděč (loader) Binární kód programu v paměti Sestavování link time my_prog[.exe] Obsahuje virtuální (logické) adresy sekcí Zavádění load time Proces Logické adresy navázány na adresy fyzické Doba běhu run time Od programu k procesu 4
2 Od zdrojového textu k procesu (jiný pohled) Překladač (Compiler) Úkoly překladače (kompilátoru) kontrolovat správnost zdrojového kódu porozumět zdrojovému textu programu a převést ho do vhodného meziproduktu, který lze dále zpracovávat bez jednoznačné závislosti na zdrojovém jazyku základní výstup kompilátoru bude záviset na jeho typu tzv. nativní překladač generuje kód stroje, na kterém sám pracuje křížový překladač(cross-compiler) vytváříkód pro jinou hardwarovou platformu (např. na PC vyvíjíme program pro vestavěný mikropočítačs procesorem úplně jiné architektury, než má naše PC) mnohdy umí překladač generovat i ekvivalentní program v jazyku symbolických adres (assembler) cílového stroje častou funkcí překladače je i optimalizace kódu např. dvě po sobě jdoucí čtení téže paměťové lokace jsou zbytečné jde často o velmi pokročilétechniky často závisléna cílovéarchitektuře, na zdrojovém jazyku apod. optimalizace je časověnáročná, a proto lze úrovněoptimalizace volit jako parametr překladu při vývoji algoritmu chceme rychlý překlad, při konečném překladu provozní verze programu jde o jeho rychlost a efektivitu Od programu k procesu 5 Od programu k procesu 6 Struktura překladače Detailní struktura překladače závisí na konkrétním zdrojovém jazyku Mezikód většinou reprezentuje tzv. syntaktický strompřekládaného programu Optimalizaci lze většinou vypnout Generovaný kód závisí na dalším způsobu zpracování systémem některé překladače generují výhradněassembler a ten je pak převáděn do cílové binární formy v samostatném vývojovém kroku Rámcová činnost překladače Překlad programu probíhá v řadě fází(kroků) Lexikální analýza převádí textové řetězce na série tokenů(též lexemů), tedy elementů detekovaného typu např. příkaz: sedm = generuje tokeny [sedm, IDENT], [=, ASSIGN_OP], [3, NUM], [+, ADD_OP], [4, NUM] Již v tomto kroku lze detekovat chyby typu nelegální identifikátor (např. 1q) Tvorbu lexikálních analyzátorůlze mechanizovat pomocí speciálních programů typu lex nebo flex Syntaktická analýza kontroluje, zda sekvence tokenů odpovídají legálním pravidlům, která popisujípříslušný programovacíjazyk (zpravidla vyjádřeno vhodnou bezkontextovou gramatikou) zde lze detekovat chyby typu nedefinovaný identifikátor ; číslu se přiřazuje řetězec apod. Sémantická analýza vytvářípříslušnéposloupnosti akcí definujících, jak chápat (a posléze vykonat) syntaktickou analýzou nalezené abstraktní výrazy výsledkem analýzy jsou zpravidla hierarchickéstromové struktury (parse tree) [parse = větný rozbor ] Od programu k procesu 7 Od programu k procesu 8
3 Rámcová činnost překladače (pokr.) Syntaktická a sémantická analýza většinou býváprováděna společným kódem překladače, zvaným parser Tvorba parserůse mechanizuje pomocí programůtypu yaccči bison yacc= Yet Another Compiler Compiler; bisonje zvíře vypadající jako yacc Programovací jazyky se formálně popisují vhodnou deskripční metodou, např. tzv. pomocí tzv. Backusovy-NaurovyFormy (BNF) BNF elementární příklad české soukromé poštovní adresy: <postal-address> ::= <name-part> <street-address> <psc-part> <name-part> ::= <personal-part> <last-name> <EOL> <personal-part> <name-part> rekurze <personal-part> ::= <first-name> <initial> "." <street-address> ::= <street-name> <house-num> <EOL> <psc-part> ::= <PSC> <town-name> <EOL> Rámcová činnost překladače (pokr.) Častěji se užívá EBNF (Extended BNF) obvyklá symbolika EBNF Mnohdy různé dialekty EBNF Užití Notace definice = zřetězení, zakončení. alternativa volitelné [... ] Užití opakování grupování terminální řetězec terminální řetězec komentář Notace {... } (... ) (*... *) Příklad užití EBNF digit_excluding_zero = "1" "2" "3" "4" "5" "6" "7" "8" "9". digit = "0" digit_excluding_zero. twelve = "1","2". three_hundred_twelve = "3",twelve. natural_number = digit_excluding_zero,{digit}. integer = "0" ["-"],natural_number. arit_operator = "+" "-" "*" "/". simple_int_expr = integer,arit_operator,integer. EBNF pro jazyk C lze nalézt na EBNF pro jazyk Java je na Od programu k procesu 9 Od programu k procesu 10 Optimalizace během překladu Co může překladač optimalizovat Elementární optimalizace předpočítání konstant n = 1024 * 32 během překladu se vytvoří konstanta znovupoužití vypočtených hodnot if(x**2 + y**2 <= 1) { a = x**2 + y**2; } else a = 0; detekce a vyloučení nepoužitého kódu if((a>=0) && (a<0)) { never used code; }; obvykle se generuje upozornění (warning) Sémantické optimalizace značně komplikované optimalizace cyklů lepší využití principu lokality (viz téma Správa paměti ) minimalizace skoků v programu lepší využití instrukční cache... Celkověmohou být optimalizace velmi náročnéběhem překladu, avšak za běhu programu mimořádně účinné (např. automatická paralelizace) Od programu k procesu 11 Generátor kódu Generátor kódu vytvářívlastnísémantiku "mezikódu" Obecně: Syntaktický a sémantický analyzátor buduje strukturu programu ze zdrojového kódu, zatímco generátor kódu využívá tuto strukturální informaci (např. datovétypy) k tvorběvýstupního kódu Generátor kódu mnohdy dále optimalizuje, zejména při znalosti cílové platformy např.: Má-li cílový procesor více střádačů(datových registrů), dále nepoužívané mezivýsledky se uchovávají v nich a neukládají se do paměti. Podle typu překladu generuje různé výstupy assembler (jazyk symbolických adres) absolutní strojový kód pro jednoduché systémy (např. firmware vestavných systémů) přemístitelný (object) modul speciální kód pro pozdější interpretaci virtuálním strojem např. Java byte-kód pro JVM V interpretačních systémech je generátor kódu nahrazen vlastním interpretem ukážeme několik principůpoužívaných interprety (a někdy i generátory cílového kódu) Od programu k procesu 12
4 Výrazy v postfixovém zápisu Postfixová notace (též reverzní polská notace, RPN) 1920 představeno polským matematikem Łukasiewiczem operátor následuje svéoperandy, přičemž je odstraněna nutnost používat závorky (priorita operátorůse vyjadřuje samotným zápisem výrazu) např. infixové 3-4+5=(3-4)+5 v je RPN zatímco 3-(4+5) bude v RPN Výpočet RPN výrazůzásobníkovým automatem: Dokud jsou na vstupu znaky o přečti další znak o jestliže je znak hodnota ulož ji na zásobník o jinak znak představuje funkci (operátor) Stromová reprezentace výrazu 3-(4+5) je známo, že daná funkce přebírá n parametrů vyber ze zásobníku n hodnot jestliže je na zásobníku méně než n hodnot (Chyba) nedostatečný počet parametrů vypočti hodnotu funkce výsledek ulož zpět na zásobník jestliže je na zásobníku jen jedna hodnota o je to výsledek výpočtu jinak o (Chyba) příliš mnoho hodnot Od programu k procesu Výrazy v postfixovém zápisu (pokr.) Výpočet - příklad 8+((5+2)*7) 3 je v RPN * * Dvě hodnoty z vrcholu zásobníku sečti a výsledek ulož zpět Dvě hodnoty z vrcholu zásobníku násob a výsledek ulož zpět Dvě hodnoty z vrcholu zásobníku sečti a výsledek ulož zpět Akce Dvě hodnoty z vrcholu zásobníku odečti a výsledek ulož zpět 8, 5 8, 5, 2 8, 7 8, 7, 7 8, , 3 54 Od programu k procesu 14 8 Přepis infixového zápisu do RPN Dijkstrův Shunting yard algoritmus ( doslovný překlad algoritmus seřaďovacího nádraží 3 - ( ) 3 - ( ) 3 - ( ) 3 4 ) - ( - ( + ) ) ( + - ( + ( ) 5 ) Algoritmus Shunting yard detailně Dokud jsou na vstupu tokeny: o Přečti token. o Pokud je token číslo či proměnná, předej ho na výstup. o Pokud je token funkce, ulož ho na zásobník. o Pokud je token levá závorka, ulož ji na zásobník. o Pokud je token pravá závorka: Dokud na vrcholu zásobníku nebude levá závorka, vybírej operátory ze zásobníku a zapisuj je do výstupní fronty. Vyjmi ze zásobníku levou závorku a zahoď ji. Pokud je zásobník prázdný a nepodařilo se najít levou závorku, jedná se o chybný neuzavřený výraz. Jestliže byly zpracovány všechny tokeny ze vstupu: o Dokud budou v zásobníku operátory: Jestliže operátor na vrcholu zásobníku je závorka, jedná se o chybný neuzavřený výraz. Vyjmi operátor ze zásobníku a vlož ho do výstupní fronty. Konec. Úplný algoritmus viz např. Dostudujte sami, může se objevit u zkoušky! Uvedený algoritmus je zkrácený. Je vynechána část týkající se funkcís více argumenty v závorkách oddělenými čárkami, např. zápis fce(x, y). Neřeší se rovněž priorita a asociativita operátorůbez závorek(odčítáníje asociativnízleva, umocňování je asociativní zprava) Od programu k procesu 15 Od programu k procesu 16
5 Binární objektové moduly Objektové moduly (object modules) Vytvářeny jsou překladači jako binární forma přeloženého programového modulu. Jde o vnitřněstrukturovanou kolekci (obvykle pojmenovaných) úsekůstrojového kódu a dalších informací nutných k následnému zpracování. Objektovémoduly jsou vstupem pro sestavovací program (linker, někdy též linkage editor) Nejčastěji Knihovna Obj 1 Obj 2 Executable Sestavovací program Občas Dynamická knihovna Knihovna Zřídka kdy Binární objektový modul Každý objektový modul obsahuje sérii sekcí různých typů a vlastností Prakticky všechny formáty objektových modulů obsahují Sekce text obsahuje strojovéinstrukce a její vlastností je zpravidla EXEC ALLOC Sekce data slouží k alokaci paměťového prostoru pro inicializovaných proměnných, RW ALLOC Sekce BSS (Block Started by Symbol) popisuje místo v paměti, které netřeba alokovat ve spustitelném souboru, RW Mnohé formáty objektových modulů obsahují navíc Sekce rodata slouží k alokaci paměťového prostoru konstant, RO ALLOC Sekci symtabobsahujícítabulku globálních symbolů( ), kterou používá sestavovací program Sekci dynamic obsahující informace pro dynamické sestavení Sekci dynstrobsahujícíznakové řetězce (jména symbolů pro dynamické sestavení) Sekci dynsym obsahující popisy globálních symbolů pro dynamické sestavení Sekci debug obsahující informace pro symbolický ladicí program Detaily viz např. Od programu k procesu 17 Od programu k procesu 18 Formáty binárních objektových modulů Různéoperačnísystémy používajírůznéformáty jak objektových modulů tak i spustitelných souborů Existuje mnoho různých obecně užívaných konvencí.com,.exe, a.obj formát spustitelných souborů a objektových modulů v M$DOS PortableExecutable (PE) formát spustitelných souborů, objektových modulůa dynamických knihoven (.dll) ve MS-Windows. Označení"portable" poukazuje na univerzalitu formátu pro různé HW platformy, na nichž Windows běží. COFF Common Object FileFormat formát spustitelných souborů, objektových modulůa dynamických knihoven v systémech na bázi UNIX V Jako první zavedl sekce s explicitní podporou segmentace a virtuální paměti a obsahuje také sekce pro symbolické ladění ELF - Executable and Linkable Format nyní nejpoužívanější formát spustitelných souborů, objektových modulů a dynamických knihoven v moderních implementacích POSIX systémů (Linux, Solaris, FreeBSD, NetBSD, OpenBSD,...). Je též užíván např. i v PlayStation 2, PlayStation 3 a Symbian OS v9 mobilních telefonů. Velmi obecný formát s podporou mnoha platforem a způsobůpráce s virtuální pamětí, včetně volitelné podpory ladění za běhu Od programu k procesu 19 Formát ELF Formát ELF je shodný jak pro objektovémoduly tak i pro spustitelné soubory ELF Header obsahuje celkové popisné informace např. identifikace cílového stroje a OS typ obsahu (obj vs. exec) počet a velikosti sekci odkaz na tabulku sekcí... Pro spustitelnésoubory je podstatný seznam sekcí v Program Header Table Pro sestavování musí být moduly popsány svými sekcemi v Section Header Table Sekce jsou příslušných typůa obsahují strojový kód či data Tabulka sekcí popisuje jejich typ, alokační a přístupové informace a další údaje potřebné pro práci sestavovacího či zaváděcího programu Moduly ELF Header Program Header Table text rodata... data Section Header Table Od programu k procesu 20 Sekce
6 Moduly a globální symboly V objektovém modulu jsou (aspoň z hlediska sestavování) potlačeny lokální symboly (např. lokální proměnné uvnitř funkcí jsou nahrazeny jejich adresami, symbolický tvar má smysl jen pro ladění) globální symbolyslouží pro vazby mezi moduly a jsou dvou typů daným modulem exportované symboly. Ty jsou v příslušném modulu plnědefinovány, je známo jejich jméno a je známa i sekce, v nížse symbol vyskytuje a relativní adresa symbolu vůči počátku sekce. daným modulem požadovanéexterní (importované) symboly, o kterých je známo jen jejich jméno, případnětyp sekce, v níž by se symbol měl nacházet (např. pro odlišení, zda symbol představuje jméno funkce či jméno proměnné) my_global_func; sekce text, rel. adresa 132 zero_init_variable; sekce data, rel. adresa 4 Šipky indikují směr viditelnosti symbolů Modul Tabulka exportovaných symbolů Tabulka importovaných symbolů Externíodkazy modulu external_func; sekce text, adresa??? external_var; sekce (ro)data/bss?, adresa??? Knihovny Knihovny jsou kolekce přemístitelných (objektových) modulů s vnitřní organizací Statické knihovny jsou určeny pro zpracování sestavovacím programem Jsou tvořeny záhlavím knihovny (katalogem) a sérií modulů Záhlavíobsahuje rejstřík globálních jmen(symbolů) exportovaných jednotlivými moduly a odkazy na ně. To umožňuje rychlévyhledání potřebného modulu v knihovnězejména pro statické sestavování (static build) Dynamické(též sdílené) knihovny jsou složitější Jsou to formálně vlastně spustitelné programy, které zaregistrují v systémových strukturách globální symboly jednotlivých modulů, jimiž je knihovna tvořena, a pak opustí soutěž o procesor. V závislosti na způsobu volání rutin ve sdílené knihovněje mnohdy nutnápodpora v jádře OS nebo aspoňve správě virtuální paměti Od programu k procesu 21 Od programu k procesu 22 Sestavovací program statické sestavení Sestavovací program zpracovává sadu objektových modulů a vytváří soubor se spustitelným programem Spustitelný soubor Při kopírovánísekcí na výstup nutno přepočítat adresy v instrukcích a ukazatelích Při statickém sestavení nezůstanou ve spustitelném souboru žádné nevyřešené externí odkazy Sestavovacíprogram připojí i inicializační kód Od programu k procesu 23 Sestavovací program dynamické sestavení Sestavovacíprogram pracuje podobnějako při sestavování statickém, avšak na závěr mohou zůstat ve spustitelném souboru nevyřešené odkazy Na místě těchto odkazů připojí sestavovací program malé kousky kódu (zvané stub), které způsobí pozdější vyřešení odkazu Existují v zásadě dva přístupy: Vyřešení odkazů při zavádění programu do paměti Zavaděč(loader) zkontroluje, zda potřebnédynamickéknihovny jsou v paměti (nejsou-li zavede je též), ve virtuálnípaměti je namapuje tak, aby je zaváděný proces viděl a stub zmodifikuje tak, že odkaz bude vyřešen Vyřešení odkazu skutečně až za běhu Vyžaduje se podpora JOS, kdy stub nahrazujícínevyřešený odkaz způsobí výjimku a v reakci na ni se provedou akce podobnéjako při řešení během zavádění Výhodnéz hlediska využitípaměti, neboťse nezavádí knihovny, které nebudou potřeba, avšak může mít vyšší režii Od programu k procesu 24
7 Statické versus dynamické sestavení Jednoduchý příklad hello.c: #include <stdio.h> int main() { int n = 24; printf("%d \thello, world.\n", n); } hello.o: file format elf32-i386-freebsd SYMBOL TABLE: *ABS* hello.c text data bss rodata comment text main *UND* printf File Size hello.c 84 hello.asm 472 hello.o 824 hello-static hello 4846 hello.asm:.file "hello.c".section.rodata.lc0:.string "%d \thello, world.\n".text.p2align 4,,15.globl main.type main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $36, %esp movl $24, -8(%ebp) movl -8(%ebp), %eax movl %eax, 4(%esp) movl $.LC0, (%esp) call printf addl $36, %esp popl %ecx popl %ebp leal -4(%ecx), %esp ret.size main,.-main.ident "GCC: (GNU) [FreeBSD]" Zavaděč (loader) Zavaděčje součást JOS, která rozumí spustitelnému souboru V POSIX systémech je to vlastně obsluha služby exec Úkoly zavaděče vytvoření obrazu procesu (memory image) v odkládacím prostoru na disku a částečně i v hlavní paměti v závislosti na strategii virtualizace vytvoření příslušného deskriptoru procesu (PCB) případné vyřešení nedefinovaných odkazů sekce ze spustitelného souboru se stávají segmenty procesu pokud správa paměti nepodporuje segmentaci, pak stránkami segmenty jsou obvykle realizovány tak jako tak ve stránkované virtuální paměti segmenty získávají příslušná práva (RW, RO, EXEC,...) inicializace registrůprocesu v PCB např. ukazatel zásobníku a čítač instrukcí předání řízení na vstupní adresu procesu Od programu k procesu 25 Od programu k procesu 26 Poznámky k postupu vzniku procesu Zde popsaná problematika je velmi různorodá Popsali jsme jen klasický (byť soudobý) postup zdrojový kód proces Úplný výčet možností by vystačil na celý semestr K mechanizaci celého postupu sloužíobvykle utilita make make má svůj vlastní popisný a (relativnějednoduchý) definiční jazyk zakládáse na časech poslednímodifikace souborů( ) např. pokud file.c není mladší než file.o, netřeba překládat file.c např. budování celého operačního systému včetnějeho jádra lze popsat v jediném (byť rozsáhlém) Makefile Moderní přístup s virtuálními stroji používá princip JIC JIC = Just In-time Compilation používá např. subsystém.net (nejen ve Windows) principem je, že překlad a sestavení probíhá při zavádění nebo dokonce za běhu Od programu k procesu 27 Poznámky k postupu vzniku procesu (pokr.) Zavádění(i sestavení) může urychlit použití tzv. PIC PIC = Position Independent Code Překladač generuje kód nezávislý na umístění v paměti např. skoky v kódu jsou vždy relativní vůči místu, odkud je skok veden kód je sice obvykle delší, avšak netřeba cokoliv modifikovat při sestavování či zavádění užívá se zejména pro dynamické knihovny Objektovéprogramovánívyžaduje dalšípodporu jazykově pomocí závislých knihoven např. C++ nebo kompilovanájava vyžadují podporu tvorby a správy objektů(a garbage collection) Mnoho optimalizačních postupůpři překladu souvisís architekturou cílového stroje von Neumannova a harwardská architektura mají rozdílné vlastnosti z pohledu optimálního strojového kódu pipe-lining instrukcía strukturu cache lze lépe využít lépe optimalizovaným kódem A mnoho a mnoho dalších triků... Od programu k procesu 28
8 Dotazy Od programu k procesu 29
Téma 14 Od programu k procesu
Obsah 1. Interpretace a kompilace 2. Od zdrojového textu k procesu 3. Překladač a jeho činnost 4. Generování kódu 5. Výrazy, infixová a postfixová notace, vyhodnocení 6. Binární objektové moduly a jejich
Téma 8 Od programu k procesu
Téma 8 Od programu k procesu Obsah 1. Interpretace a kompilace 2. Od zdrojového textu k procesu 3. Překladač a jeho činnost 4. Generování kódu 5. Výrazy, infixová a postfixová notace, vyhodnocení 6. Binární
Téma 14. Od algoritmu k procesu
Operační systémy a databáze Petr Štěpán, K13133 KN-E-229 stepan@labe.felk.cvut.cz Téma 14. Od algoritmu k procesu Příprava a zpracování programů Při psaní programu je prvním krokem (pomineme-li analýzu
Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
Konstruktory překladačů
Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v
11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;
Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 5. Preprocesor, *extra) kompilace
Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti I. 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 je podporována projektem financovaným z Evropského
Operační systémy. Přednáška 7: Správa paměti I
Operační systémy Přednáška 7: Správa paměti I 1 Správa paměti (SP) Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie
Úvod z historie RNDr. Miroslav Benedikovič John Louis von Neumann r. 1946 nová koncepce počítače (společná paměť pro kód programu a zpracovávaná data) vytvořila podmínky pro vznik softvéru na přípravu
TÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 27. Otázka : Principy moderních překladačů, virtuální stroj. Obsah : 1.Překladač a jeho struktura 2.Druhy překladačů 3.Hlavní části překladače 3.1 Lexikální
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)
Správa paměti (SP) Operační systémy Přednáška 7: Správa paměti I Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Jazyk symbolických adres
Jazyk symbolických adres 1 Proč programovat v JSA Pro některé procesory resp. MCU jsou překladače JSA dostupnější. Některé překladače vyšších jazyků neumí využít určité speciální vlastnosti procesoru.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Základní informace Přednášky: doc. Ing. Jan Janoušek, Ph.D.
B4B35OSY: Operační systémy
B4B35OSY: Operační systémy Lekce 3. Procesy a vlákna Petr Štěpán stepan@fel.cvut.cz October 19, 2017 1 / 51 Outline 1 Proces 2 Vlákna 3 Od programu k procesu 2 / 51 Proces Outline 1 Proces 2 Vlákna 3 Od
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
MPASM a IDE pro vývoj aplikací MCU (Microchip)
MPASM a IDE pro vývoj aplikací MCU (Microchip) MPLAB, vývojové prostředí a jeho instalace; Založení nového projektu a jeho základní nastavení; Zásady tvorby a základní úprava formuláře zdrojového kódu;
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
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
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Vývoj programů. Programovací nástroje. Aplikační programové rozhraní API. Standard POSIX. Vytvoření spustitelného souboru, použití kompilátoru a linkeru. Statické a dynamické
Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
ČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
Úvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
DTP Základy programování Úvod do předmětu
DTP Základy programování 01 - Úvod do předmětu Úvod Co již umíte? Plán předmětu Studijní materiály Způsob ukončení předmětu Základní pojmy I. Řešený problém: Řešeným nebo zpracovávaným problémem je konkrétní
ISU Cvičení 2. Marta Čudová
ISU Cvičení 2 Marta Čudová Supercomputing Technologies Reseaŕch Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
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í
Přidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata
1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata Studijní cíl Tento první blok celého kurzu zaměřen na zvládnutí základních pojmů z oblasti programování a
MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti
MS WINDOWS II Jádro Správa objektů Správa procesů Zabezpečení Správa paměti JÁDRO I ntoskrnl.exe napsán v C (příp. assembler) základní mechanismy poskytované executivám trap dispečink synchronizace přístupů
Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.
Sémantická analýza Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 19. listopadu 2009 Definice (Sémantická analýza) Vstup: konstrukce symbolů vytvořená
Struktura a architektura počítačů (BI-SAP) 11
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /
Správa paměti doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Motivace Úrovně správy paměti. Manuální
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Lexikální analýza Teorie programovacích jazyků
Lexikální analýza Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Osnova dnešní přednášky 1 Úvod do teorie překladačů kompilátor a interpret
Systém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
C2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
1 Úvod do kompilátorů
1 Úvod do kompilátorů 1.1 Úvodem několik slov Tyto texty obsahují úvod do návrhu programovacích jazyků a problematiky překladu programů. Téma pokrývá oblasti zahrnující lexikální analýzu (scanning), regulární
Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.
Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je
ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Vývoj SW aplikací Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení České vysoké učení technické Fakulta elektrotechnická 2012
Procesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19
Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář
3. Počítačové systémy
3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch
Úvod do jazyka C. Úvod do jazyka C. Knihy 2/2. Knihy 1/2. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze.
Úvod do jazyka C Úvod do jazyka C Zdroje Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR2 Programování 2 Úvod Zápis a kompilace programu Příklad
Pohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor
Architektury počítačů a procesorů
Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Opakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
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í
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
Zdroje Úvod Zápis a kompilace programu Příklad programu v jazyce C Příklad programu s výstupem. Úvod do jazyka C. Jan Faigl
Úvod do jazyka C Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška 7: Úvod do jazyka C 1 /
Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.
Maturitní témata IKT, školní rok 2017/18 1 Struktura osobního počítače Von Neumannova architektura: zakreslete, vysvětlete její smysl a popište, jakým způsobem se od ní běžné počítače odchylují. Osobní
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian
02 konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian Kernighan v r. 1973 přepsán do jazyka C Psát programy,
Západočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP
Západočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP Petr Sládek slady@slady.cz 27. ledna 2005 Zadání Cílem této semestrální práce je kontrola zdrojového kódu překladače jazyka
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.
Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
ISU Cvičení 2. Marta Čudová
ISU Cvičení 2 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Kdo
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.
7 Předmluva 13 Použité konvence 14 KAPITOLA 1 Základní číselné soustavy a pojmy 15 1.1 Číselné soustavy a převody 15 1.2 Datové typy 18 KAPITOLA 2 Seznámení s mikroprocesory řady x86 21 2.1 Počítač obecně
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
IB111 Programování a algoritmizace. Programovací jazyky
IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím
Koncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Počítač jako prostředek řízení. Struktura a organizace počítače
Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský
Real Time programování v LabView. Ing. Martin Bušek, Ph.D.
Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití
Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).
Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis
Semestrální práce z předmětu Teorie programovacích jazyků
Vysoké učení technické v Brně Fakulta informačních technologií Semestrální práce z předmětu Teorie programovacích jazyků Roman Lukáš 2003-2004 1 Jazykové procesory (Language Processors) 1.1 Překladače
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í.
Trochu teorie 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í. Každá spuštěná aplikace má alespoň jeden proces
Programování ve Windows Dynamické knihovny. Andrea Číková Martin Osovský
Programování ve Windows Dynamické knihovny Andrea Číková Martin Osovský Agenda K čemu jsou dobré? Jaký mají vztah ke spustitelným souborům a procesům? Jak se sestavují? Jak se načítají? Jak se hledají?
Metody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat
IB015 Neimperativní programování Organizace a motivace kurzu, programovací jazyk Haskell Jiří Barnat Sekce IB015 Neimperativní programování 01 str. 2/36 Organizace kurzu Cíle kurzu IB015 Neimperativní
Algoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr
Preprocesor a koncepce (větších) programů Úvod do programování 2 Tomáš Kühr Práce s preprocesorem Preprocesor Zpracovává zdrojový kód ještě před překladačem Provádí pouze záměny textů (např. identifikátor
Operační systémy 2. Přednáška číslo 2. Přidělování paměti
Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování
přetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: Algoritmy Vyučující: Ing. Milan Káža Třída: EK2 Hodina: 3 Číslo: V/5 Programování
Interpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
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.
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)
Architektura a koncepce OS OS a HW (archos_hw) Aby fungoval OS s preemptivním multitaskingem, musí HW obsahovat: 1. (+2) přerušovací systém (interrupt system) 2. (+2) časovač Při používání DMA: 1. (+1)
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Implementace numerických metod v jazyce C a Python
Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět: