Shared memory

Am I running out of Shared Memory or Virtual Memory? Looks like both of them
are related, but I just couldn’t figure out where the problem is!

I am using QNX 4.25 running on Compaq with 1 GB of Physical Memory. I have
over 200 processes running on this machine which shared the same table in
memory of size 20 MB (Shared Memory). When I boot the system, sin -info
shows the Virtual Memory free/available are very small (less than 100
Megabytes). When I start my program, sin -info shows that both
free/available Virtual Memory has increased. It keeps on increasing as I run
the same program again in the background. When I have reached about 200
processes, my program encounters error when it calls mmap (returns ENOMEM).
sin -info shows Virtual 225M/4206M. Therefore I am stuck with that number of
processes though I still have over 500 MB of free Physical Memory in the
system.

I have tried Proc with -S option, but the result is the same.

I appreciate if someone can give me an idea to break this limitation.

Thanks
Johannes