Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Proper Usage of Shared Memory

Reply
Thread Tools

Proper Usage of Shared Memory

 
 
myren, lord
Guest
Posts: n/a
 
      05-19-2004
When I first discovered shared memory (between multiple processes) I
immediately started thinking of how to build my own VM subsystem +
locking mechanisms for a large single block of memory. This seems like
one option, the other appears to be just having each "object" you want
to share be a shared mem space to itself: allocate objects into a
defined shared mem space. But here you have many many objects being
shared. Having a VM subsystem would allow you to just allocate a large
contiguous chunk of memory and then rely on your program for allocation,
deallocation, spatial locality/coherence and all other matters.

Is this at all a wise idea? Is there any advantage over having a large
number of small shared memory objects? What overhead does having shared
memory objects incur?

Sometimes I think the answer comes down to one merely of locking: that
with a complex vm subsystem mapped on a single flat space you could tune
far better far finer grained locking for your system. How much more is
at stake than simply locking? Obviously difficulty of implementation is
a key factor, but what about technical advantages and disadvantages? is
there a penalty for having thousands of shared memory objects between a
collection of programs?

Myren
 
Reply With Quote
 
 
 
 
Thomas Matthews
Guest
Posts: n/a
 
      05-19-2004
myren, lord wrote:
> When I first discovered shared memory (between multiple processes) I
> immediately started thinking of how to build my own VM subsystem +
> locking mechanisms for a large single block of memory. This seems like
> one option, the other appears to be just having each "object" you want
> to share be a shared mem space to itself: allocate objects into a
> defined shared mem space. But here you have many many objects being
> shared. Having a VM subsystem would allow you to just allocate a large
> contiguous chunk of memory and then rely on your program for allocation,
> deallocation, spatial locality/coherence and all other matters.


First off, this has nothing to do with the C++ language.
Probably a better newsgroup is news:comp.programming.

>
> Is this at all a wise idea?


Maybe, maybe not. You'll have to check your operating system to see
how it handles the memory request. Some OSes already have virtual
memory, so when you allocate a contiguous chunk, it may not be in
phyiscal memory; or another task may be using that memory.


> Is there any advantage over having a large
> number of small shared memory objects?


Research the topic of "Memory Fragmentation".


> What overhead does having shared memory objects incur?


The minimal overhead is using semaphores, signals or mutexes.
One must be sure that two tasks are not writing to the same
memory at the same time.


> Sometimes I think the answer comes down to one merely of locking: that
> with a complex vm subsystem mapped on a single flat space you could tune
> far better far finer grained locking for your system. How much more is
> at stake than simply locking? Obviously difficulty of implementation is
> a key factor, but what about technical advantages and disadvantages? is
> there a penalty for having thousands of shared memory objects between a
> collection of programs?
>
> Myren



--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book

 
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
Memory usage per top 10x usage per heapy MrsEntity Python 20 09-27-2012 08:00 AM
What is the difference between Memory Usage and Heap Usage in my JVMMetrics ? Krist Java 8 02-10-2010 12:44 AM
retrieving CPU Usage and Memory Usage information in JAVA hvt Java 0 03-13-2007 01:09 PM
retrieving CPU Usage and Memory Usage information in JAVA hvt Java 0 03-13-2007 01:07 PM
Need help on memory usage VS PF usage metfan Java 2 10-21-2003 01:58 PM



Advertisments