Table of Contents

Operační systémy Jiří Zacpal

DEPARTMENT OF COMPUTER SCIENCE PALACKÝ UNIVERSITY, OLOMOUC KMI/YUDIT Úvod do informačních technologií

Osnova

Literatura

Operační systém

Co to je operační systém

(API) a uživatelům práci s počítačem pomocí svého uživatelského rozhraní (UI) a programů

Operační systém

Části OS

diagnostické nástroje, diskové utility, programy pro práci se zařízeními, sítí apod.

neinteraktivní (dávkové), interaktivní - textová konzole s interpretem příkazů (shell) nebo

  grafické s okenním systémem

Jádro

počítače při startu a zůstává v činnosti po celou dobu běhu operačního systému.

Tento typ jádra je použit u operačních systémů Windows.

Typy OS

VxWorks, QNX, upravené univerzální (např. RTLinux, MS WindowsCE) i HW řešení, např. pro řízení strojů

paměti, pro počítačové klastry (cluster)

GNU/Linux, Unix, na (síťových) serverech unixové, na embedded zařízeních různé (MS Windows, Linux)

Linux

Windows

Vykonávání instrukcí

hodnoty adres do operační paměti a vstupně/výstupních zařízení)

přípustné kombinace pro každou instrukci

Programovací jazyky

procesoru, (zápisů) čísel a textu, hodnot adres, proměnných atd.

  MOV eax, promenna1; CMP ebx, promenna2; JE adresa
* překládán do kódu instrukcí
* přímá a nepřímá adresa do paměti - adresa vypočítána z hodnot v registrech a zadaných
  přímo, např. posunutí + báze + index x faktor, použití pro přístup do pole, k lokální proměnné apod.
* Vyšší programovací jazyky
* vyšší úroveň abstrakce, např. iterace přes prvky seznamu -> cyklus průchodu seznamem ->
  jména instrukcí procesoru (přesuny z/do paměti, log. operace, skoky aj.) -> kódy instrukcí
* [[cs>Překladač]] - přeloží (přepíše) program z jednoho (vyššího) prog. jazyka do jiného (nižšího)
  jazyka, typicky až do kódù instrukcí
* interpret - přeloží program z prog. jazyka do programových bloků interní formy a tyto vykoná

Přerušení (Interrupt)

vyřízení), pokračování ve výpočtu

požadavek, oznámení vyřízení požadavku = přerušení procesoru

sběrnici) a pokračuje ve výpočtu, disk najde sektor, načte do své cache a vyvolá

  přerušení, procesor vyšle požadavek zaslání bytu dat, disk pošle, procesor uloží do
  operační paměti, další byte atd.
* pozastavení vykonávání programu, vykonání programu (rutiny) obsluhy přerušení
  implementované OS (např. ovladači zařízení), pokračování vykonávání programu (od
  následující instrukce)
* během vykonávání obsluhy přerušení další přerušení zakázána nebo systém priorit přerušení

Přerušení (Interrupt)

aj., 256 přerušení u Intel 80×86

větší množství dat, např. disková zařízení, procesor pouze naprogramuje řadič DMA a

  vyšle prvotní požadavek, zbytek řeší řadič

Procesy

„vykonávání kódu“, zatímco proces je „paměť a další prostředky“.

Stavy procesů

obrázek

Plánování procesů

Přepnutí kontextu

stejného místa, ve kterém byl přerušen a aby v procesu až na časové zpoždění nebylo

  poznat, že k přerušení došlo => [[cs>Změna kontextu|přepínaní kontextu]]
* uložení kontextu (anglicky context save) - kompletní uložení stavu procesu
* obnovení kontextu (anglicky context restore) – zpětné načtení stavu procesu do procesoru
* změna kontextu (anglicky context switch) - uložení kontextu jednoho a obnovení kontextu druhého

Komunikace a synchronizace

pomocí speciální sdílené paměti a posíláním zpráv IPC

sdílenou paměť a jiné zdroje počítače, zvláště při více procesorech

při konfliktních operacích, např. čtení-zápis - fáze operací (i instrukcí procesoru) např.

  čtení z paměti, operace, zápis do paměti

Synchronizace

např. nastavení nebo inkrementace atomické proměnné, použití pro implementaci tzv.

  synchronizačních primitiv
* [[cs>synchronizační primitiva]]: zámek ([[cs>mutex]]), [[cs>semafor]] (počítadlo), [[cs>kritická sekce]], událost, monitor a další
* hardwarová podpora: atomické instrukce procesoru (test-and-set, fetch-and-add,
  compare-and-swap aj.), zakázání přerušení (při jednom procesoru), preempce (při více procesorech)
* softwarové implementace: Dekkerův (1965), Petersonův (1981) algoritmus, vyžadují atomické uložení hodnoty do proměnné
* implementovaná a poskytovaná OS, ale i využívaná v rámci samotného OS!

Uváznutí (deadlock)

„požadavek na přivlastnění-používání-uvolnění”

1. výlučné vlastnictví,

  2. čekaní při vlastnictví jiného,
  3. vzájemné (cyklické) čekání,
  4. nemožnost [[cs>preempce]] (násilné odebrání prostředku)
* řešení deadlocku:
* neřešení (ignorování),
* detekce a zotavení,
* prevence (zamezení vzniku, tj. nenaplnění podmínek),
* vyhýbání se (přidělování prostředkù tak, aby nenastaly podmínky)
* dnešní OS neřeší (ignorují)

Správa operační paměti

Přidělování operační paměti

Virtuální paměť

paměť), které je sice výrazně pomalejší, ale také výrazně lacinější

paměti přemísti do sekundární. Tomuto procesu se říká swapování. honza: celá? tato kapitola je nesmysl? viz Stránkování paměti, viz stránkování na disk. Virtuální paměť je podle mne o tomto: Virtual memory Virtual address space

Souborový systém

organizována. Organizaci těchto dat se říká souborový systém.

Souborový systém

honza: hmm, a co Logical Volume Management

připojují pomocí tzv. mountování (2/mounting).

Soubory

Atributy souboru

Adresáře

jméno, atributy a adresu, kde je na disku uložen.

adresářů, které vytvářejí hierarchickou strukturu souborového systému.

Linky

je tedy vlastně hard link. Moderní operační systémy umožňují vytvářet více hard linků k jednomu souboru.

Souborové systémy

Správa zařízení

velikost bloku je od 128 B do 1 024 B), které mají svou adresu. Základní vlastností

  těchto zařízení je to, že umožňují čtení či zápis celého bloku.
* Znaková (například klávesnice, myši, tiskárny). Tato zařízení pracují s proudy znaků,
  které nemají žádnou adresu. Data se tedy čtou a jsou i ukládána po znacích.

Správa zařízení

který vytváří a ukládá soubory na libovolná zařízení (disk, flash disk, …) a pro každé

  z těchto zařízení není potřeba tento program měnit.
* Zajistit ošetření chyb zařízení. Při čtení nebo zápisu na zařízení se může vyskytnout
  chyba. Operační systém by měl tuto chybu odstranit, pokud to jde, a pokud ne, měl by
  tuto chybu ošetřit (pokusit se o danou akci znovu, ohlásit chybu, …).
* Zajistit sdílení zařízení. Každé zařízení může využívat více uživatelů v tu samou chvíli.
* Tyto cíle zajišťuje operační systém pomocí ovladačů zařízení

Disky

RAID

uložená data zachována i při selhání některého z nich

Podrobnější informace

Příště

• Počítačové sítě, technologie a principy fungování. Celosvětová síť Internet a její služby.