28
• Operační systémy • jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT) • jednouživatelské, víceúlohové - MS Windows • víceživatelské, víceúlohové - Unixy (Linux)

Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

  • Upload
    iliana

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT) jednouživatelské, víceúlohové - MS Windows víceživatelské, víceúlohové - Unixy (Linux). Unix. Koncepce systému (převážně v C jazyku) - jádro - PowerPoint PPT Presentation

Citation preview

Page 1: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Operační systémy

• jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• jednouživatelské, víceúlohové - MS Windows

• víceživatelské, víceúlohové - Unixy (Linux)

Page 2: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Unix

• Koncepce systému (převážně v C jazyku)

• - jádro

• - služby (mail, ftp, telnet, X11, nfs, gopher, vi, tex) - dnes i v jiných operačních systémech

• login, logout (Ctrl D)

Page 3: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Příkazy Unixu• man - nápověda k příkazům,• cp - kopírování souborů,• cd,• mkdir,• rmdir,• ls - výpis obsahu adresáře,• ps - výpis běžících procesů,• kill - zrušení procesu,• chown - změna vlastníka souboru• passwd• who

Page 4: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Systém souborů Unixu• Součástí jména souboru může být i tečka, malá, velká písmena

• jedna adresářová struktura - svazek příkaz mount

• vlastník souboru může patřit do skupiny vlastníků

• právo zápisu i mazání (w - write)

• právo čtení (r - read)

• právo spouštění (x - execute) (otvírání adresáře)

• nastavení sobě, skupině, ostatním

• práva rwx r-x r-- (754) (111 101 100) - vlastník čtení, zápis, spouštění (rwx), skupina čtení, spouštění (r-x), ostatní čtení (r--)

Page 5: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Základní struktura svazku• kořenový adresář /, obsahuje podadresáře• - /bin - adresář s programy (příkazy) OS• - /dev adresář s ovladači periferních zařízení• - /usr - adresář s uživatelským software• - /home adresář pro domácí adresáře uživatelů

• Administrace systému Unix• jeden správce systému - root• mount propojení cizích adresářů nebo zařízení do adresářového stromu

místního systému• unmount - odpojení• shutdown ukončení práce operačního systému

Page 6: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Základy programování a programovací jazyky

• vývoj software pro tzv. běžného uživatele (např. program pro účetnictví) a s jejichž produkty se můžeme setkat v obchodech s výpočetní technikou.

• software přímo na míru zákazníkovi, software specializovaný na konkrétní problém, např. bankovní systém, řídící a monitorovací systém teplárny, řídící systém velké firmy atd.

• Na komerčních aplikacích se dnes podílí celý tým programátorů pod vedením vedoucího projektu. Každý přitom vyvíjí určitou část aplikace. Prvky programu vytvořené programátory zvlášť umožňují tzv. strukturalizaci programu. Zvlášť vytvořené části mohou být buď podprogramy, makra, nebo jsou dodávané ve formě tzv. standardních knihoven, nebo jsou součástí určitých programovacích jazyků.

• Mění se zejména metodika návrhu programů. Doposud nejčastěji používaná technologie strukturovaného programování, která na dlouhou dobu ovlivnila programovou tvorbu se zaměřuje hlavně na funkční rozklad, dekompozici úlohy. V současné době rychle se šířící objektově orientované programování začíná od datových struktur s nimiž má program manipulovat.

Page 7: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Postup při tvorbě programu– Při tvorbě softwaru lze rozlišit následující jednotlivé

kroky:• formulace úlohy

• záznam algoritmu na disk

• překlad zdrojového programu

• spojování (sestavování)

• zkušební provoz programu

• tvorba dokumentace

• rutinní provoz a údržba programu

Page 8: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Formulace úlohy - požadavek na její funkci, algoritmizace• analýza problému a na jejím základě projekt. Při analýze se stanoví:

•cíl řešení, tj. požadované výstupní informace, jejich struktura a formát

•vstupní data, ze kterých budou výstupy odvozeny, jejich struktura, formát a množiny přípustných hodnot

•specifikují se výjimečné situace a reakce na ně (např. ošetření chyb ve vstupních datech)

•navrhne se hrubý algoritmu řešení, v případě složitějšího problému jeho dekompozice na problémy dílčí

