Paging und Swapping

Habe gerade im ersten Abschnitt herausgenommen, daß Paging und Swapping speziell im deutschen Sprachraum kaum unterschieden würden und daß Swapping etwas mit Speichersegmenten zu tun hätte. Ich möchte nicht ausschließen, daß es Architekturen gibt, auf denen das zutrifft, aber für übliche Prozessoren und Betriebssysteme lag da vermutlich eine Verwechselung mit virtuellen Addressräumen vor. Mh 00:01, 23. Mai 2005 (CEST)

Ich habe versucht, die unglückliche Koexistenz von Paging und Swapping kurz in der Einleitung zu erklären. Hoffen wir, dass es dazu beiträgt, dass nicht weitere Generationen verwirrt werden. Vielleicht sind (irgendwo weiter unten) ein paar Beispiele nützlich? Kennt überhaupt jemand ein gutes Beispiel für Swapping? NilsMagnus 22:40, 25. Jan 2006 (CET)

Dieser Abschnitt kann archiviert werden. RokerHRO 15:35, 29. Jan. 2010 (CET)

Sinkende Bedeutung?

Also daß die Bedeutung von Paging sinkt, halte ich für falsch. Man versucht natürlich durch geeignete Arbeitsspeicherausstattung das Auslagern im vernünftigen Rahmen zu halten, aber Paging kann man nicht gleichsetzen mit Auslagern. Paging bietet noch andere Vorteile. Heutzutage wird im Desktop- und Serverbereich eigentlich immer gepaget, selbst dann wenn, Dank ausreichender Speicheraustattung, nicht ausgelagert wird. -- Essen-thomas 15:57, 21. Feb 2006 (CET)

Ich halte den Abschnitt des Artikels im Grundsatz nicht für falsch; allerdings betrifft das natürlich in viel stärkerem Maße Spezialsystemen. Somit ist "sinkend" sicherlich richtig, bei "keine Ernsthafte Bedeutung" würde ich ebenfalls widersprechen. Vielleicht möchtest Du den Abschnitt etwas klarer formulieren? -- NilsMagnus

Dieser Abschnitt kann archiviert werden. RokerHRO 15:35, 29. Jan. 2010 (CET)

Kachelverwaltung?

Das habe ich noch nie gehört oder gelesen.. Laut http://wortschatz.uni-leipzig.de/ ist Kachelverwaltung noch nicht mal im deutschten Wortschatz. Ist das eine Erfindung oder einfach total veraltet? --84.56.140.80 00:52, 5. Jan. 2007 (CET)

Wir lernten kürzlich in Praktischer Informatik an der Uni auch den Begriff "Kacheln" und Kachelverwaltung. Mag vielleicht mit dem Erfinder des virtuellen Speichers, Fritz-Rudolf Güntsch zusammenhängen? --Crazor 19:03, 30. Jan. 2007 (CET)

Kachel ist eine mögliche Übersetzung des englischen Wortes frame; hab ich schon öfters in Fachbüchern gesehen. --Mussklprozz 17:26, 29. Apr. 2008 (CEST)

Unterschied zwischen Paging und Segmentierung

Der Unterschied zwischen Paging und Segmentierung wird nicht erläutert, zum Teil verschwimmen die beiden Verfahren in diesem Artikel (z.B. gehört bei den Beispielen assoziatives Mapping zu Paging, direktes Mapping dagegen zu Segmentierung). Das sollte genauer abgegrenzt werden. --Stefan129 15:16, 11. Mär. 2007 (CET)

Betriebssysteme

Vielleicht sollte man erwähnen, welche Betriebssysteme noch Swapping verwenden und welche Paging. Ich weiß jedenfalls, dass nicht nur Windows NT Paging verwendet, sondern auch Win 9x, obwohl die Datei beim letzteren noch Swapfile heißt. -MrBurns 05:00, 13. Jun. 2007 (CEST)

