Speicherverwaltung: eigene vs. System
Von: Ole Streicher (ole-usenet-spam@gmx.net) [Profil]
Datum: 27.04.2009 16:34
Message-ID: <ytzab62kvx4.fsf@burgos.aip.de>
Newsgroup: de.comp.os.unix.programming
Datum: 27.04.2009 16:34
Message-ID: <ytzab62kvx4.fsf@burgos.aip.de>
Newsgroup: de.comp.os.unix.programming
Hallo, ich habe in einem Programm die Notwendigkeit, einige ziemlich große Datenblöcke (ca. 2-4 Blöcke, jeweils ca. 1-2 GB) zu verwalten (wahlfreier Zugriff). Dafür sehe ich im Prinzip zwei Möglichkeiten: 1. Ich alloziere einfach genügend große Speicherbereiche und verwende sie. Wenn der (physische) Speicher ausgeht, wird ja sowieso in den Swap ausgelagert. 2. Ich lege für die Blöcke Temp-Dateien an und verwende mmap() für den direkten Zugriff. Wenn noch genügend physischer Speicher vorhanden ist, erfolgt das Datenkopieren sowieso im Cache. Auf den ersten Blick erscheinen mir beide Möglichkeiten etwa gleichwertig: solange nur genug physischer Speicher vorhanden ist, erfolgen die Operationen potentiell eher im RAM als auf der Festplatte. Im ersten Fall bin ich aber in der Größe auf das limitiert, was der (spätere) Benutzer als Swap angelegt hat, während im zweiten Fall im Grunde nur das Dateisystem ein Limit darstellt (?). Dafür wird man wohl im zweiten Fall "gegen" das OS arbeiten, welches aus Sicherheitsgründen immer mal (sinnlos) Daten auf die Platte schreiben wird --> eigentlich erscheint mit die erste Lösung als einzig sinnvolle und die zweite als (von absoluten Ausnahmen abgesehen) unsinnig. Was mich nur stutzig macht: warum legen dann Programme überhaupt temporäre (auf den Programmlauf beschränkte) Dateien an? Der einzige Grund, der mit einfiele, wäre IPC, aber selbst da ist ein Zwischenspeicher auf der Platte sicher keine gute Wahl. Gibt es einen Grund, *nicht* malloc() zu nehmen, sondern mmap()? Viele Grüße Ole[ Auf dieses Posting antworten ]
Antworten
- Frank Mertens (27.04.2009 20:32)
- Gerald Breuer (29.04.2009 17:06)
- Frank Mertens (29.04.2009 22:49)
- Gerald Breuer (30.04.2009 16:51)
- Edzard Egberts (27.04.2009 21:30)
- Jochen Luebbers (28.04.2009 09:12)
- Hermann Riemann (28.04.2009 11:31)
- Rolf Magnus (01.05.2009 09:41)
- Gerald Breuer (29.04.2009 17:07)
- Jochen Luebbers (29.04.2009 17:24)
- Gerald Breuer (29.04.2009 18:50)
- Florian Weimer (29.04.2009 19:44)
- Marcus Hampel (17.06.2009 14:35)
