Přednáška 2: Multitasking a Procesy

Od jednoho úkolu k tisícům: Iluze současnosti a stavové řízení

Úvod: Iluze multitaskingu

Zvládnete dělat dvě věci najednou?

🗣️ Icebreaker (5 min):
Zeptejte se studentů: "Kdo z vás umí psát SMS a zároveň poslouchat přednášku?" (Všichni si myslí, že ano). Vysvětlete jim, že neurologicky to mozek neumí – jen velmi rychle přepíná pozornost. A přesně tak funguje jednoprocesorový počítač.

Program vs. Proces

Recept není to samé co vaření

Otázka: Když 5x spustím Poznámkový blok, kolik mám programů a kolik procesů?

Máte 1 Program (na disku je notepad.exe jen jednou), ale 5 Procesů v paměti RAM. Každý proces má svůj vlastní "život", své vlastní texty, svá vlastní okna. Neovlivňují se.
🗣️ Důležité (5 min):
Toto rozlišení je klíčové. Žáci si často myslí, že "kliknutí na ikonku" je program. Ne, to je jen startér. Proces vzniká až v RAM.

Životní cyklus procesu

Cesta pacienta nemocnicí

Proces v OS neustále mění stavy. Nemůže jen "běžet".

Stav Co se děje technicky Analogie (Nemocnice)
New Vytvoření struktury, alokace RAM. Pacient přichází na příjem.
Ready Čeká ve frontě na přidělení CPU. Sedí v čekárně, připraven jít dovnitř.
Running CPU právě vykonává instrukce. Je v ordinaci, doktor (CPU) ho vyšetřuje.
Waiting Čeká na disk/klávesnici (I/O). Musí na rentgen. Doktor ho vyhodí a bere dalšího.
Terminated Úklid paměti. Vyléčen, odchází domů.
🗣️ Hloubka (10 min):
Nejdůležitější přechod je Running -> Waiting. Procesor je milionkrát rychlejší než disk. Když proces řekne "Chci načíst soubor", CPU nemůže čekat. Okamžitě proces "uspí" (Waiting) a bere dalšího z fronty (Ready).

Plánování (Scheduling)

Kdo půjde na řadu?

Ve stavu "Ready" (v čekárně) je 50 procesů. Koho vybere OS jako dalšího?

🗣️ Diskuze (10 min):
Moderní Windows/Linux používají kombinaci. Mají priority, ale zároveň používají Round Robin, aby i procesy s nízkou prioritou "dostaly líznout" (prevence stárnutí/starvation).

Změna kontextu (Context Switch)

Nejdražší operace v OS

🗣️ Analogie (5 min):
Představte si, že píšete úkol do matematiky a do češtiny. Kdybyste napsali jedno číslo, zavřeli sešit, otevřeli češtinu, napsali jedno písmeno, zavřeli češtinu, otevřeli matiku... nenapíšete nic. Jen otevíráte sešity.

Anatomie procesu v paměti

Co si proces nese v batohu (PCB)

Každý proces má v RAM vyhrazený svůj "píseček", kam ostatní nesmí:

🗣️ Pro pokročilé (5 min):
Pokud se program "zblázní" a začne psát do Stacku donekonečna, nastane slavný Stack Overflow. Program spadne.

Vlákna (Threads) vs. Procesy

Továrna vs. Dělník

Příklad z praxe: Microsoft Word je jeden proces. Ale má více vláken:

  • Vlákno 1: Čeká, co píšete na klávesnici (aby se to nezasekalo).
  • Vlákno 2: Kontroluje pravopis na pozadí (červené vlnovky).
  • Vlákno 3: Každých 5 minut ukládá soubor (AutoSave).
🗣️ Didaktika (10 min):
Proč je Google Chrome "žrout paměti"? Protože každý TAB (záložka) v Chromu není vlákno, ale samostatný proces! Výhoda: Když spadne jedna stránka, nespadne celý prohlížeč. Nevýhoda: Žere to strašně moc RAM (každá stránka má vlastní "továrnu").

Uváznutí (Deadlock)

Když se dva perou a nikdo nevyhraje

Analogie: Křižovatka
Čtyři auta přijedou na křižovatku z různých směrů přesně naráz. Platí přednost zprava. Každý dává přednost tomu po pravici. Nikdo nejede. Stojí tam navěky.

🗣️ Řešení (5 min):
Jak to OS řeší? Většinou nijak. Čeká, až to uživatel "zabije" ve Správci úloh. Pokročilé systémy umí jednoho "zastřelit" automaticky, aby uvolnily cestu.

Praktická ukázka: Správce úloh

Pojďme se podívat pod kapotu

(Učitel promítne svůj Task Manager / Správce úloh)

Úkol pro studenty:
Otevřete si Správce úloh. Seřaďte procesy podle sloupce Paměť. Kdo je vítěz?

🗣️ Aktivita (5 min):
Ukažte studentům "Zombie proces". Ukončete nějakou aplikaci, ale ukažte, že v seznamu procesů stále visí. Vysvětlete, že "rodič" si ještě nepřečetl zprávu o smrti "dítěte".

Unplugged aktivita: Hra na procesor

Simulace multitaskingu ve třídě

Role (Potřebujeme 5 dobrovolníků)

  • 1x CPU (Procesor): Umí jen číst nahlas.
  • 1x OS (Plánovač): Má stopky a píšťalku.
  • 3x Procesy: Každý drží jinou knihu (Pohádky, Kuchařka, Učebnice).

Pravidla:

  1. OS zapíská. CPU běží k Procesu 1 a čte nahlas.
  2. Po 10 sekundách OS zapíská "ZMĚNA!".
  3. Penalizace (Režie): Než CPU začne číst u Procesu 2, musí oběhnout celou třídu dokola (simulace uložení kontextu).
  4. Opakujeme.
🗣️ Reflexe (10 min):
Zeptejte se třídy: "Bylo to plynulé?" "Kolik času strávil procesor skutečnou prací (čtením) a kolik běháním (režií)?" Děti si uvědomí, že multitasking něco stojí.

Paralelismus: Vícejádrové procesory

Když máme v kuchyni více kuchařů

🗣️ Hloubka (5 min):
Vysvětlete, proč "více jader" neznamená vždy "rychlejší počítač". Pokud aplikace není napsaná pro více vláken (kuchařů), poběží jen na jednom jádře a ostatních 7 se bude flákat.

Didaktické okénko: Otázky a Odpovědi

Co se ptají žáci?

Otázka: "Proč se mi seká hra, když mám super grafiku?"

"Představ si, že malíř (Grafika) maluje obrazy bleskově, ale manažer (Procesor) mu nestíhá říkat, co má malovat. Malíř čeká. Tomu se říká CPU Bottleneck (Úzké hrdlo). Procesor nestíhá krmit grafiku daty."
🗣️ Závěr bloku (5 min):
Naučte budoucí učitele, aby nehledali vinu jen v "viru". Často je to prostě špatná souhra mezi výkonem CPU a požadavky softwaru.

Závěr a shrnutí 2. lekce

Co si odnést?

🗣️ Upoutávka na příště:
Příště se podíváme na Paměť. Kde ten kuchař (CPU) ty recepty skladuje? Co je to RAM, co je to Disk a proč je swapování jako odkládání věcí na zem.
Snímek 1 z 13