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

[NOS] Gradivo

[obrisani korisnik]

uhh, jel imaju igdje neki zadaci za UI dio gradiva? nisam išao na predavanja pa nisam preupućen, ali čini mi se da je ovaj predmet postao više teorijski ako gledam samo ovo što je u skripti


Rene

[obrisani korisnik] i profesor je rekao da nema zadataka iz tog dijela, teorijska pitanja slicna blicu se mogu ocekivat


[obrisani korisnik]

Rene a jel možeš molim te postat primjere pitanja s blica ako si bio i sjećaš se?


Rene

[obrisani korisnik] bio sam al ne sjecam se, štrebaj skriptu koliko ti se da basically


steker

[obrisani korisnik]
ja imam ovo zapisano:
Koji problemi (zbog modernih procesora) mogu nastati kada se napravi moze pristupiti preko adresa(kao i radnom spremniku)?
odg: zapisivanje u priručni spremnik, a ne odmah u radni, izvođenje instrukcija izvan redoslijeda(out of order)

Navesti osnovne tipove međuspremnika u kontekstu komunikacije s napravama.
odg: međuspremnik za jedan podatak, dvostruki međuspremnik, kružni međuspremnik

Koji je osnovni razlog korištenja međuspremnika?
odg: povećanje učinkovitosti sustava(komunikacije, paralelnog rada…)

Zašto upravljački programi (i OS) stvaraju dodatne međuspremnike u radnom spremniku iako naprava ima svoj interni međuspremnik?
odg: veći kapacitet


bodilyfluids

[obrisani korisnik] sjecam se ovog

Što je jezgrin kontekst dretve?
Odg: Struktura podataka jezgre, poput one koju ima svaka dretva, ali sadrži dodatne informacija i registre, npr. tablicu za obradu prekida


Jale

[obrisani korisnik] Meni je bilo pitanje u stilu “Što radi funkcija poll()?”
Pa pretpostavljam da se ocekuje da znamo napamet sve te vaznije funkcije rade


bodilyfluids

čakijale ahhh, nema bolje nego upisat diplomski pa napamet štrebat 20 naredbi jezika C, jebemu sve


ana

cini mi se da su spominjali na predavanju da su im bitna ona pitanja za vjezbu u UI skripti na kraju svakog poglavlja, tako da ce vjv puno pitanja biti od tamo


Sulejman

Jel itko odgovorio na pitanja iz skripte?


Dora3

Sulejman https://www.mediafire.com/file/l0g4yejki6phawt/UI_NAPRAVE_NOS.docx/file neke odgovore nisam pronašla u skripti, ali na većinu sam odgovorila


bodilyfluids

Sulejman

Evo i ja sam rješavao zadatke kroz semestar pa nek se nađe. Rješenja zadataka 1. 2. i 3. poglavlja iz skripte, ostatak ću napisati navečer il sutra ujutro. Moguće da ima grešaka, obavezno ispravite ako nađete koju.

1. poglavlje

1. Kako se iz programa koriste naprave? Zašto baš tako?
Naprave se iz programa koriste kroz sučelja, koja su predstavljena funkcijama (za C,to su funkcije nabrojane u poglavlju 1.1). Prednost ovog pristupa je da OS može komunicirati s bilo kojom napravom bez da mora detaljno poznavati njenu arhitekturu, tj. implementaciju.
2. Kojim sučeljima se mogu koristiti naprave? Koja su osnovna, a koja dodatna?
Vidi poglavlje 1.1.
3. Što su to asinkrone operacije?
Asinkrone operacije ne zahtjevaju komunikaciju između klijenata, dakle, klijent može izvršavati svoj posao neovisno o drugim klijentima. Klijent može biti OS, naprava, dretva, proces, bilo što, ovisi o kontekstu.
4. Navedite nekoliko mogućih podjela naprava ovisno o svojstvima, načinu spajanja, načinu kominkacije, smjeru podataka, ….
Brzina rada, smjer protoka podataka, je li naprava sinkrona ili asinkrona, način slanja podataka (serijski, paralelno) (blokovski, znak po znak) itd.

2. poglavlje

1. Ako zanemarimo način spajanja naprave, koji su osnovni načini upravljanja napravama?
Upravljanje radnim čekanjem, prekidima ili pomoću DMA.
2. Opisati osnovna načela upravljanja radnim čekanjem, prekidima, te korištenjem sklopova s izravnim pristupom spreminku (DMA).
Radno čekanje - program vrti petlju čekalicu koja provjerava status naprave.
Prekidima - program koji čeka da naprava nešto napravi biva blokiran. Kada se pojavi odgovarajući prekid, program se odblokirava i stavlja u red pripravnih dretvi.
DMA - naprava preko DMA zatraži sabirnicu i sama prenosi podatke.
3. U jednostavnom modelu jezgre ulazno-izlazne operacije može se pretpostaviti da naprava obavlja zadane joj naredbe slijedno. Stoga bi procesi koji su tražili takve operacije mogli biti u jednom uređenom redu, čekajući dovršetke svojih operacija. Koji su problemi ovog modela zbog specifičnosti stvarnih sustava? Kako se u stvarnim sustavima rješavaju takvi problemi?
U stvarnosti se operacije ne obavljauju FIFO. Problem se može rješit redovima zahtjeva ili korištenjem jezgrinog konteksta dretve.
4. Kako se rješava problem složenosti ostvarenja operacijskog sustava u stvarnim sustavima, npr. Linuxu?
Problem se rješava podjelom OS-a na podsustave i slojeve.

3. poglavlje

1. Kako se može pristupiti napravama, tj. njihovim upravljačkim sklopovima?
Napravama se pristupa izravno ili preko drugog međusklopa.
2. Zašto su stvarne arhitekture računala hijerarhijski građene, s premosnicama između različitih dijelova (sabirnica)?
Primarno zato da se sporije naprave mogu odvojiti od bržih. U suprotnom bi spore naprave ograničavale brze zbog povećanog čekanja na pravo za sabirnicu.
3. Nekim napravama pristupa se korištenjem adresa. Koji sve problemi zbog toga mogu nastati, tj. što treba “reći procesoru” u tom slučaju?
Ako OS koristi straničenje potrebno je adresu naprave mapirati u tablici prevođenja. Također je potrebno paziti da uvedene optimizacije u kodu ne narušavaju ispravnost rada naprave (npr. izmjena redoslijeda izvođenja operacija, korištenje priručnih spreminka)… Problem se rješava ubacivanjem posebnih instrukcija.
4. Zašto se koriste međuspremnici? Koju funkcionalnost obavljaju?
Međuspremnici se koriste radi povećanja učinkovitosti. Pouspješuju asinkronost između OS-a i naprave. Dodatno, omogućuje se slanje većih blokova podataka, što olakšava manipulaciju nad podacima, poput provjere ispravnosti.
5. Navesti vrste međuspremnika i opisati kako se oni koriste
Međuspremnik za jedan podatak - Jedna strana upiše podatak, pošalje signal da je podatak upisan, druga strana čita podatak, šalje signal da je podatak pročitan, repeat.
Dvostruki međuspremnik - dok naprava čita podatak iz prvog međuspremnika, OS piše u drugi međuspremnik. OS i naprava zatim rade sa suprotnim međuspremnicima itd. Tko piše, a tko čita ovisi o vrsti naprave.
Kružni međuspremnik - princip rada sličan dvostrukom međuspremniku, ali s N međuspremnika. Podaci popunjavaju slijedno međuspremnik po međuspremnik, kada se dođe do kraja vraća se na vrh. Potrebno je pamtiti indekse zadnje upisanog i pročitanog podatka da nebi došlo do pisanja preko nepročitanih podataka.
6. Usporediti međuspremnik (buffer) i priručni spremnik (cache).
Međuspremnik se odnosi na memorijski prostor između koji koriste dvije strane (npr. OS i naprava). Kada netko pročita podatke iz međuspremnika, brišu se. Dakle, nema kopije podataka.
Priručni spremnik koristi jedan “korisnik”, (npr. procesor). Služi za ubrzanje rada. Primjer korištenja -> procesor umjesto dohvata potrebnog podatka dohvaća cijeli blok u kojemu se traženi podatak nalazi i sprema ga u cache. Velika je vjerojatnost da će mu podaci iz tog bloka trebati u budućnosti, pa se tako smanjuje broj potrebnih sabirničkih ciklusa


