Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě

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

Download "Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě"

Transkript

1 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Diplomová práce Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě Martin Čížek

2 Poděkování Rád bych poděkoval Ing. Antonínu Královi za vedení diplomové práce, množství užitečných rad a poznámek, Dr. Ing. Svenu Ubikovi za konzultace výzkumného záměru, sdružení Cesnet, z.s.p.o. za poskytnutí prostoru a prostředků k řešení projektu a Pavlu Vodrážkovi za pomoc s kreslením obrázků. Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze literaturu a podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). Praha, Podpis / Signature

3 Anotace Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě Práce se zabývá paralelizací datových přenosů v počítačových sítích, zejména přístupem, kdy je paralelní přenos explicitně řízen koncovými stanicemi. Diskutovány jsou možnosti paralelizace na různých komunikačních vrstvách a je navržen systém provádějící paralelizaci nad transportní vrstvou. Systém také slouží jako framework pro implementaci různých paralelizačních přístupů. Dále je rozebírána realizace navržené architektury paralelizačního subsystému, jeho způsobu použití a měření vlastností. Klíčová slova: Paralelní přenosy, rozlehlé vysokorychlostní sítě Abstract Parallelization of data transfers over wide-area high-speed networks This paper is concerned with the parallelization of data transfers in computer networks, especially with the approach where the parallelization is explicitly controlled by end stations. Parallelization alternatives on different communication layers are discussed. A system that allows parallalelization upon the transport layer and provides a framework for implementation and testing of various parallelization approaches is then designed. Successive sections analyze the implementation of the proposed parallelization subsystem architecture, its usage and measurements of characteristics. Keywords: Parallel transfers, wide-area high-speed networks

4 5 Obsah 1 Paralelizace datových přenosů Motivace k paralelizaci přenosů Terminologie Neřízený paralelizmus Paralelní přenos explicitní řízení paralelizmu Přenosy přes rozlehlé vysokorychlostní sítě Shrnutí Možnosti paralelizace Paralelizace na síťové vrstvě Paralelizace na transportní vrstvě Paralelizace na aplikační vrstvě Vrstva podpory paralelních přenosů Požadavky kladené na paralelizační vrstvu Návrh systému Způsob dělení dat do dílčích přenosů Deterministické dělení Nedeterministické dělení Kontext provádění protokolu Provádění protokolu v kontextu aplikačního programu Asynchronní provádění protokolu Architektura systému Komunikace s vláknem protokolu Sdílení soketů dílčích přenosů Rozvrh paralelního přenosu Řídicí komunikace s protistranou Životní cyklus paralelního spojení

5 Stavy paralelního spojení Implementace Pojmy a struktury Vlákno protokolu Události Reakce na událost Ovladač paralelního přenosu Library Space Vlastnosti paralelních přenosů Paralelní přenosy po jedné fyzické trase Přenos beze ztrát Přenos se ztrátami Paralelní přenosy po více fyzických trasách Závěr Další výzkum A Příklady 48 A.1 Příklad aplikačního paralelizmu B Programátorské rozhraní 49 B.1 Knihovna psock-mt B.2 Testovací nástroj psock-testperf C Obsah CD-ROM 53

6 7 Seznam obrázků 2.1 Architektura systému psock Přechodový diagram paralelního soketu (zjednodušeno) Navazování paralelního spojení Ukončování paralelního spojení Vztahy struktur v Protocol Space Princip algoritmu pollall Vztahy struktur v Library Space Propustnost v závislosti na počtu dílčích přenosů při různých hodnotách okénka Propustnost v závislosti na sumárním okénku Nárůst okénka Propustnost v závislosti na počtu dílčích přenosů při ztrátovosti 0,01% Propustnost dvou tras v závislosti na rozdělení kapacity

7 8 Seznam tabulek 2.1 Příklad rozvrhu paralelního přenosu Konfigurace měření paralelních přenosů po jedné fyzické trase Konfigurace měření paralelních přenosů po ztrátové trase

8 9 Kapitola 1 Paralelizace datových přenosů 1.1 Motivace k paralelizaci přenosů Paralelizmus datových přenosů v sítích představuje jejich přirozenou vlastnost. Je dán jednak vlastní redundancí přenosových linek, jednak sdílením přenosového média, zejména pomocí časového a frekvenčního multiplexu. V dalších úvahách se zaměříme na paketové Best-Effort sítě a TCP/IP jako nejrozšířenějšího představitele Terminologie Následující seznam uvádí základní použitou terminologii ve vztahu k paralelním přenosům obecně. Logický přenos poskytuje spolehlivý přenos dat rourou. Jedná se buď o klasický přenos nebo o paralelní přenos. Paralelní přenos je logický přenos, který ke své funkci používá několik přenosů dílčích. Dílčí přenos je komponentou paralelního přenosu. Jaká data po něm putují, jejich formát atd., určuje konkrétní implementace paralelního přenosu. Klasický přenos je logický přenos reprezentovaný TCP spojením Neřízený paralelizmus Předpokládejme, že provoz na síti se skládá z řady méně náročných, nezávislých logických přenosů, intenzita zpráv λ [zpráv/sec] na trasách mezi dvojicemi uzlů má náhodný charakter a její střední hodnota v čase příliš nekolísá.

9 1.1 Motivace k paralelizaci přenosů 10 Tyto podmínky jsou ideální pro klasické využití síťového paralelizmu. Rozložení toků v síti je v hrubém měřítku dáno z vnějšku; určuje jej statická a dynamická 1 konfigurace sítě. Pomocí vhodného uspořádání lze dosáhnout příznivé sumární propustnosti, malého středního zpoždění, nižšího zatížení jednotlivých tras a vyšší spolehlivosti Paralelní přenos explicitní řízení paralelizmu V případech, kdy pro logický přenos je požadována velká kapacita sítě nebo požadavky na náročnější přenosy vznikají mezi různými uzly a nárazově, kýžené vlastnosti paralelizmu pro náročný přenos klasickým způsobem nezískáme. K jejich dosažení je potřeba zabývat se cíleným využitím síťového paralelizmu pro logický přenos. Kromě zlepšení vlastností samotných přenosů pak též lze dosáhnout rovnoměrnějších nároků na síťovou infrastrukturu, nebo naopak maximálního vytížení kapacity části sítě. V komunikačních systémech, kde existuje více využitelných fyzických tras, znamená paralelizace datových přenosů jedinou možnost, jak v rámci logického přenosu překonat limity jednotlivých tras Přenosy přes rozlehlé vysokorychlostní sítě Další požadavky na paralelizaci pramení z vlastností používané síťové infrastruktury. Nejrozšířenější transportní protokol TCP vykazuje v oblasti přenosů přes rozlehlé vysokorychlostní sítě některé nepříjemné vlastnosti: Při použití přenosových bufferů s kapacitou menší než je kapacita trasy 2 nedostáváme plný výkon. Při použití přenosových bufferů s kapacitou větší než je kapacita trasy též obvykle dostaneme suboptimální výkon, neboť řízení zahlcení (congestion control) způsobuje oscilace velikosti okénka (congestion window) [1]. Přestože existuje mnoho úprav TCP pro zlepšení jeho vlastností, ne vždy je možné je aplikovat. 3 Paralelizace tyto nedostatky pochopitelně nevyřeší, nicméně může značnou měrou snížit jejich projevy. 1 Na síťové úrovni jsou to směrovací protokoly a policy routing. U aplikačního modelu klient-server stojí za zmínku škálování pomocí časově a geograficky proměnných DNS překladů. Předním dodavatelem tohoto řešení je společnost Akamai, používá je např. vyhledávač Google. 2 Součin bandwidth.delay, viz část Aplikaci úprav je potřeba provést u obou koncových stanic.

10 1.2 Možnosti paralelizace Shrnutí Ačkoliv je paralelizmus na různých úrovních již nasazen, má smysl jej nadále zkoumat. Jednak kvůli prudkému rozvoji síťových technologií, jednak pro možnosti, jež získáme jeho explicitním řízením. 1.2 Možnosti paralelizace Paralelizaci datových přenosů lze provádět mnoha způsoby; zde rozebereme několik možností opírajících se o architekturu klasických sítí TCP/IP Paralelizace na síťové vrstvě Podpora redundance tras ve směrovačích a operačních systémech je dnes samozřejmostí. Modernější systémy podporují rozkládání zátěže (load balancing), tedy explicitní využití síťového paralelizmu. Paralelizaci na síťové vrstvě lze řídit právě pomocí pravidel pro load balancing. Pravidla rozkládání zátěže by měla zachovávat příslušnost datagramů každého přenosu k jedné zvolené trase; jinými slovy, jsou-li X a Y dva datagramy náležící témuž přenosu, pro oba by měl být použit stejný záznam směrovací tabulky. V opačném případě se síť pro transportní protokol jeví nestabilně, selhává např. predikce RTT a neuplatní se různé heuristiky vycházející z předpokladu slušného chování sítě (FIFO). Důsledkem je pochopitelně nepříznivý vliv na výkon transportního protokolu [6]. Jestliže ale má být zachována příslušnost daného přenosu k určité trase, není možné jej paralelizovat. Řešení je tedy potřeba hledat na vyšších vrstvách síťového modelu. Dostupné implementace Jádro OS Linux síťový subsystém iproute2 implementuje policy routing; výběr směrovacích tabulek lze kromě běžných pravidel (zdrojová IP adresa) provádět pomocí hodnoty fwmark 4, PF: The OpenBSD Packet Filter, směrovače, např. Cisco IOS Server Load Balancing (SLB). 4 Číselná značka, kterou paket udržuje po dobu svého života v jádře. Lze ji libovolně nastavovat v subsystému netfilter (filtrování paketů v Linuxu).