•Algoritmus - definice, vlastnosti, způsoby záznamu

•Algoritmus je úplný a přesný předpis konečného počtu kroků, které vedou od měnitelných vstupních údajů k požadovaným výsledkům. Je třeba vždy rozlišovat dva aspekty - data, která algoritmus zpracovává a operace s nimi. Algoritmus by měl splňovat následující tři klasicky uváděné vlastnosti:

•hromadnost - tj. platnost pro celou třídu úloh stejného typu, lišících se vstupními údaji

•rezultativnost - pro přípustné vstupní údaje a po určitém počtu kroků se vždy dospěje k výsledku

•determinovanost - v každém bodě úlohy musí být vždy jasný další postup

Page 9: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Způsoby vyjádření algoritmu:

• slovní vyjádření postupu řešení

• grafické vyjádření

• Graficky se algoritmus řešení vyjadřuje např. formou vývojových diagramů, které používají určitých značek pro základní typy příkazů. Do značek se slovně nebo symbolicky zapisují požadované operace. Vývojové diagramy mohou být hrubé nebo podrobné.

• Jiný způsob grafického záznamu algoritmu jsou tzv. HIPO diagramy (Hierarchy plus Input-Process-Output) IBM,  formalizuje projektování a dokumentaci rozsáhlejších programových systémů.

• rozhodovací tabulky - pro úlohy s velkým počtem podmínek (rozhodování)

• strojový kód - strojové instrukce konkrétního procesoru

• pseudokód - abstraktní jazyk, který má podobnou syntaxi příkazů jako vyšší programovací jazyk, syntaxe může být i volnější podle potřeby uživatele, snadno se pak přepisuje do konkrétního vyššího jazyka

• programovací jazyk - program zapsaný v této podobě se nazývá zdrojový program (source program)

Page 10: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

•Záznam algoritmu na disk

•Druhým krokem je záznam algoritmu řešení - ve vhodném programovacím jazyce - a jeho zápis prostřednictvím editoru na disk. Jak už bylo řečeno vzniká zdrojový program (angl. source program, synonyma: zdrojový text, zdrojový kód)

•Překlad zdrojového programu, překladače

•Po překladu zdrojového progamu překladačem příslušného jazyka, vzniká tzv. relativní modul (object program), kde ještě není definitivně rozhodnuto o jeho umístění v paměti.

•Při překladu se vypisují zjištěné syntaktické chyby v programu, které je nutné opravit. Proces, při kterém odstraňujeme chyby se nazývá ladění programu.

•Jsou dva typy překladačů - kompilátory a interprety.

Page 11: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Kompilátor přeloží celý program najednou, po odstranění chyb je pak cílový program k dispozici. Obtížnější je v takovém případě provádění oprav - znovu za pomoci textového editoru, znovu překlad.

• Překlad je obvykle několikaprůchodový. Při prvním průchodu se program analyzuje,a to jak lexikálně, tak sémanticky. Ve druhém průchodu následuje optimalizace vzniklého mezikódu, ve třetím průchodu se generuje cílový program - object program - který nelze obvykle hned spustit (relativní modul). Zpracovává se dále programem Linker, který umožňuje spolupráci s knihovnami a umisťuje program do paměti - viz dále spojování. Při zavedení programu se musí již spolupracovat s operačním systémem počítače.

• Interpret překládá zdrojový program při každém jeho použití (spuštění). Je v operační paměti současně s prováděným zdrojovým programem. Každá instrukce je po přeložení provedena. Provádění interpretovaného programu trvá déle. Výhody interpretu jsou zřejmé při opravování chyb. Nejčastěji interpretovaným jazykem je Basic.

Page 12: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

•Spojování

•Spojováním (angl. link, synonyma: sestavování, linkování) přeloženého modulu s dalšími moduly z programové knihovny, vzniká  absolutní modul schopný spuštění

•Zkušební provoz programu

•Zkušební provoz probíhá nejdříve na testovacích datech. U složitějších programových balíků (systémů) obvykle softwarové firmy nechávají svým uživatelům otestovat tzv. beta verzi programu a vezmou v úvahu jejich připomínky.

•Tvorba dokumentace

