|
Read-Copy-Update for OpenSolaris
Podzimek, Andrej ; Děcký, Martin (vedoucí práce) ; Bulej, Lubomír (oponent)
Cílem práce je návrh a implementace mechanismu RCU (Read-Copy-Update) pro OpenSolaris. Hlavním úcelem mechanismu RCU je zvýšení soubežnosti (paralelismu) pri synchronizaci mezi ctenári a zapisovateli, zejména u víceprocesorových systému. Tohoto zlepšení se dosáhne udržováním nekolika verzí chránených dat, což umožnuje ctenárum i zapisovatelum pracovat soubežne. Synchronizace typu RCU už byla nekolikrát implementována a používá se v kernelu Linux. Tato práce zahrnuje analýzu stávajících implementací RCU, možných výhod RCU pro kernel ONNV (OpenSolaris) a prototypovou implementaci pro ONNV. Zároven navrhuje možnosti využití RCU v místech, kde se již používá neblokující sychronizace. Srovnává prototypovou implementaci s odpovídající cástí kernelu Linux.
|
|
Softwarové řešení pro firmy zabývající se nákupem a prodejem
Hlavatý, Martin ; Bulej, Lubomír (vedoucí práce) ; Pergel, Martin (oponent)
Tato bakalářská práce pojednává o skladovém systému a internetovém obchodu pro malou až středně velkou firmu podnikající v oblasti nákupu a prodeje zboží. Zabývá se potřebami těchto firem, popisuje nejčastěji prováděné operace a jejich aktéry. Z analýzy potřeb, operací a aktérů poté vychází návrh softwarového řešení a jeho implementace. Navržené řešení je postaveno na třívrstvé architektuře s využitím webových služeb. Implementace je vytvořena převážně v jazycích Java a PHP, je nezávislá na platformě, snadno spravovatelná (díky přidělování oprávnění prostřednictvím systému skupin a rolí) a rozšiřitelná.
|
|
Rozhraní pro ovladače zařízení v HelenOS
Trochtová, Lenka ; Děcký, Martin (vedoucí práce) ; Bulej, Lubomír (oponent)
Uvedení do problematiky ovladačů zařízení, význam jednotného rozhraní pro ovladače zařízení v rámci operačního systému. Stručný popis základních principů hardware z pohledu programátora. Přehled vlastností operačního systému HelenOS - základní funkční bloky mikrojádra a stávající podpora ovladačů zařízení v uživatelském prostoru, např. podpora pro přístup k registrům zařízení a zpracování přerušení z uživatelského prostoru. Obecné funkce rozhraní pro ovladače zařízení a jejich vztah k potřebám operačního systému HelenOS. Problémy obvykle řešené současnými driver frameworky a známé přístupy k jejich řešení - device-centric vs. driver-centric přístup k přiřazování zařízení a ovladačů, identifikátory modelů zařízení, počet podporovaných tříd zařízení, vstupní body ovladače, reprezentace stromu zařízení. Návrh a implementace řešení - hierarchická správa zařízení, automatická detekce zařízení, předdefinovaná rozhraní pro přístup k zařízení, třídy zařízení, řízení životního cyklu ovladače a přiřazování ovladače k zařízení, instalace a konfigurace ovladače. Popis několika existujících řešení a jejich srovnání - ovladače zařízení v operačních systémech Windows, Solaris a Linux. Zhodnocení a možnosti dalšího vývoje.
|
|
C-language code generator for SOFA 2
Ježek, Lukáš ; Bureš, Tomáš (vedoucí práce) ; Bulej, Lubomír (oponent)
SOFA 2 je komponentový systém založený na hierarchickém komponentovém modelu. K návrhu aplikace slouží jazyk ADL, chování komponent je popsáno behaviorálními protokoly, dále systém umožňuje dynamickou rekonfiguraci komponet a modeluje propojení mezi jednotlivými komponentami pomocí softwarových konektorů. Ty umožňují transparentní rozdistribuování vyvíjené aplikace mezi více počítačů. Implementace konektorů může být automaticky generována, SOFA 2 je primárně vyvíjena pro jazyk Java, proto obsahuje generátor Javovských konektorů. Cílem této magisterské práce je navrhnout generátor kódu pro jazyk C a zaintegrovat tento generátor do stávající struktury generátoru konektorů v systému SOFA 2. Automatické generování konektorů v jazyce C by mělo umožnit transparentní propojení komponent implementovaných v jazyce C. Navržený generátor C kódu je založený na konceptu transformace šablon, kde je vstupní šablona, která obsahuje kombinaci cílového C kódu a speciálně vyvinutého skriptovacího jazyka, převedena na čistý C kód. Pro vyhodnocení šablon je použito strategické přepisování abstraktních syntaktických stromů poskytnuté frameworkem Stratego/XT.
|
|
Infrastructure for Deployment of Heterogeneous Component-based Applications
Šafrata, Pavel ; Bulej, Lubomír (vedoucí práce) ; Hnětynka, Petr (oponent)
Nasazení aplikace je proces zahrnující všechny činnosti prováděné s aplikací od momentu jejího vydání. Různé komponentové modely řeší tyto aktivity odděleně (pokud vůbec), přestože koncepce je většinou stejná. Formální kodument Deployment and Configuration of Component-based Distributed Applications Specification vydaný organizací OMG navrhuje jednotné řešení, které může být přizpůsobeno pro různé komponentové modely. Tato práce se soustředí na část problému týkající se spouštění aplikací a prezentuje jednotnou infrastrukturu založenou na uvedené specifikaci. Hlavním cílem je prozkoumat možnosti podpory více komponentových modelů a následně heterogenních aplikací, které sestávají z komponent implementovaných v různých komponentových modelech. Toho bylo dosaženo navržením systému rozšíření umožňujících odstínit specifika jednotlivých komponentových modelů od společné infrastruktury. Přestože zmíněná specifikace nebyla určena pro podporu heterogenních aplikací, implementace se od ní odchyluje jen v několika málo bodech. Ve všech takových případech je prezentována analýza situace a odůvodnění příslušné odchylky.
|
|
Mass transport routing
Bečka, Michal ; Bulej, Lubomír (vedoucí práce) ; Yaghob, Jakub (oponent)
Plánovaní spojů přístupné z mobilního zařízení poskytuje cestovní informace v pohybu. Tato práce studuje různé oblasti plánovačů spojů za účelem implementace řešení pro tuto úlohu. Zkoumáme spojení s telefonními sítěmi a Internetem pro možnosti umístění tohoto nástroje. Dále studujeme vývojové prostředí, složené z operačních systémů a programovacích jazyků. Další část práce pokrývá možné parametry při hledání tras. Dále zkoumáme zdroj a formát vstupních dat o dopravě, spolu s možnými algoritmy pro tento problém. Na základě této analýzy navrhneme aplikaci, pričemž vyhodnocujeme analyzované oblasti. Navrženou aplikaci implementujeme a výsledný program popíšeme a změříme. Cílem je vyvinout fungující aplikaci pro mobilní zařízení zvládající vyhledávání spojů v hromadné dopravě a na ní předvést, co vývoj takového vyhledávače zahrnuje.
|
|
Simulink Block Library for LEGO NXT
Škoda, Dominik ; Bureš, Tomáš (vedoucí práce) ; Bulej, Lubomír (oponent)
Simulink Block Library for LEGO NXT Abstrakt Dominik Škoda July 30, 2014 Cílem této práce je vytvořit podporu platformy LEGO NXT ve vývojářském prostředí Simulink. Takováto podpora cílové platformy již existuje, ale má několik nevýhod. Především je určena výhradně pro operační systémy Windows a její implementace je uzavřená, tudíž se nedá rozšířit ani přizpůsobit. Důraz, v tomto projektu, je kladen především na podporu operačních systémů založených na Linuxu a na otevřenosti celého řešení umožňující rozšíření a přizpůsobení pro- jektu. Modelem řízený vývoj systémů pro platformu LEGO NXT za pomoci tohoto projektu zahrnuje testování modelu pomocí simulace a generování kódu v prostředí Simulinku s využitím jeho standardních nástrojů a nasazování hotových programů na cílová zařízení. Systémy vygenerované s pomocí tohoto projektu se řadí mezi systémy reálného času.
|
|
Deployment Planner for Heterogeneous Component-based Applications
Urban, Jaroslav ; Bulej, Lubomír (vedoucí práce) ; Hnětynka, Petr (oponent)
Nasazování komponentových aplikací je proces, který je zpřístupňuje uživatelům k dalšímu používání. OMG Deployment & Con guration Speci cation je dokument, jehožz cílem je vytvořený jednotného nasazovacího řešení nezávislého na komponentových modelech. OMG specifikaci používáme k vytvoření prostředí pro nasazování heterogenních komponentových aplikací, které jsou implementovány pomocí více komponentových modelů. Tato práce je zaměřena na plánovací fázi speci kace, která vybírá počítačové zdroje pro komponentové aplikace s ohledem na jejich požadavky. Plánovací fázi jsme implementovali pomocí grafi ckého uživatelského rozhraní využívajícího automatický plánovací algoritmus, který pomáhá uživateli s vytvořením platného naplánování. Plánovací nástroje jsou rozšiřitelné o podporu pro další technologie, komponentové modely a plánovací heuristiky.
|
|
Dynamic linking, debugging and tracing in HelenOS
Svoboda, Jiří ; Děcký, Martin (vedoucí práce) ; Bulej, Lubomír (oponent)
HelenOS je operační systém, který vznikl vrámci softwarového projektu na MFF UK. V systému zatím chybí podpora dynamických knihoven a ladění a trasování procesů. Dynamické knihovny umožňují vyvíjet části velkých softwarových systémů odděleně a později je spojit bez nutnosti opakovaného překladu. Toto spojování provádí dynamický linker a to během zavádění programu, nebo až za běhu. Linker musí nalézt všechny knihovny vyžadované programem, zavést je do paměti a relokovat je. Potom musí vyřešit externí (symbolické) odkazy mezi programem a jednotlivými knihovnami. Debugger a trasovač systémových volání patří mezi základní ladicí nástroje. Ke své činnosti využívají speciální systémové rozhraní, které jim umožňuje pozastavit aplikaci, když v ní dojde k určitým událostem (např. breakpoint, trap nebo volání systému). Mohou číst nebo měnit obsah paměti aplikace a opět obnovit její běh. Hlavním cílem této práce je přidat do systému podporu pro dynamické knihovny, tedy zejména dynamický linker, a dále systémové rozhraní pro ladění a trasování procesů s ukázkovou aplikací.
|
|
Networking and TCP/IP stack for HelenOS system
Mejdrech, Lukáš ; Děcký, Martin (vedoucí práce) ; Bulej, Lubomír (oponent)
V této práci studujeme implementaci TCP/IP subsystému. Důraz je kladen na návrh a implementaci respektující koncept operačního systému s mikrojádrem. Praktickou částí pak byl vývoj TCP/IP subsystému pro systém HelenOS. Nejprve jsou popsány koncepty síťové architektury a TCP/IP subsystému obecně. Následují specifické aspekty kladené systémem s mikrojádrem. Dále je uveden návrh architektury a implementační rozhodnutí a vlastní implementace.
|