Praktisch ungeeignet ist Paging für Echtzeit-Systeme, da es die Antwortzeiten nichtdeterministisch macht.

Ist das so oder sollte sich dieser Hinweis nur auf Demand Paging beziehen? Wenn alle verwendeten logischen Adressen auch ohne weiteres auf physikalische abgebildet werden können, ist das ganze meiner Meinung nach durchaus deterministisch. (nicht signierter Beitrag von 195.243.140.190 (Diskussion | Beiträge) 15:12, 31. Jan. 2007 (CET))

Das ist in der Tat verwirrend bis falsch. Richtiger wäre vielleicht "angemessen vorhersagbar". (nicht signierter Beitrag von 87.234.124.162 (Diskussion | Beiträge) 22:39, 1. Feb. 2007 (CET))

Logisch/physisch

Kann bitte mal jemand klarstellen, ob virtuell=logisch, und ob real=physikalisch? Komme da durcheinander. Vielleicht gehoert das auch in einen anderen Artikel, aber irgendwo wuensche ich mir eine Klarstellung. Danke!

Ja, so grob. Auf x86 ist es noch etwas komplizierter, dort gibt es virtuelle Adressen (48 Bit), die durch die Segmentierungs-Einheit in lineare Adressen (32 Bit) umgesetzt werden. Die linearen Adressen werden dann von der Paging-Einheit in physische Adressen (32 oder 36 Bit mit PAE). --RokerHRO 17:03, 29. Apr. 2008 (CEST)
Dieser Abschnitt kann archiviert werden. RokerHRO 15:35, 29. Jan. 2010 (CET)

Paging != Auslagern

Die Bedeutung des Auslagerns sinkt, nicht aber des Pagings. Somit halte ich den Abschnitt Sinkende Bedeutung für falsch -- domic

Jupp, du hast recht. Paging braucht man auch wenn man kein Swapping (Auslagern von RAM-Inhalten auf Festplatte) verwendet. --RokerHRO 17:04, 29. Apr. 2008 (CEST)
Dieser Abschnitt kann archiviert werden. RokerHRO 15:35, 29. Jan. 2010 (CET)

Grafiken

Ich habe mir mal die Mühe gemacht, darzustellen, wie eine x86-kompatible CPU mit und ohne PAE lineare Adressen in physische Adressen umwandelt. Im 32-Bit-Protected Mode kann das auf 4 verschiedene Arten geschehen. Diese kann man nun in den Text einbauen und erläutern.

