After many hours of travel, and some sleep I have for you - this link with the basis information:
https://www-01.ibm.com/support/knowl...rg_support.htm
Basically, what happens is that system and code remain in segments 0 and 1.
When maxdata is not equal to 0 (zero) - which is default, segment 2 is used for the stack and application .data (pre-initialized data) and .bss (aka heap for malloc calls) start in segment 3 and continue for the number of segments specified.
As you mentioned in your initial question the "official" large memory support model has a maximum MAXDATA value of 0x80000000 - so that is 2.25 G total (256MB (roughly) for the stack, and 2 GByte (8x 256 MByte) for application .data and .bss
From the discussion, I do not think you will want to use the
DSA - dynamic segment allocation - option (so-called
or the VERY large memory option). However, if 2G Byte for .data and .bss is not going to be enough you may need to use that.
Back to "shared" memory - the default memory model setup uses only segments 0, 1, and 2 for the memory model - the segments there are 12 segments (numbers 3-12 and 14 are used by shmap or mmap routines). Historically, segments 13 and 15 were used by global shared libraries text and data. When you use the DSA option global shared libraries are not used - instead the shared libraries are loaded "privately" into segment 15 - both text and data. This free up segment 13 giving an application at least one additional segment.
If you are not using shmap or mmap routines then the "very large" model should work fairly easy. However, if you do use either of these routines they may impact the maximum memory available via malloc(). - keyword here:
potential impact!
I hope this answers your question well enough.
Michael