1. Otázka: Z nutných podmienok vzniku uviaznutia si vyberte jednu a uveďte ako sa dá zamedziť splneniu danej podmienky metódami prevencie.
Mutual Exclusion (Vzájomné vylučovanie):
Podmienka: Zdieľaný prostriedok môže byť pridelený iba jednému procesu naraz.
Prevencia: Používanie zdieľaných prostriedkov bez vzájomného vylučovania (napr. len na čítanie) alebo centralizovaný Daemon proces, ktorý riadi prístup k prostriedku.
Hold-and-Wait (Zadržiavanie a čakanie):
Podmienka: Proces zadržiava prostriedky a zároveň žiada ďalšie.
Prevencia: Procesy musia získať všetky potrebné prostriedky naraz, inak čakajú a nič nezadržiavajú.
No-Preemption (Bez odnímateľnosti):
Podmienka: Prostriedky nemožno odňať procesu, ktorý ich zadržiava.
Prevencia: Zavedenie preemptívnych prostriedkov, ktoré možno odobrať bez narušenia procesu, a ich neskoršie priradenie.
Circular-Wait (Cyklické čakanie):
Podmienka: Existuje kruhová reťaz procesov, kde každý čaká na prostriedok pridelený inému.
Prevencia: Zavedenie hierarchického očíslovania prostriedkov. Procesy môžu žiadať prostriedky iba v stanovenom poradí.
2. Otázka: Uveďte podmienky riešenia vzájomného vylučovania (Mutual Exclusion).
Kritickú sekciu môže vykonávať naraz iba jeden proces.
Procesy mimo kritickej sekcie nesmú blokovať iné procesy od vstupu do nej.
Ak je viac procesov v čakacej fronte, žiadny z nich nesmie čakať nekonečne dlho (bounded waiting).
Výsledok nesmie závisieť od rýchlosti CPU alebo počtu CPU.
3. Otázka: Uveďte rozdiely, resp. klady a zápory medzi User a Kernel Threads.
Faktor | User Threads | Kernel Threads |
Rýchlosť | Rýchle prepínanie | Pomalšie prepínanie |
Blokovanie | Ak sa jedno vlákno blokuje, blokuje celý proces | Jedno blokované vlákno neblokuje ostatné |
Správa | Spravuje používateľ (bez OS podpory) | Spravuje OS |
Vytváranie | Rýchle a lacné | Pomalé, vyššia réžia |
Prenositeľnosť | Nezávislé na OS | Závislé na OS |
Efektivita plánovania | Horšia | Lepšia, jadro vidí všetky vlákna |
4. Otázka: Uveďte nutné podmienky vzniku uviaznutia (Deadlock).
Mutual Exclusion: Aspoň jeden prostriedok môže byť pridelený iba jednému procesu.
Hold-and-Wait: Procesy zadržiavajú prostriedky a čakajú na ďalšie.
No-Preemption: Prostriedky nemožno odobrať procesu, ktorý ich zadržiava.
Circular-Wait: Procesy čakajú v cykle na prostriedky iných procesov.
Ak aspoň jedna z týchto podmienok nie je splnená, deadlock nemôže nastať.
5. Otázka: Ozrejmite výhody použitia blokujúceho a neblokujúceho riadenia vstupu do kritickej oblasti.
Blokujúce riadenie:
Šetrí CPU, pretože proces „spí“, kým môže vstúpiť do kritickej oblasti.
Zabraňuje aktívnemu čakaní a znižuje riziko starvation.
Neblokujúce riadenie:
Umožňuje procesom aktívne skúšať vstup, čo môže byť efektívnejšie pri krátkych kritických sekciách.
Nevyžaduje systémové volania na blokovanie alebo prebudenie procesu.
6. Otázka: Uveďte postupnosť krokov, ktoré nastanú v OS pri spracovaní prerušenia.
CPU uloží PC a stav procesu na zásobník.
CPU vykoná prerušenie (TRAP) a zavolá Interrupt Service Routine (ISR).
ISR identifikuje zdroj prerušenia (napr. I/O, Page Fault).
ISR vykoná potrebné kroky (napr. načítanie chýbajúcej stránky).
OS obnoví stav procesu a pokračuje vo vykonávaní prerušeného procesu.
7. Otázka: Diskutujte dôvody, prečo je nutná existencia User a Kernel módu v OS.
Bezpečnosť: Kernel mód obmedzuje prístup k citlivým operáciám, ako je správa pamäte a I/O.
Stabilita: Užívatelia nemôžu priamo ovplyvniť systémové dáta a funkcie.
Flexibilita: Microkernely umožňujú modulárny dizajn, kde väčšina funkcií beží v User móde.
8. Otázka: Uveďte dôvody používania viacúrovňového stránkovania.
Šetrí pamäť: Tabuľky strán sú menšie a spravujú sa hierarchicky.
Zlepšuje výkon: Načítavajú sa iba aktívne časti tabuľky stránok.
Umožňuje jednoduchšiu správu pamäte vo veľkých systémoch.
9. Otázka: Uveďte čo sa stane v HW a SW, ak pri vykonaní inštrukcie dôjde k Page Fault.
CPU identifikuje, že stránka nie je v pamäti.
OS vyvolá prerušenie a spustí obslužnú rutinu Page Fault.
OS vyberie stránkový rám (ak nie je voľný).
Stránka sa načíta z disku.
Aktualizuje sa tabuľka strán a proces pokračuje od chybnej inštrukcie.
10. Otázka: Ozrejmite prečo nie je dobré používať zakázanie prerušení vo viacjadrových CPU? Aký iný hardvérový mechanizmus sa používa?
Problém zakázania prerušení: Ovplyvní iba jedno jadro, ostatné môžu stále vykonávať operácie, čo vedie k nekonzistencii.
Alternatíva: Použitie atómových inštrukcií, ako je Test-and-Set Lock (TSL) alebo Compare-and-Swap (CAS), ktoré synchronizujú prístup k zdieľaným zdrojom.
11. Otázka: Uveďte čo je to semafor a ako vyzerá jeho implementácia. Diskutujte operácie nad semaforom a ich vzájomný vzťah.
Semafor je synchronizačný mechanizmus, ktorý slúži na riadenie prístupu k zdieľaným zdrojom a zabezpečenie vzájomného vylučovania.
Typy semaforov:
Binárny semafor (mutex): Hodnoty 0 alebo 1, riadi prístup jedného procesu.
Počítací semafor: Môže mať hodnotu >1, riadi viacnásobný prístup k zdrojom.
Operácie nad semaforom:
init(value): Inicializuje semafor na určitú hodnotu (počet dostupných zdrojov).
down() (P operácia):
Ak je semafor >0, zníži hodnotu a proces pokračuje.
Ak je semafor 0, proces sa zablokuje.
up() (V operácia):
Zvýši hodnotu semaforu.
Ak sú čakajúce procesy, jeden z nich sa prebudí.
Implementácia: Semafor je spravovaný atómovo, napr. pomocou inštrukcie Test-and-Set alebo Compare-and-Swap.
Vzájomný vzťah operácií:
Operácie down() a up() zabezpečujú synchronizáciu procesov tak, aby sa zabránilo race conditions a zabezpečila efektívna koordinácia.
12. Otázka: Opíšte princíp dynamickej relokácie. Aké úpravy procesora je nutné vykonať, aby sme ju mohli použiť?
Dynamická relokácia umožňuje procesom používať logické adresy nezávisle od fyzického umiestnenia v pamäti. Pri každom prístupe k pamäti sa logická adresa prekladá na fyzickú.
Princíp:
Base register: Pridáva sa k logickej adrese, aby sa vypočítala fyzická adresa.
Limit register: Kontroluje, či výsledná fyzická adresa nepresahuje pridelený rozsah.
Úpravy procesora:
Pridanie Base a Limit registrov.
HW podpora pre preklad logických adries.
Mechanizmus na detekciu a spracovanie neplatných prístupov (prerušenia).
13. Otázka: Vymenujte funkčné mechanizmy / riešenia používania pre riadenie vstupu do kritickej oblasti.
Zakázanie prerušení: Nevhodné pre viacjadrové procesory, no jednoduché na implementáciu.
Busy Waiting:
Algoritmy ako Petersonov algoritmus.
Použitie špeciálnych inštrukcií, ako je Test-and-Set Lock.
Sleep and WakeUp:
Semafory: Operácie up() a down().
Monitory: Vysokoúrovňový mechanizmus s podmienenými premennými.
Spin Locky: Aktívne čakanie, vhodné pre krátke kritické sekcie.
14. Otázka: Uveďte a stručne popíšte jednotlivé vrstvy I/O (vstupno/výstupného) softvéru a firmvéru.
User Processes: Vytvárajú požiadavky na I/O operácie, formátujú dáta.
Device-Independent Software: Poskytuje abstrakciu zariadení, spravuje vyrovnávaciu pamäť (buffering) a alokáciu zdrojov.
Device Drivers: Komunikujú so zariadeniami, nastavujú registre.
Interrupt Handlers: Spracúvajú prerušenia a aktivujú ovládače.
Hardware: Fyzicky vykonáva I/O operácie.
15. Otázka: Uveďte čo je to súborový systém. Diskutujte jeho súčasti a základné druhy súborových systémov.
Súborový systém organizuje a spravuje ukladanie dát na úložisku.
Súčasti:
Súbory: Dátové jednotky.
Adresáre: Organizujú súbory do hierarchií.
Práva: Určujú, kto môže pristupovať k súborom.
Mechanizmy správy úložiska: Prideľovanie a uvoľňovanie priestoru.
Základné druhy:
FAT: Jednoduchý, používaný na menších zariadeniach.
i-node systémy: Efektívne spravujú metadáta a hierarchie (napr. Ext).
Journaling Filesystems: Záznam zmien pre zvýšenie spoľahlivosti (Ext3, NTFS).
16. Otázka: Vysvetlite termíny: Program, proces a Thread (vlákno). Uveďte ich vzájomný vzťah.
Program: Statický súbor inštrukcií na disku.
Proces: Aktívny beh programu s pridelenými zdrojmi.
Thread: Najmenšia jednotka vykonávania, zdieľa zdroje procesu, ale má vlastný stack a registre.
Vzájomný vzťah: Program sa po spustení mení na proces. Proces môže mať jedno alebo viac vlákien.
17. Otázka: Uveďte princíp fungovania DMA (Direct Memory Access). V prípade, že stránkový rám je používaný DMA zariadením, je možné stránkový rám vybrať ako obeť? Uveďte prečo.
Princíp fungovania: DMA umožňuje zariadeniam priamo prenášať dáta medzi pamäťou a zariadením bez CPU.
Stránkový rám ako obeť: Nie, DMA vyžaduje konzistenciu. Ak by bol rám odobratý počas prenosu, došlo by k chybe alebo nekonzistencii dát.
18. Otázka: Diskutujte, čo mohlo spôsobiť 20-minútový rozdiel v čase spracovania dát.
Pamäťové limity: Nárast dát mohol spôsobiť častejšie page faulty a swapovanie.
Súbežný prístup: Zvýšený počet vlákien mohol viesť k vyššej záťaži na zdieľané zdroje (napr. RAM, disk).
- riešením by mohla byť optimalizácia správy pamäte alebo paralelizácie výpočtov.