1/59
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Čo je operačný systém a aké sú jeho hlavné funkcie?
softver sluziaci ako abstrakcia hardveru, poskytuje jednotne rozhranie pouzivatelovi a aplikaciam
okrem abstrakcii HW pridava aj napr. suborovy system, spravuje pouzivatelov a procesy
manazuje prostriedky - pridelovanie prostriedkov, riadenie pristupu ku prostriedkom, planovanie činností
jeho sucastou su urcite kniznice a API
Aké typy operačných systémov poznáme? Uveďte príklady
mainframe OS
server OS
PC OS
multiprocessor OS
embedded OS
realtime OS
Vysvetlite rozdiel medzi monolitickým jadrom a mikrojadrom
monoliticke - jadro je velky blok v privilegovanom rezime, funkcie mozu volat ine funkcie bez obmedzenia, co moze ale lahko sposobit pad celeho systemu; vyhoda je nizka latencia (nemame restrikcie)
microkernel - jadro (kernel) obsahuje minimum abstrakcie HW, jadro je v privilegovanom rezime, ostatne casti OS su procesy / sluzby v pouzivatelskom rezime (user mode) - ak zlyha sluzba, da sa restartovat, nezruti system
Čo sú systémové volania a akú úlohu zohrávajú?
Systémové volania umožňujú aplikáciám prístup k službám OS, napr. open() na otvorenie súboru
Aké úrovne ochrany (privilege levels) sa používajú v moderných operačných systémoch?
Kernel, Usermode
Čo je virtualizácia a aké výhody prináša v kontexte operačných systémov?
Virtualizácia umožňuje spúšťať viac OS na jednom hardvéri. Výhody: izolácia, efektívne využitie zdrojov.
Vysvetlite rozdiel medzi multiprogramovaním a multitaskingom.
Multiprogramovanie: Viac programov v pamäti naraz. Multitasking: Paralelné vykonávanie úloh
Čo znamená pojem preemptívne a nepreemptívne plánovanie?
Preemptívne plánovanie umožňuje prerušiť proces, nepreemptívne vyžaduje dobrovoľné odovzdanie CPU.
Aké výzvy sú spojené s návrhom distribuovaných operačných systémov?
Distribuované OS vyžadujú synchronizáciu, komunikáciu a zdieľanie zdrojov medzi uzlami.
Vysvetlite, čo znamená koncept API operačného systému+priklad.
API OS je rozhranie, ktoré poskytuje programom prístup k funkciám OS, napr. POSIX.
Definujte pojem proces a jeho hlavné komponenty.
proces - vykonavany program s pridelenymi prostriedkami vypoctoveho systemu - vyhradeny adresny priestor, stav (registre, PC, zasobnik), pridelenymi I/O zariadeniami, otvorenymi subormi
Aké rozdiely sú medzi procesom a vláknom?
Proces: Má svoj vlastný adresný priestor, Vytváranie je pomalšie a nákladnejšie, Sú izolované od ostatných procesov
Vlákno: Zdieľa adresný priestor s ostatnými vláknami v rámci procesu, Vytváranie je rýchlejšie a menej nákladne, Vlákna v rámci procesu si môžu navzájom upravovať údaje.
Aké hlavné stavy môže proces počas svojho životného cyklu mať?
Stavy procesu: nový, pripravený, bežiaci, čakajúci, ukončený. (na prednaske iba Ready, Blocked, Running)
Čo je PCB (Process Control Block) a aké informácie obsahuje?
PCB je dátová štruktúra používaná operačným systémom na ukladanie všetkých informácií potrebných na správu a sledovanie procesu. Obsahuje informácie o stave procesu, registroch, pamäti, prioritách.
Vysvetlite princíp plánovania procesov (scheduling) a uveďte jeho hlavné ciele.
Plánovanie procesov: prideľuje CPU, optimalizuje odozvu, využitie CPU a prioritu procesov
Aké typy plánovacích algoritmov poznáme? Uveďte aspoň tri a ich výhody/nevýhody.
Algoritmy plánovania: FCFS (jednoduchý, nevhodný na multitasking), SJF (optimálny, potrebuje predpovede), Round Robin (spravodlivý).
Čo je kontextový prechod (context switch) a aka je jeho cena?
Ukladá stav procesu; cena: čas na ukladanie a načítanie registrov.
Ako funguje mechanizmus fork() v Unixových systémoch?
Fork(): Jeho vyvolaním vznikne z rodičovského procesu nový proces (potomok) tak, že sa aktuálny proces rozdvojí na dva identické procesy (s rôznymi PID) a beh programu pokračuje ďalším príkazom v dvoch vzájomne nezávislých vetvách
Aké problémy môžu vzniknúť pri zdieľaní údajov medzi procesmi?
Race conditions, zdieľanie pamäte bez synchronizácie.
Čo je kritická oblasť a aké podmienky musí splniť mechanizmus na jej ochranu?
Kritická oblasť: je časť programu, ktorá pristupuje k zdieľanému zdroju (napr. pamäť, súbor) a musí byť chránená, aby k nej mal prístup v jednom okamihu iba jeden proces alebo vlákno.
Podmienky: v KO max 1 proces, nezavislost na rychlosti a pocte CPU, proces mimo KO nezabrani inemu procesu vstupit do KO, konecny cas cakania na vstup do KO
Popíšte základné princípy Petersonovho algoritmu na vzájomné vylučovanie.
Petersonov algoritmus: Dva procesy striedavo nastavujú príznaky a kontrolujú poradie.
Čo sú semafory a ako sa líšia od mutexov?
Semafory sú synchronizačné mechanizmy používané na riadenie prístupu procesov alebo vlákien k zdieľaným zdrojom. Má počítadlo, ktoré môže byť väčšie ako 1 (počet dostupných zdrojov).
Mutex: Binárny (zamknutý alebo odomknutý), Má vlastníka; len vlákno, ktoré zamklo mutex, ho môže odomknúť. Ochrana kritickej oblasti (vzájomné vylúčenie).
Vysvetlite pojem deadlock a aké sú jeho štyri podmienky vzniku.
Deadlock (uviaznutie) je stav, keď skupina procesov čaká na zdroje tak, že žiaden z nich nemôže pokračovať, pretože každý čaká na uvoľnenie zdroja iným procesom v kruhovej závislosti.
Podmienky: vzajomne vylucovanie(Mutual Exclusion), ciastocne pridelenie (hold an wait), nepreemptivne prostriedky (no preemption), cakanie na prostriedky (circular wait)
Aké stratégie poznáme na prevenciu deadlocku?
Zdieľanie prostriedkov: Umožnenie viacerým procesom súčasne využívať rovnaký prostriedok (napr. na čítanie).
Daemon proces: Namiesto toho aby procesy získali prístup k prostriedku, prostriedok bude pridelený špeciálnemu procesu (daemon), ktorému budú ostatné procesy posielať správy s požiadavkami a on sám ich vykoná
Predalokácia: program dopredu určí, aké prostriedky potrebuje a bude spustený z už pridelenými všetkými naraz
Použitie preemptívnych prostriedkov: Prostriedky možno procesu dočasne odobrať a neskôr opätovne prideliť bez narušenia jeho činnosti.
Hierarchické usporiadanie prostriedkov: Prostriedky sú očíslované a procesy môžu žiadať prostriedky iba v stanovenom poradí (napr. od nižšieho čísla k vyššiemu).
Čo je starvation (vyhladovanie) a ako sa mu dá predísť?
Starvation (vyhladovanie) je stav, keď proces neustále čaká na pridelenie zdrojov, pretože iné procesy s vyššou prioritou ich získavajú opakovane.
Vieme mu predísť: Dynamická zmena priorít, Spravodlivé plánovanie, Limity na prioritné procesy
Aké mechanizmy sa používajú na komunikáciu procesov (IPC)?
Pipes, message queues, shared memory, signals, sockets
Vysvetlite využitie fronty správ (message queue).
Fronty správ umožňujú procesom asynchrónnu komunikáciu.
Čo je zámok (lock) a aké problémy môže spôsobiť jeho nesprávne použitie?
Zámok (lock) je synchronizačný mechanizmus používaný na riadenie prístupu k zdieľaným zdrojom v prostredí viacerých procesov alebo vlákien môže spôsobiť deadlock alebo race conditions, ak sa nesprávne použije.
Aké sú hlavné rozdiely medzi busy-waiting synchronizáciou a blokovaním?
Busy waiting plytvá CPU, blokovanie je efektívnejšie.
Čo je stránkovanie (paging) a aké výhody prináša?
paging - strankovanie - metoda delenia pamate procesu na viacero mensich blokov rovnakej velkosti = stranky. Umoznuje efektivne vyuzitie fyzickej pamate - mame v RAM len tie stranky ktore proces potrebuje
Aké problémy vznikajú pri stránkovaní a ako sa riešia?
Problémy stránkovania: Interná fragmentácia, režijné náklady na tabuľku stránok.
Vysvetlite princíp segmentácie pamäte.
Segmentácia: Pamäť rozdelená na logické segmenty (bloky) rôznej velkosti (podla potreby); odstraňuje internú fragmentáciu.
Aký je rozdiel medzi internou a externou fragmentáciou?
Interná fragmentácia: Nepoužité miesto vo vnútri alokovanej pamäte. Externá: Nevyužité miesto medzi alokáciami.
Čo je tabuľka stránok (page table)?
Tabuľka stránok: Mapuje logické adresy na fyzické.
Vysvetlite princíp TLB (Translation Lookaside Buffer) a jeho význam
TLB:
ak je PT velmi velka, nemozeme ju celu udrziavat v MMU, preto MMU obsahuje len malu asociativnu pamat - TLB a tabulka je v RAM
TLB udrzuje najcastejsie pouzivane stranky, radovo v desiatkach stranok
V skratke Cache pre tabuľky stránok a jeho vyznam je že zrýchľuje mapovanie adries.
Čo je algoritmus výmeny stránok (page replacement algorithm)?
Algoritmus výmeny stránok vyberá stránku na výmenu pri page fault.
Aký je rozdiel medzi algoritmami FIFO, LRU a Optimal pri výmene stránok?
FIFO: Jednoduchý, ale neoptimálny. LRU: Sleduje históriu. Optimal: Vyžaduje budúce znalosti.
Vysvetlite koncept pamäťového mapovania (memory mapping) súborov
Pamäťové mapovanie súborov: Zosúlaďuje súbory s pamäťovými blokmi.
Aké sú hlavné typy vstupno-výstupných zariadení a ich charakteristiky?
Typy zariadení: Znakové (klávesnica), blokové (disky), sieťové (NIC).
Čo je ovládač zariadenia (device driver) a akú úlohu zohráva?
Device driver je softvér na ovládanie hardvéru
Aký je rozdiel medzi blokovými a znakovými zariadeniami?
Blokové zariadenia umožňujú prístup k blokom, znakové k jednotlivým znakom.
Vysvetlite koncept priameho prístupu do pamäte (DMA) a jeho výhody
DMA umožňuje prenos dát medzi zariadením a pamäťou bez CPU.
Čo sú I/O buffery a prečo sú potrebné?
I/O buffery zlepšujú výkon vyrovnávaním dát.
Ako operačný systém riadi prerušenia (interrupts)?
Prerušenia signalizujú udalosti CPU; OS ich obsluhuje prioritne.
Čo je rozdiel medzi synchronným a asynchrónnym vstupno-výstupom?
Synchronný I/O: Proces čaká na dokončenie. Asynchrónny I/O: Proces pokračuje.
Aký je význam stratégií plánovania diskov, ako napr. FCFS, SSTF a SCAN?
Plánovanie diskov: FCFS (jednoduchý), SSTF (minimalizuje čas), SCAN (spravodlivý).
Vysvetlite princíp RAID a jeho výhody pri správe úložiska
RAID zlepšuje výkon a spoľahlivosť úložísk kombináciou viacerých diskov.
Aký je rozdiel medzi pollingom a prerušeniami pri správe zariadení?
Polling aktívne kontroluje stav zariadenia. Prerušenia sú efektívnejšie.
Popíšte koncept lokálnych a globálnych algoritmov výberu obetí stránok.
Lokálne algoritmy sú vhodné, ak je potrebná stabilita výkonu pre jednotlivé procesy.
Globálne algoritmy sú efektívnejšie, ak je potrebné optimalizovať celkové využitie pamäte v systéme.
Kedy je Cache hit a miss
ak data su v cache tak mame hit
ak data niesu v cache mame miss a procesor musi pristupit do hlavnej pamate
page fault
Page fault je situácia, keď proces požaduje stránku, ktorá nie je momentálne uložená v hlavnej pamäti (RAM), a operačný systém ju musí načítať z diskového úložiska.
Čo je adresný priestor
Vsetka potencialna pamat adresovatelna zbernicou procesora
MMU
Hardver, ktory pristupuje k urcitej tabulke stranok (PT) pomocou ktorej zabezpecuje mapovanie logickej adresy na fyzicku adresu, jej sucastou je TLB
Working set
Working set je množina stránok, ktoré proces aktívne používa v danom časovom intervale, a slúži na optimalizáciu správy pamäte tým, že minimalizuje počet page faultov udržiavaním potrebných stránok v hlavnej pamäti.
Demand Paging
Demand Paging je technika správy virtuálnej pamäte, pri ktorej sa stránky programu načítajú do hlavnej pamäte (RAM) len vtedy, keď sú potrebné na vykonanie
Pre-paging
Technika kedy vybrané stránky procesu načitajú do hlavnej pamäte ešte pred tým, ako sa proces začne vykonávať
Process Trashing
Process Trashing je situácia v správe pamäte, keď proces trávi väčšinu svojho času obsluhou page faultov namiesto vykonávania užitočnej práce, pretože jeho working set presahuje dostupnú fyzickú pamäť.
Ako vznika proces?
Proces vzniká, keď ho inicializuje operačný systém, užívateľ alebo iný proces, čím sa vytvorí jeho adresný priestor a pridá do zoznamu procesov. Vytvoria sa potrebné dátové štruktúry, ako je PCB, a po pridelení zdrojov a umiestnení do plánovacej rady prechádza do stavu Pripravený (Ready), kde čaká na pridelenie CPU.
Rozdiel medzi user thread a kernel thread
User thread: Vlákna spravované knižnicou v užívateľskom priestore, bez zásahu jadra; rýchlejšie, ale ak jedno vlákno čaká (blokuje sa), celý proces sa zastaví.
Kernel thread: Vlákna spravované operačným systémom v jadrovom priestore; umožňujú lepšiu správu a paralelizmus, ale sú pomalšie kvôli systémovým volaniam.
POSIX
POSIX je základom mnohých moderných operačných systémov a slúži ako štandard na uľahčenie prenositeľnosti softvéru.