--RokerHRO 12:53, 20. Mär. 2008 (CET)

 
Und nun nochmal für den 64-Bit-Modus bei AMD64/Intel64: Schön aufwändig, dieses 4-Level-Paging, und dabei deckt es noch nichtmal den kompletten 64-Bit-Adressraum ab. :-/ --RokerHRO 13:41, 2. Okt. 2009 (CEST)
Das stellt aber nicht wirklich die physikalsiche Adresse dar, sondern bestenfalls die Addesse, die dem Speichercontroller übermiottelt wird. Die physikalsiche Speicheradresse wird ist von der genauen Speicherkonfiguration abhängig. Und mehr als 48bit braucht man in absehbarer Zeit ohnehin nicht (damit lassen sich bis zu 256 TB addressieren). --MrBurns 10:54, 5. Okt. 2009 (CEST)
Es ist das, was Intel (bzw. AMD) als "physical address" (zu deutsch: physische Adresse, nicht "physikalische") bezeichnen. Da heutige CPUs den Speichercontroller auf dem Chip bereits integriert haben, gibt es eh keinen klassischen Adressbus mehr, auf dem man irgendwelche Signale abgreifen könnte. Das spielt für das Programmiermodell (und darum geht es hier) und das Betriebssystem (das das Paging verwaltet) aber keine Rolle. Die Programmierung des Speichercontrollers (zum Festlegen von RAM-/ROM-Einblendungen, memory mapped register usw.) ist eine ganz andere Baustelle. --RokerHRO 12:53, 5. Okt. 2009 (CEST)
Nicht alle AMD64-CPUs haben einen integrierten Speichercontroller, die erste Intel-CPU, die das hat, ist der Core i7. Was jetzt AMD oder Intel "physicaal address" nennen ist wurscht, die wirkliche physikalische Addresse hängt auch von der Größer und der Zahl der Banks (oder Ranks, falls dir das Wort lieber ist) der einzelnen Speichermodule ab (also es macht einen Unterschied, ob man z.B. 1x2GB oder 2x1GB hat) und auch von der Zahl der Chips auf dem gerade addressierten DIMM. Das ist nicht zu vermeiden, schließlich muß ja die einzelne Speicherzelle auf dem Speichermodul gefunden werden. Füre die Adressierung amchtsw übrigens keinen unetrschied, ob du 2 DIMMs mit je einer Bank oder 1 DIMM mit 2 Banbks hast. Die tatsächliche Physikalische Adresse wird dann ca. so ausschauen: Bank a Chip b Column c Row d. "Physikalische Adresse" ist übrigens durchaus eine passende Übersetzung, da diese Addresse vom physikalsichen Aufbau der DIMMs abhängt. --MrBurns 15:17, 29. Jan. 2010 (CET)
*seufz* also nochmal: Das, was an Adressen nach der „paging unit“ herauskommt, wird von allen mir bekannten Prozessorherstellern “physical address” (übliche deutsche Übersetzung: „physische Adresse“) bezeichnet. Die englische und deutsche Fachliteratur hat diesen Begriff mit dieser Bedeutung übernommen und etabliert. Ob es dir nun passt oder nicht, damit wirst du leben müssen.
Wenn du diesem (mit dieser Bedeutung etablierten) Fachbegriff eine andere Bedeutung verpassen willst – etwa eine, die du für korrekter hältst – kannst du das gerne tun, aber das wäre deine Privat-Begriffsbildung und würde nicht hier her gehören.
--RokerHRO 15:32, 29. Jan. 2010 (CET)
So wies jetzt im aRtikel steht, sehe ich eh kein problem. Sollten aber die Dinge, ide in diesem Abschnitt besprochen werden, ind en Artikel intergireert werden, dann sollte dort was von "sog. physical address" oder "sog. physikalsicher Adresse" drinstehen, um klarzumachen, dass physical/Physikalsih in dem Fall nur ein Eigenname ist und physical/physikalisch keine wirklcihe Eigenschaft dieser Adresse ist. --MrBurns 16:11, 29. Jan. 2010 (CET)
Ich hab jetzt doch einmal die "physische Adresse" im Artikel gefunden und hab ihm jetzt ein sog. vorangestellt. --MrBurns 16:21, 29. Jan. 2010 (CET)
Willst du jetzt vor jeden etablierten Fachbegriff ein "sog." setzen, wenn er deiner Meinung nach nicht 100%ig korrekt ist? (Mein Lieblingskandidat wäre übrigens der hier.) Was soll das bringen, außer den Artikel ohne jeglichen Mehrwert weiter aufzublähen? Wer nicht weiß, was im Kontext der Speicherverwaltung mit "physischer Adresse" gemeint ist, dem hilft auch ein "sog." nicht weiter, es verwirrt nur.
Außerdem: Wenn du so (über-)korrekt sein willst und du dich an – deiner Meinung nach – falschen, aber etablierten Fachbegriffen störst, wieso argumentierst du an anderer Stelle genau andersherum und bist dort mitmal vehement für etablierte Konventionen, auch wenn sie falsch (im Sinne von „normwidrig“) und widersprüchlich sind und lehnst dich dort gegen (unübliche, aber) eindeutige und normgerechte Bezeichnungen auf? Irgendwie passt das nicht so ganz zusammen, finde ich.
--RokerHRO 22:20, 29. Jan. 2010 (CET)
Normen sind nicht verpflichtend, also ist normwidriges nicht unbedingt falsch. Und dass jede Notation eindeutig sein muß hab ich auch nie behauptet, man muß nur eventuelle Unklarheiten beseitigen, nur der Bergiff "physische Adresse" impliziert, dass die Speicherzelle tatsächlich mit dieser Adresse ausgelesen wird, was aber nicht der Fall ist, dazu ist eine erneute Umwandlung vom Speichercontroller notwendig. Nicht jeder weiß, was mit der physischen Adresse wirklich gemeint ist und Artikel sollten laut WP:Laientest auch für Laien möglichst verständlich bleiben. Deshalb ist in dem Fall "sog." angebracht. Natürlich nicht bei jedem Fachbegriff, sondern nur bei denen, die sonst zu Vewirrung führen würden. --MrBurns 22:51, 29. Jan. 2010 (CET)