•Součástí programu je i dokumentace, která  může být technická (popis funkcí programu) nebo uživatelská (manuál, návod jak program používat). Součástí aplikačního programu je i rozsáhlý soubor nápovědy (helpu). Potom je aplikace nahrána na instalační diskety nebo vypálena do instalačního CD.

•Rutinní provoz a údržba programu

Page 13: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Vývoj programovacích jazyků– Programovací jazyky se dělí z hlediska vývoje na:

• strojový kód

• jazyky nižší úrovně, tzv. strojově orientované jazyky

• jazyky vyšší úrovně, problémově orientované jazyky.

• objektově orientované jazyky

• Někdy se tyto jazyky zařazují do tzv. generací s intervalem obměny asi deset let. První generace programování ve strojových kódech, druhá generace programovací jazyky vyšší úrovně jako Fortran, Cobol. Třetí generace další rozvoj jazyků vyšší úrovně a zavedení koncepce stukturovaného programování, abstraktních typů dat (viz kapitola o datových strukturách), atd. Současnost objektově orientované jazyky, práce s bázemi znalostí, představuje čtvrtou generaci jazyků - 4GL.

Page 14: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Strojový kód

• Instrukce programu zapsaného ve strojovém kódu jsou numericky kódované, tvoří je posloupnosti nul a jedniček.

• Programování ve strojovém kódu vyžaduje takřka detailní znalost daného hardwaru, se kterým je spjat. Obtížně se hledají chyby. Přesto se v něm programuje,a to zejména ty části programu, které vyžadují rychlost. Uplatňuje se při tvorbě ovladačů, rezidentních programů, procedur ovládajících grafiku.

• Jazyky nižší úrovně, tzv. strojově orientované jazyky (jazyky symbolických

adres). • Je zde již symbolický kódovací systém - instrukce jsou vyjádřeny zkratkami a adresy

nahrazeny symboly. Instrukce se pořád ještě rovnají strojovým instrukcím. Příkladem jsou tzv. assemblery. Každý procesor má v podstatě svůj vlastní assembler. Programování v něm je pomalé a vyžaduje též detailní znalost mikroprocesoru. Assemblery se používají při

návrhu hardware počítače pro napsání základního ovládacího programu.

Page 15: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Jazyky vyšší úrovně, problémově orientované jazyky.

• Jsou méně závislé na technických vlastnostech mikroprocesoru. Tyto vyšší jazyky umožnily tzv. programovou kompatibilitu, přenositelnost programů a jejich nezávislost na konkrétním počítači. Je možné je dále rozdělit na skupiny:

• jazyky pro vědecko technické výpočty - typickým zástupcem je Fortran, ve kterém je naprogramována spousta technických úloh

• jazyky pro zpracování hromadných dat - pro rozsáhlé mzdové, skladové a jiné agendy např. programovací jazyk Cobol

• univerzální jazyky, používané i pro systémové programování - jsou v nich programovány operační systémy, např. Pascal, C jazyk (je v něm programován systém UNIX)

Page 16: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Objektově orientované jazyky

• Jsou to jazyky nové generace používané v oblasti umělé inteligence (expertní systémy) - Smalltalk, Lisp, předchůdce těchto jazyků Simula.

• Objektově orientované programování mění dosavadní obvyklý způsob návrhu programu. Data a procedury (tj. množina operací, které lze s daty provádět) jsou reprezentovány ve struktuře zvané objekt. Data se nazývají atributy, procedury jsou operace nebo metody. Metody objektů jsou obdobou procedur procedurálního jazyka. Řídí způsob jednání objektu. Data jsou přístupná pouze prostřednictvím procedur z odpovídajícího objektu (ukrytí dat - zapouzdření). Objekty mezi sebou komunikují tím, že si posílají zprávy. Program lze chápat jako posloupnost zasílání zpráv mezi objekty. Programátor si vytvoří katalogy (knihovny) objektů, neboť jednou vytvořený objekt je mnohonásobně použitelný (tzv. softwarové čipy). Programový systém je možné měnit a doplňovat i za chodu. Objekty spadají na základě podobných vlastností do hierarchických skupin - tříd. Objekt je tzv. instance, konkrétní výskyt třídy. Uvnitř hierarchie tříd dědí podtřída metody a proměnné nadtřídy.

