Synchronizace procesu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Synchronizace procesu – C / C++ – Fórum – Programujte.comSynchronizace procesu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
_Dudo_
~ Anonymní uživatel
1 příspěvek
17. 4. 2013   #1
-
0
-

Nazdar,

nejak si nevim rady se synchronizaci. Pisu to v C a pro Linux. V podstate se jedna o to, ze mam hlavni proces A, a jeden proces B. Proces A ceka na signal od B. Jakmile B signalizuje A, ma za ukol pockat az A provede svoji praci a posle mu signal zpet, aby vedel, ze muze pokracovat.

A:
   //prisel signal
   //Udelej nejakou praci
   signal(B)

B:
   signal(A)
   pause()

No problem je ten, ze pokud B zavola signal(A) a pote dojde k prepnuti na process A, ten udela svoji praci, posle signal procesu B. Pak je prepnuto opet na process B, ktery signal sice zpracuje, ale pak zavola pause() a dojde k deadlocku.

Je nejaka moznost jak podobneho efektu docilit ? Diky

Nahlásit jako SPAM
IP: 147.229.64.–
Reklama
Reklama
Grungy0
Super člen
17. 4. 2013   #2
-
0
-

Pre linux som moc neprogramoval, takže ti nemôžem poskytnúť nejakú konkrétnu odpoveď, ale poradil by som ti využiť jeden synchronizačný prostriedok na obsluhu tejto celej situácie, lebo vtedy ti k uviaznutiu určite nedôjde. Predpokladajme, že je nejaký globálny synchronizačný prostriedok X ktorý pozná aj proces A aj proces B, ktorý má operácie wait a signal. Potom by tomohlo vyzerať nasledovne:

proces A

X.wait

// do something

X.signal

proces B

x.signal

x.wait

// continue working

Nahlásit jako SPAM
IP: 158.193.83.–
Prvý náznak hlúposti, je pocit geniality.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 240 hostů

Podobná vlákna

Synchronizace — založil Dawo

Vlákna - synchronizace — založil johny

Rss - synchronizace — založil návštěvník

Vlákna - synchronizace — založil crazy

Lock synchronizace — založil qwe

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý