Frage zur Auslagerungsdatei

Mspringer
Nerd
Nerd
Beiträge: 555
Registriert: 19. Okt 2006 14:41
Wohnort: Darmstadt / Alzenau
Kontaktdaten:

Frage zur Auslagerungsdatei

Beitrag von Mspringer »

Wir stehen grad ein wenig auf dem Schlauch was die Auslagerungsdatei angeht. Wir wissen zwar, wann wir etwas reinschreiben müssen, nur worin is der genaue Sinn? Wenn wir das richtig sehen, wird die Datei ja niemals wieder ausgelesen.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

Ergänzend dazu noch eine andere Frage:

So wie sich das in der Aufgabenstellung anhört, sollen wir die Datei ja mit einer festen Größe initialisieren ("-1 Nicht genug physikalischer Speicher vorhanden. Dies kann auftreten, wenn die Auslagerungsdatei
vergrößert werden muss.")

Aber wenn ich das mit einem FILE-Objekt mache, kann ich doch gar keine Maximalgröße angeben. Ist das in Ordnung, wenn man sich einfach ein FILE-Objekt anlegt und alle auszulagernden Seiten da reinschreibt?

Eine andere Möglichkeit wäre noch einen buffer anzulegen und den immer in die Datei zu übertragen, was aber sinnlos ist, weil die Daten ja dann trotzdem im Speicher stehen...

Ich stehe auf dem Schlauch

arke
Erstie
Erstie
Beiträge: 21
Registriert: 13. Feb 2006 13:12

Beitrag von arke »

Ich merke mir einfach was in der datei wo drin steht. Per fseek() kann man sich dann vor und zurueck bewegen zum lesen bzw. schreiben.

Mspringer
Nerd
Nerd
Beiträge: 555
Registriert: 19. Okt 2006 14:41
Wohnort: Darmstadt / Alzenau
Kontaktdaten:

Beitrag von Mspringer »

Ja, das fseek() löst allerdings keins der beiden Probleme ^^

Sascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 245
Registriert: 13. Apr 2004 19:23
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Sascha »

"-1 Nicht genug physikalischer Speicher vorhanden. Dies kann auftreten, wenn die Auslagerungsdatei
vergrößert werden muss."
Gemeint ist natürlich nicht, dass ein Vergrößern der Auslagerungsdatei immer ein Fehler ist, sondern dass dabei ein Fehler auftreten kann. (Wenn bspw. kein Speicher mehr auf der Partition frei ist.)

Benutzeravatar
chrschn
Mausschubser
Mausschubser
Beiträge: 80
Registriert: 19. Jun 2007 11:46
Wohnort: Darmstadt
Kontaktdaten:

Re: Frage zur Auslagerungsdatei

Beitrag von chrschn »

Mspringer hat geschrieben:Wir stehen grad ein wenig auf dem Schlauch was die Auslagerungsdatei angeht. Wir wissen zwar, wann wir etwas reinschreiben müssen, nur worin is der genaue Sinn? Wenn wir das richtig sehen, wird die Datei ja niemals wieder ausgelesen.
Die Auslagerungsdatei soll analog verwendet werden, wie sie z. B. auch unter Windows zum Einsatz kommt: Wenn ein Programm mehr virtuellen Speicher anfordert als physikalischer vorhanden ist, dann wird ein Teil dieses Speichers in der Auslagerungsdatei gehalten. Und wenn auf eine ausgelagerte Speicherseite wieder zugegriffen wird, dann müssen Sie diese zuerst wieder aus der Datei einlesen und in den physikalischen Speicher legen.

Wenn Ihnen dieses Konzept neu erscheint, dann sehen Sie sich bitte nochmal das 4. Kapitel der Folien an, S. 52 bis 63, und das Bild auf S. 61.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

Sascha hat geschrieben:Gemeint ist natürlich nicht, dass ein Vergrößern der Auslagerungsdatei immer ein Fehler ist, sondern dass dabei ein Fehler auftreten kann. (Wenn bspw. kein Speicher mehr auf der Partition frei ist.)
okay das macht Sinn. Wird mein file dann auf null gesetzt, wenn ich mehr reinschreibe, als Speicher zur Verfügung steht oder worin macht sich das bemerkbar?

Benutzeravatar
marlic
Computerversteher
Computerversteher
Beiträge: 365
Registriert: 5. Okt 2006 11:09
Wohnort: Dietesheim

Beitrag von marlic »

Warum steht das nicht gleich explizit in der aufgabenstellung?!

Man kann das "kann" auf zwei Arten lesen ... " es kann auftreten, und tritt immer dann auf, wenn die Datei vergrößert wird" und "es tritt evtl dann auf, wenn die datei vergrößert wird"
"Copy & Passed"

Wahlspruch der Plagiatoren

Benutzeravatar
Red*Star
Kernelcompilierer
Kernelcompilierer
Beiträge: 510
Registriert: 28. Nov 2006 19:40

Beitrag von Red*Star »

banshee hat geschrieben:Wird mein file dann auf null gesetzt, wenn ich mehr reinschreibe, als Speicher zur Verfügung steht oder worin macht sich das bemerkbar?
"fwrite [...] Return Value

The total number of elements successfully written is returned as a size_t object, which is an integral data type.
If this number differs from the count parameter, it indicates an error."

Von:
http://www.cplusplus.com/reference/clib ... write.html


marlic hat geschrieben:Warum steht das nicht gleich explizit in der aufgabenstellung?!
Ich weiß das hilft euch jetzt nicht viel, aber ich weiß gar nicht, wie man /das/ falsch verstehen kann ^^. Es gibt doch eigentlich nur eine /sinnvolle/ Deutung.
Was Sonnenschein für das schwarze Erdreich ist,
ist wahre Aufklärung für die Verwandten des Erdreichs.

- N.F.S. Grundtvig

citta
Mausschubser
Mausschubser
Beiträge: 96
Registriert: 7. Nov 2006 21:52

Beitrag von citta »

Nein, die Frage habe ich mir auch gestellt. Zumal man den gleichen Errorcode zurückgeben muss wie beim Überschreiten des RAMs. Das ist afaik auch die einzige Stelle, wo mit "physikalischer Speicher" die Platte gemeint ist.

Antworten

Zurück zu „Archiv“