Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[NOS] Gradivo

steker

Iz ove 8 prezentacije vidim da ima dosta nabacanih algoritama za kriptiranje na slajdovima pa me zanima dal moramo znat sve te algoritme zapravo provest na nekom primjeru tipa ko sto smo radili na sigurnosti racunalnih sustava ili je to ovako vise opcenito da naucimo bitna svojstva


AK10

steker mene zanima jel trebamo tu uopce ista buduci da su to sivi slajdovi, na mekom nam je golub rekao da ih preskocimo, ne znam vrijedi li to za nos


bodilyfluids

endyyyy
steker
ista stvar kao i za meko, Golubje rekao da su
ti slajdovi su mješavina stvari koje smo “već trebali znati” i onih koje se “neće ispitivat”.


[obrisani korisnik]

jesu zadaci iz RAID-a jedini ‘numerički’ zadaci koji se mogu pojaviti?


bodilyfluids

[obrisani korisnik] Na tak nešto je Golub implicirao, al ne mogu potvrdit oče li tako bit


AK10


jel zna netko kako se ovo rješava?


Me1

endyyyy


Me1

jel neko odgovorio na pitanja iz skripte Višeprocesorski sustavi?


bodilyfluids

Me poslati cu predvecer


Sulejman

Me


bodilyfluids

Me
Dragi prijatelj strojnog učenja

Pitanja iz skripte višeprocesorski sustavi. Neka pitanja mi nisu bila prejasna pa sam ctrl+c, ctrl+v dio teksta za koji mislim da je relevantan. Probao sam sažeti kolko ide. Ako se služite ovim odgovorima, preporučam da ih prolazite uz skriptu. Ako ima grešaka, svakako javite/ispravite.

1. poglavlje

1.Zašto su višeprocesorski sustavi danas svugdje?

Sadašnja tehnologija ne omogućava efikasno korištenje veće frekvencije rada procesora (a da se ne troši jako puno energije na hlađenje). Danas se zato procesna moć povećava dodavanjem jezgri, prije to nije bilo potrebno jer su se veće performanse mogle dobiti povećanjem frekvencije.

2.Navesti osnovne vrste višeprocesorskih sustava i gdje se one koriste.

  • Simetrični višeprocesrski sustav -> svaki procesor je zaseban čip (s jednom jezgrom). Simetrične višeprocesorke sustave nalazimo u “starijim” arhitekturama.
  • Višejezgreni procesori -> jedan čip ima više procesorskih jedinki - jezgri. Priručni spremnik podjeljen je na više razina, neke razine koriste više procesorskih jedinki. Većina današnjih sustava spada u ovu kategoriju (pretpostavljam PC-evi, mobiteli)
  • Simetrični višeprocesorski sustavi s višejezgrenim procesorima -> Više procesora, svaki procesor ima jezgri (jezgre su valjda procesorske jedinice). Ovu kategoriju koriste poslužitelji.
  • Raspodijeljeni višeprocesorski sustavi -> više kartica, na svakoj je više procesora (koji su vjerojatno višejezgreni). Koristi se kod jačih poslužitelja.

3.Navesti prednosti i nedostatke simetričnih i asimetričnih višeprocesorskih sustava.

  • Simetrični sustavi -> zajednička djeljena memorija kojom se pristupa preko zajedničke sabirnice.
  • Asimetrični sustavi -> pristup memoriji ovisi o vrsti procesne jedinice i udaljenosti memorije od procesora. Npr. procesor sporo pristupa memoriji na drugoj procesnoj kartici.

Konkretne prednosti i nedostaci nisu navedeni u skripti, pretpostavljam da je prednost simetričnih sustava ta da se svaka procesna jedinica može podjednako koristiti za bilo koji problem. Asimetrični sustavi su kompleksniji, ali su bolji za specifične probleme, valjda.

4.Zbog kojih svojstava današnje sustave možemo nazivati i nehomogenim višeprocesorskim sustavima?

U današnjim procesorima svakoj procesnoj jedinici možemo postaviti različitu frekvenciju rada. Ova mogućnost formalno narušava svojstvo homogenosti, ali ne toliko da se takve procesore svrstava u nehomogene.

Neki moderniji višejezgreni procesori imaju različite jezgre:

  • brze -> visokih performansa, ali velike potrošnje energije.
  • spore -> manje performanse, manja potrošnja

U danom trenutku koristi se jedan od ili oba tipa jezgara. Ovo drugo je “prava” nehomogenost.

5.Što je to sklopovska višedretvenost (npr. hyperthreading)?

Sklopovska višedretvenost omogućava procesoru, tj. pojedinim jezgrama procesora da “istovremeno” izvode instrukcije više dretva. Procesor u pripremi ima instrukcije druge dretve koju izvodi kada je prva dretva blokirana. prema van se takav procesor prikazuje kao dva procesora (ili takva jezgra kao dvije jezgre)

2. poglavlje

1.Navesti načine za očuvanje konzistentnosti strukture podataka jezgre u višeprocesorskom sustavu.
Konzistentnost se može ostvariti kroz:

  • zaključavanje -> uglavnom ne koristi jedno zaključavanje (“big kernel lock”) već puno manjih gotovo svaka netrivijalna struktura podataka ima svoj kljuć. Zaključavanje može biti blokirajuće (dretva se zaustavlja) ili radno čekanje (dretva u petlji provjerava jesu li struktura zauzeta)
  • atomarne operacije -> niz operacija koje se ne mogu prekinuti.
  • oprezno korištenje

2.Koje dvije osnovne vrste zaključavanja postoje? Koja su njihova dobra i loša svojstva?

(vidi prethodno pitanje)
Radno čekanje je dobro koristiti kada znamo da će se struktura ubrzo osloboditi, inače ne valja jer procesor troši vrijeme u petlji ne radeći ništa. Blokirajuće zaključavanje nije pogodno koristiti za vrlo kratka čekanja jer blokiranje dretve za sobom nosi puno kučanskih poslova (npr. spremanje konteksta).

3. Kada ima smisla koristiti atomarne operacije?

Za kratke operacije, npr kada više procesa istovremeno treba pristup nekoj varijabli.

4. Zašto samo korištenje atomarnih operacija ponekad nije dovoljno?

Nisam siguran, ovo su potencijalno relevantni citat iz skripte:

  • osim obavljanja navedenih operacija kao atomarnih, ovakvi pozivi mogu utjecati i na susjedne operacije i njihov redoslijed obavljanja
  • problem: zbog paralelnog (spekulativnog/oportunog) izvodenja susjednih instrukcija s predvidanjem vrijednosti svakakve “anomalije” se mogu dogoditi, pogotovo kad se u instrukcijama koriste kazaljke (zato su potrebne dodatne radnje uz atomarne instrukcije)
  • Dodatno: Atomarne operacije pomažu, ali unose dosta popratnih radnji (nisu jeftine) – stoga se i ne koriste baš svugdje.

5.Koja od spomenutih “razina atomarnosti” je najzahtjevnija pri radu:

  1. Konzistencija nad slijedom operacija (total ordering) -> nastroža i najzahtjevnija inačica održavanja konzistencije. Traži se da se poštuje redoslijed svih označenih operacija te da operacije koje nisu navedene prije budu gotove iako nisu označene, a operacije koje su kasnije da se kasnije obave.
  2. Konzistencija nad jednom operacijom -> Osigurava konzistentan redoslijed izvođenja samo označenih operacija.
  3. Konzistencija nad povezanim vairjablama -> pod “povezane varijable” misli se na korištenje globalnih varijabli koje nisu u dohvati/pohrani već neposredno prije/poslije. Ovakve atomarne operacije osiguravaju i da varijable koje se koriste/mijenjaju prije poslije budu pohranjene/pročitane. Slično kao prva atomarnost, ali nešto jednostavnija.
  4. Konzistencija nad nepovezanim varijablama -> Slično kao prethodna vrsta atomarnosti, ali se gledaju samo operacije koje koriste iste podatke/memoriju kao označene operacije.

