Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!houxm!hropus!ka From: ka@hropus.UUCP (Kenneth Almquist) Newsgroups: net.unix-wizards Subject: Re: Shared Memory on System V Message-ID: <457@hropus.UUCP> Date: Wed, 14-May-86 18:33:16 EDT Article-I.D.: hropus.457 Posted: Wed May 14 18:33:16 1986 Date-Received: Sat, 17-May-86 01:37:19 EDT References: <672@imag.UUCP> Organization: Bell Labs, Holmdel, NJ Lines: 24 > When reading "shmat(2)" [actually shmop(2)] specification, it seems possible: > a) To attach a segment of length N at address A > b) To attach a second segment at address A+N > c) To address the two segments as a contiguous space. > > Is there any ATT specification about such usage of shared memory ? I think that the manual page covers this. Step (a) is permissible. Step (b) is permissible unless A+N is an "illegal address". What constitutes an "illegal address" is hardware dependent. Step (c) is permissible as far as I can see. The requirement that A+N be a legal address makes this usage of memory nonportable. On some systems, such as the VAX, a legal address is one which falls on a page boundary, and so you must know the page size to generate a suitable value of N. On other systems, a legal address is one which falls on a segment boundary, which may make this approach impossible. A hardware designer might decide to divide a 32 bit address space into 64 segments, in which case each segment would have to be on a 32 megabyte boundary. I doubt if there are any UNIX systems which will allow you to create a 32 megabyte segment. Kenneth Almquist ihnp4!houxm!hropus!ka (official name) ihnp4!opus!ka (shorter path)