Paging vs. Swapping

Registered

Vice Admiral Special
Mitglied seit
12.07.2002
Beiträge
757
Renomée
7
Mich würde mal interessieren, was nun das bessere ist. Sicher wird beides seine Vor- und Nachteile haben, aber vielleicht kann ja doch einer ne genauere Aussage treffen.

Aus dem Internet hab ich bisher nur erfahren, dass Paging nen Vorteil hat, weil eben 80% der Zeit 20% des Programms bearbeitet wird. Andererseits denk ich mir, warum würde Linux auf Swapping setzen, wenns schlechter wär. Microsoft mit Windows trau ich das schon eher zu :)
 
Andererseits denk ich mir, warum würde Linux auf Swapping setzen, wenns schlechter wär.
Das reine Swapping (Auslagern ganzer Prozesse) macht Linux auch nicht, Swapping ist Slang für Paging in den Swap-Space - alles klar?

Einen Unterschied gibt es allerdings: Paging beinhaltet das Cachen beliebiger Disk-Inhalte (Files), Swapping bezieht sich nur auf den virtuellen Speicher.

http://en.wikipedia.org/wiki/Paging
 
Wenn Du schon so ne Frage postest, dann könntest Du ja auch einleitend kurz erläutern, was der Unterschied zwischen Paging und Swapping ist, oder irgendwohin verlinken, da Du ja offensichtlich schon im Netz dazu rumgesucht hast. ;)

Soweit ich es verstanden habe, beruht Swapping historisch gesehen auf das vom OS Scheduler getriggerte Auslagern von Speicherbereichen kompletter Prozesse bei zu wenig physischem Speicher, um für andere Prozesse Platz zu schaffen bzw. das Zurücklesen, wenn ein zu aktivierender Prozess bereits ausgelagert ist.
Beim Paging werden dagegen konkrete Speicherseiten je nach Erfordernissen aus- und eingelagert, wodurch nicht zwangsläufig komplette Prozess-Adressbereiche behandelt werden, sondern lediglich die betroffenen Seiten. Soweit zur Historie.

In heutigen Systemen ist der prinzipielle Unterschied zwischen beiden Varianten aber nur noch marginal, da sie alle auf die virtuellen MMUs der modernen Prozessoren zurückgreifen können - und die unterstützen eben Paging.
 
Zuletzt bearbeitet:
Also im Unterricht haben wir eben gelernt, dass der Vorteil von Linux ist, dass es swapping betreibt. Der Dozent sprach dann eben davon, dass Unix-Systeme, u.a. Linux, ganze Prozesse auf die Swap-Partition auslagern, nicht aber wie Windows einzelne "Kacheln".
Ebenso ein großer Nachteil von Windows soll demnach sein, dass es Teile des Kernels auch mit auslagert, Linux aber den ganzen Kernel stets im Speicher behält

Links hab ich jetz leider nicht mehr. Hab mich da auf über 20 Seiten quer durchgelesen
 
Also im Unterricht haben wir eben gelernt, dass der Vorteil von Linux ist, dass es swapping betreibt. Der Dozent sprach dann eben davon, dass Unix-Systeme, u.a. Linux, ganze Prozesse auf die Swap-Partition auslagern, nicht aber wie Windows einzelne "Kacheln".
Das ist schlicht falsch. Zum einen lagert Linux auch seitenweise aus. Da die gesamte Speicherverwaltung auf pages beruht, ist das auch die effizienteste Art. Des weiteren werden auch nicht die kompletten Prozesse ausgelagert, sondern nur die Speicherseiten, die kein Backingstore besitzen.

Ebenso ein großer Nachteil von Windows soll demnach sein, dass es Teile des Kernels auch mit auslagert, Linux aber den ganzen Kernel stets im Speicher behält
Das ist korrekt, Speicherseiten die zum Kern gehören, werden grundsätzlich nicht ausgelagert. Über Vor- und Nachteile dieser Strategie kann man streiten.
 
Ebenso ein großer Nachteil von Windows soll demnach sein, dass es Teile des Kernels auch mit auslagert, Linux aber den ganzen Kernel stets im Speicher behält

kleine, späte Ergänzung:

Es sei erwähnt das man Windoof mit nur einem regkey dazu bewegen kann, das Pagen vom Kernel sein zu lassen. Und es auch kein Problem sein sollte ein Linux zum Pagen des Kernels zu überreden. Allerdings ist nur ein Unterbinden des Kernelauslagerns in meinen Augen sinnvoll.
 
Zurück
Oben Unten