# ZK 29.1.08

<{ForumPost(poster="Anonym...", timestamp=2008-01-29 15:03:05)}>
1) Výpadky stránek: 2B, 4kB str, 8kB dat, 3 urovne // asi 20  
2) Inkrementace globlni promeny pomoci 5ti vláken ..jaka v ni bude hodnota?  
  
count = 0;  
  
spust 5x vlakno  
  
for i:=0 to 99 do  
    count++;  
  
//asi 100-500  
  
3) pocet vypadku bloku pri 4 blocich a metode CLOCK .. posloupnost 12344321516 // prej 7  
  
4) prevedte 55E27C3A z 16tkový do 2jkový .. byly 4 možnosti  
  
---------------  
  
prefix a zasobnik  
  
preruseni vnitrni vnejsi  
  
ridici hazard v pipeline  
  
neco dalsiho
<{/ForumPost}>

<{ForumPost(poster="Blaf", timestamp=2008-01-29 15:29:00)}>
Posledni ukol byl napsat instrukci load ACC relative v mikrokodu (tzn. adresu pricist k akumulatoru a to loadnout).  
Ohledne toho counteru v prvni casti nam Bulej po zkousce napsal mail, ze spravna moznost nebyla vubec uvedena a tudiz uzna vsechny krome "vzdy 500", ktera znaci nepochopeni problemu pristupu nekolika vlaken ke globalni promenne. Jake bylo spravne reseni, to netusim, mne tech 100-500 pripada rozumne.
<{/ForumPost}>

<{ForumPost(poster="Zlosynus", timestamp=2008-01-29 15:45:01)}>
Reseni te ctvrte ulohy jsem tedka pred chvilkou nekomu psal, snad je dobre:  
LOAD s relative adresou:  
  
fetch:  
T0: PC_out, MAR_in  
T1: read, pcincr  
T2: MDR_out, IR_in  
decode:  
T3: decode opcode in IR  
execute:  
T4: IR_out (addrpart), MDR_in  
T5: ACC_out, aluadd  
T6: TEMP_out, MAR_in  
T7: read  
T8: MDR_out, ACC_in, reset to T0
<{/ForumPost}>

<{ForumPost(poster="lubos", timestamp=2008-01-29 16:19:35)}>
z mailu:

 > Dobry den,  
 >   
 >     je mi to lito, ale pri priprave dnesniho zadani pisemne prace jsem udelal  
 > chybu v jejimz dusledku se u druhe zaskrtavaci otazky (citac) neobjevila spravna  
 > odpoved.   
 >   
 > Za toto pochybeni se omlouvam.  
 >   
 > Otazku budu tedy hodnotit tak, ze za nespravnou budu povazovat pouze odpoved "vzdy  
 > 500", ktera ukazuje na nepochopeni dusledku pristupu ke sdilene promenne bez  
 > jakekoliv synchronizace.  
 >   
 >   
 > Lubomir Bulej

<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 16:32:52)}>
1) je to opravdu 20  
  
  
a jake byly moznosti u te 2)  ?
<{/ForumPost}>

<{ForumPost(poster="hoboj", timestamp=2008-01-29 16:51:27)}>
1-500  
5-500  
100-500  
vzdy 500
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2008-01-29 17:07:47)}>
fuj no dneska to to bylo asi pekne hnusne .. dneska bych to nedal ... jeste ze to mam zasebou ..
<{/ForumPost}>

