A3B33OSD - Operační systémy a databáze - cvičení

Vítejte na stránkách cvičení předmětu A3B33OSD. Na této stránce najdete informace týkající se obsahu cvičení, zadání semestrálních prací, podmínky udělení zápočtu a bodové hodnocení předmětu.

cvičící | program cvičení | požadavky na zápočet | zadání semestrálních prací | hodnocení prací | materiály


Cvičící:

Hlavní cvičící:Petr Štěpán{stepan-AT-fel.cvut.cz}
Ostatní cvičící:Jan Chudoba{jan.chudoba-AT-ciirc.cvut.cz}
Přemysl Houdek{houdepre-AT-fel.cvut.cz}


Časový plán cvičení:

týdendatumnáplňdeadline (**)
1.20.2. - 24.2.Úvod. Organizace cvičení. Operační systémy typu Unix
2.27.2. - 3.3.Skriptovací jazyk bash - úvod
3.6.3. - 10.3.Skriptovací jazyk bash - pokračování
4.13.3. - 17.3.Regulární výrazy a užitečné nástroje systému (grep, awk, sed, ...)
5.20.3. - 24.3.Kompilace zdrojových kódů v prostředí Unix, knihovny, GCC, make
6.27.3. - 31.3.Použití inline assembleru, POSIX spouštění procesů v jazyce Cúloha C1
7.3.4. - 7.4.Systémová voláníúloha B, úloha C2
8.10.4. - 14.4.Zavádění OS, uživatelský režim - NOVAúloha E0
9.17.4. - 21.4.Systémové volání NOVA, struktura ELF souboruúloha E1
10.24.4. - 28.4.Zavedení ELF souboru do paměti a spuštění procesuúloha E2
11.1.5. - 5.5.Úvod do relačních databází, Databáze a jazyk SQLúloha E3
12.8.5. - 12.5.Jazyk SQL, praktické ukázky
13.15.5. - 19.5.Rektorský den
14.22.5. - 26.5.Odevzdávání úloh, udělování zápočtůúloha D

(**) zde uvedené termíny odevzdání semestrálních prací považujte za orientační - mohou se měnit cvičení od cvičení

Uvedený časový plán cvičení je pouze orientační! Náplň jednotlivých cvičení se může měnit.

Účast na cvičení je povinná, výjimky jsou přípustné pouze po předchozí osobní domluvě s cvičícím.


Požadavky na udělení zápočtu:

Zápočet je udělen pouze za vypracování všech semestrálních prací.
Bodové hodnocení prací nemá vliv na udělení zápočtu, ale je podkladem ke zkoušce.

Zadání semestrálních prací:

Vaším úkolem v rámci cvičení bude implementace několika úloh s různou obtížností a bodovým hodnocením.
U úloh B a D je třeba si nejprve vybrat jednu z variant zadání.

Úloha A1-A5: Vytvoření jednoduchých skriptů - dobrovolné

Řešení úlohy nahrávejte do odevzdávacího systému, který provede automatickou kontrolu. Jiný způsob odevzdání není přípustný.

Úloha B: Vytvoření skriptu v shellu - BASH - 2.0b

Vyberte si jednu z variant a implementujte skript v jazyce bash podle zadání. Vybranou variantu je třeba si rezervovat v odevzdávacím systému! Zadání si pečlivě přečtěte a věnujte pozornost i obecným požadavkům společným pro všechna zadání, jinak budete zbytečně ztrácet cenné body.
Řešení úlohy nahrávejte do odevzdávacího systému, který provede automatickou kontrolu. Jiný způsob odevzdání není přípustný. Pozor na penalizace za vysoký počet uploadů. Výsledné hodnocení se objeví až po kontrole kódu cvičícím.

Úloha C: Práce se systémovými prostředky v jazyce C
  C1: Vytvoření programu v jazyce C + makefile - 1.0b

Cílem úlohy je vytvořit a sestavit jednoduchý program v jazyce C s připojenou knihovnou a napsat Makefile pro sestavení projektu.
Úloha se odevzdává přes odevzdávací systém, který ji automaticky zkontroluje a ohodnotí. Jiný způsob odevzdání není přípustný. Z důvodu automatického hodnocení je nutné důsledně dodržet zadání!

  C2: Vytvoření procesů a přesměrování vstupu/výstupu - 1.0b
Cílem úlohy je vytvořit procesy propojené rourou v jazyce C, které si budou předávat data. Úloha C2 se odevzdává osobním předvedením cvičícímu.

Úloha D: Databáze a SQL - 3.0b

Úkolem je návrh jednoduché databáze a implementace obslužných skriptů v sql, které umožňují naplnění databáze a vyhledání užitečných informací v ní.

Vyberte si jedno ze zadání. Úloha má dvě části:
  1. Návrh databáze
    Úloha se odevzdává osobně cvičícímu ve formě dvou E-R diagramů na papíře (v přiměřené grafické úpravě!):
    1. v Chenově notaci bez atributů (pouze entity a relace), nebo
    2. v Crow's Foot notaci (s rozkreslenými relacemi, vč. atributů) - DOPORUČENO
  2. Doporučujeme návrh odevzdat (nebo konzultovat jeho správnost se cvičícím) dříve, než se pustíte do další implementace. Včasné upozornění na chybu v návrhu vám ušetří cenný implementační čas!

  3. Implementace databázové aplikace v sql
    Práce se odevzdává jako sql skript pro vytvoření databáze a pro dotazování. Ke skriptům přidejte i (dostatečně velké, tzn. alespoň 20-30 záznamů v tabulce) testovací datové soubory na kterých program testujete.
Úlohu je nutné osobně předvést cvičícímu za účasti všech členů skupiny. Obhájenou úlohu nahrajte do odevzdávacího systému.

Úloha E0-E3: Systémový a uživatelský režim, systémová volání - celkem 6.0b

Úlohy mohou být průběžně dospecifikovány v průběhu semestru
Úlohy E0 a E1 se odevzdávají přes odevzdávací systém a jsou hodnoceny automaticky.
Úlohy E2 a E3 se odevzdávají osobním předvedením cvičícímu, pokud nebude řečeno jinak*.

Pro získání plného počtu bodů z úlohy E3 je nutná prezentace cvičícímu

V případě potřeby odborné konzultace kontaktujte Michala Sojku sojkam1@fel.cvut.cz, který úlohy připravil.

Odevzdávání a hodnocení semestrálních prací:

Není-li pro danou úlohu stanoveno jinak, odevzdávají se práce přes odevzdávací systém. Podle pokynů cvičícího může být vyžadováno osobní předvedení a vysvětlení vašeho řešení.

Bodové hodnocení úlohy se odvíjí od:


Některé úlohy jsou kontrolovány a ohodnocovány automaticky. Body přidělené automatickým systémem jsou pouze orientační a mohou být opraveny cvičícím při následné kontrole. Úloha může být odmínuta, pokud je dodatečně odhalena chyba kterou automatický systém nebyl schopen podchytit.

Pár užitečných poznámek o odevzdávacím systému, které je dobré si uvědomit.

Práci je potřeba odevzdat do zadaného termínu, jak je uvedeno v odevzdávacím systému (a tabulce s plánem cvičení výše). Pozdější odevzdávání vede ke snížení maximálního počtu bodů z práce o bod týdně (u "malých úloh" o tolik, kolik je maximální bodový zisk z úlohy). Deadline se vztahuje ke dni v týdnu kdy má dotyčný student cvičení.
Pro získání zápočtu je nutné odevzdat všechny zadané úlohy, bez ohledu na jejich bodové hodnocení. Každá úloha však musí alespoň minimálně splňovat zadání, jinak bude odmítnuta.
POZOR! Penalizace za pozdní odevzdání se odečítají i do záporných hodnot! Důvodem je zachování motivace pro co nejdřívější odevzdání.

