Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > SGI: Need Something like 1 Mutual Exclusion Semaphore for Multible Programs

Reply
Thread Tools

SGI: Need Something like 1 Mutual Exclusion Semaphore for Multible Programs

 
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-07-2005
Hello,

I have a assignment just thrown onto my desk.

What is the easiest way to solve it? Below is a brief
description of the task.

There are multible programs which use the same library routine
which is an interface to what I'll call a service program.

The problem is that only 1 request at a time can be serviced by
the service program.

My boss told me to just use somehting such as using shared
memory (via memmap) and set a flag in there to 1 when a program
wants service. The various programs are to wait in a loop until
that flag becomes 0. Once the flag becomes 0 then set it to 1 along
with setting other parameters to send to the service program.

But, woun't this lead to programs setting that flag to 1 at the
same time causing loss of service etc.

The way I see it is the flag described above is a critical
section and must be protected by a mutual exclusion semaphore.

I don't see anything wrong with using shared memory for sending
other parameters to the service routine.

O'kay what should I do?

Thank you,
Christopher Lusardi

P.S.: I'm sorry if I'm posting this to the wrong group. :-[

 
Reply With Quote
 
 
 
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-07-2005
I can't use the following sequence because the programs that use the
library routine
reside on different computers.

sem_open
sem_init
sem_wait
sem_post
sem_post


The only thing I have to find out is how how do I declare the semaphore

to be in
shared memory.


Thanks,
Chris Lusardi

 
Reply With Quote
 
 
 
 
CBFalconer
Guest
Posts: n/a
 
      07-07-2005
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
>
> I have a assignment just thrown onto my desk.
>

.... snip ...
>
> P.S.: I'm sorry if I'm posting this to the wrong group. :-[


You are, in at least two of the groups you used. You also
neglected to set follow-ups to whatever home group you are using.
F'ups set.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson


 
Reply With Quote
 
Tony 'Nicoya' Mantler
Guest
Posts: n/a
 
      07-07-2005
In article <(E-Mail Removed) .com>,
(E-Mail Removed) wrote:

: I have a assignment just thrown onto my desk.
:
: What is the easiest way to solve it? Below is a brief
: description of the task.
:
: There are multible programs which use the same library routine
: which is an interface to what I'll call a service program.
:
: The problem is that only 1 request at a time can be serviced by
: the service program.

There's a few options. You can, in order of decreasing preference:

* Fix your service program to queue requests
* Add an intermediary service program that queues requests to the service program
* Use some distributed API for locking (since you mention they're on different
machines), like maybe MPI, PVM, or something like RPC
* Use a reject-and-retry collision system

You could also possibly parallelize your service program so that it can serve
more than one request at a time, or make it transactional if it's not quite
parallelizable. It all depends on what your service program actually does.


Cheers - Tony 'Nicoya' Mantler

--
Tony 'Nicoya' Mantler -- Master of Code-fu -- (E-Mail Removed)
-- http://nicoya.feline.pp.se/ -- http://www.ubb.ca/ --
 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      07-07-2005
(E-Mail Removed) wrote:
>
> I can't use the following sequence because the programs that use
> the library routine reside on different computers.
>
> sem_open
> sem_init
> sem_wait
> sem_post
> sem_post
>
> The only thing I have to find out is how how do I declare the
> semaphore to be in shared memory.


This has nothing to do with at least three of the groups to which
you cross-posted without troubling to find out what they were
about. F'ups set.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
for mutual exclusion of n processes - algorithm. ppp Java 1 12-05-2006 01:50 PM
mutual exclusion of n processes - algorithm. ppp Java 0 12-05-2006 01:35 PM
Help Needed : Race condition while removing semaphore(sysvsem semaphore) techi_C C Programming 2 08-10-2006 12:27 PM
SGI: Need Something like 1 Mutual Exclusion Semaphore for Multible Programs clusardi2k@aol.com C++ 5 07-07-2005 09:26 PM
non-blocking mutual exclusion Giambattista Bloisi Java 1 12-16-2003 01:20 PM



Advertisments