11 1.2 Možnosti paralelizace Paralelizace na transportní vrstvě Poznámka 1.1 Striktně vzato, až na této úrovni lze hovořit o paralelních přenosech, neboť na nižších vrstvách nejsou přenosy definovány. Na transportní vrstvě se lze rozdílným parametrům jednotlivých přenosových tras přizpůsobit, navíc sledováním těchto parametrů lze paralelní přenos inteligentně optimalizovat. Využití existujícího transportního protokolu Pro jednotlivé konkurentní přenosy, resp. trasy lze použít existující transportní protokol. Podpora paralelních přenosů pak bude tvořit komunikační mezivrstvu, která bude používat existující transportní vrstvu podobně jako klasické aplikace, nicméně pro skutečnou aplikaci bude poskytovat funkcionalitu transportní vrstvy. Jako transportní protokol dílčích přenosů se nabízí TCP. Jeho uplatněním lze získat jisté výhody: využití prověřené a všeobecně přijaté metody přenosu, implementované řízení toku pro jednotlivé dílčí přenosy, lepší koexistence s ostatním provozem na síti (spravedlnost, stabilita), průchodnost síťovou infrastrukturou (přes různé stavové firewally, NAT N:1 apod.). Z použití TCP zároveň plynou možné nevýhody: Všeobecně přijatá metoda přenosu může mít své nedostatky (viz sekce na str. 10). Ačkoliv projevy některých nedostatků lze paralelizací odbourat 5, vlastní slabiny samozřejmě přetrvají. Řízení toku jednotlivých přenosů nemusí být pro logický přenos jako celek optimální. Případné retransmise se provádí vždy po stejném (a potenciálně problémovém) spojení, na němž se paket ztratil. Potvrzení paketů odcházejících určitou trasou se vždy vracejí toutéž. Bez tohoto omezení by bylo možné získat určitý prostor pro zefektivnění paralelního přenosu. Uspořádání přijatých paketů se nejprve provádí na jednotlivých TCP spojeních. Pokud paket nebo skupina paketů na spojení předběhne, TCP musí počkat na všechny nepřijaté pakety s nižším sekvenčním číslem; pak teprve předá data nadřazené vrstvě. Nicméně nadřazenou vrstvou je právě diskutovaná vrstva paralelizační, která by eventuálně uměla naplánovat i takto předběhlé pakety dříve. 5 A také je to naším cílem.

12 1.2 Možnosti paralelizace 13 Dostupné implementace PSockets C++ knihovna pracující nad TCP sokety, implementuje dělení dat do bloků konstantní délky metodou round-robin. 6 Klade si za cíl dosáhnout výkonu, jaký by síť měla s optimálně vyladěnými parametry (zejména velikost bufferů pro TCP okénka), bez nutnosti vlastní změny parametrů. Vytyčený cíl knihovna plní; nicméně způsob, kterým jej dosahuje, je v podstatě jen změna parametrů sítě (zvětšení sumárního okénka a úprava koeficientů výpočtu Window a Threshold). Použitý algoritmus je vhodný pro přenosy po jedné společné trase. Průměrná celková propustnost paralelního přenosu je dána n-násobkem propustnosti nejpomalejšího dílčího přenosu, kde n je počet dílčích přenosů. To pochopitelně představuje omezení, pokud mají dílčí přenosy různé podmínky (různé fyzické trasy, stochastická frontová disciplína na trase,... ). V případě identických podmínek pro dílčí přenosy může tento přístup být výhodný díky stabilitě jejich zatížení Paralelizace na aplikační vrstvě Zatímco transportní vrstva může paralelně přenášet jen data v rámci přenosových bufferů, aplikační vrstva může využít skutečného paralelizmu daného podstatou problému, který řeší. 7 Vždy se ale jedná o vlastnost specifickou pro konkrétní aplikaci, a proto její využití zůstává na programátorech. Poznámka 1.2 S ohledem na použitou terminologii nepředstavují paralelně využívaná aplikační spojení paralelní přenos, ale jsou chápána jako nezávislé klasické přenosy. Uplatnění aplikačního paralelizmu Přestože aplikace s vlastním paralelizmem má potenciál výhodně využít paralelizmu síťového, narážíme na praktická omezení. Aby aplikace mohla efektivně využít přenosového paralelizmu, je potřeba vyřešit zejména tyto otázky: Bude umět namapovat své potřeby na konkrétní infrastrukturu? Bude nezávislost dat procházejících různými přenosy skutečně velká? Ukázku aplikace, kde tomu tak není, uvádí příklad A.1 na str V terminologii autorů PSockets je přístup nazýván network stripping. 7 Nemusí se nutně jednat o komplikované paralelní algoritmy. Rozhodující je dostupnost vzájemně nezávislých zdrojů/konzumentů dat, a to na obou stranách. Může jít i o obyčejný soubor stačí jej vícenásobně otevřít, pozice jednotlivých otevřených souborů vhodně nastavit voláním lseek() a dále číst z různých pozic, resp. zapisovat do různých částí souboru najednou.

13 1.2 Možnosti paralelizace 14 Lze optimálně využít všech přenosů? Pokud aplikace bude využívat některá spojení na maximum, zatímco jiná zanedbatelně, neplní náš záměr. Bude umět přemapovat data na různé přenosy? Jako příklad, kdy je přemapování žádoucí, může posloužit přenos souboru dvěma spojeními po dvou fyzických trasách. Předpokládejme, že soubor je přenášen po polovinách a že první trasa je 2x rychlejší než druhá. Lze snadno nahlédnout, že bez přemapování bude přenos trvat až o polovinu déle. Nebude suplovat funkčnost paralelizace na transportní vrstvě? Výše uvedené problémy lze samozřejmě vyřešit. Obnáší to ale psaní nepříjemného kódu, který nakonec plní funkce paralelizace na transportní vrstvě. Stojí proto za zvážení, zda tyto starosti raději nepřenechat dedikovanému subsystému. Podpora nezávislých aplikačních přenosů Potřebuje-li aplikace přenášet více toků naráz, může vytvořit příslušný počet soketů a otevřít potřebná spojení. Navazovat nová spojení je ale bohužel drahé, nepříjemné a v dnešní době firewallů a NATů často problematické. 8 Na to mysleli autoři protokolu SCTP [8]. SCTP umožňuje přenos více nezávislých toků v rámci jedné asociace. Dostupné implementace Příkladů existuje řada, zde je několik vybraných: GridFTP [11], bbftp [10] přenosy souborů s podporou paralelních datových toků, pscp [5] rozšíření scp o podporu paralelních přenosů, HTTP 1.0 a vyšší v požadavku lze uvést hlavičku Range a vyžádat tak určitou část objektu. Pokud server vyhoví, odpoví kódem 206 (Partial Content) a v hlavičkách upřesní, jaký rozsah posílá. Ačkoliv tato vlastnost není primárně určena k paralelním přenosům, mnoho tzv. download managerů ji k tomu využívá. 8 Z těchto důvodů se často od nezávislých přenosů upouští a nezávislá data se přenášejí sekvenčně jedním spojením. Později posílané zprávy se tak stávají zcela závislé na přenosu a doručení dřívějších zpráv.

