Writing into shared memory Array


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Writing into shared memory Array
# 1  
Old 10-06-2008
Writing into shared memory Array

Hi All,

How do I write into shared memory blocks using multiple threads? For example, I have created 50 threads to write into shared memory and 50 threads to read from shared memory.

I have already created a shared memory and I want to write into shared memory as follows:


SharedMemoryID(1..N) BlockID(1..N) ThreadID(1..N) Data (String Format)

SharedMemoryID: I may have multiple shared memories in my process, which can be shared among multiple threads and processes.

BlockID: Each shared memory will have multiple blocks, and by referring this BlockID, any thread or process should be able to access it.

ThreadID: I am having multiple threads (read and write).

At this point of time, I am trying to write using WriterThread1, into single shared memory and once it's written some data into one shared memory. I want to access and modify that data using ReaderThread1.

Again I want to write some data into same shared memory using WriterThread2 and want to modify or read the written data using ReaderThread2.

While doing this I also need to make sure that either of (reader or writer) thread should access any particular blocks of shared memory.

I don't know how to proceed, only thing I have done so far is I am able to create number of reader and writer threads and a shared memory but have no idea about how to proceed further. I have attached code for your reference, could you please help me in moving ahead.....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Programming

put an 2D array in shared memory

Hi, I want to make 2 simple programs communicate each other with shared memory. The programs will share an 2D array. In the first program (intarr.c) i create an x array which is: 1 2 3 4 5 6 7 8 9 10 11 12 and i call the second program (intarr2.c) with execvp(); giving it the segment id as an... (2 Replies)
Discussion started by: giampoul
2 Replies

3. UNIX for Advanced & Expert Users

Shared Memory

Hi, Using ipcs we can see shared memory, etc.. details. How can I add/remove shared memory(command name)? Thanks, Naga:cool: (2 Replies)
Discussion started by: Nagapandi
2 Replies

4. 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

5. Programming

Shared memory in shared library

I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies

6. Programming

memory sharing - not shared memory -

hi, this is the problem: i want to swap a linked list between 4 processes (unrelated), is there any way i can do that just by sending a pointer to a structure? //example typedef struct node { int x; char c; struct node *next; } node; or i should send the items ( x,c ) by... (9 Replies)
Discussion started by: elzalem
9 Replies

7. Programming

help with shared memory

what i want to do is have an int that can been written into by 2 processes but my code doesn't seem to work. #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #include <sys/shm.h> #include<stdio.h> #define KEY1 (1492) int main() { int shmid; volatile int * addr;... (6 Replies)
Discussion started by: ddx08
6 Replies

8. UNIX for Dummies Questions & Answers

Writing a shared library --- any initialization routine?

Hi, all. IM new to this forum. I wanted to write a shared library for my program. However, I need the library to have some self initialization routines before anyother functions in the library are called. Like the ones available for gcc __attribute__ ((constructor)). I tried int... (1 Reply)
Discussion started by: rogeryin
1 Replies

9. 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

10. Programming

Shared memory

Dear Reader, Is is necessary to attach / dettach the shared memory segments for write operations , if more than one program is accessing same shared memory segments.. I have used semaphore mutex and still I'm getting segmentation fault when I write to the segment when other program is already... (1 Reply)
Discussion started by: joseph_shibu
1 Replies
Login or Register to Ask a Question