Operační systémy I

Autor: Ing. Jakub Šimůnek

Obsah
- Úvod
o Cíle předmětu
o Přehled témat
o Hodnocení
o Konzultace
- Úvod do operačních systémů

Cíle předmětu
- Rozumět základním funkcím a službám poskytovaným operačními systémy
- Zvládat základy práce s příkazovým řádkem
- Instalace,správa a konfigurace operačního systému

Přehled témat
- Úvod do Operačních  Systémů
- Architektura Operačního Systému
- Správa Procesů
- Správa Paměti
- Souborové Systémy
- Ovladače zařízení a Hardware
- Bezpečnost a Ochrana
- Virtualizace a Cloud Computing
- Současné Trendy v operačních systémech
- Práce s příkazovým řádkem

Úvod do operačních systémů
Operační systém
- Zajišťuje efektivní využití zdrojů
- Zprostředkovatel mezi uživatelem a počítačovým hardwarem
- Zajišťuje základní operace (správa paměti, plánování úloh, správa souborů atd.)

Základní funkce operačního systému
- Správa procesů
- Správa paměti
- Souborový systém
- Ovladače zařízení
- Uživatelské rozhraní

Příklady operačních systémů
- Microsoft Windows
- macOS
- Linux (Ubuntu, Fedora, atd.)
- Android, iOS (mobilní OS)

Historie Operačních Systémů
1950 - První Generace: Dávkové Zpracování
-Bez OS, jednoduché úkoly prováděné sekvenčně

1960 - Druhá Generace: Multiprogramming
- První OS jako je IBM OS/360
- Možnost spuštění více programů najednou

1970 - Třetí Generace: Interaktivní Systémy
- UNIX a C programming language
- První verze Windows a macOS později v této dekádě

1980 - Čtvrtá Generace: GUI a Osobní Počítače
- Windows 3.1, Mac OS, první verze Linuxu
- Snadná manipulace s objekty prostřednictvím grafického rozhraní

1990 - Pátá Generace: Internetová Éra
- Windows 95/98, Internet Explorer, Netscape
- Distribuce software přes internet

2000 - Šestá Generace: Mobilní a Embedded Systémy
- Android, iOS, real-time OS pro vestavěné systémy

2010 - Sedmá Generace: Cloud a Virtualizace
- OS schopné spravovat virtuální prostředí
- Cloudové služby, jako je AWS, Azure

2020 - Současnost: AI a Edge Computing
- OS optimalizované pro strojové učení a IoT
- Snaha o minimalizaci latence a maximalizaci výkonu

Počítačový software
- Firmware
- Operační systém
- Aplikace

Firmware
- Speciální typ sofware - uložení do paměti čipu v elektronickém zařízení
- (Ne)může být měněn uživately
- aktualizace výrobci
- základní řízení hardwaru
- poskytuje nízkoúrovňové instrukce pro zařízení

Operační systém
- slouží jako rozhrání mezi uživatelem a hardwarem počítače
- řídí a koordinuje činnost hardware
- umožňuje spouštění aplikací
- poskytuje uživatelské rozhrání

Aplikace
- navžení k vykonávání konkrétních úkolů pro uživatele
- obvykle poskytuje grafické uživatelské rozhrání

Struktura počítače

Paměť programu a dat
- slouží k uchování instrukcí a dat
- Typy paměti
o Dlouhodobá - HDD,SSD
o Krátkodobá - RAM

Vstupní a výstupní zařízení
- Vstupní zařízení
o Zadávání dat do počítače
o klávesnice, myš, skener, ...
- Výstupní zařízení
o Zobrazení dat z počítače
o Monitor, tiskárna, reproduktor, ...

Procesor
- CPU(Central Processing Unit)
- interpretuje a provádí instrukce
- řídí všechny operace počítače a zpracováva data

Výpočetní část
- ALU (Arithmetic logic unit)
- provedení aritmeticko logických operací (matematické operace a porovnávání)

Mezipaměť výsledků
- rychlá pamět v procesoru
- uchovavání často používaných dat a instrukcí
- L1(nejrychlejší), L2,L3

Řadič
- obvod/čip
- řízení přenosu dat mezi počítačem a periferními zařízeními

Architektura počítače
Von Neumann

