The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
ELF-Format Shared Library? wntrmead High-Level-Programmierung 11 11-16-2007 02:19 PM
Shared Library areef4u UNIX für Fortgeschrittene und Experten 1 08-01-2006 03:14 AM
Shared-Memory-Mangel, aber viele ungenutzte Speicher cjcamaro UNIX für Fortgeschrittene und Experten 1 10-13-2004 06:10 PM
Shared Library Problem vinz HP-UX 1 08-27-2004 11:57 AM
Shared Library rajashekaran High-Level-Programmierung 2 08-03-2002 02:59 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 05-21-2007
DreamWarrior DreamWarrior is offline
Registrierte Nutzer
  
 

Join Date: Oct 2003
Beiträge: 70
Shared-Memory im Shared Library

Ich brauche, um eine Shared-Library für den Zugriff auf ein im Speicher DB. Die DB ist nicht riesig, aber groß genug, um sie umständlich zu tragen in jedem einzelnen Prozess mit der Shared Library. Zum Glück ist es ziemlich statische Informationen, so dass ich nicht viel Grund zur Sorge über die Synchronisation der Daten zwischen den Instanzen der Shared Library. Aber was ich tun muss, sich Sorgen zu machen, ist die Initialisierung der Speicher einmal und nie wieder.

Ich würde gerne alle gemeinsam genutzten Bibliotheken, eine Bibliothek Umfang variabel, aber ich glaube nicht, dass das möglich ist. Wenn es so ist, lassen Sie mich wissen, ... aber ich weiß, normalerweise jeden Prozess erhält seine eigene Kopie des Shared Library-Daten-Segment. Ich glaube nicht, dass es einen Weg gibt, um Flagge ein Teil der Daten, die als gemeinsame Segment in allen Fällen von der Bibliothek.

Also, ich schätze, ich muss die Bibliothek Zugriff auf die DB in den gemeinsamen Speicher. Allerdings, die erste Instanz der Bibliothek gestartet werden soll, bis zu den gemeinsamen Speicher, legen Sie es, und sie laden alle vor allen anderen Fällen möglich, sie verwenden können. Wie kann ich garantieren, dass diese erstellen / initialisieren passiert, wenn vor dem gemeinsamen Speicher wird verwendet?

Am Anfang dachte ich, die nicht existance des Shared-Memory-Segment würde es tun ... aber es gibt eine Race Condition zwischen erstellen und zu initialisieren, wenn in einem anderen Fall würde der Bibliothek finden Sie in der Shared-Memory, aber nicht in der Lage sein, um auf sie weil sie noch nicht inited. Ich weiß, ich kann posix Mutex in Shared-Memory ... so dass ich denke, ich kann einer von ihnen. Doch auch die anderen Problem besteht, wenn das Shared-Memory-Segment wird "links über" die von einem vorherigen Lauf.

Was passiert dann? Also ... alle Bibliothek "lösen" aus dem Segment, aber keiner von ihnen zu zerstören. Und was jetzt ... das nächste Mal die Bibliothek beginnt frisch sollte es wieder-init den gemeinsamen Speicher, wird aber nicht.

Hummm ... irgendwelche Ideen? Einige Richtung? Was ist die gängige Methode der Bereitstellung von Shared-Memory-Syncronization? Sollte ich ein System Semaphore? Wäre es nicht leiden, die gleiche "warme" Start Problem (Prozesse losgelöst von Shared Library, aber Memory / Semaphoren noch Wohnsitz hat).

Dies wird für AIX 5, BTW, für die Interessenten.
 

Lesezeichen

Tags
Linux

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 05:48 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0