ZOS – zadání 2. zápočtovky z minulých let
1)
mate díry v paměti v pořadí a velikosti
100, 500, 200, 300, 600 K
umístěte programy v následujícím pořadí o velikosti
212, 465, 112, 235 (tyhle čísla jsem si vymyslel)
umístit programy do paměti a) metodou best fit
b) first fit
2) převod VA na FA podle
{segment, báze, limit, platnost-> 3 adresy, určit logickou adresu.}
3) co je Page Fault (výpadek stránky)
{Baladyho anomálie}
4) vysvětlete pojmy diskových operaci
open/create, read, write, lseek, close
getcvd
5) mate na disku soubor o velikosti 100 bloku
kolik diskových operací vám zabere vložení 1 bloku doprostřed souboru
a) pro alokaci pres jednosměrný spojový seznam
b) kontinuální alokace (už si přesně nepamatuju ten výraz)
1.
S využitím operací P a V nad semaforem ošetřete následující úsek kódu tak, aby při zachování maximálního paralelismu nenastal časový souběh
Program par;
Const n=50;
Var tally: integer;
Procedure total;
Var count: integer;
Begin
For count :=1 to n do tally:=tally+1
End;
Begin (* hlavni program *)
Tally:=0;
Cobegin total || total coend;
Write(tally)
End.
[2 body]
2.
Synchronizacni primitivum „citac udalosti“ lze popsat jako celociselnou promennou, nad kterou jsou definovany
Dve operace ADVANCE a AWAIT s nasledujicim vyznamem:
Advance(E): atomicky zvysi hodnotu citace udalosti E o 1,
Await(E,v): je-li E=v.
Implementujte citac udalosti pomoci monitoruuu. [3 body]
(Poznamka: Implementaci napiste napr. V syntaxi BACI.)
3.
Predpokladejte nasledujici reseni problemu vecericich filosofu. Hladovy filosof nejprve zvedne levou vidlicku. Pokud je dostupna prava vidlicka, zvedne ji a zacne jist, jinak polozi levou vidlicku a opakuje algoritmus od zacatku.
-
Muze nastat uviznuti?
-
Muze nastat vyhladoveni?
Sve odpovedi zduvodnete!
[2 body]
4. Vysvětlete rozdíl mezi aktivním čekáním a blokováním procesu. Které z nich bude efektivnější z hlediska využití času procesoru, je-li čekání dlouhé? [1 bod]
5. Do dávkového operačního systému je přibližně ve stejnou dobu zadáno pět úloh A až E (v tomto pořadí). Jejich očekávaná doba běhu je 10, 6, 2, 4 a 8 minut. Pro každý z následujících plánovacích algoritmů určete průměrnou dobu obrátky.
-
FCFS.
-
B)SJF(nejkratší úloha první)
[2 body]
( Poznamka : Vyrazi nemusite zjednodusovat.)
1.
Mejme dva procesy – proces čtečka_řádků čte ze souboru jednotlivé řádky textu a proces tisk_na_tiskárnu je vytiskne na tiskárnu. Řádky jsou předávány pomocí pole buffer. Ošetřete následující kód pomocí semaforů tak, aby předávání dat proběhlo správně.
Program p;
Var buffer: array [0..N-1] of line;
Process ctecka_radku;
Var radek: line;
Begin
While true do
Begin
Precti radek ze souboru;
Vloz radek do pole buffer
End
End;
Process tisk_na_tiskarnu;
Var radek:line;
Begin
While true do
Begin
Prevezmi radek z pole buffer;
Vytiskni radek na tiskarnu
End
End;
[2 body]
2.
Binarni semafor lze popsat jako promennou, ktera muze nabyvat pouze hodnot 0 a 1.
Nad binarnimi semafory jsou definovany dve operace, Pb a Vb s nasledujicim vyznamem:
Pb (s): je-li s=0, operace Pb se zablokuje, jinak S:=0
Vb (s): je-li nad s jeden nebo vice zablokovanych procesu, vzbudi jeden proces, jinak s:=1
Implementujte binarni semafor pomoci monitoru. [3 body]
(Poznamka: Implementaci napiste napr. V syntaxi BACI.)
3. Předpokládejte následující řešení problému večeřících filosofů. Hladový filosof nejprve čeká, dokud není dostupná levá vidlička, levou vidličku zvedne a totéž provede pro pravou vidličku. Má-li obě vidličky, začne jíst, po dojedení visličky položí a opakuje algoritmus od začátku.
-
Může nastat uvíznutí?
-
Může nastat vyhladovění?
Své odpovědi zdůvodněte.
[2 body]
4. Vysvětlete tozdíl mezi preemptivním a nepreemptivním plánováním procesů. Které z nich používají moderní víceuživatelské systémy (Windows XP, Linux)? [1 bod]
5. Do dávkového operačního systému je přibližně ve stejnou dobu zadáno pět úloh A až E(v tomto pořadí). Jejich očekávaná doba běhu je 10, 6, 2, 4 a 8 minut. Jejich externě určené priority jsou 3, 5, 2, 1, a 4,kde 5 je nejvyšší priorita. Pro každý z následujících plánovacích algoritmů určete průměrnou dobu obrátky.
-
Prioritní plánování.
-
SJF(nejkratší úloha první)
[2 body]
(znamka: Vyrazy nemusite zjednodusovat.)
1) Casovy soubeh
-> jeden proces spousteny konkurente 2x jako dva souperici procesy
(inkrementuji stejnou promennou)
-> je dan kod bez osetreni soubehu a ukolem je doplnit semafory (vcetne
inicializace)
2) Dana funkce TSL v BACI (atomic function tsl(var x: boolean): boolean)
-> ukolem je s jeji pomoci v BACI (nebo jinem pseudokodu) napsat spin_lock a
spin_unlock
3) Vysvetlit rozdil mezi blokujicim (synchronnim) a neblokujicim (asynchronnim)
SENDem
4) Vysvetlit, proc je nevyhodne mit pri planovani metodou RR (Round Robin -
cyklicke planovani) mit prilis dlouhou dobu casoveho kvanta
5) Problem vecericich filosofu
-> mame-li algoritmus, ze kazdy z nich zvedne levou vidlicku (je-li volna) a
pak zkuasi totez udelat s pravou. Pokud se to nepodari, polozi levou zpet a za
chvili zkuasi znovu.
-> otazka: Muze nastat v teto situaci a) uviznuti b) vyhladoveni
1)pomoci monitoru (semaforu) udělat bezpečné přičítání
program race;
var x: integer := 0;
procedure a;
var i: integer;
begin
for i:=1 to 50 do
x:=x+1;
end;
begin
cobegin
a; a
coend;
writeln('x=', x)
end.
2) momoci semaforu osetrit problem producen konzument pro buffer o velikosti 1
program ProducentKonzument;
var buffer: char; { vyrovnavaci pamet }
procedure Producent;
var konec:bool;
begin
repeat
bufer := NACTI(); // vypise na obrazovku
konec := JePosledi(buffer); // zjisti zda skoncit
until konec
end;
procedure Konzument;
var konec:bool;
begin
repeat
write (buffer,', '); // vypise na obrazovku
konec := JePosledi(buffer); // zjisti zda skoncit
until konec
end;
begin
cobegin
Producent; Konzument
coend;
writeln
end.
3) rozdil mezi blokujicim a neblokujicim receive
4) proc je u RR (cyklicky ???) nevhodne kratke casove kvantum
5) filozove. Ceka na levou vidlicku, kdyz muze tak ji zvedne a ceka na pravou.
Pak ji.
a) muze dojit k uviznuti
b) muze dojik k vyhladoveni
odpoved zdůvodněte
1. Zapsat co "nejparalelneji" vypocet vyrazu ((a+b)*(c+d)-(e/f))*h pomoci cobegin a coend
2. Implementace semaforu pomoci zprav
3. Monitory
4. PCB - co to je, kdy vznika a jake polozky obsahuje
5. Casovy soubeh - co to je, uvest priklad vzniku
6. Rozdil mezi aktivnim a pasivnim cekanim
7. Zadana tabulka s nasledujicimi udaji: cas zavadeni stranky, cas posledniho pristupu ke strance a
bity R a M. Dale bylo zadano v jakem poradi se bude dale ke strankam pristupovat.
a) NRU
b) LRU
c) MIN
8. Napsat preved VA -> FA
9. Z jakych casti se sklada proces RPC (Remote procedure Call)
10. Zadany tri sloupce, v kazdem popsan jeden proces ( operace P a V nad semafory x, y, z ).
a) nakreslit graf alokace zdroju
b) zjednodusit graf alokace zdroju a ukazat kde v nem vzikl deadlock
c) Existuje nejaka moznost, jak by mohli procesy bezet aniz by doslo k zablokovani ?
Dostları ilə paylaş: |