(Einzug zurückgesetzt)

Für deine Implikation hätte ich gerne einen Beleg, ich lese sie hier das erste Mal. Ich hab noch keinen interessierten Laien gesehen, der etwa das Thema Speicherverwaltung nicht verstünde, weil er unter dem Begriff "physische Adresse" etwas anderes versteht, als in der Fachwelt üblich.
Auch kann ich mich nicht erinnern, dass etwa in meiner Studienzeit einer meiner damaligen Komillitonen Schwierigkeiten mit dem Verständnis der Materie hätte, die ihre Ursache darin hatte, dass der Begriff "physische Adresse" widersprüchlich oder missverständlich wäre.
Im Übrigen: Die von dir behauptete ungenügende Laienverständlichkeit wird durch dein "sog." leider kein Deut besser. Wenn du aber weiterhin der Überzeugung bist, "physische Adresse" sei ein falscher oder missverständlicher Begriff, dann kannst du gerne in der Einleitung des Artikels eine korrekte und laienverständliche Erklärung geben, was in der Fachwelt üblicherweise mit dem Begriff "physische Adresse" gemeint ist. Schaden kann das ja sicher nicht. :-) --RokerHRO 23:04, 29. Jan. 2010 (CET)

Zusammenführung mit Virtuelle Speicherverwaltung

Paging könnte man zumindest ausdünnen und sich auf ein paar sehr technische Aspekte beschränken. Der Kontext ist in der Virtuellen Speicherverwaltung beschrieben. --M-sch 17:25, 29. Feb. 2008 (CET)

Direct mapping

Das Revert-Kuddelmuddel um das Beispiel x0405 zeigt, dass das Verfahren in diesem Abschnitt unbedingt besser erläutert werden muss. Ich habe das Beispiel einstweilen auskommentiert. --Mussklprozz 09:06, 8. Jan. 2010 (CET)

Dieser Abschnitt kann archiviert werden. RokerHRO 15:33, 29. Jan. 2010 (CET)
Du musst meines Wissens ein Archiv einrichten, damit das passiert. --Mussklprozz 15:35, 29. Jan. 2010 (CET)

Grafik zu "Adressberechnung beim Paging"...

... ist verwirrend, da die linke Spalte der Tabelle nicht beschrieben ist. Mir ist anhand der Grafik nicht klar, ob dort jetzt die page number oder das status bit stehen soll. Die Bedeutung des "status bit" müsste auch nochmal erklärt werden. Desweiteren wäre die Grafik anschaulicher, wenn die Pfeile direkt in die Tabelle gingen und nicht nur auf ihren Rand zeigten. "Basisregister" ist auch nicht erklärt.

Dieser Abschnitt kann archiviert werden. RokerHRO 15:34, 29. Jan. 2010 (CET)

Quellen

Bin ich nur zu dumm sie zu finden oder werden in diesem Artiekl keine Quellen genannt? (nicht signierter Beitrag von 141.56.26.41 (Diskussion | Beiträge) 18:49, 28. Jan. 2010 (CET))

Nein, Du bist nicht zu dumm. Das ist ein berechtigter Einwand. In den frühen Jahren der Wikipedia war es noch nicht gang und gäbe, mit Einzelnachweisen zu arbeiten. Für den Abschnitt Thrashing und Working Set, den ich 2005 verbrochen habe, habe ich jetzt die Quelle ergänzt. --Mussklprozz 19:44, 28. Jan. 2010 (CET)
Der Artikel ist recht quellenarm, in der Tat. :-) Zu welchem Abschnitt möchtest du denn noch Quellen nachgereicht haben? --RokerHRO 22:24, 28. Jan. 2010 (CET)
Möglichst zu allen.  :-) Lass rüberwachsen, was Du hast. Danke und beste Grüße --Mussklprozz 15:36, 29. Jan. 2010 (CET)
Quellen sind für mich nicht nur der Nachweis, dass etwas stimmt. Ich nutze sie meißt auch um mich weiter in ein Gebiet einzuarbeiten. Von daher finde ich jede genutzte Quelle sinnvoll. (nicht signierter Beitrag von 141.56.16.24 (Diskussion | Beiträge) 10:24, 5. Feb. 2010 (CET))

Thrashing: wörtliche Deutsche Übersetzung?

Es wird erwähnt: "Thrashing (engl. wörtlich: Dreschen)". Ist nicht eher thrashing = Verprügeln, Verdreschen; aber threshing = Dreschen? Vielleicht handelt es sich ja nur um Varianten der Schreibweise, aber falls ein Bedeutungsunterschied wirklich da ist (Englisch-Kenner gefragt!) sollte man es korrekt übersetzen. -- 80.254.148.123 18:42, 12. Jan. 2011 (CET)

Zusätzliche Quellen

Der Artikel lässt unter anderen die Frage offen wie Paging genutzt werden kann um jedem Prozess einen eigenen vollständigen Adressraum zu gewähren (= virtuelle Adressräume) sowie freie Pageframes ermittelt werden, welche in die Page Table Entries eingetragen werden können. (mögliche Quellen: http://wiki.osdev.org/Paging, http://wiki.osdev.org/Setting_Up_Paging, http://wiki.osdev.org/Page_Frame_Allocation) -- 212.93.4.62 11:19, 2. Dez. 2011 (CET)

Was du suchst ist virtuelle Speicherverwaltung. Paging ist eine Möglichkeit für virt. Speicherverwaltung. --RokerHRO 11:36, 4. Dez. 2011 (CET)

Funktionsweise

"auch hierbei kommt es dadurch nicht zur Fragmentierung des Hauptspeichers".

1) worauf bezieht sich das auch? 2) Wenn ein Programm 2 Seiten zugewiesen bekommt, die 2. aber nur zu wenigen Prozent füllt, so kommt es doch sehr wohl zu interner Fragementierung? Kann das jemand mit sicherer Sachkenntnis überprüfen? -- 141.53.218.19 20:24, 25. Jun. 2012 (CEST)

Seitenersetzungsstrategien

Im Abschnitt (FIFO) steht: "Diese Strategie ist ineffizient, da die älteste Seite durchaus eine Seite mit sehr häufigen Zugriffen sein kann." Das ist so falsch, oder? FIFO ist ein k-Kompetativer Onlinealgorithmus für das Pagingproblem. Wobei man zeigen kann, dass kein deterministischer Onlinealgorithmus für das Pagingproblem besser als k-Kompepetetiv seinen kann. Also ist FIFO sogar ein in gewissen Sinne optimaler Algoritmus. Siehe dazu z.B. Online Computation and Competitive Analysis von Allan Borodin und Ran El-Yaniv auf Seite 36-39. oder http://en.wikipedia.org/wiki/Page_replacement_algorithm (nicht signierter Beitrag von 80.136.160.20 (Diskussion) 16:13, 23. Mai 2013 (CEST))

Offset

