<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">V drivejsich letech jsme implementace, kde vsechny operace nad<br>
synchronizacnimi primitivy byly samostatne syscally, povazovali za<br>dostacujici. I tak to totiz neni uplne trivialni, napriklad je velmi<br>nevhodne, aby kernel daval uzivatelskemu procesu volne k dispozici<br>samotnou datovou strukturu synchronizacniho primitiva.
<br></blockquote><div><br>Asi to spravime tymto sposobom teda....<br><br>Jedina otazka v tomto emaile :-) :<br><br>Je jasne, ze nechat data v pamati pristupnej z user space nie je dobry napad - potom tu ale vznika jeden celkom problem... Totiz, mutex_init logicky musi inicializovat nejaku strukturu - ale kedze uzivatelsky proces tu pamat nemoze poskytnut, je nutne ten mutex naalokovat v kernel pamati - co 1) moze zlyhat, 2) tak moze user process v pohode zabit jadro. Bol by velmi "proti pravidlam" vyrobit mutex_init, ktory by mohol aj zlyhat? (
i.e. vratit ENOMEM)<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Elegantnejsi cesta (kterou ocenujeme lepsim bodovym ohodnocenim) je
<br>implementovat synchronizacni primitiva v uzivatelskem prostoru prevodem<br>na kernelove prostredky pro planovani vlaken (povolovani/zakazovani<br>preempce, fronty cekajicich vlaken atd.). Pouziti spinlocku ma<br>opodstatneni az na viceprocesorovych systemech.
<br><div class="Ih2E3d"></div></blockquote><div>Takto by sme to ovela radsej spravili, ale uz tak je toho casu malo - robit toto + rozsirene zadanie + sa ucit na ostatne skusky a zapocty nie je tak uplne "trivialne" ;-( Mozno po skuskovom v ramci vlastnej zabavy :)
<br><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Zadani nehovori o zadnem sdileni pameti mezi uzivatelskymi procesy,<br>takze nevim, jak si presne predstavujete to meziprocesove pouziti a
<br>k cemu by vlastne melo slouzit ..<br><div class="Ih2E3d"></div></blockquote><div>To bol tiez len taky perfekcionisticky napad :) Beriem spat...<br><br><br></div>Andrej Krutak<br></div>