Re: [Debian]: Swapspace foll - was dann
On Wed, Nov 04, 1998 at 08:06:55PM +0100, Jens Ritter wrote:
> martin@internet-treff.uni-koeln.de (Martin Bialasinski) writes:
>
> > >> "AM" =3D=3D Andreas Mueller <andrmuel@rz.Uni-Osnabrueck.DE> writes:
> >
> > AM> Was macht Linux eigendlich, wenn mal der Swapspace foll ist?
> >
> > Nichts besonderes. Die Anwendungen, die Speicher verlangen bekommen
> > sowas wie "out of memory" signalisiert.
>
> ... und diese werden dann gestorben (äh, gekillt).
>
Nicht so schnell.
Meines Wissens läuft das ungefähr so ab:
1. Anwendung frägt höflich das BS:
"kannst du mir N Bytes zusatzlichen Speicherbereich geben?"
( in C: malloc(N) )
2. Im Normalfall sagt das BS:
"Natürlich, gerne. Hier ist er:"
und reserviert dann diesen Speicher für diese Anwendung und
'malloc(N)' liefert einen Zeiger auf diesen Speicherbereich
zurück.
In unserem Fall sagt das BS:
"Tut mir leid, soviel hab Ich nicht mehr",
es wird kein speicher reserviert und 'malloc(N)' liefert NULL
zurück.
3. Höfliche Anwendungen hören auf das was das BS sagt, und können
friedlich weiterleben (z.B. können sie dem Benutzer mitteilen, daß
es etwas Speicher bräuchte, und er vielleicht ein paar andere
Anwendungen schließen könnte).
Unhöfliche Anwendungen hören nicht auf das BS, und verwenden den
von 'malloc(N)' zurückgegebenen NULL-Pointer, als ob er auf einen
gültigen Speicherbereich zeigen würde. Sie versuchen also, an Adresse
'NULL' etwas zu speichern.
4. Das BS merkt, daß die Anwendung auf einen Speicherbereich zugreift,
der ihr nicht gehört, und sagt:
"So nicht; tue Buße und stirb in Frieden".
(d.h. das BS schickt das Signal SIGSEGV, also Segmentation fault, an
diesen Prozess)
5. Vorausschauende Anwendungen tuen nun Buße, d.h. sie haben einen
Signalhandler registriert, in dem sie z.B. wichtige Daten noch speichern
können, und begehen dann geläutert Selbstmord (in C: exit(1)).
Andere werden vom BS kaltblütig getötet.
Tschö
Jürgen
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Jürgen Doser doser@uni-freiburg.de
http://www.informatik.uni-freiburg.de/~doser
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 632
Reply to: