Inter-process Commun. Limits, AIX 3.1

rudy at chukran.austin.ibm.com rudy at chukran.austin.ibm.com
Wed Dec 5 06:02:56 AEST 1990


The AIX 3.1 kernel essentially hardcodes the limits to many kernel
structures.  WHen the structures are allocated at boot time, they
allocate  the whole thing in virtual memory.  However, the whole virtual
memory space is not mapped to real until the structure is referenced.
This happens a page at a time.  So, for instance, the process table is
2**17 entries, and virtual memory space is reserved for the whole thing.
But, if your system nevers runs more than 100 processes at once, then the
proc table has real memory allocated for 100 slots (rounded up to the next
page).  Whenever a table is accessed , in the fork system call in this example,
the index is checked against the maximum, and the system call fails.
So any system call which tries to allocate a new chunk of resource will have
that resource checked against the hardcoded maximum.  If the check passes, the
resource (proc table in this example) is referenced.  If it has to use a
new slot
in a page never reference before,  a page fault occurs and the real memory is
allocated at that time.  So, the tables are usually with very large limits
with no real memory wasted.

sem ids 	4K
max sems per ID	100K

max msg Q IDs	4K
max msg size	8K
max msg Q size	64K
max msgs per msg Q	8K 

Max shm IDs	4K
max concurrent shmattaches per process	10

*********************************************************************
IBM AIX Porting Center  | RSCS: CHUKRAN at AUSTIN 
11400 Burnet Rd.        | AWDnet: rudy at chukran.austin.ibm.com    
Internal ZIP 2830       | internet: chukran at austin.iinus1.ibm.com
Austin, Texas 78758     | Voice: 512-838-4674  Tieline: 678-4674
*********************************************************************



More information about the Comp.unix.aix mailing list