Základní pojmy

Počítačový systém:

  • technické vybavení (hardware) – vše „hmatatelné“, tj. např. procesor, pamět, disky, I/O zařízení, …
  • programové vybavení (software)

Programové vybavení:

  • systémové programové vybavení – umožňuje efektivně využívat technické vybavení počítače, ovládá a koordinuje jeho činnost
  • aplikační programové vybavení – konkretní aplikace, tj. např. textový editor, tabulkový kalkulátor, grafický editor, …

Systémové programové vybavení:

  • vlastní operační systém – ovládá technické vybavení počítače a vytváří vhodnější podmínky pro jejich využívání v aplikačním software
  • ostatní systémové programy – nejsou nezbytně nutné pro vlastní běh operačního systému, ale slouží např. k jeho administraci, k nastavování parametrů technického vybavení, …

Víceprocesorové počítače – počítače s více než jedním procesorem

  • multiprocesory (multiprocessors) – mají sdílenou paměť
  • multipočítače (multicomputers) – nemají sdílenou paměť, procesory komunikují např. pomocí mechanismu zasílání zpráv

Rozdělení víceprocesorových strojů:

  • Asymmetric multiprocessing – rozdílný charakter a využití procesorů, pouze jeden procesor smí pracovat se systémovými datovými strukturami
  • Symmetric multiprocessing – procesory mají obvykle rovnoprávnou úroveň, se systémovými datovými strukturami tedy může pracovat více procesorů

Operační systém

  • je vlastně tvořen jednotlivými moduly výpočetního systému, které ovládají řízení prostředků, kterými je tento výpočetní systém vybaven (např. procesory, paměti, I/O zařízení, …). Tyto moduly řeší sporné situace (např. využívání nebo sdílení téhož prostředku více úlohami) a zároveň optimalizuje výkon a zjednodušuje efektivní využívání výpočetního systému

Funkce operačního systému:

  • správce zdrojů – resource manager. Zdroje jsou I/O zařízení, soubory, procesor, paměť apod. Operační systém vlastní tyto jednotlivé systémové zdroje a přiděluje či odebírá je jednotlivým procesům
  • virtuální počítač – virtual machine. Operační systém skrývá detaily ovládání jednotlivých zařízení (transparentnost), definuje standardní rozhraní pro volání systémových služeb. Programátor tak nemusí znovu programovat I/O operace

Multiprogramový systém

  • systém, v němž může být více procesů ve stavu provádění, tj. proces byl zahájen a nebyl ještě dokončen nebo zastaven. (Současný běh více procesů na jednom procesoru je pouze zdánlivý, protože v daném okamžiku může procesor provádět pouze jeden)

Virtuální počítač

  • souhrnné označení pro hw vybavení počítače + OS

Rozdělení OS podle různých hledisek

  • podle počtu uživatelů
  • podle počtu zpracovávaných úloh
  • síťové operační systémy

Charakteristika a základní vlastnosti jednotlivých typů operačních systémů

  • Modely OS

Monolitický OS

  • OS je organizovaný jako sada mnoha procedur, které se mohou navzájem vyvolávat. Je to běžné u menších OS, např. MS-DOS. Rozšiřování takovéhoto systému může být obtížné, protože změnou procedury se mohou do zdánlivě nesouvisejících částí systému zanést chyby
  • kód OS běží v privilegovaném módu procesoru, aplikace v neprivilegovaném (uživatelském) módu
  • mechanizmus provádění úlohy je takový, že uživatelský program v uživatelském režimu volá systémovou službu, procesor toto volaní zachytí (pomocí přerušení) a poté přepne volající podproces do privilegovaného režimu. Když je systémová služba ukončena, podproces je přepnut zpět do uživatelského režimu a volající program může dál pokračovat.
  • + rychlost
  • – obtížná modifikace a hledání chyb

Strukturovaný (vrstvený) OS

  • operační systém je tvořen moduly (vrstvami), které jsou vrstveny jeden na druhý. Každý poskytuje sadu funkcí, které mohou ostatní moduly volat
  • kód z určité vrstvy může volat kód z nižší vrstvy
  • při rozšiřování nebo odlaďování OS lze postupovat po vrstvách bez hrozby ovlivnění ostatních částí systému
  • nižší vrstvy jsou více propojené s hw
  • chyby ve vyšších vrstvách nemohou způsobit zhroucení celého systému