<{ForumPost(poster="Jiří", timestamp=2008-01-29 17:11:56)}>
Hele, jak prsne funguje CLOCK. Pochopil jsem LRU, ale u toho Clock si nejsem jistej, kteoru teda vyhodi???
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 17:13:08)}>
@Hoboj: Taky bych rekl 100-500 .. ([http://en.wikipedia.org/wiki/Race_condition](http://en.wikipedia.org/wiki/Race_condition))  
  
neví někdo správnou odpověď?
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 17:37:53)}>
@Jiri: [http://www.cs.binghamton.edu/~nael/cs35 ... -lec21.pdf](http://www.cs.binghamton.edu/~nael/cs350/notes/6-lec21.pdf) - clock algorithm, [http://www.root.cz/clanky/porovnani-linux-freebsd-11/](http://www.root.cz/clanky/porovnani-linux-freebsd-11/), [http://www.student.cvut.cz/cwut/index.p ... organizace](http://www.student.cvut.cz/cwut/index.php/Pam%C4%9Bti_a_jejich_organizace) (pokud neurazi)  
  
Pokud jde o ten clock, tak ja bych to asi delal takhle:  
  
12344321516  
  
1) 4 vypadky pro 1234 ... predpokladam, ze na zacatku neni v pameti zadnej ramec namapovanej       ======         4 VYPADKY  
2) pak 4321 - ty uz namapovane jsou, takze zadny vypadek         =====       0 VYPADKU  
3) nyni jedeme po smeru hodinovych rucicek a odebirame accessed (A) priznak a davame tam dirty, skoncime zase na jednicce  
4) takze jednicku vymenime za 5 a nastavime priznak A     =====    1 VYPADEK  
5) jednicka uz neni namapovana, takze odebereme priznak A petce, posuneme se o jeden prvek dal, tam neni priznak A, tak misto dvojky dame 1  ========== 1 VYPADEK  
6) sestka neni namapovana vubec, takze dalsi vypadek stranky    ======= 1 VYPADEK  
  
celkem 7 vypadku
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 17:48:10)}>
preruseni - vnitrni vnejsi  
======================  
  
Vnitrni - vypadek stranky, neexistujici instrukce, specialni volani (syscall, int)  
vnejsi - poruchy HW, význačné stavy I/O a čítáčů  
  
  
ridici hazard v pipeline  
====================  
nacitani instrukci za skokem (zpozdeny skok)  
  
  
* nutno učinit rozhodnutí před vykonáním instrukce   => tohle ma bulej a obdrzalek ve slidech, ale nevim, co tim presne mysli, kdyby si aspon mezi sebou nekopirovali ty slidy :-/  :D   
mozna se tim mysli predikce  
  
prefix a zasobnik  
================  
timhle se mysli prefixova notace a jak to souvisi se zasobnikem?
<{/ForumPost}>

<{ForumPost(poster="HonzaK", timestamp=2008-01-29 18:12:48)}>
Neměla v tý posloupnosti v příkladu 3, první část testu, být na konci ještě dvojka??
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 18:33:14)}>
me tak napada, chodi se na tuhle zkousku v saku?
<{/ForumPost}>

<{ForumPost(poster="Blaf", timestamp=2008-01-29 18:36:15)}>

 > Him wrote:me tak napada, chodi se na tuhle zkousku v saku?

Ani nahodou  :lol:
<{/ForumPost}>

<{ForumPost(poster="Sven Wiersen", timestamp=2008-01-29 18:53:38)}>
Hele, vy jste tady samý chytrý lidi, prozradíte mi, co je to sakra ten semafor, co je zhruba v polovině zadání?
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2008-01-29 19:06:11)}>
google wikipedia  
  