Begriff Offset wird benutzt, aber nie erklaert oder definiert. (nicht signierter Beitrag von 137.250.174.17 (Diskussion) 13:42, 3. Feb. 2014 (CET))

Habe zumindest mal auf die BKS Offset verlinkt. --arilou (Diskussion) 11:48, 26. Aug. 2014 (CEST)

Kachelverwaltung / Kacheln

Muss hier zwanghaft ein deutscher Begriff stehen? Wenn das hier die einzige Quelle für diesen Begriff sein soll, nehme ich das jetzt raus. Kachelverwaltung liefert mir gerade mal 2210 Ergebnisse bei Google (davon mehrere Referenzen auf diesen Artikel).

In dem heise-Artikel geht es um irgendeinen Messenger. Wahrscheinlich ist hier Paging in seiner zweiten Bedeutung gemeint? --178.19.236.17 17:49, 16. Aug. 2014 (CEST)

Zum Heise-Artikel: daraus geht eindeutig hervor, dass damit Paging in der Bedeutung gemeint ist, in der es auch in diesem Artikel geht. Ich habe das Wort Kachelverwaltung für Paging auch schon gekannt, bevor ich auf Wikipedia darauf gestoßen bin, allerdings ist es auch im Deutschen viel seltener als das Wort Paging. --MrBurns (Diskussion) 03:18, 19. Aug. 2014 (CEST)
In meiner Ausbildung hieß das "Seitenverwaltungstabellen" (Page table);
zumindest können "selten verwendete" Bezeichnungen ruhig auch genannt werden - mit Zusatz "selten"...
--arilou (Diskussion) 12:50, 26. Aug. 2014 (CEST)
Leider wurde dieser Begriff wieder in den Artikel eingefügt. Ich bin immer noch nicht überzeugt, dass diese Newsmeldung als Quelle zuverlässig ist. Gibt es irgendwelche wissenschaftlichen Publikationen, in denen dieser Begriff vorkommt? Außerdem steht in der Quelle nicht, dass "nur selten die deutsche Bezeichnung Kachelverwaltung verwendet wird." Ich finde das was in dieser Newsmeldung steht einfach zu dünn.
Im Change-Log des betreffenden Programms steht folgendes:
- rabbit optimises memory usage by paging messages out to / in from disk as needed
Mir ist nicht bekannt, wie ein User-Mode-Programm auf den Paging-Mechanismus des Prozessors bzw. Betriebssystems Einfluss nehmen will und das auch noch betriebssystemunabhängig. Wenn ich das richtig verstehe, implementiert das Programm hier eine Art Page-Swapping auf Nachrichtenebene, was aber wiederrum mit dem Paging im Sinne einer virtuellen Speicherverwaltung (um die es in diesem Artikel geht) nichts zu tun hat. Und eine Seitenauslagerung ist für das Paging schonmal gar nicht zwingend erforderlich. --178.19.224.19 10:39, 27. Aug. 2014 (CEST)
Treffer auf Google sind tatsächlich selten, aber es gibt durchaus "wertvolle", die eine Verwendung des Begriffs belegen.
Beispiele:
Somit ist es belegt, und der Begriff bleibt im Artikel.
--arilou (Diskussion) 11:14, 1. Sep. 2014 (CEST)

LRU: Binärwert?

Laut Artikel:

"Zu jedem Zeitpunkt ist dadurch die am längsten nicht benutzte Seite diejenige mit dem niedrigsten Binärwert in der entsprechenden Zeile der Matrix."

Ich bin mir nicht sicher, ob das nicht eigentlich so heißen müsste:

"Zu jedem Zeitpunkt ist dadurch die am längsten nicht benutzte Seite diejenige mit der niedrigsten Quersumme in der entsprechenden Zeile der Matrix."

Oder ist das gleichwertig zur Aussage im Artikel?

Statt Quersumme wird mitunter wohl auch Bitsumme gesagt - man zählt die Anzahl der 1er in einer Bitfolge.