Pracujte samostatně!

Na semestrálních úlohách pracujte samostatně (nebo ve vytvořené skupině, je-li to povoleno v dané úloze). Opisování a předkládání cizí práce bude tvrdě stíháno v souladu se studijními předpisy ČVUT a FEL. Vězte, že odevzdání cizí práce vydávané za vlastní může být potrestáno i neudělením zápočtu!
Lepší je ukázat málo funkční vaše řešení, než se zaplést do problémů při odevzdávání cizího řešení. Pokud máte problém s vyřešením vaší úlohy, obraťte se včas na vašeho cvičícího, který vám ochotně poradí.

Studijní a zkušební řád ČVUT, článek 12, bod 3 "...ve věci udělováni zápočtu, nebo klasifikovaného zápočtu rozhoduje vedoucí katedry..."

Předpis pro provádění studijních programů na FEL, článek 4, bod 4 "Hrubé porušení stanovených pravidel zkoušky nebo udělení zápočtu (zejména porušení zásady samostatné práce) se považuje za disciplinární přestupek."

Pravidla pro odevzdávání z pohledu plagiátorství


Pomozte nám zvyšovat kvalitu předmětu

Jsme vděčni za jakoukoliv zpětnou vazbu kterou nám poskytnete. V případě řešení problémů, které se týkají i ostatních studentů můžete využít diskuzního fóra.
Po ukončení předmětu prosím vyplňte celofakultní anketu.


Vzdálené připojení k počítačové učebně

Domácí adresáře počítačů v učebně KN:E-132 jsou uloženy na serveru k333stu1. K uloženým souborům se můžete dostat vzdáleně prostřednictvím protokolu ssh (na operačním systému Windows můžete využít aplikaci PuTTY pro připojení ke konzoli, nebo aplikaci WinSCP pro přenos souborů).

Pro pořeby vzdáleného ladění vašich prací se můžete připojit na pracovní stanice učebny. Tyto stanice jsou umístěny na vnitřní síti a nejsou tedy dostupné přes veřejnou adresu. Přihlásit se na ně můžete po předchozím přihlášení na server k333stu1 a následným přihlášením na stroj s názvem e132-xx, kde xx je číslo počítače 01-21, příp. e220-01 - e220-09, např.:
ssh e132-01

Prosíme vás, abyste nic nespouštěli přímo na serveru k333stu1 - jeho zatížení by mělo nepříjemný dopad na funkci celé laboratoře.


Materiály pro výklad a cvičení

Skriptovací jazyk bash

Nástroje pro zpracování textu a regulární výrazy

example.sh - sql skript sloužící jako vstupní soubor pro cvičení zpracování textu
world.sql - ukázková databáze pro procvičení SQL dotazů

knihovna.tgz - soubory pro kompilaci

qemu - binary for E-132 computers

Materiály:

Doplňující studijní materiály a odkazy:

Základní Unixové příkazy

Unixové příkazy - přehled

Seriál o Bashi (LinuxEXPRES)

Seriál: BASH (abclinuxu.cz)

Advanced Bash-Scripting Guide mirror

Něco málo o sedu

Programovací jazyk textových manipulací: awk

Kniha Shell v příkladech (Libor Forst, MFF UK, online pdf)

Uvod do jazyka C, kompilace a make (PDF, O.Fišer)

Příklady a ukázky:

Příklad procházení adresářem (ukázkový skript)

Ukázkové příklady jednoduchých skriptů

Co dělají uvozovky, apostrof, hvězdička a mezery 1 (ukázkový skript)

Co dělají uvozovky, apostrof, hvězdička a mezery 2 (ukázkový skript)

Programovací jazyk textových manipulací: awk

Normalizace relačních databází (programujte.com)

MySQL reference manual 5.0



Poslední změna: 24.5.2017                                        webmaster: chudoba-AT-labe.felk.cvut.cz