Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmcntl(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ulimit(1)

quickdd(1M)

swap(1M)

execv(2)

shmop(2)

shmcntl(1M)                                                     shmcntl(1M)

NAME
     shmcntl - Auswahl des Allokierungsverfahrens für gemeinsam benutzten
     Speicher und dessen Justierung ("shared memory alignment")

SYNTAX
     shmcntl [-a {-l|-g}] command

BESCHREIBUNG
     Das Kommando shmcntl beeinflußt die Allokierungsstrategie und Justie-
     rung von gemeinsam benutzten Speicher ("shared memory") auf 64 MB vir-
     tuelle Speicheradressen und führt dann das Kommando command unter den
     angegebenen Allokierungsbedingungen im geforderten Justierungsmodus
     aus. Auf einer RM600-E kann der gemeinsam benutzten Speicher global
     (round robin, gleichmäßig verteilt über alle Boards) oder lokal von
     einem Board angefordert werden. Wird shmcntl ohne Optionen aufgerufen
     oder explizit mit der Option -a, so wird der gemeinsam genutzte Spei-
     cher auf eine 64 MB-Adresse justiert.

   Justierung
     Unter Justierung wird hier verstanden, daß sowohl die Startadresse als
     auch die Länge des gemeinsam benutzten Speicherbereichs ganzzahlig
     durch 64 MB teilbar sind.

     Die Justierung von gemeinsam benutzten Speicher ist sehr wichtig für
     die Reduzierung des Speicherverbrauchs im Betriebssystem, weil für den
     angeforderten gemeinsamen Speicher nur einmal Adreßübersetzungstabel-
     len für alle Prozesse, die den gemeinsamen Speicherbereich nutzen,
     erzeugt werden müssen. Darüber hinaus können die Adreßübersetzungsta-
     bellen bei Betriebssystem-Versionen kleiner V5.44 nur im physischen
     Speicherbereich von 0 bis 512 MB angelegt werden; nach Erreichen die-
     ser Grenze ist eine weitere Leistungssteigerung des Systems nicht mög-
     lich.

     Ohne eine Justierung ist der Speicherverbrauch für diese Tabellen pro-
     portional zum Produkt aus gemeinsam benutzter Speichergröße und Anzahl
     der Nutzerprozesse und kann in großen Konfigurationen leicht mehrere
     hundert MB ausmachen. Eine solche kritische Auslastung des unteren
     Speicherbereichs wird durch Justierung der gemeinsam benutzten Spei-
     cherbereiche wirksam vermieden.

     Eine Justierung kann auf 2 Arten erzeugt werden:

     1) Explizit durch entsprechende Parametrisierung der shmat-Aufrufe
        innerhalb von Applikationen [siehe shmat(2) in shmop(2)]. Dies Ver-
        fahren muß direkt bei der Erstellung einer gemeinsam benutzten
        Speicherapplikation angewendet werden.

     2) Automatisch durch Aufruf von Applikationen unter Kontrolle von
        shmcntl. Der Vorteil dieses Verfahrens ist die nachträgliche
        Anwendbarkeit ohne Eingriffe in bereits bestehende Applikationen.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

shmcntl(1M)                                                     shmcntl(1M)

     Zwei Aspekte sind dabei jedoch zu beachten:

     a) Der Systemaufruf shmat(2) verhält sich zugunsten einer automati-
        schen Justierung nicht mehr völlig konform zur Festlegung im
        X/OPEN-Standard.

     b) Es entsteht eine Vergrößerung des virtuellen Adreßraums bei den
        betroffenen Prozessen mit folgenden Eigenarten:

        -  Die automatische Justierung der virtuelle Speicheradresse auf 64
           MB-Grenzen wird durchgeführt, wenn bei der Belegung des gemein-
           sam benutzten Speicherbereichs eine Adreßvorbelegung mit Null
           oder einer durch 64 MB teilbaren Adresse erfolgt. Der Justie-
           rungsmodus wird innerhalb der Prozeßgruppe des angegebenen Kom-
           mandos command über fork(2) und exec(2) vererbt.

        -  Die Größe des gemeinsam benutzten Speicherbereichs wird dabei
           gleichzeitig auf das nächst höhere Vielfache von 64 MB erwei-
           tert. Dies kann zu einer erheblichen Steigerung der virtuellen
           Prozeßgröße führen. Für betroffene Prozesse können daher Erhö-
           hungen der "ulimit"-Grenzen erforderlich werden. Außerdem ist
           systemweit gegebenenfalls der Swap-Bereich zu vergrößern.

        -  Bei mehreren benachbarten gemeinsam benutzten Speicherbereiche
           verschieben sich durch die Justierung der Startadressen die dar-
           auf folgenden Speicherbereiche.

        -  Innerhalb der gemeinsam benutzten Speicherbereiche sind alle
           Zugriffe legal, auch auf die implizit belegten Speicherbereiche.
           Daher werden eventuell Adressierungsfehler von Applikationen
           dann nicht mehr gemeldet.

OPTIONEN
     Keine Option angegeben:
          Der gemeinsam genutzte Speicher wird gemäß der zuvor beschriebe-
          nen Justierung angelegt.

     -a   Der gemeinsam genutzte Speicher wird gemäß der zuvor beschriebe-
          nen Justierung angelegt.

     -l   (nur RM600-E) Der gemeinsam genutzte Speicher wird lokal von
          einem Board, auf dem das Kommando command läuft, allokiert.

     -g   (nur RM600-E) Der gemeinsam genutzte Speicher wird gleichmäßig
          verteilt (round robin) über alle Boards allokiert.









Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

shmcntl(1M)                                                     shmcntl(1M)

BEISPIELE
     shmcntl quickdd if=file of=/dev/ios0/rstape004

     In diesem Beispiel wird das angegebene Kommando quickdd mit aktivier-
     ter Kontrolle der 64 MB-Justierung ausgeführt. Für die im Kommando
     quickdd erzeugten gemeinsamen Speicherbereiche wird nur einmal eine
     Adreßübersetzungstabelle aufgebaut, obwohl quickdd intern mehrere Pro-
     zesse erzeugt (Lese- und Schreibprozeß).

     Das Kommando wird in diesem Modus nur ausgeführt, wenn zuvor mit
     ulimit -v der virtuelle Adreßraum > 128 MB eingestellt wird.

SIEHE AUCH
     ulimit(1), quickdd(1M), swap(1M), execv(2), shmop(2).








































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026