14 1.3 Vrstva podpory paralelních přenosů Vrstva podpory paralelních přenosů Snahou je poskytnout aplikacím možnost využívat paralelní přenosy bez podstatnějších změn jejich struktury. Vrstvu podpory paralelních přenosů je tedy potřeba začlenit pod aplikační vrstvu 9. Paralelizace na síťové vrstvě (sekce 1.2.1) též není pro naše účely vhodná, zvoleno tedy bylo řešení na, resp. nad transportní vrstvou (sekce 1.2.2). Pro dílčí přenosy je použito TCP, zejména pro dostupnost, rozšířenost a snadnou implementovatelnost. Nevýhody použití TCP zmíněné v lze v současné fázi vývoje zanedbat. Uplatnění TCP též dovoluje zkoumat chování paralelních přenosů ve vztahu ke klasickým TCP přenosům Požadavky kladené na paralelizační vrstvu Řešení by mělo vyhovovat následujícím nárokům: flexibilita paralelního přenosu, možnost nastavovat parametry voláním API, jednoduchost pro uživatele použití vycházející ze standardního rozhraní BSD soketů. Ani specifická volání API by většinou neměla být nutná v případě testů existujících aplikací se systémem by implicitní parametry mělo být možné nastavit pomocí konfiguračního souboru knihovny, možnost použití alternativních algoritmů a strategií dělení dat mezi přenosy a jejich rekonstrukce. Možnosti na této úrovni jsou rozmanité, proto by knihovna měla zároveň sloužit jako framework pro implementaci dalších algoritmů/strategií, schopnost automatického vyjednání parametrů (počet dílčích přenosů, algoritmus) při spojování, možnost relativně snadného vývoje alespoň v počátečních fázích, malá zátěž CPU a sběrnic, maximálně konkurentní běh všech komponent. Tzn. instance protokolu paralelních přenosů nesmí omezovat (blokovat) aplikaci ani sebe navzájem. Naopak činnost/nečinnost aplikace nesmí blokovat protokol. Framework pro alternativní algoritmy paralelního přenosu musí umožňovat vzájemné neblokování jednotlivých přenosů (ačkoliv konkrétní algoritmus může definovat závislosti), zobecnitelnost; struktura systému by měla posloužit dalšímu výzkumu, měla by se hodit i pro případnou implementaci v jádře OS. 9 Zde máme na mysli funkční význam vrstvy; technicky může implementace pracovat právě na aplikační vrstvě.

15 1.3 Vrstva podpory paralelních přenosů 16 Základy architektury by mělo být možné použít pro tato na sebe navazující zobecnění: 1. oddělení kontextu řízení paralelizačního protokolu a uživatele paralelního soketu na různé výpočetní uzly, 2. uživatelem paralelního soketu se stane více uzlů; jinými slovy data bude generovat/zpracovávat více uzlů, ale protokol se bude provádět centrálně, 3. plná distribuce provádění protokolu (tzn. i protokol se bude provádět na více uzlech).

16 17 Kapitola 2 Návrh systému Tato kapitola se zabývá koncepcemi realizace paralelizačního systému postaveného nad transportní vrstvou (viz sekce 1.3 na str. 15). Diskutovány jsou klíčové funkce systému, možnosti, jak je uskutečnit, a zvolená řešení. Deklarace záměru. Cílem je vytvořit knihovnu podpory paralelních přenosů pro uživatelské aplikace splňující požadavky ze sekce Dílčí přenosy budou uskutečněny protokolem TCP s využitím standardních BSD soketů. Hlavním výstupem bude sdílená knihovna a příslušné hlavičkové soubory. Implementační platforma. Projekt je implementován v jazyce C a používá POSIX vlákna. Hlavní vývojovou a testovací platformou pro koncové stanice je OS Linux. Plánovány jsou také testy na jiných systémech. 2.1 Způsob dělení dat do dílčích přenosů Jedním z požadavků na systém je podpora více algoritmů paralelního přenosu. Mezi nejdůležitější charakteristiky algoritmu patří strategie dělení dat do dílčích přenosů. Aby systém mohl pokrýt různé přenosové algoritmy, je vhodné způsoby dělení dat do přenosů zmapovat Deterministické dělení V případě deterministického dělení vysílač v každém okamžiku ví, kterým dílčím přenosem bude odesílat následující blok dat. Přijímač zase vždy zná dílčí přenos, z něhož získá očekávaná data. Mezi algoritmy s deterministickým dělením patří round-robin a jeho modifikace. i-tý blok se pošle i mod n -tým dílčím přenosem. Bloky mohou mít konstantní nebo variabilní

17 2.2 Kontext provádění protokolu 18 velikost. Variabilní velikost bloku umožňuje paralelní přenos přizpůsobovat požadavkům aplikace a stavu sítě (na základě statistických údajů). Na druhou stranu bloky o variabilní délce je potřeba doplnit o údaj s jejich délkou. Další informace o algoritmu round-robin se nachází v sekci na str Nedeterministické dělení V tomto případě přijímač a/nebo vysílač nemusí vždy znát dílčí přenos použitý pro následující transfer. Typickým příkladem nedeterministického dělení je řešení, kdy je použitý přenos určován oznámením nižší vrstvy o připravenosti k odeslání/příjmu (tento přístup tvoří základ algoritmu pollall sekce na str. 35). Nedeterministické dělení je flexibilnější než deterministické, umožňuje algoritmu okamžitou reakci na změny v síti a jiné události, usnadňuje případnou rekonfiguraci paralelního přenosu. Naproti tomu vyžaduje, aby s jednotlivými bloky byla přenášena i synchronizační informace (např. v podobě číslování bloků), což také klade vyšší nároky na výpočetní výkon koncových stanic. Ověření funkce. Účinnost přenosu pomocí paralelních TCP spojení a metody roundrobin ukazuje [13]. Pro ověření základních vlastností paralelního přenosu s nedeterministickým dělením přenášených dat byla vytvořena zjednodušená verze paralelizačního systému. Implementován byl algoritmus, který odesílá bloky dle připravenosti soketů, a byla provedena základní měření [3]. Nároky na systém. Je zřejmé, že různé přístupy distribuce dat v rámci paralelního přenosu kladou různé nároky na činnost systému. Zatímco deterministické je méně náročné a většina operací pro jeho zajištění navazuje na aplikační volání systému, u nedeterministického dělení je obvykle potřebné řadu úkonů provádět nezávisle na běhu aplikace. Dělení a rekonstrukce přenášených dat představují klíčové úkoly protokolu paralelizačního systému, a jsou proto zohledněny i v následující sekci, věnované způsobu implementace protokolu. 2.2 Kontext provádění protokolu Běh systému tohoto druhu vyžaduje uchovávat mnoho stavových informací a reagovat na různé události jako připravenost dílčího přenosu či zprávu protistrany. Obecně tuto činnost budeme nazývat provádění protokolu.

18 2.2 Kontext provádění protokolu Provádění protokolu v kontextu aplikačního programu Tento způsob lze též označit jako synchronní provádění, neboť místa přechodů mezi aplikačním programem a kódem realizujícím protokol jsou jasně dána. Při provádění netriviálního protokolu v rámci volání sdílené knihovny hrozí, že jeho funkce utrpí dlouhými intervaly mezi knihovními voláními a že v okamžicích volání naopak vzniknou zbytečné prostoje. 1 Mezi možnosti, jak tyto potíže zmírnit, patří: Kooperace ze strany aplikace v podobě konvencí používání speciálních knihovních volání (hooků). Na unixových systémech jsou obzvlášť výhodné funkce (wrappery, obálky) obalující volání poll(), select(), sleep() apod. Knihovna pak může čekat na časové události ( timeouty ) spolu s událostmi na svých a uživatelových souborových deskriptorech najednou. Tato metoda je implementována např. v knihovně sctplib [9]. Programování řízené událostmi. Uživatel knihovně oznámí události, které jej zajímají, a obslužné funkce (handlery, callbacky), které je budou obsluhovat. Poté předá knihovně řízení. Při výskytu daných událostí knihovna volá obslužné funkce oznámené aplikací. V podstatě se ale jedná o původní problém obrácený naruby. V předchozím případě mohl uživatel zablokovat protokol nevoláním knihovních funkcí. Tentýž efekt nastává i v tomto případě, pokud aplikační obsluha trvá neúměrně dlouho. Metoda je vhodná tam, kde je běh programu zcela podřízen síťovým událostem. Využívá ji opět sctplib [9] nebo např. LIBPCAP [12] Asynchronní provádění protokolu V tomto případě je kód protokolu aktivován nezávisle na běhu aplikace, ta se tedy nemusí o nic starat. Vzhledem k požadavkům ze sekce a nárokům různých přístupů dělení dat bylo zvoleno právě toto řešení. Asynchronní provádění protokolu lze technicky zajistit dvěma způsoby. Prvním z nich je přímá aktivace kódu protokolu, zejména pomocí přerušení. Tato metoda se používá v jádře operačního systému; v omezené míře ji lze použít i v uživatelském prostoru při vhodném nastavení generování a obsluh signálů. 2 Druhým způsobem je provádění protokolu v samostatném vlákně, kdy se o přepínání kontextu stará operační systém. 1 Např. při každém čtení algoritmem s nedeterministickým dělením dat by bylo potřeba vyzvednout události na dílčích přenosech, přečíst hlavičky přijatých bloků, naplánovat jejich příjem a obsloužit případné zprávy od protistrany. Teprve pak by mohla operace pokračovat. 2 Sledování událostí na souborových deskriptorech lze zajistit nastavením F SETSIG pomocí fcntl(), časové události lze plánovat voláním alarm().