[http://cs.wikipedia.org/wiki/Semafor_%2 ... onizace%29](http://cs.wikipedia.org/wiki/Semafor_%28synchronizace%29)  
  
  
google -> semafor -> prvni odkaz co ma co spolecneho s pocitacema je to prave orechove :D  
  
ale jinak nic rad jsem pomohl :D :D  
  
= PS: je dulezite pochopit "synchronizacni primitivum" - pak pochopis semafor a monitor hned
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2008-01-29 20:33:31)}>
Je možné, že na ty principy se člověk musí učit víc než na analýzu? Už u toho tvrdnu přes přes 8 dní a pořád si moc nevěřim, nejlepší je, že ty otázky se neopakují, ale pořád přibývají nové, které nikde nejsou, což není dobrý.. viz tento test, některé otazky jsou originály :-/
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2008-01-29 21:45:45)}>
[http://mff.lokiware.info/PrincipyPocita ... 6n8#h143-5](http://mff.lokiware.info/PrincipyPocitacu/ReseneOtazky?v=16n8#h143-5)  
[http://s0cketka.php5.cz/skola/zzos.php](http://s0cketka.php5.cz/skola/zzos.php)  
[http://mff.lokiware.info/PrincipyPocita ... dnasky.pdf](http://mff.lokiware.info/PrincipyPocitacu/files?get=pp_prednasky.pdf)  
[http://wiki.matfyz.cz/wiki/Bakal%C3%A1% ... .A1n.C3.AD](http://wiki.matfyz.cz/wiki/Bakal%C3%A1%C5%99sk%C3%A1_st%C3%A1tnice_-_Informatika_-_Z%C3%A1klady_informatiky_-_ISPS_-_Architektura_po%C4%8D%C3%ADta%C4%8D%C5%AF_a_opera%C4%8Dn%C3%ADch_syst%C3%A9m%C5%AF#Procesy.2C_vl.C3.A1kna.2C_pl.C3.A1nov.C3.A1n.C3.AD)  
[http://cs.wikipedia.org/wiki/Deadlock](http://cs.wikipedia.org/wiki/Deadlock)  
[http://home.zcu.cz/~dudacek/Pot/priklady/index.html](http://home.zcu.cz/~dudacek/Pot/priklady/index.html)  
[http://cs.wikipedia.org/wiki/Dvojkov%C3 ... D_k.C3.B3d](http://cs.wikipedia.org/wiki/Dvojkov%C3%A1_soustava#Dopl.C5.88kov.C3.BD_k.C3.B3d)  
[http://www.cs.clemson.edu/~mark/uprog.html](http://www.cs.clemson.edu/~mark/uprog.html)  
[http://radja.wz.cz/prevod_mezi_ciselnymi_soustavami.htm](http://radja.wz.cz/prevod_mezi_ciselnymi_soustavami.htm)  
[http://dsrg.mff.cuni.cz/~pallas/vyuka/ppos/](http://dsrg.mff.cuni.cz/~pallas/vyuka/ppos/)  
  
  
toto jsou materialy z kterych jsem se ucil .. toto jsem si prosel (cca 3 dny + k bulejovejm slidum jsem vsemu co jsem nerozumel kouknul do wikipedie a tam to nasel .... mno da se to .. analyza je fakt horsi v pisemce jsou jen typove ulohy..
<{/ForumPost}>

<{ForumPost(poster="hippies", timestamp=2008-01-29 22:32:45)}>
Ja (ale uz je to hodne davno) nektere drobnosti dohledaval tady:  
[http://www.fi.muni.cz/usr/pelikan/ARCHI ... OBSAH.HTML](http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/OBSAH.HTML)
<{/ForumPost}>

<{ForumPost(poster="onashackem", timestamp=2008-01-29 23:33:26)}>
Tak je to tady, učim se to jak debil. Taky sem nečekal, že to až tak pozmění. Přeju všem hodně štestí zejtra a pozejtří!
<{/ForumPost}>

<{ForumPost(poster="anonym...", timestamp=2008-01-30 22:23:36)}>

 > HonzaK wrote:Neměla v tý posloupnosti v příkladu 3, první část testu, být na konci ještě dvojka??

Ano..došlo k chybě.. na konci posloupnosti byla v zadání ještě dvojke, tedy  
  
123443215162
<{/ForumPost}>

<{ForumPost(poster="OndraC", timestamp=2008-02-04 14:30:18)}>
Ahoj, chtěl jsem se zeptat... co by se mělo napsat k tý otázce "prefix a zásobník"???? Ve slajdech toho o tom moc není...
<{/ForumPost}>

<{ForumPost(poster="dobry_den", timestamp=2008-02-04 14:44:40)}>
ptal jsem se kamose a priblizne tedy toto:  
  
"joo no byl tam zápis v prefixu, tak si měl říct jakym zpusobem se bude vyhodnocovat v počítači (to je ta znalost zásobníku), něco o tý notaci a pak jakej bude výsledek + nějak přiblížit/popsat algoritmus toho procesu počítání v zásobníku"
<{/ForumPost}>

<{ForumPost(poster="OndraC", timestamp=2008-02-04 14:55:07)}>
Díky...
<{/ForumPost}>

<{ForumPost(poster="Ellrohir", timestamp=2008-02-11 12:48:18)}>

 > Zlosynus wrote:
 > T4: IR_out (addrpart)

co tady přesně znamená ten parametr "addrpart" ? případně "kde se vzal" ?  
  
(procházím si teď různý mikrokódy a snažím se je převést si je na to, "jak to běhá" na CPU, ale tohle nějak nevím, co si o tom myslet... :oops: )  
  
a ještě sem se chtěl zeptat, jak je tam u kroku T1 "pcincr", tak jestli to má nějakej význam, že se to děje zrovna v tomhle kroku a nebo by to klidně mohlo bejt i někdy jindy (protože jestli to dobře sleduju, tak hodnota z programovýho čítače se používá jenom v kroku T0, čili by se "pcincr" mohlo teoreticky provést kdykoliv v krocích T1-T8
<{/ForumPost}>

<{ForumPost(poster="mousemclion3", timestamp=2009-02-04 07:31:04)}>

 > Zlosynus wrote:Reseni te ctvrte ulohy jsem tedka pred chvilkou nekomu psal, snad je dobre:  
 > LOAD s relative adresou:  
 >   
 > fetch:  
 > T0: PC_out, MAR_in  
 > T1: read, pcincr  
 > T2: MDR_out, IR_in  
 > decode:  
 > T3: decode opcode in IR  
 > execute:  
 > T4: IR_out (addrpart), MDR_in  
 > T5: ACC_out, aluadd  
 > T6: TEMP_out, MAR_in  
 > T7: read  
 > T8: MDR_out, ACC_in, reset to T0

Nevim zda li to přijde vhod, ale jestli se nepletu tak tohle neni load, neco jako load skřiženy s add, a ješte trošku tvurči představivosti k tomu  
  
load mame primo ve slajdech:  
  
Mikroprogram pro instrukci load:  
  fetch  
T0: PC_out, MAR_in  
T1: read, pcincr  
T2: MDR_out, IR_in  
 decode  
T3: decode opcode in IR  
 execute  
T4: IR_out(addr part), MAR_in  
T5: read  
T6: MDR_out, ACC_in, reset to T0  
  
(Dobre si taky omrknout [http://www.cs.clemson.edu/~mark/uprog.html](http://www.cs.clemson.edu/~mark/uprog.html) )
<{/ForumPost}>

<{ForumPost(poster="hjk", timestamp=2009-02-04 12:02:59)}>
mouse: jasně, ale tohle není klasický load, ale load s relative adresou, ty vypadají trošku jinak...  
doporučuju omrknout další příklady zde na fóru nebo: [http://mff.lokiware.info/PrincipyPocita ... zky?v=16n8](http://mff.lokiware.info/PrincipyPocitacu/ReseneOtazky?v=16n8)  
  
Jenom mi není úplně jasný ten load indirect:  
execute  
T4: IR_out (addr part), MAR_in  
T5: read  
T6: MDR_out, MAR_in  
T7: read, reset to T0  
  
Na konci to proženu znova pamětí a do ACC už to neházím (jako v klasickém load)?
<{/ForumPost}>

<{ForumPost(poster="Anonymous", timestamp=2009-02-07 16:28:01)}>
Ahoj,   
  
chapu to dobre, ze mikroinstrukce aluadd se podiva, co je na sbernici, a pricte to k hodnote MDR a ulozi zpatky do MDR ?  
Takze kdyz napriklad chci pricist hodnotu z MDR k ACC tak:  
  
ACC_out, aluadd  
ACC_in, MDR_out  
  
?  
  
Diky
<{/ForumPost}>

<{ForumPost(poster="Anonymous", timestamp=2009-02-07 16:31:01)}>
Teda takto: aluadd secte hodnotu na sbernici s hodnotou MDR a ulozi ji do TEMP.  
Takze kdyz chci pricist hodnotu z MDR k ACC tak:  
  
ACC_out, aluadd  
TEMP_out, ACC_in
<{/ForumPost}>

<{ForumPost(poster="geckon", timestamp=2009-02-09 16:37:52)}>

 > Návštěvník wrote:Teda takto: aluadd secte hodnotu na sbernici s hodnotou MDR a ulozi ji do TEMP.  
 > Takze kdyz chci pricist hodnotu z MDR k ACC tak:  
 >   
 > ACC_out, aluadd  
 > TEMP_out, ACC_in

Tak by to, myslím, mělo být.  

 > Ellrohir wrote:
 > co tady přesně znamená ten parametr "addrpart" ? případně "kde se vzal" ?

Já bych řekl že to pochází z "address part" = adresová část ;-)
<{/ForumPost}>