OS typu klient/server

  • komponenty OS jsou malé a uzavřené
  • základem je mikrojádro, které ale poskytuje pouze minimum služeb – plánování procesů a úloh a meziprocesorovou komunikaci
  • mikrojádro běží v privilegovaném režimu a jako jediné může pracovat se systémovými daty
  • ostatní služby jsou poskytovány samostatnými službami – tzv. servery. Každý server běží jako oddělený proces v uživatelském režimu
  • pokud libovolný server selže, neohrozí zbytek OS a může být i znovu spuštěn
  • uživatelské programy využívají služeb OS pomocí zasílání zpráv mikrojádru a to je předává příslušnému serveru ke zpracování
  • u víceprocesorových systémů můžou být jednotlivé servery spouštěny na různých procesorech, nebo dokonce počítačích. Tím se OS stává vhodným pro implementaci prostředí pro distribuované výpočty
  • – rychlost zasílání zpráv je pomalejší než volání funkcí
  • + snadná implementace nových funkcí k jednotlivých serverech bez ohrožení funkčnosti OS

 

Nejpoužívanější OS

  • Unix/Linux – viz samostatná otázka
  • Windows – viz samostatná otázka
  • MS-DOS – viz níže

Virtuální paměť

Virtuální paměť je způsob správy operační paměti počítače, který umožňuje předložit běžícímu procesu adresní prostor paměti, který je uspořádán jinak nebo je dokonce větší, než je fyzicky připojená operační paměť RAM. Z tohoto důvodu procesor rozlišuje mezi virtuálními (logickými) adresami (pracují s nimi strojové instrukce, resp. běžící proces) a fyzickými adresami paměti (odkazují na konkrétní adresové buňky paměti RAM).

Virtuální paměť je rozdělena na bloky adres – stránky (pages) nebo segmenty. Fyzická paměť je rozdělena na bloky adres – rámce (frames).

Převod mezi virtuální a fyzickou adresou je zajišťován samotným procesorem (je nutná hardwarová podpora) nebo samostatným obvodem.

  • proces i data musí být k disposici v „primární“ paměti – RAM, aby mohly být zpracovány
  • velikost primární paměti – fyzické paměti – je omezená,  velikost zpravidla pro provoz počítačového systému nedostatečná
  • k rozšíření kapacity OP se využívá další systémový zdroj – diskovou paměť – k vytvoření virtuální paměti
  • mapování virtuální paměti (logických adres) do fyzické paměti (fyzických adres) probíhá v procesoru (MMU, registry) – strategie přidělování paměti je dána systémovou platformou
  • Swapping – mechanismus odkládání procesů z hlavní paměti do odkládacího paměťového prostoru a naopak

Existují dvě základní metody implementace virtuální paměti – stránkování a segmentace.

  • Při stránkování je paměť rozdělena na větší úseky stejné velikosti, které se nazývají stránky. Rámce (fyzických adres) a stránky (virtuálních adres) mají zpravidla stejnou velikost. Správa virtuální paměti rozhoduje samostatně o tom, která paměťová stránka bude zavedena do vnitřní paměti a která bude odložena do odkládacího prostoru (swapu).
  • Při segmentaci je paměť rozdělena na úseky různé velikosti nazývané segmenty. Mohou se i překrývat

Logický prostor virtuální paměti

  • lineární (souvislý) – zpravidla u procesorů RISC
  • segmentovaný (segmenty různé délky se mohou překrývat) – zpravidla u procesorů CISC

Cache paměť TLB (Translation Look-Aside Buffer)

Slouží ke zvýšení rychlosti vyhledávání fyzických adres, urychluje překlad logických adres na úkor vyšší režie systému. TLB cache obsahuje mapu nejpozději hledaných stránek, pokud není záznam pro stránku v TLB nalezen, musí jádro vyhledávat v tabulce stránek s přímým mapováním.

MS-DOS

Historie