19 2.3 Architektura systému 20 Poněvadž první zmíněný přístup je pro implementaci v uživatelském prostoru poměrně problematický 3, byl zvolen způsob, kdy se protokol provádí v samostatném vlákně. Aby byly výhody asynchronního přístupu maximálně využity, budeme navíc klást na kód projektu tyto požadavky: Kód provádějící protokol smí uskutečňovat jen taková blokující volání, která čekají na všechny události relevantní pro daný stav instance protokolu. Kód sdílené knihovny musí být časově i paměťově nenáročný. Blokovat smí ve dvou případech. Jednak záměrně, pokud to vyžaduje sémantika prováděné operace, např. paccept() při čekání na spojení. Jednak při potřebě komunikace typu požadavek/odpověď s vláknem, v němž je prováděn protokol předchozí nárok na kód provádějící protokol zaručuje rychlou odezvu. 2.3 Architektura systému Základní koncepci navrženého systému psock zachycuje obr Klíčovou roli hrají dvě komponenty: Vlákno protokolu (Protocol Thread, Protocol Space) je program realizující chod protokolu. Zejména reaguje na události na deskriptorech dílčích přenosů, požadavky uživatele, požadavky z Library Space, zprávy protistrany a časové události. Library Space je kód využívající služeb vlákna protokolu; zahrnuje jednak uživatelský program, jednak implementaci sdílené knihovny nazvané psock-mt 4. Knihovnu volá uživatel prostřednictvím jejího API, ta provádí potřebné úkony včetně vlastní komunikace s vláknem protokolu. Knihovna plní i další úlohu snaží se vytvořit obálky (wrappery) některých systémových funkcí tak, aby bylo možné existující síťové programy upravit pro využití psock s co nejmenšími zásahy. Pod pojmem Library Space se bude nadále rozumět především implementace sdílené knihovny psock-mt Komunikace s vláknem protokolu Vlákno protokolu a aplikační program spolu musí komunikovat. Pro vzájemnou komunikaci Library Space a Protocol Space definujeme komunikační rozhraní, dále označované 3 Jedním z důvodů je nemožnost koexistence s obsluhami signálů, které definuje uživatel nebo které používají některá knihovní volání, např. sleep(). 4 psock multithreaded.

20 2.3 Architektura systému 21 Library Space User API Protocol Thread Association Association Distribution Distribution Dispatching Dispatching Scheduling Scheduling (7) (8) (6) (9) (10) Control Control Engine Engine (5) (4) Dispatching Dispatching Execution Execution (1) (2) (3) Operating System Operating System (allocated (allocated control sockets) control sockets) Operating Operating System System (allocated (allocated data sockets) data sockets) Obrázek 2.1: Architektura systému psock PSCIF 5. Toto rozhraní je pro větší flexibilitu návrhu definováno obecně, bez předepsané implementace. Ve verzi psock běžící v rámci jedné stanice může být realizováno jako sdílená paměť, unixový soket, fronta zpráv; v případné pozdější distribuované verzi psock může jít o UDP nebo TCP soket či volání knihovny MPI Sdílení soketů dílčích přenosů Pro minimalizaci komunikační režie lze využít faktu, že kontexty vlákna protokolu a Library Space sdílí souborové deskriptory. Bude-li korektně vyřešena synchronizace a bude-li kód Library Space vědět, kdy a jakým způsobem, z kterých dílčích přenosů a v jakém pořadí má přijímat data, může vyřizovat uživatelské požadavky na příjem dat a tato umisťovat přímo do bufferu poskytnutého uživatelem. Analogicky, bude-li Library Space 5 Parallel Socket Controller Interface. 6 Message Passing Interface,

21 2.3 Architektura systému 22 vědět, které dílčí přenosy použít k odesílání a jak, může přímo odesílat uživatelská data bez nutnosti použití pomocného bufferu. Úloha vlákna protokolu pak bude spočívat ve sledování událostí na soketech, zpracování řídicích informací a předávání instrukcí Library Space. Stejný přístup lze aplikovat i v případě, že je možné použít duplikované deskriptory tedy takové, které reprezentují tentýž soket. Toho lze využít pro zajištění dědění paralelního soketu při volání fork(). Princip oddělení datového a řídícího přístupu k dílčím přenosům lze dále uplatnit i při pozdějším rozšíření psock na distribuovanou verzi Rozvrh paralelního přenosu Sdílení soketů dílčích přenosů umožňuje eliminovat kopírování dat mezi Library Space a vláknem protokolu. Aby byl Library Space schopen samostatně provádět příjem a odesílání dat, udržuje pro každý logický přenos datovou strukturu rozvrh, obsahující instrukce, jak má tyto činnosti provádět (které dílčí přenosy použít, kolik dat po nich poslat atd.). Tabulka 2.1 zachycuje ukázku, jak může vypadat rozvrh pro tři dílčí přenosy. Rozvrh obsahuje nezávislé pozice pro čtení a pro zápis. Každá pozice obsahuje identifikátor dílčího přenosu ( kanonický index ) a délku bloku k přenosu. 7 Dále si knihovna pamatuje pozice v rozvrhu pro čtení i pro zápis. Má-li provést operaci, pro niž není aktuální pozice v rozvrhu vyplněna, musí počkat, až ji obdrží od vlákna protokolu. 8 Pozice obou rozvrhů jsou využívány cyklicky. Pozice v rozvrhu Kanonický index dílčího přenosu; délka bloku čtení 2; ; 1448 Kanonický index dílčího přenosu; délka bloku zápis 0; ; 1448 Pozice v rozvrhu pro čtení 0 Pozice v rozvrhu pro zápis 1 Tabulka 2.1: Příklad rozvrhu paralelního přenosu Protocol Space potřebuje k tvorbě záznamů (instrukcí) přijímacího a vysílacího rozvrhu zejména následující podklady: události na soketech dílčích přenosů, hlavičky datových bloků z dílčích přenosů, notifikace o provedeném příjmu/odeslání bloku a jeho výsledku. 7 Ve skutečné implementaci obsahuje i další informace. 8 V případě neblokujících volání vrátí chybu.

22 2.4 Řídicí komunikace s protistranou 23 Dostupnost prvních dvou uvedených je zajištěna sdílením souborových deskriptorů, třetí podklad zajišťuje rozhraní PSCIF. Protocol Space má tedy všechny informace potřebné pro tvorbu rozvrhu a do Libary Space je předává opět pomocí PSCIF. 2.4 Řídicí komunikace s protistranou Kromě přenosu datových bloků dílčími přenosy je také potřeba určitá výměna metainformací, zejména při navazování a ukončování spojení. Pro tento účel je dedikováno tzv. řídící spojení (Control Stream). Kromě přenosu řídících zpráv též slouží k reprezentaci celého paralelního soketu adresa paralelního soketu je ve skutečnosti adresou jeho řídícího soketu. Koncové stanice si vyměňují následující řídící zprávy. HELLO iniciační zpráva, zasílaná ihned po spojení řídícího streamu. Obsahuje: identifikátor protokolu zabraňující špatné interpretaci náhodného spojení s jiným protokolem, verzi psock, která se skládá ze trojice: major a minor verze, patchlevel. Aby stanice mohly komunikovat, musí se major a minor verze shodovat. doporučený n rcmd a maximální n max počet dílčích přenosů, identifikátor ovladače paralelního přenosu (viz sekce na str. 35), prioritu požadovaného ovladače paralelního přenosu. Na zprávu HELLO stanice neodpovídají, neboť obě strany jsou schopny určit potřebné parametry počet dílčích přenosů a ovladač ihned po jejím přijetí. Počet dílčích přenosů n se vypočte jako n = min(max(n rcmd,1, n rcmd,2 ), n max,1, n max,2 ). (2.1) Ovladač se vybírá na základě oznámených priorit; jsou-li stejné, upřednostní se navazující strana. STREAM ANNOUNCE touto zprávou se druhé straně oznamují informace o dostupných datových soketech: dostupný mód soketu (aktivní, pasivní, oba), adresa, na níž bude datový soket naslouchat, resp. z které se bude připojovat, identifikátor tzv. svazku přenosů rezervován pro pozdější využití; bude sloužit k ovlivnění způsobu, jakým se mají dílčí přenosy sdružovat, identifikátor trasy rezervován pro pozdější využití.

