• Welcome to TUKE FÓRUM - Fórum pre Å¡tudentov Technickej Univerzity v KoÅ¡iciach.
 

OS

Started by diacon.mex, 01.12.2007, 02:12:26

« predchádzajúce - ïal¹ie »

ppt

DeNaTuReMaN:
Pozri sa, ci mas spravne nastaveny v procese zadanie semafor2. Teda s2[0]=1 a s2[1]=0 (a nie naopak, ze s2[0]=0 a s2[1]=1).

roman55

Kto mi urobi zadanie z OS za prachy . piste rychlo . Dik

Sooloni

Quote from: DeNaTuReMaN on  03.01.2008, 21:11:28
Som dnes dosiahol 100 pokus odovzdania  :dancing:
Idem tahat na 200vku  bq
Inak momentalne mi robi tiez to (podobne ako ONdrovi)ze PROC_PR prijme 10 slov korektne a ukonci sa, PROC_S prijme 10 slov korektne a odosle ich dalej, a PROC_SERV1 zahadne prijme uz iba 8 slov a ukonci sa korektne.
Pritom na linuxe u mna mi ide v pohode vsetko a prijme 10 slov.
hmm.. a nema ten proces prijat nahodou 20 slov? (10 z p1.txt a 10 z p2.txt)  ???

JCube

Quote from: Sooloni on  03.01.2008, 22:09:53
Quote from: DeNaTuReMaN on  03.01.2008, 21:11:28
Som dnes dosiahol 100 pokus odovzdania  :dancing:
Idem tahat na 200vku  bq
Inak momentalne mi robi tiez to (podobne ako ONdrovi)ze PROC_PR prijme 10 slov korektne a ukonci sa, PROC_S prijme 10 slov korektne a odosle ich dalej, a PROC_SERV1 zahadne prijme uz iba 8 slov a ukonci sa korektne.
Pritom na linuxe u mna mi ide v pohode vsetko a prijme 10 slov.
hmm.. a nema ten proces prijat nahodou 20 slov? (10 z p1.txt a 10 z p2.txt)  ???
nie...pr si vzdy vyziada len 10 slov
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Payne

Patrik, najprv kus porozmyslam a potom pisem...

Samozrejme ze ma semafory dobre spravene, lebo keby ze ich ma zle, tak by mu nic neslo...
Ono inak mne to tiez robilo a ani uz neviem ako som to spravil, ale teraz ide vsetko ok...

TO sooloni, urcite nie, ma prijat od kazdeho po 5 taze spolu 10...

ppt

Martin, preto som to napisal, pretoze Ondro mal podobny problem. ;-) Tiez mu z procesu D odoslalo menej slov a to preto, lebo mal len zle nastavene semafori v procese zadanie. Po prehodeni farieb (zelena a cervena) mu to uz slo dobre.

Payne

Cudne ako to mohlo aspon ciastocne ist, ked to vobec nemalo ist? musel mat daco ine zle napisane...

Inak patrik, ty uz mas zadanie spravene? sam?

ppt

Proces D caka, kym nedostane na S2[1] zelenu a nasledne precita z proc_s slovo z SM2 a posle ho dalej. Cize na zaciatku musis mat nastaveny semafor S2[1] na cervenu, aby si pockal, kym sa SM2 naplni a az tak mohol precitat slovo. Inac prebehne proc_d skor, ako bude slovo v SM2 zapisane, takze tym padom to slovo stratis.

Ano, mam ho uz odovzdane, spravil som ho sam. Este pracujem na dokumentacii.

Payne

Ono to mal celkovo chybne v tom pripade zapisane, pretoze si poriadne precitaj zadanie a tam je, ze semafory do uz nejakej formy vopred urcenej inicializujes...

Takze ako som vravel, keby to mal naopak zapisane, tak by mu to vobec nemalo ist, a ked pises fakt pravdu a islo, tak zase je to dokaz kvality systemu odovzdavania...

ppt

Tak v zadani pise, do akeho tvaru mas ten semafor inicializovat. Nepise sa tam, co sa stane, ak ho inicializujes opacne. Takze neni tam nic zle napisane. :j_tongue:

DeNaTuReMaN

No semafory mam inicializovane v poriadku :) skor som rozmyslal zeby to mohlo byt aj zdielanou pamatou aj s tym som nieco porobil no bud uz som to totalne pokazil :) ale potom nejako znova do toho stavu dostal povodneho ked SERV1 ma len 8 slov :) a dokonca raz sa mi podarilo aj 9 slov pritom som nic v zadani nemenil. Idem hladat problem asi v hierarchii ukoncovania procesov ci sa nahodou nieco neukonci skor ako ma a preto nestihne tie koncove slova zapisat.
V nedelu na obed budu krky

Payne

Ach, jasne mas pravdu, bereme s5.

Ono ja som si nevsimol, ze sa bavime o inicializacii, ale ja som myslel, ze sa bavime o operaciach na semaforoch. Lebo vtedy, a ja som to aj tak myslel, keby nastavil operacie na opacne, tak by nemohol nic nacitat...

puq

Quote from: DeNaTuReMaN on  04.01.2008, 06:06:29
No semafory mam inicializovane v poriadku :) skor som rozmyslal zeby to mohlo byt aj zdielanou pamatou aj s tym som nieco porobil no bud uz som to totalne pokazil :) ale potom nejako znova do toho stavu dostal povodneho ked SERV1 ma len 8 slov :) a dokonca raz sa mi podarilo aj 9 slov pritom som nic v zadani nemenil. Idem hladat problem asi v hierarchii ukoncovania procesov ci sa nahodou nieco neukonci skor ako ma a preto nestihne tie koncove slova zapisat.

tiez by som to tipol na shared memory, mozno nespravna inicializacia pamati, skus si zmenit SM napr, ked nemas iny tip v com by to mohlo byt

DeNaTuReMaN

Heh konecne na 110 pokus mi to vzalo  :ropebanana: Som odznova prerobil PROC_T PROC_D a ZADANIE. Vyzera to tak ze ta chyba bolo fakt v tych semaforoch :)
Inak nevie niekto kedy sa da ist ku KLEINOVEJ odovzdat a kde ?
V nedelu na obed budu krky

JCube

pisali ste jej mail? myslim ze tym nic nepokazite..
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

puq

co ja pamatam, klienova hovorila, ze mailom sa mame dohodnut s nou kedy mame prist odovzdat

Songoo

Zdar, zadanie my islo na hornade i bukovci ale v systeme to crashlo (ako som ale cital nic nove pod slnkom :) ) , skusil som to spustit na ruzine a tam sa to zacalo spravat divne a neviem si s tym niako rady :
Proces S nacita vsetkych 10slov ale proces D sa vykona len pre kazde druhe slovo cize nakoniec v s2.txt skonci
desat-pr-s-serv1
dvadsat-pr-s-serv1
tridsat-pr-s-serv1
styridsat-pr-s-serv1
patdesiat-pr-s-serv1
--
Neviem semafory v procese D som riesil tak ze pred zapisovanim (sem_num=1 je pre D)
sembfd[0].sem_num=1;
sembfd[0].sem_op=-1;
sembfd[0].sem_flg=0;
semop(sem_2, sembfd, 1);

vykonalo sa zapisanie a potom
nastavil zelenu pre proc S :

sembfd[0].sem_num=0; 
sembfd[0].sem_op=1;
sembfd[0].sem_flg=0;
semop(sem_2, sembfd, 1);

----------------
napodobne som riesil i prvu sadu semaforov , neviem uz dva dni sa neviem hnut , ten odovzdavaci system ma jednoducho dostal..

pls help  :h_cry:

puq

Quote from: Songoo on  05.01.2008, 21:39:23
Zdar, zadanie my islo na hornade i bukovci ale v systeme to crashlo (ako som ale cital nic nove pod slnkom :) ) , skusil som to spustit na ruzine a tam sa to zacalo spravat divne a neviem si s tym niako rady :
Proces S nacita vsetkych 10slov ale proces D sa vykona len pre kazde druhe slovo cize nakoniec v s2.txt skonci
desat-pr-s-serv1
dvadsat-pr-s-serv1
tridsat-pr-s-serv1
styridsat-pr-s-serv1
patdesiat-pr-s-serv1
--
Neviem semafory v procese D som riesil tak ze pred zapisovanim (sem_num=1 je pre D)
sembfd[0].sem_num=1;
sembfd[0].sem_op=-1;
sembfd[0].sem_flg=0;
semop(sem_2, sembfd, 1);

vykonalo sa zapisanie a potom
nastavil zelenu pre proc S :

sembfd[0].sem_num=0; 
sembfd[0].sem_op=1;
sembfd[0].sem_flg=0;
semop(sem_2, sembfd, 1);

----------------
napodobne som riesil i prvu sadu semaforov , neviem uz dva dni sa neviem hnut , ten odovzdavaci system ma jednoducho dostal..

pls help  :h_cry:


otazocka: cize S nacita 10 slov a odosle hej? a Dcko prijme 10slov?? ale odosle potom len kazde druhe??? spravne chapem alebo ako???

Songoo

#143
S prijme 10 slov a D sa vykona len pre kazde druhe , resp do buferu nacita len kazde druhe , celkovy vypis vyzera asi tak :

Proces T :z pipe2 som nacital: nula-pr
Proces T : skopiroval som do SM1: nula-pr
Proces T :z pipe2 som nacital: desat-pr
Proces T : skopiroval som do SM1: desat-pr
Proces D : v buf v D  je: desat-pr-s
Proces D : serveru 1 bolo poslanych 11 bajtov
v proc_serv2 bolo nacitane z serv1: desat-pr-s-serv1
!Do serv2.txt bolo zapisane: desat-pr-s-serv1

a to sa stale opakuje v  postupnosti dalsich cisel .

Ten semafor v D akoby tu druhu polku slov z neakej priciny nepustil.

puq

ci to nebude skor v zdielanej pamati, lebo pokial pri prvych isiel semafor, tak nema sa kde pokazit, mozno SH2 ma zle vymedzenu pamat

Songoo

Ale ved minimalne to printf co je hned za semaforom (printf("Proces D : v buf v D  je: %s\n", buf);) by sa malo vypisat 10x a nie 5x nech uz sa mu podari alebo nepodari nieco z sh2 precitat :?  .

puq

Quote from: Songoo on  05.01.2008, 23:22:46
Ale ved minimalne to printf co je hned za semaforom (printf("Proces D : v buf v D  je: %s\n", buf);) by sa malo vypisat 10x a nie 5x nech uz sa mu podari alebo nepodari nieco z sh2 precitat :?  .

no ono to vypise, ale ked to nieje vobec v SH2 tak smola, nema co vypisat chapes??? o to ide

Songoo

Hm no tak teda k tej shm2 mam to takto :
v proc zadanie
shm_id_2 = shmget(KEY2, 100, IPC_CREAT | 0666);

kde key je
#define KEY2 0x45656
-----
V proc D:
shm_addr=(char *)shmat(shm_2, (void *)0, 0); de shm_2 je z argumentu

JCube

Quote from: Songoo on  06.01.2008, 00:00:17
shm_id_2 = shmget(KEY2, 100, IPC_CREAT | 0666);

budes tam mat overflow... daj velkost aspon 151 znakov..
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Songoo

#149
No dal som 150, zaujimave ze pri 200vyhodilo error hmm , nic sa ale nezmenilo stale to roby to iste , ako na to pozeram dve tyzdne prace boli fakt na p* , to aby som zacal zhanat predajcu kym este neaky je.