Users-l Digest, Vol 115, Issue 1

Roman Nádhera roman at nadhera.name
Thu Jan 3 13:20:40 CET 2013


Dne 3.1.2013 12:00, users-l-request na freebsd.cz napsal(a):
> 
> Dobry den,
> 
> chc pouzit fumkce critical_enter(void); a critical_exit(void);
> Kdy? vsak do zdrojaku vlozim
>  #include <sys/param.h>
>  #include <sys/systm.h>
> Tak to pri prekladu vysype hromadu chyb.
> 
> 
> In file included from hastor.c:15:
> /usr/include/sys/systm.h:240: error: expected declaration specifiers or
> 
> atd....
> 
> PC-BSD  9.0
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Wed, 02 Jan 2013 19:29:38 +0100
> From: Dan Lukes <dan na obluda.cz>
> To: FreeBSD mailing list <users-l na freebsd.cz>
> Subject: Re: jak na kritickou sekci
> Message-ID: <50E47C92.2080301 na obluda.cz>
> Content-Type: text/plain; charset=ISO-8859-2; format=flowed
> 
> On 01/02/13 19:18, Roman N?dhera:
>> chc pouzit fumkce critical_enter(void); a critical_exit(void);
> 
> Jsi si jisty ?
> critical_enter()/critical_exit() jsou funkce dostupne v jadre, nikoliv v 
> user-space.
> Cely sys/systm.h je.
> Pises kernelovy modul ?
> Dan


No, nejsem si jisty, ani nepisu kernelovy modul. Jen aplikaci, kde do
jedne sdilene pameti kafraji dva procesy. Nemusi to byt zrovna criticka
sekce, ale treba mutex (pouzivam ve Woknech, ale tady s tim je stejny
problem). Proste jakykoliv mechanismus, ktery zabrani modifikaci ve
sdilene pameti po dobu nejake operace.

Uloha je takova: jsou dva procesy - ne thready, ale procesy,
ruzne programy. Jeden mj neco pise do sdilene pameti.
Druhy si obcas neco precte. Problem nastane, az bude chtit taky zapsat,
napriklad k necemu neco pricist nebo odecist.

Jak se takove veci v UNIXu delaji? Uz dva dny guglim jak magor.
(Jo, takove RPP-16, tam sel semafor udelat jedinou strojovou instrukci)

rna




More information about the Users-l mailing list