[OPESUS] Završni ispit - 2019/2020
AnamarijaM
Avendo Oduvijek je bilo teorije, samo je sad Golub na zadnjim konzultacijama rekao da je nama vjerojatno nece stavit posto su nas pitali vec to sve preko bliceva.
mihamih
kolko sam ja skuzio ovi primjeri završnih su zapravo stari zavrsni, na jednom cak pise datum, tako da mislim da to sta ima teorije na njima nas nebi trebalo zabrinjavat ako je golub rekao da teorije vjv nece bit
Daorson
Koji videi s youtube kanala ulaze u zavrsni ispit?https://www.youtube.com/playlist?list=PL5Jyl3Lahn6wdcgjkjj2jMF-CEyqSMzXq
lup
Daorson svi
link ti je strgan
Rene
Zašto je ovdje aktivna dretva na kraju dretva 2? Piše da su redovi po redu prispijeća, a postavi_bsem prvo skloni aktivnu u pripravne, pa onda ovu iz reda semafora, pa onda prvu iz pripravnih postavi u aktivnu, a to bi valjda onda bila ponovo dretva 1?
Krpa1
Rene Ne, zato što dretva 1 dva puta zove PostaviBsem(1). Kad ga prvi put pozove prvo se dretva 1 prebaci u pripravne, a onda se dretva 2 prebaci u pripravne. Dakle nakon prvog poziva red pripravnih je dretva 1 pa dretva 2 i onda aktivna dretva postaje dretva 1. Onda dretva 1 ponovno pozove PostaviBsem(1) i dogada se sljedece. Prvo se dretva 1 prebaci u pripravne (u kojima je na prvom mjestu dredtva 2 koja je tamo od prije) i onda se dretva 3 prebaci u pripravne. Tada red pripravnih izgleda ovako: 2 pa 1 pa 3. Onda se aktivira prva iz reda pripravnih tj dretva 2, a u redu pripravnih ostanu 1 i 3.
Asdf
Može netko objasniti što se ovdje događa s ovim crvenim strelicama i ovo -1
Hrvoje
Asdf
-1 nije bitno za nase gradivo(?), a crveni bridovi su oni koji su uklonjeni zbog tranzitivnosti, npr:
z4 ovisi o z2,
z5 ovisi o z2,
z5 ovisi o z4, znaci da z5 nemora direktno ovisiti o z2 jer ovisi o z4 koji ovisi o z2
AnamarijaM
Hrvoje45 -1 je iz crtanja automata kao npr na utru, ne moramo to na ispitu.
Rene
Janez Joj da, još pišem po redu prispijeća a u glavi mislim da je prioritet. Hvala!
HARAmara
Može li netko pojasniti ovaj
helenic
decko_sa_balkana
for (i = 1 ; i < = 3 ; i++) fork() ;
— > iz ove for petlje izlazi ukupno 8 procesa
Na početku imaš jedan proces recimo GP - glavni proces, on jedini ulazi na početku u petlju i radi ovako:
i = 1
GP stvori jedan novi proces P_GP_1 i oba nastavljaju dalje
i = 2
GP stvori jedan novi proces P_GP_2 i P_GP_1 (jer se stvorio kad je i = 1) stvori jedan novi proces P_GP_1_1
i = 3
GP stvori još jedan novi proces P_GP_3
P_GP_1 stvori još jedan proces P_GP_1_2
P_GP_2 stvori još jedan novi proces P_GP_2_1
P_GP_1_1 stvori još jedan proces P_GP_1_1_1
I na kraju imaš : GP, P_GP_1, P_GP_2, P_GP_3, P_GP_1_1, P_GP_1_2, P_GP_2_1, P_GP_1_1_1
Oznake sam napisao hijerarhijski da skužiš koji proces šta stvara.. (roditelj_dijete)
I onda ti zapravo do druge for petlje dođe 8 procesa, tj 8 dretvi, i svaki od njih stvori još po 3 dretve, tako da bih rekao da je odgovor da na kraju budu 32 dretve.
***
Zapravo ti nije toliko bitno kad tko dolazi cini mi se, pogledaj neki općeniti slučaj, a nekako se možda može naći najgori..
Al recimo da oba dolaze u istom trenutku u 0. ms. I ja bih rekao da je ovo sa sklopom za prihvat prekida, samo veći prioritet prekida niži.
- ms —> pojave se P1 i P2 , znači kontrolne zastavice u oba postavljene na 1, a prihvati se P1, P2 čeka
P1 odradi svoje, znači 0.1 ms za prihvat, 2 ms obrada i 0.1 ms izlazak iz prekida, znači 2.2 ms. U toj 2.2 ms se odmah i ulazi u ovu proceduru za određivanje prioriteta prekida za P2, znači jos 0.1ms, u 2.3 ms se počne obrađivati P2, i obrađuje se do 10. ms znači 7.7 ms, tada dođe još jedan P1, obradi se za 2.2ms, i nastavi P2 još 2.3ms, izadje za 0.1 ms, i prvi put nakon čini mi se 14.6 ms procesor nema šta raditi sve do 20.ms, onda dođe P1, obradi se sa 2.2ms, pa procesor opet slobodan ostatak vremena tj 7.8ms, i tako još jednom u 30. ms i obradi se za 2.2 ms i procesor slobodan 7.8ms, i nakon toga se opet ponavlja početak, znači u 40ms procesor bude slobodan 2 * 7.8 + 5.4 ms, cca 21ms, znači da u 200 ms bude slobodan 105ms, pa znači da bi se mogao staviti program od 45 ms.. Ovako ja mislim da je ok, ali neka netko potvrdi jer je ovako napamet bez crtanja ili me ispravi ako griješim
Gocc
kako znati koji prekid ce doci u 0.sekundi, a mogu i oba? je li to svejejedno? i je li povratak iz prekida traje isto 0.1?
Gocc
helenic Tako sam i ja mislila, možda bi i sva rješenja prihvatili.
Sulejman
helenic I onda ti zapravo do druge for petlje dođe 8 procesa, tj 8 dretvi, i svaki od njih stvori još po 3 dretve, tako da bih rekao da je odgovor da na kraju budu 32 dretve.
8*3=24? ili sam ja neš krivo skužio
helenic
*** Ma da slažem se, da je zadano tipa u 90ms može li se izvesti ili neko granično vrijeme onda bi vjerojatno naglasili koji poredak itd, ali ovdje ostane za 2 takva procesa, još i više 😅
Avendo
Kako su tu dobili k (faktor preplitanja)
viliml
Avendo Pa koja je definicija faktora preplitanja? Fizička udaljenost logički susjednih sektora. Ako glava prijeđe 4.2 sektora za vrijeme prijenosa onda mora biti 5 sektora između 2 logički susjedna, dakle ukupna udaljenost je 6.
helenic
Mislim da to nismo radili i da se faktor preplitanja od nas neće tražiti, to što radiš su baš stare auditorne..
Ali ako te zanima mislim da ide ovako:
Prvo ovdje se prenosi jedan po jedan sektor, a kod nas u zadacima ti uvijek bude da se prenosi cijela staza u interni spremnik. Ovdje ti jedan sektor ima 512B, znači 4096 bitova, i vrijeme potrebno da se prenese jedan sektor je
\frac{4096 \text{ bit}}{10^{7} \frac{\text{bit}}{\text{s}}} = 0.4096 \text{ms.}
Vrijeme da se pročita samo jedan sektor, ti je \frac{\text{rotacijsko kašnjenje}}{\text{broj sektora}} = \frac{12.5 \text{ms}}{128} = 0.0977 \text{ms}.
U zadatku ti kaže da se pročita samo jedan sektor i on se prenosi, i ti trebaš naštimati taj faktor preplitanja da nemaš nikakvog praznog hoda što se tiče diska. (Disk se stalno okreće, i kad ti prenosiš jedan sektor glave se okreću)
Npr. želiš pročitati sektore 10, 11, 12, i ako su oni zapisani na disku točno tako –> 10 –> 11 –> 12, ti pročitaš 10. sektor i dok ga preneseš disk se već okrenuo i ponovno moraš čekati rotacijsko kašnjenje dok se ne dođe na 11. sektor, pa je zato bolje namjestiti da sektori idu tipa 10 . . . . 11 . . . . 12 gdje ti ove točkice predstavljaju točno koliko je sektora između, tj koliko sektora se prodje glava diska i ručica dok se ovaj jedan sektor prenese u interni spremnik.
I sad vidiš da je trajanje prijenosa sektora 0.4096 ms, a da se jedan sektor pročita treba 0.0977ms, znači da će se disk okrenuti (dok se pročitani sektor prenese u interni spremnik) za \frac{0.4096}{0.0977} = 4.1924 sektora.
To ti znači da je nakon recimo našeg 10. sektora ispod ručice “prošao” još i 11., i 12. i 13. i 14. i malo 15. sektora, i glava se trenutno nalazi na 15. sektoru.. A mi sljedeći trebamo 11. i opet trebamo čekati cijeloo rotacijsko kašnjenje da se glava vrati nazad na 11. da ga pročitamo.. E onda se više isplati složit te sektore 10 . . . . . 11 . . . . . 12 . . . . . 13 , znači da je 5 sektora između ovih koje trebamo, ne znam točno kako se to sad slaže (jer sam i ja po ovoj slici što si poslao zaključio kako se računa) ali mislim da ti je jasno zašto je taj k = 6 😃 (jer su udaljeni 6 mjesta ovi sektori koji nama trebaju).. Nisam siguran je li ovo ovako ispravno, ali ima smisla
EDIT: Dok sam pisao ti je kolega iznad odgovorio, ali možda ti posluži
WickyWinslow
Avendo Preplitanje se ne radi više na predmetu. Nije potrebno znati.
faboche
Avendo Mozes samo reci gdje si nasao ovo?