23 2.5 Životní cyklus paralelního spojení 24 Po přijetí zprávy se vypočte párování soketů. Není-li dosažen potřebný počet dvojic, lze seznam nabízených soketů upravit a poslat zprávu znovu. Poznámka 2.1 Zprávy HELLO a STREAM ANNOUNCE nepoužívají systém dotaz/odpověď, jak je zvykem v modelu klient/server. Využívá se plného duplexu a zprávy jsou posílány proti sobě (viz též obr. 2.3). Odpověď se posílá pouze v případě chyby. Postup má za cíl zkrátit dobu navazování spojení. SHUTDOWN oznámení o finalizaci paralelního přenosu. Formálně se vyskytuje ve dvou variantách žádost a odpověď. Obsah zprávy je určen ovladačem paralelního přenosu, typicky je to číslo posledního odeslaného bloku. Ukončování přenosu zpravidla probíhá tak, že jej jedna strana iniciuje žádostí SHUTDOWN a druhá zareaguje odpovědí SHUTDOWN. Stanice ale musí počítat i se situací, kdy dojde k současnému vyslání žádostí SHUTDOWN. Přesný formát zpráv se nachází v souboru src/include/net/psock/psockmsg.h v implementaci projektu. 2.5 Životní cyklus paralelního spojení Dosud byla diskutována především činnost při přenosu dat. Nicméně než je možné přenos zahájit, musí paralelní soket projít několika iniciačními fázemi. Stejně tak po uzavření je potřeba provést finalizaci. Vývoj paralelního spojení s vybranou částí přechodů měnících stav je zachycen na obr Stav paralelního spojení a další data podstatná pro paralelní přenos je udržován v datové struktuře PCB Parallel Stream Transmission Control Block, přesnou definici uvádí sekce 3.1 na str. 31. Vysvětlení významu znázorněných stavů přináší následující část Stavy paralelního spojení CLOSED je iniciální a finální stav paralelního soketu. Z hlediska komunikačního protokolu jde o fiktivní stav (podobně jako v definici TCP [14]). LISTEN je stav vznikající při pasivním otevřením soketu. Řídící soket je též ve stavu LISTEN a čeká na příchozí spojení. Po jeho příchodu se vytvoří nový PCB a od PCB naslouchajícího paralelního soketu zdědí většinu vlastností. Pomocí spojeného řídícího soketu je protistraně zaslána zpráva HELLO a nový PCB přechází do stavu HELLO WAIT.

24 2.5 Životní cyklus paralelního spojení 25 CONNECTING vzniká aktivním otevřením paralelního soketu, s přechodem do tohoto stavu se iniciuje navazování řídícího spojení s protistranou. Po navázání je zaslána zpráva HELLO a PCB přechází do stavu HELLO WAIT. HELLO WAIT je stav, v němž se čeká na přijetí zprávy HELLO od protistrany. Po přijetí HELLO je určen počet spojení pro dílčí přenosy dle vztahu (2.1) a je vybrán ovladač paralelního spojení. Poté obě strany vyhradí potřebný počet adres koncových bodů 9 a oznámí je protistraně pomocí zprávy STREAM ANNOUNCE. S odesláním této zprávy paralelní soket přechází do stavu STREAM ANNOUNCE WAIT. STREAM ANNOUNCE WAIT soket čeká na zprávu STREAM ANNOUNCE, viz též sekce 2.4. Po úspěšném výpočtu párování soketů se přechází do stavu ESTAB- LISHING. ESTABLISHING v této fázi se navazují spojení mezi sokety dílčích přenosů. Navazující strana se připojuje na adresy oznámené naslouchající stranou zprávou STREAM ANNOUNCE; naslouchající strana dovolí spojení pouze z adres, které byly oznámeny ve zprávě STREAM ANNOUNCE její protistrany. S navázáním posledního dílčího spojení paralelní soket přechází do stavu ESTABLISHED. ESTABLISHED je stav, v němž je paralelní soket většinu času své existence. Paralelní soket tuto fázi opouští buď na žádost protistrany a po jejím potvrzení přechází do SHUTDOWN RECEIVED, nebo na žádost uživatele, kdy po zaslání zprávy SHUTDOWN protistraně přechází do SHUTDOWN SENT. V obou případech stanice zahájí vyprazdňování zbylých dat v bufferech. Zpracování těchto dat určuje ovladač paralelního přenosu. SHUTDOWN SENT je stav, kdy finalizace paralelního spojení byla zahájena uživatelem, ale ještě nebyla potvrzena protistranou, a přenos dat nebyl ukončen. SHUTDOWN RECEIVED je stav, kdy finalizace paralelního spojení byla oznámena protistranou, ale ne uživatelem, a přenos dat nebyl ukončen. SHUTDOWN APPROVED je stav, kdy finalizace paralelního spojení byla oznámena uživatelem i protistranou, nicméně přenos dat nebyl zcela ukončen. SHUTDOWN WAIT je stav, kdy se s uvolněním prostředků paralelního přenosu čeká pouze na oznámení od uživatele. SHUTDOWN ACK WAIT je stav, kdy se s uvolněním prostředků paralelního přenosu čeká pouze na oznámení od protistrany. 9 Tedy dvojic IP adresa, port.

25 2.5 Životní cyklus paralelního spojení 26 Poznámka 2.2 Tzv. half open spojení, známá z TCP, nejsou v současné verzi návrhu zahrnuta. Nicméně bude-li tato funkcionalita v budoucnosti potřebná, změny si vyžádají jen malé úpravy. Lepší pohled na časovou souvztažnost událostí vývoje paralelního soketu přináší obrázky 2.3 a 2.4. Zprávy protokolu psock jsou na obrázcích zobrazeny tlustou čarou, významné pakety protokolu TCP jsou značeny tence. Zprávy protokolu psock se předávají spolehlivým kanálem (proto nejsou vyznačena potvrzení protokolu nižší vrstvy). V obrázku 2.3 stojí za zmínku určení počtu dílčích přenosů ze zpráv HELLO(n rcmd, n max ) dle vztahu (2.1). K obrázku 2.4 poznamenejme, že přesný průběh ukončování spojení závisí na vzájemném pořadí následujících tří událostí: ukončení spojení na požadavek uživatele, ukončení na požadavek protistrany a dokončení komunikace na dílčích přenosech to ostatně plyne z diagramu na obr Obrázek zachycuje jednu z možností (datové pakety dílčích přenosů jsou pro přehlednost vynechány).

26 2.5 Životní cyklus paralelního spojení 27 CONNECTING passive open LISTEN active open / connect control stream CLOSED control stream connected / send hello HELLO_WAIT accept on control stream / duplicate pcb, send hello recv hello / send stream announce STREAM_ANNOUNCE_WAIT recv stream announce ESTABLISHING establishment of a pstream establishment of the last pstream recv shutdown / send ack ESTABLISHED shutdown / send shutdown recv shutdown ack SHUTDOWN_SENT recv shutdown / (ptransfer driver specific) flush_end SHUTDOWN_RECEIVED shutdown SHUTDOWN_APPROVED flush_end flush_end SHUTDOWN_WAIT shutdown recv shutdown ack SHUTDOWN_ACK_WAIT CLOSED recv shutdown / (ptransfer driver specific) Obrázek 2.2: Přechodový diagram paralelního soketu (zjednodušeno)

27 2.5 Životní cyklus paralelního spojení 28 CLOSED Control stream SYN CONNECTING Control stream SYN+ACK LISTEN Control stream ACK HELLO(2,4) HELLO(3,5) HELLO WAIT HELLO WAIT STREAM ANNOUNCE STREAM ANNOUNCE WAIT STREAM ANNOUNCE pstream 1 SYN STREAM ANNOUNCE WAIT pstream 2 SYN pstream 3 SYN pstream 1 SYN+ACK ESTABLISHING pstream 2 SYN+ACK pstream 1 ACK pstream 3 SYN+ACK ESTABLISHING pstream 2 ACK pstream 3 ACK ESTABLISHED ESTABLISHED Obrázek 2.3: Navazování paralelního spojení

28 2.5 Životní cyklus paralelního spojení 29 ESTABLISHED Shutdown by user SHUTDOWN REQUEST ESTABLISHED SHUTDOWN SEND SHUTDOWN APPROVED Flushing pstream 1 Flushing pstream 2 Flushing pstream 3 pstream 1 FIN pstream 3 FIN pstream 2 FIN SHUTDOWN REPLY pstream 2 FIN pstream 1 FIN pstream 3 FIN Flushing pstream 1 Flushing pstream 2 Flushing pstream 3 SHUTDOWN RECIEVED CLOSED Control stream FIN SHUTDOWN WAIT Shutdown by user CLOSED Obrázek 2.4: Ukončování paralelního spojení

29 30 Kapitola 3 Implementace Paralelizační systém je implementován v uživatelském prostoru jako sdílená knihovna, která si pro svoji činnost vytváří pomocná výpočetní vlákna. Programátorské rozhraní (viz příloha B.1) se velmi podobá standardním voláním specifikací BSD a POSIX, aby bylo možné snadno zavést možnost používání paralelních přenosů do existujících aplikací. 3.1 Pojmy a struktury Tato sekce popisuje klíčové pojmy, vztahy a datové struktury použité v implementaci psock a jejím dále uvedeném popisu. Výčty uvádí jen nejdůležitější položky, podrobnější informace lze dohledat ve vygenerované dokumentaci zdrojových kódů. Protocol Space, Library Space viz sekce 2.3. pstream je dílčí přenos představovaný TCP spojením. Řídící přenos je TCP spojení určené k přenosu řídících zpráv pro paralelní přenos. Instance protokolu je představována běžícím stavovým automatem; odpovídá jí běžící vlákno protokolu. Zatímco u síťových technologií implementovaných v jádru monolitických operačních systémů je obvyklá jedna instance protokolu v rámci stanice, v současné implementaci v uživatelském prostoru připadá jedna instance protokolu na jeden paralelní přenos. Důvodem je zejména lepší spravovatelnost. Ovladač paralelního přenosu ptransfer driver je sada metod realizujících konkrétní algoritmus rozdělování dat do dílčích přenosů a jejich zpětné rekonstrukce (dispatching). Ovladač má dvě komplementární části: Ovladač paralelního přenosu ve vlákně protokolu ptransfer pdrv je na obrázku 2.1 reprezentován komponentou Dispatching Scheduling. Jeho vstupem jsou zejména zprávy s výsledky provedení instrukcí z Library Space (5) a události na dílčích přenosech (2).

30 3.1 Pojmy a struktury 31 Ovladač paralelního přenosu v Library Space ptransfer cdrv se používá při obsluze uživatelských požadavků. Provádí přenosové instrukce (viz část 2.3.3) a reaguje na výsledek jejich provedení. PCB (Parallel Stream Transmission Control Block) je datová struktura v Protocol Space sdružující informace o paralelním přenosu. Nese s sebou zejména tyto informace: referenci na instanci protokolu, do níž PCB patří, komunikační rozhraní PSCIF, umožňující obousměrnou komunikaci s Library Space, souborový deskriptor řídícího přenosu, datové struktury pro zpracování zpráv na řídícím přenosu, stav paralelního přenosu, hodnoty soketových nastavení (přístupné voláním setpsockopt() v úrovni SOL PSOCK), hodnoty platné jen pro PCB ve stavu LISTEN: backlog maximální počet příchozích spojení čekajících na převzetí uživatelem, seznam čekajících spojení, hodnoty platné pro PCB ve stavu CONNECTING a pozdějších: datové struktury odpovídající jednotlivým dílčím přenosům. Obsahují vždy deskriptor příslušného soketu, zbytek definuje použitý ovladač paralelního přenosu, vlastní ovladač paralelního přenosu, data algoritmu paralelního přenosu (význam dán použitým ovladačem paralelního přenosu), řadu dalších pomocných atributů. struct psock je datová struktura v Library Space obsahující informace, jež je potřeba uchovávat mezi jednotlivými uživatelskými voláními knihovny. Obsahuje zejména tato data: komunikační rozhraní PSCIF umožňující obousměrnou komunikaci s vláknem protokolu, odkaz na ovladač paralelního přenosu v Library Space, hodnoty platné jen pro stav LISTEN: seznam struktur psock odpovídajících příchozím spojením; při volání funkce paccept() je vytvořen deskriptor příchozího spojení a je předán uživateli,

31 3.2 Vlákno protokolu 32 struktury platné pro spojený paralelní soket: rozvrh instrukcí pro odesílání dat, rozvrh instrukcí pro příjem dat. 3.2 Vlákno protokolu Vztahy objektů v Protocol Space jsou znázorněny na obr Library Space (cut) PSCIF communication driver 2 Protocol Thread(s) Protocol instance, running state machine ptransfer driver B (Protocol space part) Control stream and control block psock s PSCIF interface PSCIF communication driver 1 PCB s PSCIF interface PCB pstream 1 pstream 2 pstream n psock s PSCIF interface Protocol instance, running state machine PCB s PSCIF interface PCB Control stream and control block pstream 1 pstream 2 pstream n ptransfer driver A (Protocol space part) Obrázek 3.1: Vztahy struktur v Protocol Space V hlavní smyčce vlákna protokolu se sledují obsluhované souborové deskriptory a časové události pomocí volání poll(). Obsluhovanými sokety jsou: řídící přenos, dílčí datové přenosy a rozhraní PSCIF pro komunikaci s Library Space, které je v současné verzi implementováno jako unixový soket. Po návratu z volání poll() jsou na základě jeho výsledků generovány příslušné události; ty jsou pak předány ke zpracování stavovému automatu Události Událost je identifikována dvěma čísly typem a podtypem. Události s sebou mohou nést datový argument.

32 3.2 Vlákno protokolu 33 Typy a podtypy událostí jsou: PSKEV T STREAM událost týkající se přenosů, patří sem: PSKEV DATA STREAMS POLL výskyt události na datových přenosech. Ve stavu ESTABLISHED a při zavírání spojení předáváno ke zpracování ovladači ptransfer pdrv. PSKEV CTL STREAM POLL vyskytla se událost na řídícím spojení. Využívá se při navazování spojení a pro obsluhu řídících zpráv. PSKEV DATA STREAMS ESTABLISHMENT událost generovaná ve stavu ESTABLISHING při spojení všech dílčích přenosů. PSKEV DATA STREAM HANGUP generováno při chybě na datovém přenosu. PSKEV CTL STREAM HANGUP generováno při chybě na řídícím přenosu. PSKEV DATA STREAMS FLUSH END generováno v závěrečné fázi života paralelního soketu při dokončení přenosu zbývajících dat. PSKEV T LIB2PROTO zprávy posílané vláknu protokolu z Library Space. Číslo (kód) zprávy se používá přímo jako podtyp události. Argumentem události je reference na přijatou zprávu. Definovány jsou tyto zprávy: PSKEV LIB2PROTO RECV INSTR RES oznámení výsledku provedení instrukce příjmu z pstreamu, PSKEV LIB2PROTO SEND INSTR RES oznámení výsledku provedení instrukce odeslání na pstream, PSKEV LIB2PROTO TRANSFER požadavek na datový přenos mezi knihovnou a protokolem, využívá se zřídka, 1 PSKEV LIB2PROTO PSOCKCTL zahrnuje různé požadavky na vlákno protokolu, mezi tyto požadavky patří mj. nastavení a dotazy na vlastnosti soketu nebo protokolu v rámci volání setpsockopt() a getpsockopt(), PSKEV LIB2PROTO BIND pojmenování soketu, aplikuje se na řídící stream, PSKEV LIB2PROTO PASSIVE OPEN příkaz k přechodu PCB do režimu LISTEN, PSKEV LIB2PROTO ACTIVE OPEN příkaz ke spojení se vzdáleným systémem, 1 V současné verzi se tyto přenosy nepoužívají. Význam budou mít zejména při rekonfiguraci dílčích přenosů.

33 3.2 Vlákno protokolu 34 PSKEV LIB2PROTO SHUTDOWN příkaz ke korektnímu ukončení protokolu, PSKEV LIB2PROTO ABORT násilné zrušení paralelního soketu. PSKEV T CTLMSG řídící zprávy od vzdáleného systému. Podtyp události je odvozen z kódu zprávy jako 2(msg code 1) + (is reply? 1 : 0). Argumentem události je reference na přijatou zprávu Reakce na událost Na základě stavu PCB, typu a podtypu události se určí obslužná funkce. 2 Popis činnosti obslužných funkcí přesahuje rámec tohoto dokumentu; v případě zájmu lze informace dohledat ve zdrojových kódech, startovním místem je soubor src/net/psock/ sm funcs.inc.h. Po provedení obslužné funkce a případném obsloužení výjimečných stavů se pokračuje další iterací hlavní smyčky. Zprávy zasílané do Library Space Zprávy zasílané vláknem protokolu do Library Space představují buď reakce na přímý požadavek Library Space, nebo asynchronní oznámení, která jsou generována na základě jiných událostí. Počítá se s tím, že Library Space asynchronní zprávy zpracuje až v momentě uživatelského volání knihovny neočekává se okamžité zpracování a počet asynchronních zpráv je omezený. Asynchronních zpráv je jen několik druhů, přičemž většina je tvořena instrukcemi pro rozvrh paralelního přenosu. Jelikož rozvrh má danou velikost, je právě ta omezením počtu asynchronně zaslaných instrukcí. Předávání instrukcí pro paralelní rozvrh probíhá následujícím způsobem: jakmile vlákno protokolu zjistí, že je možné naplánovat příjem, resp. vyslání nějakého bloku z/do některého dílčího přenosu, odešle do Library Space instrukci PSKEV PROTO2LIB - RECV INSTR, resp. PSKEV PROTO2LIB SEND INSTR a přestane se zajímat o připravenost daného dílčího přenosu pro čtení, resp. zápis. Až Library Space instrukci vyzvedne, zařadí ji na příslušné místo svého rozvrhu. Teprve po jejím provedení zasílá zprávu PSKEV LIB2PROTO RECV INSTR RES, resp. PSKEV LIB2PROTO SEND INSTR - RES spolu s výsledkem. Poté může vlákno protokolu obnovit sledování připravenosti daného dílčího přenosu pro čtení, resp. zápis. Poznamenejme, že plánování rozvrhu paralelního přenosu nemusí nutně probíhat uvedeným způsobem. V případě jednoduchého algoritmu přenosu, jako je round-robin, by byl výše uvedený postup zbytečně těžkopádný. Proto instrukce mohou být generovány 2 Kompletní tabulka přechodů je v souborech doc/statetable.* ve stromu projektu. Optimalizovaná tabulka obslužných funkcí v jazyce C je generována programem scripts/gen state table.

Paralelizace datových přenosů

Paralelizace datových přenosů Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě Martin Čížek Vedoucí: Ing. Antonín Král Katedra počítačů FEL ČVUT Zimní semestr 2005 Martin Čížek (FEL ČVUT) Paralelizace datových přenosů

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Zabezpečení dat při přenosu

Zabezpečení dat při přenosu Zabezpečení dat při přenosu Petr Grygárek rek 1 Komunikace bez spojení a se spojením Bez spojení vysílač může datové jednotky (=rámce/pakety) zasílat střídavě různým příjemcům identifikace příjemce součástí

Více

Počítačové sítě Transportní vrstva. Transportní vrstva

Počítačové sítě Transportní vrstva. Transportní vrstva UDP TCP Rozhraní služeb Rozhraní protokolů 17 6 ICMP IGMP OSPF 01 02 89 SAP Síťová vrstva IP Rozhraní přístupu k I/O ARP Ethernet driver RARP Vrstva síťového rozhraní 1 DATA Systém A Uživatel transportní

Více

Identifikátor materiálu: ICT-3-03

Identifikátor materiálu: ICT-3-03 Identifikátor materiálu: ICT-3-03 Předmět Téma sady Informační a komunikační technologie Téma materiálu TCP/IP Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí architekturu TCP/IP. Druh

Více

Procesy a vlákna (Processes and Threads)

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

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. 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

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_31_20 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

Přednáška 3. Opakovače,směrovače, mosty a síťové brány

Přednáška 3. Opakovače,směrovače, mosty a síťové brány Přednáška 3 Opakovače,směrovače, mosty a síťové brány Server a Client Server je obecné označení pro proces nebo systém, který poskytuje nějakou službu. Služba je obvykle realizována některým aplikačním

Více

6. Transportní vrstva

6. Transportní vrstva 6. Transportní vrstva Studijní cíl Představíme si funkci transportní vrstvy. Podrobněji popíšeme protokoly TCP a UDP. Doba nutná k nastudování 3 hodiny Transportní vrstva Transportní vrstva odpovídá v

Více

Y36PSI Protokolová rodina TCP/IP

Y36PSI Protokolová rodina TCP/IP Y36PSI Protokolová rodina TCP/IP Jan Kubr - Y36PSI 1 11/2008 Program protokol síťové vrstvy IP podpůrné protokoly ICMP RARP, BOOTP, DHCP protokoly transportní vrstvy UDP TCP Jan Kubr - Y36PSI 2 11/2008

Více

Analýza aplikačních protokolů

Analýza aplikačních protokolů ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová

Více

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická TCP, UDP, Katedra počítačů Fakulta elektrotechnická 10. května 2007 Přehled 1 2 TCP a sokety obecně TCP klient TCP server 3 UDP klient UDP server 4 Sít ová spojení nad sít ovou vrstvou (typicky protokol

Více

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Počítačové sítě Počítačová síť je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Základní prvky sítě Počítače se síťovým adaptérem pracovní

Více

Zajištění kvality služby (QoS) v operačním systému Windows

Zajištění kvality služby (QoS) v operačním systému Windows VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows

Více

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

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

Více

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly. 7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům

Více

JAK ČÍST TUTO PREZENTACI

JAK ČÍST TUTO PREZENTACI PŘENOSOVÉ METODY V IP SÍTÍCH, S DŮRAZEM NA BEZPEČNOSTNÍ TECHNOLOGIE David Prachař, ABBAS a.s. JAK ČÍST TUTO PREZENTACI UŽIVATEL TECHNIK SPECIALISTA VÝZNAM POUŽÍVANÝCH TERMÍNŮ TERMÍN SWITCH ROUTER OSI

Více

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

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které

Více

Management procesu I Mgr. Josef Horálek

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

Více

Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti

Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti 1 Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti Oblast techniky V oblasti datových sítí existuje různorodost v použitých přenosových technologiích. Přenosové systémy

Více

PB169 Operační systémy a sítě

PB169 Operační systémy a sítě PB169 Operační systémy a sítě Zabezpečení počítačových sítí Marek Kumpošt, Zdeněk Říha Zabezpečení sítě úvod Důvody pro zabezpečení (interní) sítě? Nebezpečí ze strany veřejného Internetu Spyware Malware

Více

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 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

Více

Profibus (EN 50170) Standard pro distribuované průmyslové řízení. Distribuované systémy: ISO 7498 (Open System Interconnect)

Profibus (EN 50170) Standard pro distribuované průmyslové řízení. Distribuované systémy: ISO 7498 (Open System Interconnect) Profibus (EN 50170) Standard pro distribuované průmyslové řízení Distribuované systémy: ISO 7498 (Open System Interconnect) Aplikační vrstva (Application Layer) Presentační vrstva (Presentation Layer)

Více

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 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í

Více

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování Cílem tohoto tematického celku je poznat formát internet protokolu (IP) a pochopit základní principy jeho fungování včetně návazných

Více

L2 multicast v doméně s přepínači CISCO

L2 multicast v doméně s přepínači CISCO L2 multicast v doméně s přepínači CISCO Vojtěch Kotík (KOT0084) Abstrakt: Tento dokument se zabývá šířením L2 multicastu v doméně složené z přepínačů Cisco. Obsahuje stručný popis technologie a jejích

Více

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) 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)

Více

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23 Y36PSI QoS Jiří Smítka Jan Kubr - 8_rizeni_toku Jan Kubr 1/23 QoS - co, prosím? Quality of Services = kvalita služeb Opatření snažící se zaručit koncovému uživateli doručení dat v potřebné kvalitě Uplatňuje

Více

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI 1 Architektura SCSI 2 ParalelnírozhraníSCSI Sběrnice typu multimaster. Max. 8 resp. 16 zařízení. Různé elektrické provedení SE (Single Ended) HVD (High Voltage Differential) LVD (Low Voltage Differential)

Více

Počítačové sítě II. 14. Transportní vrstva: TCP a UDP. Miroslav Spousta, 2005

Počítačové sítě II. 14. Transportní vrstva: TCP a UDP. Miroslav Spousta, 2005 Počítačové sítě II 14. Transportní vrstva: TCP a UDP Miroslav Spousta, 2005 1 Transportní vrstva přítomná v ISO/OSI i TCP/IP zodpovědná za rozšíření vlastností, které požadují vyšší vrstvy (aplikační)

Více

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Obranné valy (Firewalls) Vlastnosti Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Filtrování paketů a vlastnost odstínění Různé

Více

EXTRAKT z technické normy ISO

EXTRAKT z technické normy ISO EXTRAKT z technické normy ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Kooperativní ITS Zkušební architektura ISO/TS 20026

Více

Řízení toku v přístupových bodech

Řízení toku v přístupových bodech Řízení toku v přístupových bodech Lukáš Turek 13.6.2009 8an@praha12.net O čem to bude Co způsobuje velkou latenci na Wi-Fi? Proč na Wi-Fi nefunguje běžný traffic shaping? Je možné traffic shaping vyřešit

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky 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 rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

EXTRAKT z technické normy CEN ISO

EXTRAKT z technické normy CEN ISO EXTRAKT z technické normy CEN ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Kooperativní ITS Zařízení stanice ITS pro přenos

Více

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly. 4. Síťová vrstva Studijní cíl Představíme si funkci síťové vrstvy a jednotlivé protokoly. Doba nutná k nastudování 3 hodiny Síťová vrstva Síťová vrstva zajišťuje směrování a poskytuje jediné síťové rozhraní

Více

CAL (CAN Application Layer) a CANopen

CAL (CAN Application Layer) a CANopen CAL (CAN Application Layer) a CANopen J. Novák České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Průmyslový distribuovaný systém na bázi sběrnice CAN Pressure sensor Stepper

Více

Vlastnosti podporované transportním protokolem TCP:

Vlastnosti podporované transportním protokolem TCP: Transportní vrstva Transportní vrstva odpovídá v podstatě transportní vrstvě OSI, protože poskytuje mechanismus pro koncový přenos dat mezi dvěma stanicemi. Původně se proto tato vrstva označovala jako

Více

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

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 35.240.60 materiálem o normě. Komunikační infrastruktura pro pozemní mobilní zařízení (CALM) Architektura

Více

Analýza protokolů rodiny TCP/IP, NAT

Analýza protokolů rodiny TCP/IP, NAT Analýza protokolů rodiny TCP/IP, NAT Počítačové sítě 7. cvičení ARP Address Resolution Protocol mapování IP adres na MAC adresy Při potřebě zjistit MAC adresu k IP adrese se generuje ARP request (broadcast),

Více

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

Přidělování CPU Mgr. Josef Horálek Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování

Více

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

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic. Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící

Více

Architektura připojení pro kritické sítě a služby

Architektura připojení pro kritické sítě a služby Architektura připojení pro kritické sítě a služby Tomáš Košňar CESNET 12. 6. 2018 CSNOG ..k zamyšlení neexistuje univerzální řešení pro všechny případy..k motivaci stabilita a spolehlivost služeb má klíč