Počátky operačního systému MS-DOS se datují k roku 1981. Společnost IBM (International Business Machines) spolu se společností Intel dokončovaly počítač pro širokou veřejnost s názvem IBM PC 5150. Společnost se však potýkala s problémem při tvorbě operačního systému TopView. Projekt se začal opožďovat. Proto se IBM rozhodla zkusit kromě TopView ještě něco jiného, pro případ, že by TopView nebyl v době uvedení počítače hotov.

Firma Microsoft mezitím koupila od firmy Seattle Computer Products (SCP) systém QDOS (Quick and Dirty Operating System – rychlý a „špinavý“ operační systém) neboli 86-DOS, vytvořený v roce 1980. Poté byl firmou systém přeprogramován pro IBM PC 5150 a licencován firmě IBM pod názvem MS-DOS 1.0.

Cena PC 5150 byla v přepočtu asi sto tisíc korun. Počítač obsahoval procesor Intel 8086 o taktu 4,77 MHz, paměť 64 kB RAM, černobílý monitor, klávesnici, disketovou mechaniku a Microsoft Disk Operating System (zdarma). Za jiné operační systémy (i kvalitnější) musel zákazník zaplatit nemalou částku. Přesto tento počítač dosáhl během několika měsíců neuvěřitelného rozšíření (až milion prodaných kusů). Třebaže byl MS-DOS zastaralý, jen málo zákazníků si vybralo něco jiného.

Základní vlastnosti

  je monoprogramní (jednoúlohový)

  je monouživatelský

  neposkytuje žádné speciální prostředky pro práci v reálném čase

  neposkytuje žádné prostředky ochrany dat ani přístupu k nim

  umí přímo využít pouze 640 KB operační paměti

  k paměti RAM mapované nad tuto hranici lze přistupovat pouze pomocí speciálních ovladačů.

Zavedení systému

Zavaděč operačního systému slouží k zavedení jednotlivých komponent operačního systému, které jsou uloženy ve formě souborů na diskovém systémovém médiu, do operační paměti počítače. Z tohoto faktu vyplývá skutečnost, že musí být alespoň částečně obeznámen s logickou organizací média podporovanou operačním systémem. Přesněji řečeno, musí být schopen příslušné soubory identifikovat a zavést je do operační paměti.

K tomuto účelu má v případě operačního systému MS-DOS výrazně ulehčenou situaci, protože dva systémové soubory, které jsou zaváděny do operační paměti počítače, jsou uloženy jako první soubory v datovém prostoru média. Soubory mají název IO.SYS a MSDOS.SYS a tyto názvy jsou před jejich zavedením do paměti kontrolovány. Jestliže tyto soubory nejsou na systémovém médiu nalezeny, vydá zavaděč systému na obrazovku počítače chybové hlášení a zastaví další provádění programu. Uživatel počítače v takovém případě musí zavaděči poskytnout korektní systémové médium, ze kterého je možno systémové soubory zavést. Po provedení uvedených kontrol systémového média je do paměti počítače zaveden soubor IO.SYS a je mu předáno řízení.

IO.SYS

vazební program – zprostředkovává spojení mezi hardware a OS, určuje fyzický způsob zpracování (např. zápis/čtení znaku). Navazuje na podprogramy BIOSu, které jsou plně závislé na hardware

MSDOS.SYS

jádro systému – určuje logický způsob zpracování (práce se soubory, adresáři, zařízeními)

COMMAND.COM

interpret příkazů – zajišťuje komunikaci mezi uživatelem a systémem. Zpracovává příkazy obsluhy zadané buď z klávesnice, nebo pomocí dávkových souborů.

Příkazy buď provede ihned, tj. interní příkazy (DIR, DEL, COPY, CD, …), nebo spustí externí příkaz uložený ve formě souboru na disku.
Má tři části:

  • inicializační – pracuje pouze při prvním zavedení do paměti
  • rezidentní – je trvale přítomna v paměti
  • tranzientní – leží v horní části paměti, kde může být v případě nedostatku paměti jiným programem přepsána

Nástupcem COMMAND.COM v novějších systémech je soubor cmd.exe

CONFIG.SYS