bodilyfluids

Dragi prijatelj strojnog učenja

4. Poglavlje

1. Navesti osnovna svojstva komunikacije preko serijske veze (npr. RS232).
U serijskoj vezi podaci se šalju znak po znak. Koriste se dva vodiča, svaki za jedan smjer. Početak/kraj poruke sinkroniziraju se start/stop bitom. Potrebni su dodatni parametri za podešavanje veze (vidi u skripti 4.1).
2. Navesti osnovna svojstva komunikacije preko paralelne veze
Bitovi koji čine jedan podatak (npr. znak) šalju se istovremeno, svaki svojim vodičem. Radi veće složenosti potrebno je više sinkronizacijskih signalnih linija. Potrebno je puno sinkronizacije čime se ograničava brzina prijenosa. Sinkronizacija usporava rad proporcionalno duljini sabirnice. U praksi se ne koristi, osim u kratkim sabirnicama gdje su potrebne visoke performanse (npr. procesor-memorija).
3. Navesti nekoliko protokola koji koriste serijsku/paralelnu vezu
Serijska - USB, PCIe, RS-232
Paralelna - veza procesor-memorija, PCI (zamjenio ga PCIe), LPT (zamjenio ga USB).
4. Usporediti serijsku i paralelnu komunikaciju. Koje su prednosti serijske?
Paralelna komunikacija je složenija zbog više podatkovnih i sinkronizacijskih linija, također ima veće smetnje. Serijska je po načinu rada jednostavnija, po cijeni jeftinija i u praksi se češće koristi.
5. Opisati kako su USB naprave spojene u računalu: logički, fizički.
USB naprave su sabirnicom povezane na računalo. Logički, sve naprave su na zajedničkoj sabirnici. Fizički, naprave su neizravno spojene preko stabla koje se sastoji od mostova i konkretnih naprava. Na most se mogu spojiti drugi mostovi i naprave. Korijen stabla čini upravljački čvor preko kojeg ide sva komunikacija između naprava i OS-a.
6. Opisati osnovni način rada naprave koja je spojena na USB priključak
Kada OS želi poslati podatke određenoj napravi, šalje ih upravljačkom čvoru. On dobivene podatke broadcasta kroz cijelo stablo.
Upravljač periodički proziva svaku napravu. Kada naprava želi nešto poslati OS-u, podaci putuju jednom stazom prema upravljaču.
7. Što su to okviri, transakcije, paketi u kontekstu protokola USB?
Komunikacija s napravom podijeljena je u okvire. Okvir se sastoji od niza transakcija, a ona se sastoji od niza paketa (vidi poglavlje 4.3.3).
8. Što je to adresa naprave, a što adresa funkcije naprave (kod protokola USB)?
Naprava se sastoji od funkcija. Jedna funkcija je zapravo operacija koju naprava može izvršiti. OS ne komunicira direktno s napravom već njenim funkcijama. Nije mi ovo skroz jasno i nazivlje u skripti je krš, ali napisat ću kako sam shvatio… OS funkciji pristupa preko adrese, ona se sastoji od adrese naprave i adrese funkcije naprave. Prvi dio adrese je adresa naprave i nju dijele sve funkcije naprave, drugi dio je adresa funkcije naprave, specifična pojedinim funkcijama neke naprave. Poput grananja web adresa.
9. Za prijenos podataka USB-om preko protoka (stream) koriste se cjevovodi: izokroni, prekidni i veliki. Opisati njihova svojstva i namjenu.
Izokroni prijenosi garantiraju propusnost, ali s mogućim gubicima.
Prekidni prijenosi se koriste za brze odgovore na događaje.
Veliki prijenosi se koriste prijenos velikih skupova podataka. Ne garantiraju se ni propusnost ni kašnjenja, koriste se slobodni sabirnički ciklusi.
10. Zašto za mnoge USB naprave nije potrebno instalirati upravljačke programe, već ih operacijski sustav može koristiti s postojećim?
Protokol USB definira klase naprava. Naprave istih klasa nude sličnu funkcionalnost (npr. audio naprave, miš, tipkovnica, hard disk, printer itd). Umjesto posebnih upravljačkih programa, mogu se koristiti uobičajeni programi specifični svakoj klasi.
11. Kako se prenose podaci preko PCIe? Koliko vodiča se koristi, je li moguć istovremeni prijenos u oba smjera?
PCIe omogućava izravnu komunikaciju između naprava. Podaci se prenose serijski, moguća je istosmjerna dvosmjerna komunikacija (full duplex), koristi se 4 vodiča, 2 za svaki smjer. Signal se prenosi u normalnom i invertiranom stanju, na taj način se smanjuju smetnje u sustavu.
12. Kako se prenose podaci u/iz memorije PCIe naprave?
Svaka veza između naprava sastoji se između jedne ili više staza. Podaci se šalju u “paketima” na način da se paket razdijeli, a svaki dio paraleno putuje svojom stazom. DIjelovi se na odredištu sastavljaju natrag u paket.
13. Usporediti PCI i PCIe. Koje su prednosti sabirnice PCIe?
PCI sabirnica za sve koristi zajedničku sabirnicu, spore naprave diktiraju brzinu sustava. Potreban je upravljač sabirnicom. Ne omogućuje istovremenu dvosmjernu komunikaciju. Koristi paralelnu komunikaciju.
PCIe omogućuje izravnu komunikaciju dviju naprava, istovremenu dvosmjernu komunikaciju. Komunikacija na pojedinim stazama je serijska.
14. Koja je jedinica podataka (ne upravljačkih naredbi) koja se prenosi preko SATA protokola? Zašto nije proizvoljna veličina podataka?
SATA protokol koristi se za masivne spremnike memorije. Oni uglavnom adresiraju podatke u blokovima, za razliku od npr. računalne memorije gdje svaki podatak ima svoju adresu. Stoga SATA koristi fiksne veličine jedinica podataka pri prijenosu, tj. blokove, odnosno sektore, skupine blokova.