Více

Přijímací zkouška - informatika

Přijímací zkouška - informatika Přijímací zkouška - informatika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Algoritmizace a datové struktury 1 Předpokládejme existenci oboustranně spojovaného seznamu prvků (list),

Více

3.17 Využívané síťové protokoly

3.17 Využívané síťové protokoly Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Střední průmyslová škola strojnická Vsetín CZ.1.07/1.5.00/34.0483 Ing.

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

Software pro vzdálenou laboratoř

Software pro vzdálenou laboratoř Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

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í.

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

Více

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány)

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány) České vysoké učení technické v Praze Fakulta elektrotechnická Moderní technologie Internetu Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány) Abstrakt Popis jednoho z mechanizmů

Více

Transportní vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.

Transportní vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D. Transportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Vladimír Smotlacha, 2011 Počítačové sít ě BI-PSI

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Komunikační infrastruktura pro pozemní mobilní zařízení (CALM)

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

SSL Secure Sockets Layer

SSL Secure Sockets Layer SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou

Více

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika Ústav automobilního a dopravního inženýrství Datové sběrnice CAN Brno, Česká republika Obsah Úvod Sběrnice CAN Historie sběrnice CAN Výhody Sběrnice CAN Přenos dat ve vozidle s automatickou převodovkou

Více

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek Specifikace požadavků POHODA Web Interface Verze 1.0 Datum: 29.12. 2008 Autor: Ondřej Šrámek Copyright 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document. Strana

Více

Počítačové sítě Systém pro přenos souborů protokol FTP

Počítačové sítě Systém pro přenos souborů protokol FTP Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat Centralizované SPD VME, VXI Compact PCI, PXI, PXI Express Sběrnice VME 16/32/64 bitová paralelní sběrnice pro průmyslové aplikace Počátky v roce 1981 neustále se vyvíjí původní

Více

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu Internet a zdroje (ARP, routing) Mgr. Petr Jakubec Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu 12 26. 11. 2010 (KFC-INTZ) ARP, routing 26. 11. 2010 1 / 10 1 ARP Address Resolution

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

Optimalizaci aplikací. Ing. Martin Pavlica

Optimalizaci aplikací. Ing. Martin Pavlica Optimalizaci aplikací Ing. Martin Pavlica Vize: Aplikace v dnešním světě IT Ze všech částí IT jsou aplikace nejblíže businessu V elektronizovaném světě významným způsobem podporují business, ten se na

Více

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 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

Více

Definice pojmů a přehled rozsahu služby

Definice pojmů a přehled rozsahu služby PŘÍLOHA 1 Definice pojmů a přehled rozsahu služby SMLOUVY o přístupu k infrastruktuře sítě společnosti využívající technologie Carrier IP Stream mezi společnostmi a Poskytovatelem 1. Definice základních

Více

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ČŮ 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

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat propojování distribuovaných systémů modely Klient/Server, Producent/Konzument koncept VFD (Virtual Field Device) Propojování distribuovaných systémů Používá se pojem internetworking

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Procesy a vlákna Mgr. Josef Horálek

Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna = Základním úkolem jádra je = Správa běžících procesů a vláken: = vytváření = plánování = nastavování = ukončování Proces, vlákno, úloha = Proces běžící

Více

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE 2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich

Více

Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia

Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia 1. Databázový jazyk SQL obsahuje příkaz SELECT. Příkaz SELECT slouží pro: a. definici dat v tabulkách či pohledech b.

Více

Počítačové sítě Datový spoj

Počítačové sítě Datový spoj (Data Link) organizovaný komunikační kanál Datové jednotky rámce (frames) indikátory začátku a konce signálu, režijní informace (identifikátor zdroje a cíle, řídící informace, informace o stavu spoje,

Více

Základy počítačových sítí Model počítačové sítě, protokoly

Základy počítačových sítí Model počítačové sítě, protokoly Základy počítačových sítí Model počítačové sítě, protokoly Základy počítačových sítí Lekce Ing. Jiří ledvina, CSc Úvod - protokoly pravidla podle kterých síťové komponenty vzájemně komunikují představují

Více

Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část

Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část Zatímco první čtyři vrstvy jsou poměrně exaktně definovány, zbylé tři vrstvy nemusí být striktně použity tak, jak jsou definovány podle tohoto modelu. (Příkladem, kdy nejsou v modelu použity všechny vrstvy,

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií Autor: Tomáš Válek, xvalek02@stud.fit.vutbr.cz Login: xvalek02 Datum: 21.listopadu 2012 Obsah 1 Úvod do rozhraní I 2 C (IIC) 1 2 Popis funkčnosti

Více

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům. Aplikační vrstva http-protokol, díky kterému je možné zobrazovat webové stránky. -Protokol dokáže přenášet jakékoliv soubory (stránky, obrázky, ) a používá se také k různým dalším službám na internetu

Více

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2 IPZ laboratoře Analýza komunikace na sběrnici USB L305 Cvičení 2 2008 Cvičící: Straka Martin, Šimek Václav, Kaštil Jan Obsah cvičení Fyzická struktura sběrnice USB Rozhraní, konektory, topologie, základní

Více

Seriové ATA, principy, vlastnosti

Seriové ATA, principy, vlastnosti Seriové ATA, principy, vlastnosti Snahy o zvyšování rychlosti v komunikaci s periferními zařízeními jsou velmi problematicky naplnitelné jedním z omezujících faktorů je fyzická konstrukce rozhraní a kabelů.

Více

Uživatelský modul. DF1 Ethernet

Uživatelský modul. DF1 Ethernet Uživatelský modul DF1 Ethernet APLIKAC NÍ PR ÍRUC KA POUŽITÉ SYMBOLY Použité symboly Nebezpečí Důležité upozornění, jež může mít vliv na bezpečí osoby či funkčnost přístroje. Pozor Upozornění na možné

Více

Služba Carrier IP VPN

Služba Carrier IP VPN PŘÍLOHA 1b Služba Carrier IP VPN SMLOUVY o přístupu k infrastruktuře sítě společnosti využívající technologie Carrier IP Stream mezi společnostmi a Poskytovatelem 1. Obecná definice části služby Carrier

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Architektura IO podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Co je úkolem? Propojit jednotlivé

Více

Obsah. Úvod 13. Věnování 11 Poděkování 11

Obsah. Úvod 13. Věnování 11 Poděkování 11 Věnování 11 Poděkování 11 Úvod 13 O autorech 13 O odborných korektorech 14 Ikony použité v této knize 15 Typografické konvence 16 Zpětná vazba od čtenářů 16 Errata 16 Úvod k protokolu IPv6 17 Cíle a metody

Více

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

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

Více

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

PROTOKOL RDS. Dotaz na stav stanice  STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV PROTOKOL RDS Rádiový modem komunikuje s připojeným zařízením po sériové lince. Standardní protokol komunikace je jednoduchý. Data, která mají být sítí přenesena, je třeba opatřit hlavičkou a kontrolním

Více

Paralelní programování

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

Více

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13 Obsah Předmluva 11 O této knize 13 Konvence........................................................13 Inovace prostřednictvím otevřenosti 15 Ekosystém Symbianu.............................................16

Více

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server. SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,

Více

Počítačové sítě. Počítačová síť. VYT Počítačové sítě

Počítačové sítě. Počítačová síť. VYT Počítačové sítě Počítačové sítě Počítačová síť Je soubor technických prostředků, které umožňují spojení mezi počítači a výměnu informací prostřednictvím tohoto spojení. Postupný rozvoj během druhé poloviny 20. století.

Více

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP. Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Jádro TCP/IP TCP/IP Jádro Pseudo terminal driver Uživatel u terminálu TCP spojení

Více

Komunikační protokoly počítačů a počítačových sítí

Komunikační protokoly počítačů a počítačových sítí Komunikační protokoly počítačů a počítačových sítí Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1138_Komunikační protokoly počítačů a počítačových sítí_pwp Název školy: Číslo a název projektu:

Více

(PROPOJOVACÍ BOD A TECHNICKÉ PARAMETRY) SMLOUVY O PROPOJENÍ VEŘEJNÝCH SÍTÍ ELEKTRONICKÝCH KOMUNIKACÍ. mezi společnostmi. NEW TELEKOM, spol. s r.o.

(PROPOJOVACÍ BOD A TECHNICKÉ PARAMETRY) SMLOUVY O PROPOJENÍ VEŘEJNÝCH SÍTÍ ELEKTRONICKÝCH KOMUNIKACÍ. mezi společnostmi. NEW TELEKOM, spol. s r.o. PŘÍLOHA I (PROPOJOVACÍ BOD A TECHNICKÉ PARAMETRY) SMLOUVY O PROPOJENÍ VEŘEJNÝCH SÍTÍ ELEKTRONICKÝCH KOMUNIKACÍ mezi společnostmi NEW TELEKOM, spol. s r.o. a Strana 1 (celkem 9) Úvod Příloha I Smlouvy definuje

Více