• Při řešení problému tímto způsobem se začíná od dat - datových struktur, se kterými se bude manipulovat. Jde tedy o dekompozici dat, nikoliv o dekompozici funkcí, jak bývá zvykem v procedurálním programování.

Page 17: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Objektově orientované programování pracuje s pojmy jako je: třída, hierarchie tříd, dědičnost vlastností, polymorfismus atd.

• Styk s uživatelem je založený na grafice, oknech, ikonách a práci s myší (tzv. GUI - graphic user interface).

• Kdekoliv na síti mohou existovat tzv. distribuované objekty, o kterých nemusíme vědět kde se nacházejí, pod jakým systémem jsou provozovány, ani jaký jazyk byl použit pro jejich implementaci. Klient (rozumí se tím klientský program) k nim přistupuje na základě volání metod z jejich rozhraní, které nabízí seznam služeb poskytovaných objektem. Program pak je možné sestavovat z takovýchto komponent, které v podstatě nemusí být kompletní aplikace. Mají přesně definované rozhraní oddělené od vlastní implementace, tj. od způsobu jak realizují své služby.

• Aby takové komponenty mohly spolupracovat, je třeba při jejich tvorbě dodržovat určitá pravidla - standardy (normy). Je možné vysledovat určitou analogii se způsobem výroby počítačů - čipy.

• Objektová orientace pronikla i do databází. Místo záznamů do nich ukládáme objekty, které obsahují data, podobně jako záznamy. Databázové systémy mají objektově orientovaný jazyk. Do objektové databáze můžeme uložit instanci (výskyt) kteréhokoliv typu odvozeného od určité třídy (vztah předek - potomek), třeba i třídy, která v době vytvoření databáze ještě neexistovala.

Page 18: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Procedurální a neprocedurální jazyky

• Jiné možné dělení programovacích jazyků je na jazyky procedurální a neprocedurální.

• Procedurální (imperativní) jazyk má prostředky, příkazy, pro zápis postupu "jak" řešit úlohu. Sem patří Fortran, Cobol, Pascal, Basic. Program musí stanovit jaká akce se má provést (sečítání, výmaz, přesun), dále je určeno pořadí těchto instrukcí, ve kterém se předávají procesoru k provedení a program musí obsahovat též adresy dat, která se mají zpracovat.

• Neprocedurální jazyky mají tuto procedurální stránku skrytou v překladači. Řadí se sem Lisp, Prolog, Smalltalk, ale i dotazovací jazyky používané v databázových systémech pro výběr požadovaných vět z databáze. Dotazovací jazyk je např. SQL (Structured Query Language). V těchto jazycích specifikujeme "co" chceme řešit, nikoliv způsob "jak" se bude problém řešit. Cílem neprocedurálního programování je zařazovat do programu co

nejméně instrukcí a nechat jich co nejvíce generovat systémovými programy.

Page 19: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• BASIC prošel velkým vývojem, od verzí pro osmibitové počítače až po mocný objektově orientovaný jazyk, který dnes Microsoft implementuje do svých aplikací, jako je Word nebo Access (Visual Basic for Application).

• Pascal byl navržen jako jazyk pro výuku programování. Dnes z něho firma Borland udělala jazyk vhodný jak pro výuku, tak pro vývoj profesionálních aplikací. Stal se z něho vývojem též objektový jazyk s rozsáhlými knihovnami. Byly do něj implementovány Turbo Vision, což jsou zjednodušeně řečeno, jakási dosovská okna.

• C jazyk několik implementací tohoto jazyka:

• C++ firmy Borland, verze C++ 5.0, je to celý integrovaný balík, který obsahuje část určenou pro vývoj internetovských aplikací v jazyce JAVA.

• Visual C++ firmy Microsoft - pro vývoj Windowsovských aplikací včetně visuálního programování, které umožňuje rychlý vývoj aplikací.

• JAVA vznikla v Sun Microsystem. Je to objektově orientovaný jazyk pro vývoj aplikací pro Internet. Vychází z C jazyka. Je platformově nezávislá. Přeloží se do mezikódu nezávislého na stroji, ten se dopraví po Internetu do počítače uživatele a zde se teprve přeloží. Uživatel Javy musí mít interpret Javy závislý na platformě, kterou používá. Moduly Java - tzv. applety - se provedou uvnitř prohlížeče. Program Java je objekt, který se skládá opět z objektů