konfigurace systému

  • cílem je maximální přizpůsobení systémového prostředí spec. požadavkům provozovaných programů, uživatele či nestandardnímu hardware
  • je to textový soubor
  • systém ho hledá a pokouší se ho zpracovat vždy při startu systému
  • není-li nalezen, předpokládají se defaultní hodnoty a nastavení
  • potlačit ho lze při startu klávesou F5 (nebo držením SHIFT), případně krokovat stiskem klávesy F8
  • rozdělení paměti

AUTOEXEC.BAT

inicializace systému

  • systém ho hledá a pokouší se ho spustit při každém zavádění OS
  • v pořadí je vždy druhý za CONFIG.SYS
  • vkládají se sem všechny příkazy OS, které pomáhají vytvořit vhodné systémové prostředí pro uživatele (PATH, PROMPT, BREAK, SET, …)
  • dále se zde mohou vyskytovat programy, které je vhodné vykonat před vlastním započetím práce (antivirové testy, přepnutí na určitý disk, instalace rezidentních programů, …)
  • spuštění tohoto souboru při startu systému lze potlačit stiskem klávesy F5 (nebo držením SHIFT)

Znaková a bloková zařízení

Znaková (nesouborově orientovaná) – pracují najednou vždy jen s jedním znakem

    • CON – standardní I/O zařízení (klávesnice/monitor)
    • AUX – první sériový port (COM1)
    • COM2
    • PRN – první paralelní port (LPT1)
    • LPT2
    • NUL – neexistující zařízení. Lze použít jako vstup i výstup

chovají se jako soubory, lze je tedy používat místo specifikace souboru u příkazů (copy dopis.txt a:; copy dopis.txt a: > nul; copy dopis.txt prn:)

Bloková (souborově orientovaná) – Bloková zařízení jsou taková, které komunikují po blocích dat. Chceme-li přečíst nebo zapsat jediný bajt, musíme přečíst nebo zapsat celý blok. Typickým zástupcem je pevný disk, magnetická páska (blok je 512 bajtů), jednotka CD nebo DVD (blok je 2048 bajtů). Tyto zařízení jednotlivé bloky číslují a lze si vybrat, se kterým blokem se bude pracovat. Označují se jednotlivými písmeny abecedy.

Hlavním rozdílem od znakových zařízení je vyžití vyrovnávací paměti (bufferu). Pro každé zařízení operační systém alokuje buffer, do kterého je při čtení přenesen ze zařízení celý blok dat. Čtení jednotlivých znaků uvnitř tohoto bloku pak probíhají již jen v rámci bufferu a k zařízení již není potřeba přistupovat. Při zápisu jsou změny nejdříve prováděny do bufferu a teprve až jsou změny kompletní, přenese operační systém celý blok do zařízení a blok je vymazán.

Souborový systém

MS-DOS používá souborový systém FAT16 (eventuelně FAT12). FAT (File Allocation Table) je způsob ukládání souborů na disk a informování o tom, kde je který soubor uložen a kde jsou jeho jednotlivé části. FAT16 určuje použití 16ti bitových ukazatelů na alokační jednotky (clusters), pomocí kterých jsou soubory ukládány na disk. Čím větší disk je, tím větší jsou také alokační jednotky. FAT16 totiž obsahuje konečný počet možných alokačních jednotek (daný 16ti bity informace o pořadovém čísle alokační jednotky). Díky tomu je FAT16  omezen ve velikosti disku (cca. 2GB na oblast) a pochopitelně je značně nevýhodný při ukládání malých souborů – soubory se totiž ukládají po skocích ve velikosti příslušné alokační jednotky.

Možnost zadávání jména souboru je omezena na 8 znaků a jeho příponu

na 3 znaky. Další byte je vyhrazen atributu souboru. Jejich typy:

  • S – systémový soubor.
  • H – skrytý soubor.
  • A – archivní soubor.
  • R – soubor pouze pro čtení .

Dále je zde zaznamenán datum a čas poslední změny.

Systém poskytuje dva důležité nástroje: CHKDSK a SCANDISK, které zajišťují, aby

se při problémech neztrácela data. Tyto programy kontrolují podle FAT tabulky stav každého

záznamu na disku. Najdou obsazená místa v paměti bez názvu souboru a zeptají se uživatele,

zda chce soubory prohlédnout nebo smazat a označit jako volné místo. Jejich používání

udržuje běh systému v optimálním stavu.

