110 likes | 206 Views
Simulace operačního systému. M. Štulc , J. Šváb, J. Kolena. Úvod. cílem projektu - aplikace simulující běh operačního systému zadávání příkazů uživatelem a jejich následné vykonání přesměrování vstupu i výstupu příkazů rozlišit výstup x chybový výstup
E N D
Simulace operačního systému M. Štulc, J. Šváb, J. Kolena
Úvod • cílem projektu - aplikace simulující běh operačního systému • zadávání příkazů uživatelem a jejich následné vykonání • přesměrování vstupu i výstupu příkazů • rozlišit výstup x chybový výstup • základní entita operačního systému - proces
Proces • reference na potomky (stromová struktura) • reference na předka • PID • handle (uživatel, streamy, parametry spuštění) • stav (running, waiting) • a další… • příkaz spouštěn jako proces • běží ve vlastním vlákně • při ukončení napřed ukončit potomky
Init proces • nemá předka (null) • spuštěn při spuštění aplikace • je předkem všem procesům • jeho zabitím (příkaz kill) se ukončí celá aplikace • příkaz shutdown ukončuje právě tento proces
Streamy • jednotné rozhraní pro přístup ke vstupům a výstupům • implementace příkazu odstíněna od míst zdroje a tisku dat • odstínění implementace příkazů od paralelismu
AnalyzÁtor • spouští se pro každý zadaný příkaz • slouží k rozparsování příkazu na jméno, parametry a přesměrování popř. PIPE • gramatika vychází ze skutečného shellu • podpora pro vícenásobné přesměrování • podpora neomezeného množství a pořadí parametrů • podpora víceslovných parametrů • podpora libovolného (1+) množství mezer mezi parametry
implementované příkazy • ls (–l –a –h) • cd • ps (-A –p –U) • man • cat • sort • send+receive • shutdown • exit • pwd • echo • kill • shell • přesměrování standardního vstupu a výstupu • přesměrování chybového výstupu • pipe • podrobnosti o příkazech viz příkaz man
možná rozšíření do budoucna • implementace dalších příkazů • grafické rozhraní (transformace událostí na příkazy) • zabezpečení • přihlášení • možnost spouštět jen určité procesy • omezení přístupu k procesům • skupiny uživatelů • a jistě mnoho dalšího…
závěr • komplexní rozšiřitelná aplikace • snadné přidávání příkazů (bez nutnosti překladu celého programu) • třívrstvá architektura • paralelní běh • jednotný přístup ke vstupům a výstupům • víceuživatelský systém • rozšíření funkčnosti nad zadání (viz dokumentace)
Zhodnocení • získané zkušenosti • zkušenosti v oblasti paralelního programování • řešení pokročilejších synchronizačních problémů • semestrální práce byla velice zajímavá avšak v přiděleném čase nebylo možné využít jejího potenciálu DĚKUJEME ZA POZORNOST