Page 20: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Zásady strukturovaného programování• Program má být srozumitelný a modifikovatelný, k čemuž přispívá dodržování následujících zásad:

• 1. Při návrhu programu se postupuje "shora dolů" tj. od nejabstraktnější hladiny, bereme-li v úvahu funkci budoucího programu. Následuje dekompozice na části a jejich další dílčí části (moduly). klasické procedurální programování.

• 2. Moduly, ze kterých je program sestaven, jsou relativně samostatné. Jsou propojeny tím, že se navzájem volají (jako celky) a předávají si data. Odpovídají jim podprogramy. Různé jazyky mají různé možnosti jak moduly tvořit. Do podprogramu nelze vstupovat na více místech, platí zásada jediného vstupu a jediného výstupu.

• 3. Moduly mají hierarchickou strukturu a platí, že modul vyšší úrovně by měl volat jen moduly nižších úrovní. Po provedení funkce volaného modulu pokračuje v činnosti modul volající (např. hlavní program).

• 4. Je snaha vyhýbat se příkazům skoku, které zvyšují nepřehlednost programu.

• 5.zápis programu = jen určité konstrukce, tzv. řídící struktury, tři základní typy strukturovaných příkazů, pomocí nichž lze zapsat každý program: sekvence, větvení a cyklus. Každý z nich může být složen opět z jiných těchto základních struktur

Page 21: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

Řídící struktury, jejich grafické vyjádření a zápis v pseudokódu

sekvence příkazů

a

b

c

• Každá struktura může být dále složena ze základních struktur.

• a, b, c reprezentuje příkazy, které mohou být i složené

Page 22: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

větvení úplné

podmínka

a b

ANO NE

• IF podmínka

• THEN

• a

• ELSE

• b

• ENDIF

Page 23: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

• Klíčová slova jazyka jsou zapsána velkými písmeny. Tzv. odsazování umožňuje lepší průhlednost příkazu.

• Podmínky se zapisují jako relační výrazy, kdy se porovnávají dvě číselné hodnoty a výsledkem je hodnota logická, nebo jako logické výrazy kdy se pracuje čistě jen s logickými hodnotami (pravda, nepravda).

• Příklad relačního výrazu: A>B, A>=150 a další možné 4 typy porovnávání vyjádřené znaménky <, <=, =, <> (nerovno).

• V logických výrazech se kromě uvedených relačních operací, které mají též logickou hodnotu, používají operace jako logický součin, logický součet a negace. Podmínky se tedy mohou v těchto výrazech skládat a lze testovat zda platí zároveň(součin) nebo alespoň jedna z nich (součet).

Page 24: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

větvení neúplné

• IF podmínka

• THEN

• a

• ENDIF

podmínka

a

ANO NE

Page 25: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

přepínač (vícenásobné větvení)

• DO CASE

• CASE K=1

• a

• CASE K=2

• b

• CASE......

• ..........

• ENDCASE

K

a b x

K=2K=1 ......

Page 26: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

cykly

- cyklus řízený podmínkou, která  se testuje před případným opakováním příkazů cyklu

• DOWHILE podmínka

• a

• ENDDO podmínka

a

+

-

Page 27: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

- cyklus řízený podmínkou, která se testuje až po prvním provedení ( a

případně každém dalším provedení) příkazů a v cyklu

• DOUNTIL podmínka

• a

• ENDDO

a

podmínka-

+

Page 28: Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT)

cyklus řízený tzv. indexem (řídící proměnnou cyklu)

I=J, K, L

a

• DO I=J TO K BY L

• a

• ENDDO

• I řídící proměnná  cyklu

• J dolní mez (počáteční hodnota řídící proměnné)

• K horní mez (konečná hodnota řídící proměnné, pro kterou se ještě příkazy provedou)

• L krok, tj. hodnota, o kterou se automaticky zvyšuje řídící proměnná  po každém opakování příkazů a

• Zde je předem známý počet průchodů cyklem,

počet opakování příkazu (příkazů) a.