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