anon00


Je li ovo stvarno tako ide - da se šalje poruka izlazak sa ‘originalnom’ vrijednoscu sata, a ne onom na koju se update-ao prije K.O. kad je dobio sve odgovore?


bodilyfluids

anon00

To je lamportov protokol? Da, salje se izlazak(i, T(i)), pri cemu je T(i) vrijeme logickog sata kada je proces prvotno generirao zahtjev za ulazak u K.O, piše u prezentaciji


DankJakov

anon00 Di si nasao ovo


bodilyfluids

Dragi prijatelj strojnog učenja

5. poglavlje

1. Unutar jezgre kod se može izvoditi u “različitim kontekstima”. Koji su to i koja ograničenja postavljaju pojedini konteksti?
Poziv jezgrine funkcije iz programa - OS se ne prebacuje u jezgrin kontekst dretve već obavlja operacije unutar konteksta pozivajućeg procesa. Iz pozvane jezgrine funkcije izravno se mogu dohvatiti podaci o pripadajućoj dretvi, odnosno procesu. Dretva može biti blokirana “unutarnjim” mehanizmima nalik “vanjskima” (semafori, monitori…). Također se može dohvatiti i jezgra, tj. njene strukture podataka i druge funkcije.
Poziv jezgrine funkcije preko prekida - Prilikom prekida sprema se kontekst prekinute dretve i aktivira se kontekst jezgre. U pravilu ovaj način rada zabranjuje korištenje blokirajućih poziva (npr. čekanje semafora), međutim u praksi se obrada prekida vrši u 2 dijela:
neophodni dio - njime započinje prekid, atomaran je, tj. ne dozvoljava prekidanje.
dodatni dio - obavlja se naknadno, dozvoljeno prekidanje.
U skripti se spominju 3 načina, jezgrin kontekst procesa, kontekst jezgrine dretve, bez konteksta dretve. Nije mi baš jasno kako se zadnja dva razlikuju jedan od drugog. Pročitajte poglavlje 5.1.
2. Što treba napraviti/koristiti ako u jezgrinoj funkciji treba pristupiti adresnom prostoru procesa?
Sljedeće se odnosi na poziv jezgrine funkcije iz programa, nisam siguran mogu li se ove metode koristiti u drugim načinima izvođenja jezgrina koda… Ako se koristi straničenje, dohvat korisničkih podataka (pretpostavljam da je to adresni prostor procesa), mora se obavljati korištenjem posebnih funkcija, copy_to_user i copy_from_user). Opisnik pripadajuće dretve i procesa može se dohvatiti varijablom current.
3. Obrada prekida naprave vrlo je bitan dio upravljanja napravom, ali može bitno utjecati i na svojstva sustava. Zbog čega? Koje mogućnosti u Linuxu stoje na raspolaganju za obradu prekida? Koja su njihova svojstva/kada ih koristiti?
Linux omogućava obradu prekida u dva dijela, u neophodnom i dodatnom dijelu. Dodatni dio može biti napravljen na 4 načina:
Red poslova (workqueue), višedretvena obrada prekida (threaded IRQs) - obavljaju se u kontekstu posebnih jezgrinih dretvi, ne izvršavaju se atomarno, tj. mogu biti blokirani.
Lagani prekid (softirq), zadačić (tasklet) - izvode se atomarno u kontekstu posebne dretve (ne piše, ali pretpostavljam jezgrine). Ne smiju se koristiti blokirajući pozivi, jednom započet zadatak mora biti dovršen.
Preporuča se korištenje prve dvije metode zbog performansi.
4. Što se smije a što ne koristiti u jezgri? Je li to ovisi o kontekstu u kojem se izvodi kod jezgre? Kako?
U atomarnom kodu (npr. obrada prekida) ne smiju se koristiti blokirajuće funkcije, niti funkcije koje traže kontekst dretve. Smiju se koristiti funkcije s radnim čekanjem (spinlock).
Kod s kontekstom smije koristiti sve interne jezgrine funkcije.
Pristupati adresnom prostoru procesa koji se izvodio prije ulaska u jezgru može se pristupiti samo ako je taj proces sam pozvao jezgrinu funkciju, (npr. čitanje iz datoteke). U tu svrhu koriste se posebne funkcije za dohvat i pohranu podataka procesa.
Jezgra nema potporu za korištenje realnih brojeva jer nisu oni potrebni za obavljanje jezgrinih zadaća.
5. Što je to modul u kontekstu jezgre Linuxa? Čemu služi?
Upravljačke programe dijelimo na dvije vrste ovisno o načinu uključenja u jezgru, permanentno (statički) ili dinamički (modul). Statički upravljački programi dolaze u cjelini s ostatkom jezgre. Moduli se mogu naknadno, po potrebi, učitati u jezgru, zatim maknuti kada više nisu potrebni. Za kompajliranje modula nije potrebno znati cijeli izvorni kod Linuxa, već njegova samo zaglavlja (.h datoteke) i postavke.
6. Navesti tri osnovne klase naprava u LInuxu.
Znakovne naprave - naprave koje čitaju/pišu niz bajtova (npr. tipkovnica, miš…).
Blokovske naprave - koriste blokove kao jedinice podataka (uglavnom naprave koje ostvaruju datotečne sustave).
Mrežna sučelja - naprave kojima je svrha ostvarenje komunikacije.
7. Koja je zadaća upravljačkog programa naprave?
Upravljački programi upravljaju napravama. Može imati i prihvat prekida, ako naprava izaziva prekide koji nisu obuhvaćeni općenitim mehanizmima. Upravljački programi sastoje se od svoje strukture podataka i funkcija. Upravljački program prima zahtjeve kroz sučelje OS-a (read(…), write(…), open(…) itd.), ovisno o vrsti zahtjeva, poziva odgovarajuću, tj. registriranu funkciju naprave.
8. Koja su uobičajena sučelja koja naprava mora ostvariti, a da bi se uklopila u Linux?
Sučelja su opisana u poglavlju 1.1.


aerius

U auditornima drugi zad je riješen tako da je p3 prvo primio zahtjev od p1 pa od p2, a ne možemo znat dal su stigli obrnuto što bi značilo da bi se drugačije vrijednosti sata slale p1 i p2 i njihovi satovi bi bili drugačije postavljeni, jel spominjo šta na predavanju za to ili sam da tak odaberemo random jedan slučaj kod više mogućih redosljeda pristizanja zahtjeva?


bodilyfluids

aerius spomenuo je da ima više rješenja. Prilikom grananja možeš odabrati random varijantu


« Prethodna stranica Sljedeća stranica »