Adresářová struktura

Kořenový adresář je označen písmenem jednotky a dvojtečkou (C:). Pro oddělování se používá zpětné lomítko (pravý Alt + Q), nadřazený adresář označují dvě tečky (viz relativní cesta). Pro názvy souborů se používá 1 – 8 znaků pro jméno a 0 – 3 znaky pro příponu. Existují zakázané znaky (?, *) i přímo zakázaná jména: ta, která označují znaková zařízení. Znaky ?, * se používají pro vyhledávání podle notoricky známých pravidel.

Cesta

Absolutní cesta k souboru je určení polohy souboru na disku bez ohledu na aktuální adresář (složku). Relativní cesta k souboru je určení polohy souboru vzhledem k zadanému adresáři (složce). V relativní cestě se vyskytují znaky ..\ , které mají význam ukazatele na rodičovskou složku.

Princip mazání a obnovení souborů

Příkaz DEL maže jeden nebo více souborů z disku.

Syntaxe: C:\>DEL [disk:] [cesta] název mazaného souboru

Může se použít atribut /P . Je-li uveden, příkaz vypisuje jméno každého souboru a ptá se, jestli má být opravdu

smazán. Podporuje hvězdičkovou konvenci.

Příkaz DELTREE maže celé adresářové stromy.

Příkaz UNDELETE tímto příkazem lze obnovit vymazané soubory.

Syntaxe: C:\>UNDELETE cesta/přepínač

Přepínače:

/LIST vypíše seznam souborů, které lze obnovit

/ALL obnoví všechny obnovitelné soubory bez výzvy (automaticky vypíše a obnoví na disk)

/DOS obnoví soubory, které MS DOS označil jako vymazané

Pozn.: Nejprve zvolit přepínač /LIST, pak přepínač /DOS a potvrdit Y/N a pak zapsat místo otazníku první písmeno ztraceného souboru

** Poznámka: mám pocit, že „principem mazání a obnovení souborů“ nebyly myšleny výše zmíněné příkazy, ale něco v tom smyslu, že mazáním vlastně jen skryjeme cestu k souboru, přičemž data nadále zůstávají na disku, dokud nejsou přepsána jinými daty. Bohužel jsem to nikde pořádně popsáno nenašel. Máte-li lepší informace, doplňte prosím.

Interní a externí příkazy

Příkazy systému zadané na příkazovou řádku vyhodnocuje komunikační program operačního systému COMMAND.COM. Některé příkazy jsou interní – ty COMMAND.COM přímo provádí. Ostatní – externí příkazy provádějí programy uložené v adresáři DOS, na který by měla být nastavena vyhledávací cesta příkazem PATH. (Pokud COMMAND.COM odmítá některý externí příkaz např. FORMAT, zřejmě nemůže najít odpovídající program FORMAT.EXE.)

Redirekce, zřetězení příkazů a filtry

  • redirekce (přesměrování) lze provádět jak na standardním vstupu, tak i výstupu (CON) a to buď do/ze souboru, nebo i na jiné zařízení
  • filozofie je převzatá z UNIXu
  • pro přesměrování se používájí znaky
    • > – přesměrování výstupu. Pokud soubor, do kterého je výstup přesměrován, neexistuje, bude vytvořen. Jinak je jeho obsah přepsán
    • < – přesměrování vstupu
    • >> – přesměrování výstupu. Pokud soubor, do kterého je přesměrování provedeno, existuje, bude výstup připojen na jeho konec

př. dir > seznam.txt; dir >> seznam.txt; dir > PRN

  • na jedné příkazové řádce lze zadat více příkazů najednou
  • výstup jednoho se může stát vstupem pro druhý atd.
  • velmi často se toto používá ve spojení s filtr

Pro zřetězení dvou příkazů se používá znak | , tedy příkaz1 | příkaz2

Někdy může nastat problém při vytváření dočasných souborů a jejich následnému odstraňování. Pokud není definováno systémovou proměnno TEMP jinak, používá se aktuální adresář

př.

příkaz1 | příkaz2 | příkaz3 je ekvivalentem

  • příkaz1 > tmp1
  • příkaz2 < tmp1 > tmp2
  • příkaz3 < tmp2
  • del tmp1
  • del tmp2