6.Zašto ponekad i samo spremanje/čitanje jedne varijable može biti problem (zašto se koriste READ_ONCE i WRITE_ONCE)?

Kod spremanja/čitanja može doći do problema jer optimizator koda može unijeti razne “optimizacije” koje zapravo narušavaju stabilnost koda. Makroi READ_ONCE i WRITE_ONCE kompajleru daju na znanje da se radi o zajedničkoj varijabli, odnosno da treba biti oprezan prilikom optimizacije.

7.Zašto se za “red pripravnih dretvi” na višeprocesorskom operacijskom sustavu zapravo
koristi više redova, po jedan za svaki procesor?

U višeprocesorskom sustavu po jedna je aktivna dretva u svakom procesoru. S obzirom da svaki procesor ima svoj priručni spremnik, efikasno je da se zaustavljene dretve vrate na procesor na kojem su bile jer će u priručnom spremniku vjerojatno nači sačuvane korisne podatke.

3. poglavlje

1. Koji se kriterij rasporedivanja najčešće koristi za vremenski kritične dretve (SCHED_FIFO,
SCHED_RR) a koji kriterij za nekritične (obične, SCHED_OTHER)?

Vremenski kritične dretve:

  • SCHED_FIFO – prioritet osnovni kriterij, red prispijeća sekundarni
  • SCHED_RR (Round Robin) – prioritet osnovni kriterij, podjela vremena sekundarni
  • SCHED_SPORADIC – prioritet koji se može smanjiti (samo definirano, rijetko implementiran način rasporedivanja)
  • SCHED_DEADLINE – rasporedivanje prema krajnjem trenutku završetka (samo Linux)

Nekritične dretve:

  • Osnovna ideja je pravedno podijeliti procesorsko vrijeme te kratkim poslovima dati prednost
    na Linuxu se za nekritične poslove (SCHED_OTHER) koristi “Potpuno pravedan rasporedivač”.
    (engl. Completely Fair Scheduler – CFS)
    – rasporedivač prati koliko je koja dretva trebala dobiti vremena (u odnosu na njenu razinu dobrote – nice level, “prioritet”), koliko je zapravo
    dobila, te na temelju razlike medu njima odabire iduću dretvu

2. Zašto se za svaki procesor stvara zasebni red pripravnih dretvi?

(vidi 7. pitanje 2. cjeline)
Bolje se iskorištava priručni spremnik.

3. Kada se koristi guranje a kada povlačenje dretvi kod rasporedivanja kritičnih dretvi?

  • Povlačenje, use case -> prva dretva u redu pripravnih na nekom procesoru ima manji prioritet od prve na nekom drugom procesoru. Tada se dretva većeg prioriteta povuće iz reda i izvodi.

  • Guranje, use case -> Ako se odblokira jedna ili više dretvi većeg prioriteta, te dretve potrebno je gurnuti odgovarajućim procesorima td. u svakom trenutku među svim pripravnim dretvama, aktivne dretve budu one najvećeg prioriteta.

4. Kada se kod nekritičnih dretvi neke prebacuju iz jednog reda pripravnih u drugi (drugog procesora)?

Osnovna načela su pravedna podjela vremena te što veća efikasnost. Nema prioriteta kao kriterije, ali je ipak potrebno povremeno uravnotežiti opterećenja procesora – balansirati redove pripravnih dretvi, da sve ravnopravno dobiju procesorsko vrijeme.

4. poglavlje

1. Navesti klase raspoređivača u Linuxu namijenjene za korisničke dretve.

Klase raspoređivača:

  • STOP -> interni, korisi se pri micanju svih zadataka s nekog procesora.
  • DEADLINE -> za raspoređivanje vremenski kritičnih zadataka
  • REALTIME -> Prioritetno raspoređivanje vremenski kritičnih zadataka
  • CFS (Completely Fair Scheduler) -> raspoređivanje nekritičnih zadataka td. s ciljem da svi dobe podjednako vrijeme.
  • IDLE -> kad nema drugih zadataka, onda se koriste ovi jezgrini (?)

