mikebe@i88.isc.com (Michael G. Beirne) (11/19/90)
In article <1990Nov5.100227@ibmpa.awdpa.ibm.com> marc@ibmpa.awdpa.ibm.com (Marc Pawliger) writes: > >A dumped gnumacs will be next to impossible on a '6000. The unexec() >included in the distribution assumes a fixed text load address so that >offsets will be correct when the dumped gnumacs is exec'd. As I under- >stand things, the '6000's loader does not always load executables at the >same address, so gnumacs will die horribly. So take heart that all the >files loaded from loadup.el load quickly. > >These are my opinions, not IBM's etc etc etc > >+---Marc Pawliger---IBM Advanced Workstations Division---Palo Alto, CA---+ >| Internet: marc@ibminet.awdpa.ibm.com VNET: MARCP at AUSVM6 | >| UUCP: uunet!ibmsupt!ibmpa!marc Phone: (415) 855-3493 | >+------IBMnet: marc@ibmpa.awdpa.ibm.com------IBM T/L: 465-3493--------+ This sounds like a performance problem to me. What happens when 5 or 6 people start up Frame on a RS/6000 and the whole program is in paging/memory area for each user instead of just the data and bss area separate for each user? mikebe@laitnite.i88.isc.com -- mikebe@i88.isc.com or beirne@chinet.chi.il.us
marc@arnor.uucp (11/20/90)
In article <1990Nov19.042905.26880@i88.isc.com> mikebe@i88.isc.com (Michael G. Beirne) writes: >This sounds like a performance problem to me. What happens when 5 or 6 people >start up Frame on a RS/6000 and the whole program is in paging/memory area >for each user instead of just the data and bss area separate for each user? Programs are executed out of a memory mapped instance of the text file. There will be only one copy (at most) of each page of the text no matter how many processes run the program. The same thing is true of shared libraries, like libc.a and libX11.a. Of course, each process has its own copy of any data pages it has touched. Marc Auslander
hbergh@oracle.nl (Herbert van den Bergh) (11/20/90)
In article <MARC.90Nov19114826@marc.watson.ibm.com> marc@arnor.uucp writes: >Of course, each process has its own copy of any data pages it has >touched. Can you tell me if this is also the case when a process only reads a data page from a shared library? Is it not copied on write? And what happens to data pages from an executable file? If they are only referenced for reading, does each process still get its own copy? We're trying some time now to figure out how efficient AIX memory usage is related to our applications. When running a client-server application, each client forks and executes a process that communicates with the server. This process currently has a data segment of 180Kb, of which about 100Kb is never modified. You can imagine what performance improvement sharing this data could give. We haven't found a way to figure out exactly how much memory is in use by a certain process (virual and real) and by all processes together in the system. The getrusage() routine doesn't seem to tell the truth, and we're not sure about ps. -- Herbert van den Bergh, Email: hbergh@oracle.nl, hbergh@oracle.com ORACLE Europe
jfc@Achates.MIT.edu (John F Carr) (11/22/90)
In article <1131@nlsun1.oracle.nl> hbergh@oracle.nl (Herbert van den Bergh) writes: >This process currently has a data segment of 180Kb, of which about 100Kb is >never modified. You can imagine what performance improvement sharing this >data could give. AIX copies shared data pages when they are first accessed, not when they are first modified. Some may find this suprising, but it is a natural consequence of the memory management unit architecture. Unfortunately, the C compiler does not put objects declared "const" in read-only, shared storage. -- John Carr (jfc@athena.mit.edu)