Shared memory in shared library


 
Thread Tools Search this Thread
Top Forums Programming Shared memory in shared library
# 8  
Old 05-29-2007
Quote:
Originally Posted by DreamWarrior
I guess I could tell the application (in the non-native pointer method) that the shared memory is a huge array of characters and access pointers through an "index" into the character array cast to the appropriate data type...but this seems just as ugly.
That is more or less what I had in mind. Remember, I claim this is not terribly inefficient. I did not mean to claim that it would be beautiful. You might be able to use some macros to help make it less ugly.
# 9  
Old 05-29-2007
Quote:
Originally Posted by Perderabo
That is more or less what I had in mind. Remember, I claim this is not terribly inefficient. I did not mean to claim that it would be beautiful. You might be able to use some macros to help make it less ugly.
Doable...certainly...I wonder what the compiler does for PIC code. Lucky for it, however, to be able to wrap around every memory assignment and usage in the code. I have to procedurally enforce such conversion, and I'm sure someone will break my "homebrew PIC" code, lol.

But, you're probably right, it is likely not too inefficient. However, add on the "easy to break" factor and...well.... I'm basically trading a slight inefficiency and some code maintainability for portability. The question is, how worth it is it? The only nice thing I see about this method is that I can (at a later time) extend it to multiple shared memory segments with ease. Obviously the the native pointer method does that by default...but asking for more than a few segments all attached to specific points in memory could start to get hairy. This way I'm assured I can extend my memory requirements into the multi-segment territory without fearing I can no longer attach one at a position depedant location.

Hummm.... I wonder if this is even a reasonable method of accessing the shared memory.... I mean...I wonder if any other application has created their own shared memory allocator or if they just bucket up individual segments of shared memory for each of their data types (seems like a bad idea given you can only attach a limited number of segments per process).

Any good books? I mean...ones that advise you how to use shared memory, not just explain the interface to it.
# 10  
Old 05-29-2007
Quote:
Originally Posted by DreamWarrior
Any good books? I mean...ones that advise you how to use shared memory, not just explain the interface to it.
Try the Richard W Stevens books.

Also the same rules that apply to multithreading apply to shared memory usage, eg, guard it well.
# 11  
Old 05-30-2007
Quote:
Originally Posted by porter
Try the Richard W Stevens books.

Also the same rules that apply to multithreading apply to shared memory usage, eg, guard it well.
Yeah...I have the "Advanced Programming in the Unix Environment" book, it tells you about the interface and explains a bit...but I'd like to see more practical examples/case studies on its usage.

Thanks, though...I doubt there's much like that...I'll just have to be creative, lol.
# 12  
Old 05-30-2007
Interprocess Communications in Linux®: The Nooks & Crannies by S Gray

Assuming you are using Linux or a unix with /proc filesystem. It gives examples of most situations.

.. edit : my bad you're on AIX. All bets are off.
# 13  
Old 05-30-2007
Quote:
Originally Posted by jim mcnamara
Interprocess Communications in Linux®: The Nooks & Crannies by S Gray

Assuming you are using Linux or a unix with /proc filesystem. It gives examples of most situations.

.. edit : my bad you're on AIX. All bets are off.
Yeah...a pity, I know...lol.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Add shared members from library to same library in a different directory

I'm trying to install libiconv to AIX 7.1 from an rpm off of the perzl site. The rpm appears to install but I get this error message. add shr4.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a add shr.o shared members from /usr/lib/libiconv.a to ... (5 Replies)
Discussion started by: kneemoe
5 Replies

2. Programming

Shared library with acces to shared memory.

Hello. I am new to this forum and I would like to ask for advice about low level POSIX programming. I have to implement a POSIX compliant C shared library. A file will have some variables and the shared library will have some functions which need those variables. There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies

3. OS X (Apple)

Linking to a shared library

I'm trying to get Valgrind to work with an openmpi application in OS X. However I want to hardcode the path to a shared library called libmpiwrap-amd64-darwin.so into my application so that it is available at runtime. In Linux this is relatively simple, I would just add the option... (0 Replies)
Discussion started by: Valgrinder
0 Replies

4. UNIX for Dummies Questions & Answers

Which sections of a shared library should be loaded in the physical memory?

Each shared library may contain sections with allocatable flag as below: ... .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .rel.dyn .rel.plt .plt ... My questions is that: among above sections, which of them should be loaded in the physical memory by run-time linker... (3 Replies)
Discussion started by: Dongping84
3 Replies

5. Shell Programming and Scripting

How to change a Makefile from building static library to shared library?

Hi: I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library) Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies

6. Programming

Shared memory for shared library

I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability. Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies

7. UNIX for Advanced & Expert Users

shared library

What is the primary difference between static library and dynamic library? and how to write static shared library? (1 Reply)
Discussion started by: areef4u
1 Replies

8. UNIX for Advanced & Expert Users

Shared memory shortage but lots of unused memory

I am running HP-UX B.11.11. I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used. But when I try to start the DB with the increased buffer parameter I get told. "Not... (1 Reply)
Discussion started by: cjcamaro
1 Replies

9. HP-UX

Shared Library Problem

I have this error when I try to do check on the oracle database... Can you help me figure out whats the problem? Thanks for all the help! /usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'. /usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'. ... (1 Reply)
Discussion started by: vinz
1 Replies

10. Programming

Shared Library

hello all I want to work in shared libraries how can i work in Linux Environment ? (2 Replies)
Discussion started by: rajashekaran
2 Replies
Login or Register to Ask a Question