2. Koja struktura podataka se koristi za ostvarenje “reda pripravnih dretvi” kod CFS-a?

Koriste se RB stabla. Svaki procesor ima svoje stablo, ali može ih biti i više. Čvorovi RB stabla su elementi raspoređivanja (sched_entity). Sched_entity može biti jedan zadatak ili grupa zadataka.

3. Što je to grupa zadataka (task_group) u kontekstu CFS-a?

Task_group opisuje skup zadataka i oni se pohranjuju u čvorovima rb stabla, tj. u strukturi sched_entity. Raspoređivanje procesorskog vremena obavlja se na temelju grupa. Grupe mogu biti stvarane ručno ili, vjerojatnije, automatski

4. Koja je osnovna zamisao u korištenju procesorskih domena (engl. scheduling domains)?

Ideja je prilikom raspoređivanja poslova kroz procesorske domene uzeti u obzir heterpgenost procesora. Domena se sastoji od jedne ili više grupa zadataka. Svaka domena (sched_domain) sadrži skup pravila po kojima joj se pridjeljuje “najkompatibilniji” procesor.


ana

jel netko odgovorio na ona pitanja na kraju 6. UI cjeline?


BillIK

Ima li netko riješen ovaj zadatak? Točnije d, e i f dio


Sulejman

Ja ovak rijesio


BillIK ak je to ZI 2020/21


Skenk

Zasto ovdje ne moze biti ispis 0,1 ili 0,2?


micho

Skenk Mislim da mogu samo nisu navedeni (iz kojeg god razloga).


matt


boogie_woogie

Zna netko ovaj?


Rene

nika_1999 U svakom RAIDu disk najmanjeg kapaciteta diktira ostale, znači koristi se na svakom disku koliko ima na najmanjem, a ostalo ne.
Dakle možeš staviti samo ova 4 diska po 2TB imat ćeš 8TB ukupno, od čega 6TB korisno i 2TB paritetne pojase i to je maksimum. Kada bi uključila ova 2 diska od 1TB imala bi 6TB od čega 5TB korisno i 1TB pariteta.


bodilyfluids

Zadatak s predavanja:

Neka se više diskovni sustav sastoji od 57 istih diskova. Koliko iznosi srednje vrijeme do pojave kvara svakog diska ako je srednje vrijeme do pojave kvara u sustavu 2 god, a srednje vrijeme poravka svakog diska iznosi 7 dana. Sustav je neispravan ako se dogodi:

  • a) dvostruki kvar (navodno rješenje je 10 godina i 120 dana)
  • b) jednostruki kvar

Može neko rješit plez a)? Pokušavam iz formule za dvostruki kvar dobiti MTTF, ali ne ispada mi dobro


Rene

Dragi prijatelj strojnog učenja Meni stoji zapisano s predavanja da je rješenje 10 godina i 12 dana.

MTTF_S = \frac{1}{N(N-1)}\frac{MTTF^2}{MTTR} + \frac{2N-1}{N(N-1)}MTTF \\ 2 \cdot 365 = \frac{MTTF^2}{57\cdot 56 \cdot 7} + \frac{113}{57\cdot 56}MTTF / \cdot 57\cdot56\cdot7 \\ MTTF^2 + 791MTTF - 16311120 = 0 \\ MTTF = 3662.52 dana = 10 godina i 12 dana.

Ako nekome treba i b), trivijalno je iz MTTF_S = \frac{1}{N}MTTF \Rightarrow MTTF = N \cdot MTTF_S = 114 godina.


KiflaKiflic

Dragi prijatelj strojnog učenja Točno rješenje je 10g 12 dana, pogledaj ovdje: https://www.fer.unizg.hr/_download/repository/NOS_RAID_zad.pdf


« Prethodna stranica