Filtry se používají většinou ve spojení s redirekcí nebo zřetězením. V MS-DOSu existují tři standardní filtry

  • MORE – stránkování výpisu

more  < dopis.txt
type dopis.txt | more
dir | more
dir /p

  • SORT – třídění vstupu podle abecedy

– malá a velká písmena se nerozlišují, velikost tříděného souboru je omezena na 64 KB
dir | sort > PRN
sort < text.txt > setriden.txt
parametry:  /R – reverzní třídění, /+n třídění až od n-tého sloupce

  • FIND – vyhledání textového řetězce

– implicitně se velká a malá písmenka rozlišují
find „honza“ text.txt
parametry: /V výpis řádku, které řetězec neobsahují. /C počet řádků obsahujících řetězec. /I nerozlišují se velká a malá písmena. /N před každou řádkou obsahující daný řetězec se vypíše její pořadové číslo
find /V „honza“ text.txt
find /I „honza“ text.txt text2.txt
dir | find „<DIR>“
dir | find /V „<DIR>“

 

Některé příkazy MS-DOS

  • CD přepnutí se do adresáře
  • MD vytvoření adresáře ( kromě hlavního adresáře )
  • RD zrušení adresáře ( kromě hlavního adresáře )
  • DIR provede výpis obsahu adresáře
  • COPY kopírování a spojování souborů
  • DEL mazání souborů z disku
  • REN změna jména ( přípony ) soubory
  • TYPE výpis obsahu diskového souboru
  • VERIFY zapnutí kontroly správnosti při kopírování
  • LH zavede program do vyšší paměti a tam jej spustí
  • PATH slouží k nastavení přístupových cest do různých adresářů, obsahujících nejčastěji používané programy. Nejčastěji se používá v dávkových souborech.

Dávkové zpracování

Dávkový soubor je textový soubor obsahující sérii příkazů, které jsou zpracovány interpretem příkazového řádku. Když je dávkový soubor spuštěn, interpret čte soubor a spouští jednotlivé příkazy, které jsou umístěny na samostatných řádcích. Dávkové soubory jsou užitečné, když je potřeba spustit po sobě několik spustitelných souborů, čehož obvykle využívají administrátoři pro automatizaci zdlouhavých procesů. DOSové dávkové soubory mají příponu souboru .BAT.

Lze použít speciální příkazy, např.:

    • CALL
      • vyvolá jiný dávkový soubor a po jeho ukončení pokračuje původní (analogie vyvolání podprogramu)
      • volání jiného dávkového souboru bez použití CALL způsobí ukončení původního
    • CHOICE
      • umožňuje interakci s obsluhou
      • dle odpovědi nastaví systémovou proměnnou ERRORLEVEL
      • /C:klávesy – definuje povolené klávesy jako odpovědi
      • /S – rozlišovat malé a velké znaky
      • /N – nezobrazí nabídku možných odpovědí
      • /Tk,ss – implicitní odpověd k po ss vteřinách
      • CHOICE /CAN /TN,5 Pokracovat Ano/Ne
        • zobrazi Pokracovat Ano/Ne [A/N] a čeká na stisk klávesy. Neodpoví-li obsluha do 5 vteřin, doplní se odpověďN. Proměnná ERRORLEVEL bude obsahovat 2 (v případě A by obsahovala 1)
    • ECHO
      • výstup na CON
      • ECHO OFF – potlačí výpis jednotlivých příkazu
      • ECHO ON
      • ECHO ahoj
      • ECHO %PATH% – výpis systémové proměnné PATH
      • ECHO Y | DEL . > NUL
      • ECHO přidaný text >> soubor.txt

 

Systémová proměnná

je místo v operační paměti pro uložení libovolného textu.

Pro jejich nastavení slouží příkaz SET, syntaxe: SET jmeno =obsah

Nejdůležitější systémové proměnné:

PATH seznam vyhledávacích cest. Nastavuje ji příkaz PATH. Je možné použít i nastavení SET PATH=cesty, ale příkaz PATH ošetřuje mezery a jiné chyby v cestách.

TEMP adresář pro dočasné soubory. Měl by být na pracovním disku s dostatečnou volnou kapacitou.