[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] Hvordan? Et program skal sende beskeder til N andre.



Møj, nu fik jeg igen trykket på den forkerte knap og svarede per email!
Undskyld, Jacob.
----
> Hvis ydelsen er vigtig og du samtidig mener du kan klare det
> hele på en enkelt (SMP-?) maskine, så er tråde nok lidt
> smartere.
Jeg er enig med hensyn til at bruge tråde, hvis det ikke udelukkes
af andre grunde. Disse grunde har efter min opfattelse dog mere med
den øgede sikkerhed og robusthed at gøre, som separate processer
kan give.
Medmindre at modulerne normalt er spredt ud over forskellige
maskiner og antallet af lokale moduler er lille (dvs. båndbredden
til lokale moduler ikke er performancekritisk), så er en shared
memory eller trådet løsning helt ok, selv i et distribueret system.

> - Medmindre man har alle de samme
> styringsværktøjer til processer som til tråde.
Det er nemmere at koordinere tråde, synes jeg. Det er hvad jeg
bruger, når tingene skal gå stærkt (dvs. sjældent ;-)).
Jeg havde kontor ved siden af Roy Fielding (som er en
af grundlæggerne af Apache Foundation og var med til at lave http)
på UC Irvine. Han brød sig ikke så meget om threads dengang.

> Det kan vel også klares med separate tråde der føjes til
> programmet efterhånden (selvom det kræver enten en
> genoversættelse af programmet eller lidt leg med
> "dlopen()").
Enig. Der kan dog være et issue med kontrollerbarheden af de
enkelte moduler (tråde) her. Processer kan forholdsvis nemt
skydes ned, startes op, have forskellige log filer, etc.
I en trådet løsning skal man selv indbygge en slags management
system.


>> Ja, polling er jeg ikke så vild med, så det laver jeg nok
>> om til almindelige signal's. Hvad tænkte du ellers på at
>> bruge?
Jeg tænkte på at bruge mutex', semaphorer (SysV eller POSIX), eller
signals til process grupper. Der blev nævnt ordet "kanaler". Jeg
forestillede mig ved læsningen, at processer er inddelt i grupper,
hvor hver gruppe lytter på en bestemt kanal. Man kan sende et signal
til alle processer i gruppen på en gang. Tilbagemælding fra modulerne
kunne ske gennem POSIX realtidssignaler, da disse ikke kan gå tabt i
modsætning til normale signaler. Pthread mutex' og POSIX semaphorer i
shared memory er vist ikke implementeret på alle systemer. Ellers er
semaphorer nok den smarteste måde at koordinere på tværs af shared
memory.

> "protected barrier" bliver åbnet, men det er (ifølge de
> HRT-folk jeg har snakket med om det) ganske effektivt.
Nu ved jeg ikke hvad en "protected barrier" er, men i pthread
sammenhæng eksisterer der et barrier konstrukt, som man
bruger, når en gruppe af tråde skal vente indtil alle i
gruppen er klar. Det er hvad jeg har implementeret for
processerne i eksemplet (Man venter på at alle i gruppen har
behandlet inputtet).

Hans-Christian Stadler


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:44 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *