POSIX, Make, CMake. Miroslav Jaroš. PB071 Úvod do nízkoúrovňového programovnání. 29. dubna 2019
|
|
- Josef Soukup
- před 6 lety
- Počet zobrazení:
Transkript
1 POSIX, Make, CMake Miroslav Jaroš PB071 Úvod do nízkoúrovňového programovnání 29. dubna 2019 Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
2 Obsah 1 POSIX Proč POSIX POSIX C Library Adresáře a soubory Procesy a vlákna 2 Make, CMake make Generátory 3 Závěr Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
3 POSIX POSIX Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
4 POSIX Proč POSIX Motivace Proč se zabývat operačním systémem? Standardní knihovna přináší programátorovi základní funkci pro práci s prostředky počítače Nicméně kdykoliv program potřebuje interagovat s hw musí požádat OS o zpřístupnění Práce se soubory Požadavek na naalokování stránky do virtuální paměti Spuštění podprocesu v shellu Řízení vláken (od C11) Jak standardní knihovna zvládá toto všechno implementovat? Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
5 POSIX Proč POSIX Motivace Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
6 POSIX Proč POSIX Historie Aneb od UNIXu ke standardu POSIX Portable Operating System Interface Norma pro rozhraní operačního systému založená na operačním systému UNIX UNIX vznikl roku 1971 a již roku 1973 byl přepsán do jazyka C Jeho autoři jsou Dennis M. Ritchie a Ken Thompson Součástí normy POSIX je knihovna pro jazyk C POSIX C Library, která definuje základní rozhraní operačního systému Pro použivání ochrané známky UNIX musí operační systém plně implementovat normu POSIX a být certifikovaný podle Single Unix Specification Např. macos je certifikovaný UNIX Linux není Nicméně většina UNIX-like (nebo také UN*X) systémů jej dodržuje (s odchylkami) Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
7 POSIX POSIX C Library POSIX C Library API operačního systému Zpřistupňuje funkce pro interakci s operačním systémem Snaží se o vytvoření API kompatibilního se standardní knihovnou C, která je její součástí Pokrývá širokou škálu služeb jádra poskytovaných programům Správa procesů (start, komunikace, ukončení) Přístup k souborovému systému, síťovému rozhraní, pipes Správa a synchronizace vláken (spouštění, vyloučení přistupu, semafory... ) Správa virtuální paměti procesu (mapování stránek, dealokace... ) A mnoho dalších... Tím umožňuje psaní přenositelných programů s daleko širším záběrem, než má standardní knihovna Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
8 POSIX POSIX C Library Kompatibilita UN*X systémy (Linux, macos, Solaris... ) Windows Pokud je systém certifikován jako UNIX, potom splňuje POSIX Linux jej s minimálními odchylkami splňuje taktéž Má vlastní API operačního systému Win32 a WinRT Nicméně části POSIX implementuje, ale ne plně MinGW a Cygwin implementuji POSIX prostředí pomocí Win32 API Od Windows 10 obsahuje Windows Subsystem for Linux Emuluje rozhraní Linuxu, pro běh linuxových aplikací Pro instalaci a další zrdoje viz tutorial index.html Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
9 POSIX Adresáře a soubory Souborový systém I V UNIX-like systémech je souborový systém implementován jako n-ární strom s jedním kořenem. Všechny svazky (jiné disky, síťová úložište, ale i zařízení) jsou v něm adresovány - mount. Kořen souborového systému se jmenuje /. Soubory jsou implementovány pomocí inode (i-uzel). inode je datová struktura popisující objekt existující v souborovém systému. Váží se na něj všechny atributy souboru, jako velikost, oprávnění, datum vytvoření, modifikace atd. inode nicméně neobsahuje informaci o tom, ja se daný soubor jmenuje, nebo kde se ve FS nachází. Vazba mezi jménem souboru a jeho inode je implementována na úrovni adresáře. Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
10 POSIX Adresáře a soubory Souborový systém II Pro získání informací o souboru se používají funkce stat, fstat, lstat int stat(const char *path, struct stat *buf); Při úspěchu je struct stat naplněna informacemi o souboru. Více viz man 3 stat. struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* Inode number */ mode_t st_mode; /* File type and mode */ nlink_t st_nlink; /* Number of hard links */ uid_t st_uid; /* User ID of owner */ gid_t st_gid; /* Group ID of owner */ dev_t st_rdev; /* Device ID (if special file) */ off_t st_size; /* Total size, in bytes */ blksize_t st_blksize; /* Block size for filesystem I/O */ blkcnt_t st_blocks; /* Number of 512B blocks allocated */ } Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
11 POSIX Adresáře a soubory Práce se soubory Velice podobná jako ve standardní knihovně Místo struktury FILE * se používá file deskriptor, který je typu int int open(const char *path, int oflag,...); int close(int fd); ssize_t read(int fildes, void *buf, size_t nbyte); ssize_t write(int fildes, const void *buf, size_t nbyte); ssize_t je rozšírení typu size_t o záporná čísla Manuálové stránky těchto funkcí dle POSIX man 3 $JMENO_FUNKCE Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
12 POSIX Adresáře a soubory Adresáře Adresář je specifická entita v rámci file systému a její formát na něm záleží Stejně jako u souborů (jimiž ve skutečnosti většinou i bývají) je práce s nimi programátorovi zpřístupněna operačním systémem Pro práci s adresáři se používá kombinace funkcí opendir, readdir a closedir DIR *opendir(const char *name); Vrací ukazatel na DIR, což je reprezentace otevřeného adresáře pro OS struct dirent *readdir(dir *dirp); Přečte další položku v adresáři Pokud v adresáři není žádný další prvek, vrací NULL int closedir(dir *dirp); Ukončuje práci s adresářem a uvolňuje zdroje I zde platí stejně jako u fopen nebo malloc, že pokud funkce opendir neselhala, musí být nad její návratovou hodnotou zavolána funkce closedir Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
13 POSIX Adresáře a soubory Adresáře II. Po zavolání funkce readdir je vrácena struct dirent * struct dirent { ino_t d_ino; /* Inode number */ off_t d_off; /* Not an offset; see below */ unsigned short d_reclen; /* Length of this record */ unsigned char d_type; /* Type of file; not supported by all filesystem types */ char d_name[256]; /* Null-terminated filename */ }; Položka d_name obsahuje jméno prvku ve složce, ale ne cestu, ta musí být zrekonstruována jiným způsobem Položka d_type může obsahovat typ prvku, ale v závislosti na použitém file systemu také nemusí Pro zjištění typu lze d_type testovat proti konstantám DT_REG běžný soubor DT_DIR adresář DT_UNKNOWN File system nepodporuje d_type a typ je potřeba zjistit jinak, například voláním lstat A dalším (viz man 3 readdir) Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
14 POSIX Adresáře a soubory Procházení adresáře void PosixPrintFiles(const char* path) { DIR *dir = NULL; if ((dir = opendir(path))) { // connect to directory struct dirent *direntry = NULL; while ((direntry = readdir(dir))!= NULL) {// obtain next item printf("file %s\n", direntry->d_name); // get name } closedir(dir); // finish work with directory } } Listing 1: Procházení FS, převzato ze starší přednášky Šimona Totha Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
15 POSIX Procesy a vlákna Procesy Proces je v OS jednotka pro běh samostatného programu s vlastní oddělenou pamětí V rámci POSIX má proces všechny zdroje (pokud nejsou sdílené) alokované pro vlastní použití (například file deskriptory) V rámcí standardní knihovny existuje funkce system, která spouští shell v novém procesu a blokuje rodičovský proces, dokud potomek neskončí V Linuxu je tato funkce implementována jako sekvence volání fork(2), execl(3) a waitpid(3) Spuštění nového procesu pid_t fork(void); Vytváří nový proces zkopírováním celé virtuální paměti rodičovského procesu. Oba procesy, jak rodič tak potomek, pokračují ve vykonávání instrukcí na následujícím řádku po volání fork Zda je proces rodič nebo potomek, lze zjistit pomocí návratové hodnoty fork Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
16 POSIX Procesy a vlákna Procesy II. Rodina funkcí exec(3) Spouští předaný program nahrazením kódu běžicího procesu kódem programu předaného funkci Volání pouze nahrazuje výkonný kód procesu, ale nemění zdroje alokované u OS (např. tabulka file descriptorů) int execve(const char *path, char *const argv[], char *const envp[]); Funkce popen(3) FILE *popen(const char *command, const char *type); Narozdíl od funkce system spouští proces asynchroně, tedy bez blokování rodiče Návratová hodnota funkce je rourou pro komunikaci s procesem Může být pouze pro čtení nebo zápis, nikoliv obojí Po skončení práce s procesem musí být nad nárvatovou hodnotou funkce zavoláno pclose, nikoliv fclose Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
17 POSIX Procesy a vlákna Vlákna Vlákna umožňují procesu vykonávat několik paralelních činností zároveň. Zároveň ale všechna vlákna mezi sebou sdílí prostředky (například paměť). Což může přinášet problémy -> souběh, uváznutí a další. Podpora pro vlákna je implementována v knihovně pthread. Umožňuje vlákna spouštět, nebo plánovat jejich odstranění. Zároveň obsahuje techniky pro synchronizaci vláken. Mutexy Conditional variable Více o vláknech se dozvíte v předmětech PB152 nebo PB153 Více o těchto funkcích například ve slidech PB065 [1]. Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
18 Make, CMake Make, CMake Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
19 Make, CMake Překládání projektů Prozatím jste se v tomto předmětu setkali s jednoduchými prográmky s jednotkami překladových jednotek, které šlo přeložit jedním příkazem. gcc -std=c99 -Wall -Wextra -pedantic -Werror *.c Tento přístup lze aplikovat na jednoduché programy, které se přeloží okamžitě. Co ale s projekty, které obsahují tisíce řádků zdrojového kódu ve stovkách souborů. I malá změna v jednom zdrojovém souboru znamená překompilování všech zdrojových souborů. Což pro velké projekty trvá opravdu dlouho (linux cca 20 minut, gcc cca 1.5 hodiny). Jak reagovat na případy, kdy potřebujeme více spustitelných souborů? Systémový démon a jeho CLI. Klient server aplikace. A co závislosti? Kde najdeme knihovny, jak se jmenuji? Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
20 Make, CMake Překládání projektů II - Přístupy Přímý překlad není moudrý, je nepřenositelný a těžko reprodukovatelný. Trošku lepším řešením je napsat si nějakou vlastní automatizaci Typicky ve forme skriptu. Tento přístup možná vyřeší problém překladu více binárek a opakovatelnosti sestavení, ale! Překládat pouze změněné překladové jednotky je poměrně těžké implementovat. Pro vyřešení vztahů mezi zdrojovými soubory, bychom museli implementovat alespoň základní parser jazyka pro jejich pochopení. A nezapomínejme na chyby. Vůbec nejlepším řešením je, použít nástroje k tomu určené. Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
21 Make, CMake make make I Nástroj na automatizaci sestavení. Popis sestavení projektu se ukládá do Makefile. Využívá rekurzivních pravidel pro vystavění stromu závislostí, který následně projde a nad každým cílem vykoná požadovanou akci Základním kamenem syntaxe je pravidlo target: source1 source2 target cíl, typicky se jedná o produkovaný soubor (binárka, nebo mezilehlá překladová jednotka), případně jde o phony cíl (viz dále). source1 source2 zdrojové soubory, může jít o soubory vytvořené předchozím pravidlem (cíle jiného pravidla), nebo zdrojové soubory překládaného programu. Akce se nad cílem vykoná, pokud: cíl neexistuje a je potřeba jej vytvořit, libovolný ze zdrojových souborů byl upraven po vytvoření cíle (datum modifikace zdrojového souboru je vyšší než datum modifikace cíle), Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
22 Make, CMake make make II cíl je phony, tedy neprodukuje žádný soubor. Spuštěním příkazu make se vyhledá soubor Makefile v lokálním adresáři. Pravidlo, které se začne vykonávat je první nalezené. Toto chování lze změnit explicitním zadáním očekávaného pravidla make clean. Proměnné makefile lze nastavit na jiné hodnoty při spuštění make all CC=clang. Pro zrychlení překladu lze použít přepínač -jn, který překládá paralelně až N překladových jednotek. make -j5 all Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
23 Make, CMake make Obrázek: Popis závislostí v projektu, zdroj: Jiří Slabý, přednáška PB071 z roku 2017 Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33 make III
24 Make, CMake make Makefile Základ syntaxe jsou příkazy target: source1 source2. Pod touto deklarací jsou tabulátorem odsazené příkazy, které se mají provést. Lze v něm deklarovat proměnné VAR_NAME=value A následně je odkazovat jako $(VAR_NAME) Zobecnění pravidel: Speciální znak % je zástupným symbolem Lze jej použít pro konstrukci pravidel typu %.o: %c, které říká, že libovolné pravidlo, končící na.o, závisí na stejně jmenujícím se pravidle končícím na.c Ke každému pravidlu potom náleží další speciální proměnné $@ je jméno cíle. $< je první závislost. $ˆ jsou všechny závislosti Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
25 Make, CMake make Makefile II CC=gcc CFLAGS=-std=c99 -Wall -Wextra -pedantic -Werror all: myprog myprog: main.o test.o $(CC) $(CFLAGS) $^ -o %.o: %.c $(CC) $(CFLAGS) -c -o $^ clean: rm -f *.o myprog.phony: all clean Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
26 Make, CMake Generátory Generátory make je silný nástroj pro popis sestavení projektu, nicméně neřeší všechny problémy. Je nezbytné stále popisovat závislosti ručně. (Nebo si vypomáhat dodatečnými soubory třeba s pomocí gcc -MM) Má komplikovanou syntaxi a pro velké projekty již nedostačuje. Je méně přenositelný a nemá přímou podporu pro ověření vlastností kompilátoru nebo existence knihoven. Proto se pro větší projekty používají pokročílejší nástroje, které umí Makefile vygenerovat. Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
27 Make, CMake Generátory Generátory II Autotools Jeden z nejrozšířenějších nástrojů v UNIXovém světe Skládá se ze tří nástrojů: Autoconf vyhledávání externích závislostí, Automake popis překladu (podadresáře, layout projektu), Libtool podpora pro tvorbu knihoven. Výsledkem je několik servisních souborů a jeden spustitelný skript configure. Po jeho spuštění začne testování OS, zda a kde má potřebné závislosti. Při úspěchu je vygenerován Makefile Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
28 Make, CMake Generátory Generátory III CMake Se CMake se všichni minimálně od vidění známe :-) Základem konfigurace je jeden soubor CMakeLists.txt, který obsahuje popis projektu. Podobně jako u Autotools jeho spuštění generuje (krom obrovské spousty servisních souborů) Makefile. Ale neomezuje se pouze na ně, umí vygenerovat i projektové soubory pro VisualStudio, nebo Ninja build system. cmake_minimum_required(version 3.6) project(hw04) set(source_files test.cpp) add_executable(hw04 ${SOURCE_FILES}) Listing 2: Ukázka CMakeLists.txt Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
29 Závěr Závěr Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
30 Závěr Závěr Nebojte se Operačních systémů ani jejich API Dávají vám do rukou silné zbraně při programování Používejte manuálové stránky A hlavně: Nepiště si vlastní nástroje pro sestavování projektů! Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
31 Závěr Kam dál? PV004 UNIX PV065 UNIX programování a správa systému I PB173 Tematický vývoj aplikací v C/C++ (skupina zaměřená na POSIX) Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
32 Závěr Další zdroje Jan Kasprzak. PV165 Unix programování a správa systému I. Makefile reference CMake tutorial Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
33 Závěr Děkuji za pozornost Miroslav Jaroš (PB071) POSIX, Make, CMake 29. dubna / 33
PB071 Programování v jazyce C
Programování v jazyce C POSIX Organizační Zápočtový příklad nanečisto v tomto týdnu na cvičeních, 60 minut (naostro proběhne 5-11.5., čtvrtkové odpadnuté cvičení 15.5.) Pro účast na zkoušce je nutné mít
PB071 Úvod do jazyka C
PB071 Úvod do jazyka C Překladové systémy Jiri Slaby Fakulta informatiky Masarykova univerzita 2. 5. 2016 Jiri Slaby (Fakulta informatiky, MU) PB071 Překlad 2. 5. 2016 1 / 23 Obsah přednášky 1 Úvod a motivace
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
Základy programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
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,
Ú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í
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
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
Práce se soubory. Úvod do programování 2 Tomáš Kühr
Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje
Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2
Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura
IT ESS II. 1. Operating Systém Fundamentals
IT ESS II. 1. Operating Systém Fundamentals Srovnání desktopových OS a NOSs workstation síťové OS (NOSs) jednouživatelské jednoúlohové bez vzdáleného přístupu místní přístup k souborům poskytují a zpřístupňují
Linux Teorie operačních systémů a realita
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Linux Teorie operačních systémů a realita České vysoké učení technické Fakulta elektrotechnická Ver.1.00 2010 Historie Unixu a Linuxu MULTICS 50. - 60. léta minulého století,
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ů
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
Základy programování (IZP)
Základy programování (IZP) Druhé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 2016/2017
Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11
Metody připojování periferií
Metody připojování periferií BI-MPP Přednáška 10 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
monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura
IBM PC 5150 MS DOS 1981 (7 verzí) DR DOS, APPLE DOS, PC DOS 1. 3. Windows grafická nástavba na DOS Windows 95 1. operační systém jako takový, Windows XP 2001, podporovány do 2014, x86 a Windows 2000 Professional
C++ a vnitřní svět. David Bednárek Jakub Yaghob Filip Zavoral
C++ a vnitřní svět David Bednárek Jakub Yaghob Filip Zavoral Vazby na OS Co není řešeno ISO normou Pokročilá práce se soubory Paměťově mapované soubory, asynchronní soubory Práce s adresáři Práce s procesy
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?
Základy programování (IZP)
Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Cvičící: Petr Veigend (iveigend@fit.vutbr.cz) Důležité
Instalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
Základy programování (IZP)
Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno inecasova@fit.vutbr.cz Důležité informace Můj profil:
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním
Práce s binárními soubory. Základy programování 2 Tomáš Kühr
Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
PB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20
Práce se soubory. Úvod do programování 2 Tomáš Kühr
Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
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é
ČÁ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
Práce se soubory. Základy programování 2 Tomáš Kühr
Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
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é
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
Vetřelec v systému Linux
Vetřelec v systému Linux Jiří Hýsek xhysek02@stud.fit.vutbr.cz trace@dump.cz trace.dump.cz Cíl přednášky představit některé techniky, které útočníkovi pomáhají stát se co nejméně nápadným objasnit jejich
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
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
C++ a vnější svět. David Bednárek Jakub Yaghob Filip Zavoral
C++ a vnější svět David Bednárek Jakub Yaghob Filip Zavoral Databáze Připojení klienta Aplikace DB DB.LIB Databáze výběr a rozhraní Oracle OCI MS Server ODBC, OLE DB Sybase Open client PostgreSQL Vlastní
Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015
Knot DNS Resolver Modulární rekurzivní resolver Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je KNOT Resolver Části resolveru Funkce a konfigurace Integrační testování Co je Knot DNS Resolver Minimalistický
Systém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
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í
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Operační systémy. Cvičení 1: Seznámení s prostředím
Operační systémy Cvičení 1: Seznámení s prostředím 1 Obsah cvičení Organizace cvičení Učebna K311 Unixová učebna K327 (Solárium) Přihlášení do Unixu Spouštění vzorových příkladů vzdáleně (Unix) lokálně
PC Fand a Linux Budoucnost PC FANDu
PC Fand a Linux Budoucnost PC FANDu Ing. Miroslav Vopalecký vopalecky@alis.cz 18.05.2010 Fand na Linuxu? Je PC Fand od firmy ALIS, spol. s r.o. použitelný i na jiných operačních systémech? Neskončí v propadlišti
Operační systémy. Přednáška 1: Úvod
Operační systémy Přednáška 1: Úvod 1 Organizace předmětu Přednášky každé úterý 18:00-19:30 v K1 Přednášející Jan Trdlička email: trdlicka@fel.cvut.z kancelář: K324 Cvičení pondělí, úterý, středa Informace
Vláknové programování část I
Vláknové programování část I Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 07 1/27 Vláknové programování v C/C++ 1. Procesy, vlákna, přepínání
Programování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
Dílčí příklady použití jazykových konstrukcí v projektu. Jazyk C Příklady. Pravidla překladu v gmake. Zadání
Dílčí příklady použití jazykových konstrukcí v projektu Jazyk C Příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 10 A0B36PR2 Programování 2 Program
Webový server lapache
Webový server lapache Abstrakt lapache (lukas light apache) je jednoduchý UNIXový webový server podporující: podmnožinu HTTP 1.0/1 protokolu virtuální servery (s vlastními chybovými stránkami a kořenem
Windows a real-time. Windows Embedded
Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé
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
ZOS OPAKOVÁNÍ. L. Pešička
ZOS OPAKOVÁNÍ L. Pešička ZÁKLADNÍ PRAVIDLO Důležité je znát nejen fakta, ale porozumět jim a zasadit je do kontextu celého OS Př. algoritmus Second Chance využívá bitu Referenced tak, že (fakta) a kdy
Operační systémy 1. Přednáška číslo 11 3. 5. 2010. Souborové systémy
Operační systémy 1 Přednáška číslo 11 3. 5. 2010 Souborové systémy Dělení dle bezpečnosti Souborové systémy s okamžitým zápisem pouze jeden druh operace a další musí čekat. Data se nemohou ztratit, ale
Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9
Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého
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é
Souborové systémy Mgr. Josef Horálek
Souborové systémy Mgr. Josef Horálek Souborové systémy = Prostředky pro práci se souborovými systémy patří mezi nejsilnější stránky linuxového jádra. = Využívají unixový přístup k souborové hierarchii
IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace
Základy programování (IZP)
Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden
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ů
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í
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
Úvod do Linuxu. SŠSI Tábor 1
Úvod do Linuxu SŠSI Tábor 1 Trocha historie konec 60. let - AT&T vyvíjí MULTICS 1969 - AT&T Bell Labs - začátek OS Unix začátek 70.let - AT&T vývoj OS Unix kolem 1975 - University of California at Berkley
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
AUTHOR : Robert Follner DATE. Abstrakt ABSTRACT: Několik poznatků autora (Robert Follner) z programování
Programování v C/C++ AUTHOR : Robert Follner DATE Abstrakt ABSTRACT: Několik poznatků autora (Robert Follner) z programování v céčku. Obsah 1 Jazyk C 1 1.1 Primitivy jazyka C..........................
Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici
Základní příkazy Úvod do Unixu man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp vypíše nápovědu o příkazu cp, manuálová stránka se ukončí stisknutím klávesy
Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.
Přednáška 11 Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna. 1 Historie MS Windows I 1980 1981 1983 1990 1995 1998 2000 8-bitový procesor Intel 8080
Spojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
Karel Bittner bittner@humusoft.com. HUMUSOFT s.r.o. HUMUSOFT s.r.o.
Karel Bittner bittner@humusoft.com COMSOL Multiphysics Co je COMSOL Multiphysics? - sw určený k simulaci fyzikálních modelů, na něž působí jeden nebo několik fyzikálních vlivů - sw úlohy řeší metodou konečných
Paralelní výpočty na clusteru KMD
Paralelní výpočty na clusteru KMD Jiří Hozman jiri.hozman@tul.cz Technická univerzita v Liberci Fakulta přírodovědně-humanitní a pedagogická Katedra matematiky a didaktiky matematiky Vytvoření a rozvoj
TG Motion verze 4 Modul Virtuální PLC návod k obsluze
TG Motion verze 4 Modul Virtuální PLC návod k obsluze Olomoucká 1290/79-1 - Fax: +420 548 141 890 Historie revizí datum verze popis 10. 1. 2017 1.0 31. 7. 2017 1.1 upravena typografie Olomoucká 1290/79-2
6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek
6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek 1/73 https://en.cppreference.com internetová stránka s referencemi https://gedit.en.softonic.com/download
Pokročilé architektury počítačů
Pokročilé architektury počítačů Tutoriál 2 Virtualizace a její dopady Martin Milata Obsah Virtualizace Jak virtualizace funguje Typy HW podpora virtualizace Dopady virtualizace Jak virtualizace funguje?
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
PB161 Programování v jazyce C++ Přednáška 9
PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky
Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13
Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace
PB071 Programování v jazyce C Jaro 2015
Programování v jazyce C Jaro 2015 Argumenty main(), Typový systém, Dynamická alokace Organizační Polosemestrální test Úterý 7. dubna v 10:00 a 11:00 v D1 20 bodů rozdíl mezi E a C Zdroj: http://www.bugemos.com/?node=342
a co je operační systém?
a co je operační systém? Funkce vylepšení HW sjednocení různosti zařízení ulehčení programování (např. časové závislosti) přiblížení k potřebám aplikací o soubory namísto diskových bloků o více procesorů
Jak funguje GNU/Linux
Jak funguje GNU/Linux Úvod do operačního systému a filozofie Jiří Jánský SUT SH 12.10.1010 GNU/Linux I. Proč Linux používájí geekové Za více námahy více muziky Příklad s přepsáním titulků Svobody Open
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna
Principy operačních systémů Lekce 5: Multiprogramming a multitasking, vlákna Multiprogramování předchůdce multitaskingu Vzájemné volání: Implementován procesem (nikoliv OS) Procesu je přidělen procesor,
Základy programování (IZP)
Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden
Základy programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
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ů
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Práce s pamětí. Tématicky zaměřený vývoj aplikací v jazyce C skupina Systémové programování Linux. Martin Husák, Petr Velan, Martin Drašar
Práce s pamětí Tématicky zaměřený vývoj aplikací v jazyce C skupina Systémové programování Linux Martin Husák, Petr Velan, Martin Drašar Fakulta informatiky Masarykova univerzita {husakm velan drasar}@ics.muni.cz
Základní typy struktur výpočetních systémů
Základní typy struktur výpočetních systémů Struktury výpočetních systémů Monolitická struktura Vrstvená (hierarchická) struktura Virtuální počítače (virtuální stroje) Abstraktní počítače Modulární struktura
Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna.
Operační systémy Cvičení 5: Volání jádra, procesy, vlákna. 1 Obsah cvičení Systémová volání Knihovní funkce jazyka C Procesy informace o procesech vytváření, ukončování procesů, signály POSIX vlákna vytváření,
Rozdělení operačních systémů
Rozdělení operačních systémů OS1 Přednáška číslo 2 Podle počtu ovládaných procesorů Jednoprocesorové (monoprocesorové) Víceprocesorové (multiprocesorové) Asymetrický processing (ASMP) na jednom procesoru
Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
Úvod, jednoduché příkazy
A7B38UOS Úvod do operačních systémů cvičení LS 2012/13 1. Cvičení Úvod, jednoduché příkazy Přednášející Cvičící Kdo je kdo v UOS doc. Ing. Jaroslav Roztočil, CSc. Ing. Jan Koller, Ph.D. Ing. Radek Havlíček,
Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury
Paralelní architektury se sdílenou pamětí typu NUMA NUMA architektury Multiprocesorové systémy s distribuovanou pamětí I. úzkým hrdlem multiprocesorů se sdílenou pamětí je datová komunikace s rostoucím
Ukázka zkouškové písemka OSY
Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.
TG Motion verze 4 Modul Virtuální PLC návod k obsluze
TG Motion verze 4 Modul Virtuální PLC návod k obsluze -1- Obsah 1. Virtuální PLC...3 1.1 Popis Virtuálního PLC...3 1.2 Tvorba PLC...3 1.3 Vyžadovaný algoritmus PLC...3 Načtení vstupů...3 Zpracování hodnot
František Hudek. únor ročník
VY_32_INOVACE_FH01_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek únor 2013 6.
Přednáška. Systémy souborů. FAT, NTFS, UFS, ZFS. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Systémy souborů. FAT, NTFS, UFS, ZFS. 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
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
Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016
Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Obsah 1 Zadání 1 2 Analýza úlohy 2 2.1 Uložení dat ze vstupního souboru................ 2 2.2 Graf
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