Mailinglist Archive: opensuse-programming-de (171 mails)
| < Previous | Next > |
Re: shared libraries - gemeinsamer Datenbereich
- From: Raimund Hölle <mailings@xxxxxxxxxxxxxxxx>
- Date: Thu, 23 Jan 2003 10:33:24 +0100
- Message-id: <3E2FB6E4.4040905@xxxxxxxxxxxxxxxx>
Hallo,
erst mal vielen Dank für eure Antworten.
Michael Matz schrieb:
Tja, man muß halt träumen können ... wie schon gesagt, unter OS/2 war's möglich ...
Es geht mir nicht um den bischen Code zum Anlegen und Andocken des Shared Memory, sondern darum, komplexe Strukturen (Listen mit mehreren Hierarchieebenen) in das Shared Memory zu legen - im Adressraum des Programmes verwende ich eine C++-Listenklasse, die die gesamten Operationen, incl. Verwaltung, Suche usw. bereits vorgibt, der Code den ich selber schreiben muß, wird dadurch stark minimiert.
Leider nicht anwendbar, da es um unterschiedlichste Prozesse (Binaries) geht.
Ich werde nun wohl in den sauren Apfel beißen und die Shared-Memory-Strukturen und -Zugriffsfunktionen zu Fuß programmieren :-(
Viele Grüße
Raimund
erst mal vielen Dank für eure Antworten.
Michael Matz schrieb:
Hi,
On Wed, 22 Jan 2003, Andre Heine wrote:
Ich hab's auch noch nicht probiert, aber warum sollte eine shared
library nicht auch diese Möglickeit bieten?
shared libs und shared mem haben auf diesem Level nichts miteinander zu
tun. Unter ELF ist es _nicht_ moeglich eine Art gemeinsamen Speicher in
einem DSO zu deklarieren, der dann von allen Prozessen benutzt wird.
Jeder Prozess hat seinen eigenen Datenbereich (es sei dann man legt von
Hand was anderes an). Allerdings will Raimund auch das unmoegliche: er
will shared mem nicht benutzen, beschreibt aber doch das Konzept von
shared mem ;-)
Tja, man muß halt träumen können ... wie schon gesagt, unter OS/2 war's möglich ...
Raimund: SysV shared mem ist wirklich nicht allzu schwer. Erst recht
nicht, wenns dir im wesentlichen nur um einen Block geht. Eine andere
Alternative ist, ueber mmap() ein (read-only) shared mapping einer Datei
zu erzeugen, die vorher anzulegen ist, und den "geparsten" Inhalt deiner
Eingabe enthaelt.
Es geht mir nicht um den bischen Code zum Anlegen und Andocken des Shared Memory, sondern darum, komplexe Strukturen (Listen mit mehreren Hierarchieebenen) in das Shared Memory zu legen - im Adressraum des Programmes verwende ich eine C++-Listenklasse, die die gesamten Operationen, incl. Verwaltung, Suche usw. bereits vorgibt, der Code den ich selber schreiben muß, wird dadurch stark minimiert.
Eine ganz andere Moeglichkeit sind thread, die sich den Addressraum von
Haus aus teilen.
Leider nicht anwendbar, da es um unterschiedlichste Prozesse (Binaries) geht.
Ich werde nun wohl in den sauren Apfel beißen und die Shared-Memory-Strukturen und -Zugriffsfunktionen zu Fuß programmieren :-(
Viele Grüße
Raimund
| < Previous | Next > |