--arilou (Diskussion) 15:11, 25. Okt. 2016 (CEST)

Das mit der Bitsumme stimmt zwar auch, aber (von rechts nach links gelesen) trifft dies aber auch auf den Binärwert, also den Wert der Zahl im Binärsystem zu. Man kann sich dies rekursiv überlegen: Wenn zuletzt auf einen Seitenrahmen k zugegriffen wird, dann werden zuerst alle Bits der Spalte k auf 1 und dann alle Bits der Zeile k auf 0 gesetzt. Jede Binärzahl hat nun mindestens eine 0 als Ziffer (nämlich an der Stelle k), wobei die Zeile k genau n-1 Einsen hat, jede andere Zahl hat jedoch mind. 2 Nullen (von diesem und vom letzten Zugriff), wobei eine von beiden sicher an der Stelle k ist, also ist sie vom Wert kleiner. Man kann den Gedanken nun rekursiv weiterführen auf die Zeile/Spalte des vorletzten Zugriffs, dessen Zeile den zweitgrössten Binärwert haben muss... Von der anderen Seite her überlegt: Die Zeile des ältesten Seitenrahmens ist 00..0 (wenn man davon ausgeht, dass auf alle Seitenrahmen zugegriffen wurde), da mit jedem Zugriff auf die anderen Rahmen eine Stelle in seiner Zeile gelöscht wurde... Ich hoffe, das ist einigermassen klar so ;-). --Didia (Diskussion) 15:47, 25. Okt. 2016 (CEST)
Ok. Danke!
Hm... Ich denke, es wäre (für den Leser) über die Bitsumme leichter zu verstehen.
Aber in Silizium implementiert wird's vmtl. anders.
--arilou (Diskussion) 16:22, 25. Okt. 2016 (CEST)
Ja... Eigentlich gibt es ja immer die (bzw. eine) Zeile, bei der alles Nullen sind, die für die (eine) am längsten nicht benutzte Seite steht. Die Quersumme genauso wie die Binärzahl ist also immer 0 bei der Seitenzeile, die genommen wird... So könnte man m.E. schreiben
"Zu jedem Zeitpunkt ist dadurch die am längsten nicht benutzte Seite diejenige mit alles Nullen in der entsprechenden Zeile der Matrix."
Zu LRU-Hardware habe ich gerade noch diesen Artikel entdeckt, vielleicht findet sich da noch etwas dazu... --Didia (Diskussion) 17:56, 25. Okt. 2016 (CEST)

Festplattenadressen in der Seitentabelle?

In der Artikeleinleitung heisst es nun:

Die Seiten werden in der sogenannten Seitentabelle (engl. page table) verwaltet, die Informationen darüber enthält, wo für eine (virtuelle) Seite der entsprechende (reale) Seitenrahmen im Arbeitsspeicher (oder ausgelagert) tatsächlich zu finden ist.

Früher war es allerdings nicht so (Stand Tannenbaum, 2009 ;-)), dass die ausgelagerten Seiten ebenfalls von der Seitentabelle verwaltet werden. Ich bitte deshalb um einen Beleg für die Aussage. Für mich macht das auch heute noch wenig Sinn...

Bei Tanenbaum heisst es beispielsweise noch:

Die Plattenadressen, an denen ausgelagerte Seiten liegen, werden aus einem einfachen Grund nicht in der Seitentabelle gespeichert: Die Tabelle enthält nur die Informationen, die die Hardware braucht, um eine virtuelle Adresse in eine physische umzurechnen. Die Informationen, die das Betriebssystem zur Behandlung von Seitenfehlern benötigt, werden in eigenen Tabellen im Betriebssystem gespeichert. Die Hardware braucht diese Informationen nicht.