- Instrukce a data v téže paměti
- Instrukce a data nelze přenášet současně (pomalejší)
- Jednodušší propojení procesoru s pamětí
- Paměť jednorozměrná - stejně velké buňky
- Instrukce sekvenčně(existují však tzv. skoky)

- Instrukce a data odděleně
- Instrukce lze číst současně s přenosem dat(rychlejší)
- Paměť jednorozměrná - stejně velké buňky
- Instrukce sekvenčně(existují však tzv. skoky)

Shrnutí
Struktura počítače
- Pamět programu a dat
o uchovává instrukce a data pro provoz počítače - dlouhodobé(SSD), krátkodobé(RAM)
o Vstupní a výstupní zařízení - komunikace s počítačem - vstupní(klávesnice), výstupní(monitor)
o procesor - "mozek" počítače
o Výpočetní část - aritmetické a logické operace
o mezipaměť výsledků - rychlá pamět v procesoru
o Řadič - řídí přenos dat mezi počítačem a perifériemi

Von Neumannova architektura
- Jednotná paměť(instrukce, data)
- Sekvenční zpracování
- Většina dnešních počítačů
Harvardská architektura
- Oddělená pamět (instrukce, data)
- Rychlejší zpracování (současné načítání dat a instrukcí)
- vestavěné systémy
- složitější design než von Neumann

Komponenty OS
- Jádro systému (Kernel)
- Rozhrání (Shell)
- Souborový systém
- Ovladače zařízení

Jádro systému(Kernel)
- Role
o Centrální část operačního systému
o Přímo komunikuje s hardwarem
o Řídí systémové zdroje
- Správa paměti
o Alokace
o Uvolnění paměti
o Virtuální paměť

Jádro systému(Kernel)
- Plánování úloh
o proces
§ Program - kolekce příkazů
§ Proces - aktuálně prováděná instance programu
o Životní cyklus procesu
§ Vytvoření, Čekání, Běh, Blokování, Ukončení
- Ovladače zařízení
o Software který umožňuje operačnímu systému komunikovat s hardwarem

Rozhrání (Shell)
- Uživatelské textové rozhrání
- Komunikace s jádrem OS

Souborový systém
- Systém pro organizaci, ukládání a načítání dat na úložišti
- Operace souborového systému
o Čtení, zápis, vytváření, mazání
- Disková organizace
o Sektory a clustery - základní jednotky pro ukládání dat ja disku
o Diskové oddíly - rozdělení disků

Souborový systém
- Typy
o FAT16/32 (File alocation Table) - USB flash/Pamětové karty
§ FAT16 - maximální velikost souboru 2GB
§ FAT32 - maximální velikost souboru 4GB
o NTFS(New Technology File System) - Microsoft
§ Velké soubory a disky
§ Zabezpečení souborů (oprávnění, šifrování, obnova)
o EXT(Extended file System) - Linux
§ ext2, ext3, ext4
o HFS(Hierarchival File System)/ HFS+
§ Apple

Ovladače zařízení
- Komunikace s konkrétním hardwarem
o Přerušení - informace pro jádro o události
o příma komunikace s pamětí - DMA (Direct Memory Acess)
- Překlad instrukcí mezi hardwarem a OS
- Příklady
o Grafické karty
o zvukové karty
o tiskárny

Procesy
Proces
- Spuštěný počítačový program
- Jednotka aktivity
- Obsahuje
o kód programu
o data
- Vlastní
o privátní adresový prostor
o systémové prostředky(Soubory, alokovanou paměť)
o nejméně jedno vlákno

PCB( Process Control Block)
- Tabulka popisu procesů
- informace potřebné pro správu procesů
o PID - identifikace procesu
o Identifikace stavu
o Priorita
o Obsah registrů procesoru
o Informace o I/O zařízeních
o Accounting - čas spuštění, spotřebovaný procesorový čas

Přepínání kontextu
- Reprezentace - PCB
- přepínání procesu
- řízení plánovačem
- doba přepnutí - pár mikrosekund
- doba přidělení - milisekundy

Dvoustavový model
- Pouze 2 stavy
o běžící - Running
o neběžící - not-running

Pětistavový model
- New - založení nového procesu
- Ready - proces je připraven k použití
- Running - proces běží
- Blocked - čekání na zdroje
- Exit - ukončení procesu

Vlákna
Vlákno
- tok programu
- Tradiční OS(UNIX, DOS)
o Jeden proces, jedno vlákno
- Moderní OS
o vícevláknové procesy
o primární vlákno
o primární vlákno může výtvářet sekundární vlákna

- S procesem sdílí
o privátní adresorový prostor - kontext paměti
o prostředky procesu - kontext prostředí
- vlastní
o kontext procesoru
o zásobník

Zásobník
- datová struktura pro dočasné ukládání dat
- poslední dovnitř, první ven
o Last In - First out (LIFO)

Výhody
- proces není blokován při zablokování jednoho vlákna
- sdílení paměti a systémových prostředků
o efektivita, zjednodušený přenos
- přepínání vláken - rychlejší
- zrychlení programu

Plánování procesů
Plánování
- Rozhodnutí které vlákno poběží
- Optimalizace pomocí parametru OS
Rozhodovací parametry
- Doba odezvy – čas do první odezvy
- Doba zpracování – celkový čas běžícího procesu
- Doba čekání – doba čekání ve frontě ready
- Propustnost – počet dokončených procesů/vláken za jednotku času
- Využití procesoru – kolik % času CPU pracuje
- Spravedlnost – spravedlivý díl času

Typy plánování
- Dlouhodobé – při vzniku nového procesu
- Střednědobé – přesun procesu ve stavu ready nebo blocked na disk
- Krátkodobé – přepínání ready-running,Blocked running, reakce na signály, přerušení, systémové volání

Offline plánování
- Předpoklady
o Všechny procesy jsou k dispozici od začátku, jejich počet se nemění
o O všech procesech je známo jak dlouho poběží
- Výsledek
o Dávkové zpracování s ohledem na požadované parametry
o Běh procesů je optimální (není nutné procesy přerušovat)
- Problém
o Nereálné předpoklady – požadované informace zpravidla nejsou k dispozici

Offline plánování
- Algoritmy
o FCFS – First come first served
§ Procesy v pořadí v jakém přicházejí
§ Procesy běží dokud neskončí
o SJF – Shortest Job First
§ Minimalizace průměrné doby odezvy
§ Kratší úlohy plánováné přednostně

Online plánování
- Předpoklady
o Procesy nejsou k dispozici od začátku, jejich počet se nemění, objevují se libovolně
o Doba běhu procesů není známa
- Kriteria plánování
o Vázanost na CPU nebo I/O
o Charakter procesů (interaktivní/dávkový)
o Chování procesu v minulosti
o priorita

Online plánování
- K plánování procesu dochází v následujících situací
o Pokud některý běžící proces přejdo do stavu blokovaný
o Pokud některý proces skončí
o Pokud je běžící proces převeden do stavu připravený
o Pokud je některý proces převeden ze stavu blokovaný do stavu připravený

Problémy při plánování procesů
- Vyhladovění
– procesy s nejnižší prioritou se neprovedou
- Inverze priorit
– situace kdy proces s nízkou prioritou zablokuje proces s vysokou prioritou

Synchronizace vláken
Cíle synchronizace
- Zabránění konfliktů mezi vlákny při použítí sdílených prostředků
- Pozastavení běhu vláken, dokud nejsou splněny specifické podmínky nebo nenastane určená událost
- Zajistit vykonání programových sekvencí v požadovaném pořadí

Optimální mechanismus synchronizace
- Založen na možnosti převedení do blokovaného stavu (blocked, waiting, sleeping)
- V tomto stavu proces/vlákno setrvá tak dlouho, dokud nebudou splněny požadované podmínky
- Jakmile podmínky nastanou, systém proces/vlákno probudí

Kritická sekce
- Část programu kde dochází k přístupu procesu/vlákna ke sdílenému prostředku
- V kritické sekci musí být vlákna synchronizovaná
Podmínky přístupu do kritické sekce
- Výhradní přístup – vstup povolen nejvýše jednomu procesu
- Žádné požadavky na rychlost a počet procesorů
- Procesy/vlákna mimo kritickou sekci nesmí blokovat ostatní procesy/vlákna
- Omezené čekání – rozhodnutí o vstupu nesmí být pro některého odkládáno do nekonečna

Podrobnosti článku

ID článku:
18
Zobrazení:
48
Hodnocení (Hlasy):
(0)

Související položky