On Fri, Nov 06, 1998 at 05:37:04PM +0100, Juergen Doser wrote: > > das ist nicht ganz richtig. > > > > Bei Linux bekommt man in der Regel immer einen gueltigen Zeiger zurueck. Auch > > wenn der Speicher nicht da ist. > > > > Daher kann es zu den Problem kommen, das init nicht sehr lange lebt... > > O.K. > > Ich habs gerade ausprobiert. Du hast recht. > Linux gibt mir tatsächlich volle 2GB Adressraum. > > Naja, die werden sich was dabei gedacht haben... Haben sie. Eine Menge Software reserviert aus Performancegründen wesentlich mehr Speicher, als sie braucht. Das liegt daran, daß solche netten Dinge wie Bäume, Listen usw. bei virtuellem Speicher sehr ineffizient werden können (wenn man es falsch macht). Es richtig zu machen braucht 1. mehr Gehirnschmalz 2. zusätzlichen Speicher... Daher verwendet man z.B. einfach ein großes Array von z.B. 10 MB für eine Textdatei, und der Kernel kümmert sich darum, das zu verwalten. Du reservierst also einfach 10MB, obwohl Du sie normalerweise nicht brauchst, und kannst damit machen, was Du willst. Der Speicher wird dann beim ersten Zugriff auf die (virtuellen) Adressen zugeteilt. Wenn jetzt kein Speicher mehr da ist, der zugeteilt werden kann, dann fliegt das Programm weg. Es gibt aber IMHO eine Möglichkeit, beim Reservieren anzugeben, daß der Speicher sofort zugeteilt werden soll. Müsste ich mal gucken :) cu Torsten
Attachment:
pgp5c5fLQpDwr.pgp
Description: PGP signature