A4B33OSS - Operační systémy a sítě - cvičení

Vítejte na stránkách cvičení předmětu A4B33OSS. 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í | 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}
Miroslav Burša{miroslav.bursa-AT-ciirc.cvut.cz}


Časový plán cvičení:

týdendatumnáplňdeadline
1.3.10. - 7.10.Úvod. Organizace cvičení. Operační systémy typu Unix
2.10.10. - 14.10.Skriptovací jazyk bash - úvod
3.17.10. - 21.10.Skriptovací jazyk bash - pokračování, zadání úlohy B
4.24.10. - 28.10.Regulární výrazy a užitečné nástroje systému (grep, awk, sed, ...)
5.31.10. - 4.11.Kompilace zdrojových kódů v prostředí Unix, knihovny, GCC, make
6.7.11. - 11.11.Práce se systémovými prostředky v jazyce C
7.14.11. - 18.11.Vlákna a synchronizační prostředky v jazyce Cúloha C1
8.21.11. - 25.11.Úvod do síťové komunikace, internet protokol, socketyúloha B
9.28.11. - 2.12.Zadání semestrální práce D, individuální práce, odevzdávání úloh
10.5.12. - 9.12.Individualní práce, konzultace, odevzdávání úlohúloha C2
11.12.12. - 16.12.Individualní práce, konzultace, odevzdávání úloh
12.19.12. - 23.12.Individualní práce, konzultace, odevzdávání úloh
13.2.1. - 8.1.Odevzdávání úloh, udělování zápočtůúloha D
14.19.1. - 15.1.Udělování zápočtů

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 B: Vytvoření skriptu v shellu - BASH - 3b

Vyberte si jednu z variant a implementujte skript v jazyce bash podle zadání. 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ý. 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 - 2b

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 - 2b
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: Síťová komunikace a sockety - 3b

Cílem úlohy je vytvořit program realizující síťovou komunikaci mezi aplikacemi prostřednictvím socketu. Studenti při implementaci této úlohy také prokazují schopnost vytvořit a přeložit aplikaci v prostředí POSIX (systémy Linux / Unix).
Ú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.
Práce v se odevzdává jako zdrojový kód přeložitelný pod operačním systémem Linux (POSIX). Práce zpravidla obsahuje dva programy - server a klient. Kromě funkčnosti programu se hodnotí přehlednost a struktura zdrojového kódu, skripty pro překlad (Makefile), a způsob testování správné funkce.

Úloha E1: Systémová volání (Inline Assembler)

Úvod do systémových volání, assembler (PDF)
Systémové volání přes INT 0x80 a zadání úlohy E1 (PDF)
GCC inline assembler how-to

Úloha E2: Systémová volání (Inline Assembler)

Jádro OS Nova, přepnutí do userspace (PDF)
Úloha E2 - jádro OS Nova

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í.
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 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). Pozdější odevzdávání vede ke snížení maximálního počtu bodů z práce o bod týdně.
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

knihovna.tgz - soubory pro kompilaci

Cvičení na práci se sockety


Dobrovolné doplňující úlohy na bash:

V odevzdávacím systému byly aktivovány úlohy A1-A5. Vypracování těchto úloh je zcela dobrovolné a je doporučeno začínajícím programátorům v bashi, kteří si chtějí otestovat své získané zkušenosti dříve, než bude zadána úloha B. Dále je to vhodná rozcvička práce s CourseWare / Upload systémem.

Zadání úloh A1-A5 zde


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)

Rychlo-školička pro Makefile (linux.cz)

Beej's Guide to Network Programming - Using Internet Sockets

Warriors of The Net - video demonstrace síťové komunikace IP

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

Příklady na vlákna a sockety



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