Ein Page-Fault ist ja ein Systemaufruf, die Zuordnung von Seite zu Festplatte wird doch dann also durch das OS vorgenommen und nicht von der Hardware, wie diejenige von Seite zu Seitenrahmen des Arbeitsspeichers. Die Seitentabelle enthält ja dann lediglich die Information, dass der zugehörige Seitenrahmen nicht im Arbeitsspeicher ist (present/absent-bit) (und dann wird ja der Systemaufruf ausgelöst bei absent...). Oder hat sich da etwas grundlegendes geändert?--Didia (Diskussion) 16:45, 25. Okt. 2016 (CEST)

Wie auch immer, müsste das wohl im Artikel noch genauer ausgeführt werden, sonst ist das etwas unklar... --Didia (Diskussion) 16:47, 25. Okt. 2016 (CEST)

Also bei x86 gibt es in den Seitentabellen ein "Present"-Bit. Wenn das auf 0 ist, ist die zugehörige Page "nicht präsent" und bei einem Zugriff auf diese Speicherseite löst die CPU eine Exception aus (die dann vom Betriebssystem behandelt wird). Der Inhalt des Eintrages in der Seitentabelle mit present=0 ist bei x86 dann komplett "available to operating system", also kann das Betriebssystem hier z.B. ID des Swapfiles und Offset in dem Swapfile speichern, es stört die CPU nicht. --RokerHRO (Diskussion) 22:19, 1. Mai 2017 (CEST)
Etwas umformuliert; ich hoffe, das Problem ist damit erledigt. --arilou (Diskussion) 10:35, 2. Mai 2017 (CEST)
Von meiner Seite aus: Ja. @Benutzer:Didia, wie siehst du das? --RokerHRO (Diskussion) 13:41, 2. Mai 2017 (CEST)

Was wenn keine Auslagerundsdatei vorhanden ist ?

Was wenn keine vorhanden ist, bei Windows z.B kann man sie löschen und bei Ubuntu (Swap) kann man bei der Installation festlegen, wie gross er sein soll.

Was genau macht also das Betriebssystem, wenn es auslagern will, aber keine Auslagerungsdatei vorhanden ist ?

Ich zitiere dazu mal den Artikel Swap von ubuntuusers.de: Nutzt ein System den Swap intensiv, so wird das System durch die häufigen Plattenzugriffe deutlich langsamer und fühlt sich „zäh“ an. Hat man allerdings keinen Swap und das RAM läuft voll, so beendet der Linux-Kernel nach eigenem Ermessen Programme, um RAM frei zu machen. Dies hat in der Regel Datenverlust zur Folge. Um genau dies zu verhindern, legt Ubuntu (so wie alle anderen Distributionen) bei der Installation standardmäßig eine Swap-Partition (= Auslagerungspartition) an. --195.70.24.25 15:47, 22. Aug. 2017 (CEST)
Wenn Swapping abgeschaltet ist, und man mehr und mehr Programme gleichzeitig ausführt, ist irgendwann der Hauptspeicher erschöpft. Wenn dann ein Programm weiteren Speicher anfordert, erhält es stattdessen einen "Out of Memory"-Fehler. Entweder es kommt damit zurecht und kann auf den zusätzlichen Speicher verzichten, oder es muss sich eben beenden (z.B. mit Fehlermeldung an den Benutzer). (Gilt für Windows wie auch Unix.)
Wenn Swapping nicht abgeschaltet ist,
  • und man (dem heruntergefahrenen) Linux einfach "von außen" die Swappartition löscht, dann ist das ein illegaler Zustand; vmtl. bekommt man einen Kernel-Panic beim Booten, und selbiges bricht ab.
  • Bei Windows kann der Swapfile im laufenden Betrieb nicht gelöscht werden - falls man's doch hinkriegt, bekommt man vmtl. beim ersten Swap-Versuch einen BSOD. Löscht man dem (heruntergefahrenen) Windows die Swapdatei von außen, dann legt es sie beim nächsten Booten automatisch wieder an.
--arilou (Diskussion) 16:11, 22. Aug. 2017 (CEST)