Herunterladen Inhalt Inhalt Diese Seite drucken

Entschützen Von Unterprogrammen; Indexverwaltung Und Defragmentierung - Scanlab RTC 5 Installation Und Inbetriebnahme

Inhaltsverzeichnis

Werbung

• Wenn Methode 2 angewendet wird, dann sollte
sie auch vollständig angewendet werden. Wenn
nämlich nur der set_sub_pointer-Befehl ausge-
führt wird, dann kann zwar das Unterprogramm
bereits unter Angabe des Indexes mit
aufgerufen werden, das Unterprogramm ist aber
nach wie vor nicht gegen Überschreiben
geschützt. Letzteres geschieht erst, wenn das
Unterprogramm nachträglich mit
save_disk/load_disk
als indiziertes Unterpro-
gramm in den geschützten Speicherbereich
kopiert wird. Auch die Anzahl der Listenbefehle
des Unterprogramms wird erst mit
save_disk/load_disk
in die interne
Verwaltungstabelle eingetragen.
• Nicht referenzierte nichtindizierte Unterpro-
gramme werden von
save_disk
sichtigt, also auch nicht die über Methode 1
nachträglich geschützten nichtindizierten Unter-
programme im geschützten Speicherbereich. Im
geschützten Speicherbereich werden sie u.U.
durch
load_disk
überschrieben.
• Unzulässige Befehle (z.B. set_end_of_list)
werden bei
save_disk/load_disk
durch list_nop-Befehle ersetzt.
• Indizierte Unterprogramme, die mit
copy_dst_src
mehrfach referenziert werden,
werden bei einem anschließenden
save_disk/load_disk
im Listenspeicher dupliziert.
Gegebenenfalls kann es dadurch zu einem
Speicherüberlauf im geschützten Speicherbereich
kommen.
• Vor Ausführen des load_disk-Befehls sollte
sichergestellt werden, dass der geschützte
Speicherbereich ("Liste 3") in ausreichender
Größe jenseits von "Liste 1" und "Liste 2" konfi-
guriert wurde
(save_disk
gespeicherten Listenbefehle zurück). Ein
indiziertes Unterprogramm, das dort nicht
vollständig Platz findet, wird von
gespeichert.
• Bei der Konvertierung eines Unterprogramms
gemäß Methode 2 ändert sich die absolute
Speicheradresse des Unterprogramms.
®
®
RTC
5 PCI-Karte, RTC
5 PCI-Express-Karte, RTC
Rev. 1.10 d
6 Programmierung von Anwenderprogrammen
sub_call
nicht berück-
automatisch
liefert die Anzahl der
load_disk
nicht
®
5 PC/104-Plus-Karte, RTC
Entschützen von Unterprogrammen
Der Schutz für Unterprogramme, die im geschützten
Speicherbereich gespeichert sind, wird aufgehoben,
indem der entsprechende Speicherbereich mit
config_list
dem Listenbereich ("Liste 1" oder
"Liste 2") zugeordnet wird.
Das Unterprogramm kann dann nach wie vor mit
unveränderten Parametern (Index oder absolute Spei-
cheradresse) aufgerufen werden, ist dann aber nicht
mehr gegen versehentliches Überschreiben
geschützt.

Indexverwaltung und Defragmentierung

Damit indizierte Unterprogramme dupliziert,
umnummeriert oder ineinander konvertiert werden
können, wird der Befehl
copy_dst_src
Durch diesen Befehl wird ein indiziertes Unterpro-
gramm ein weiteres Mal referenziert (kann also dann
mit einem weiteren Index aufgerufen werden). Der
Befehl ändert nur die entsprechenden Einträge in der
internen Verwaltungstabelle und lässt den Speicher-
inhalt des Listenspeichers unverändert.
Überflüssige Referenzierungen (überflüssige Einträge
in der internen Verwaltungstabelle) können mit dem
load_sub-Befehl zusammen mit einem unmittelbar
nachfolgenden list_return-Befehl gelöscht werden.
Auch hier erfolgt das Löschen nur in der internen
Verwaltungstabelle und die Listenbefehle des zuvor
referenzierten indizierten Unterprogramms bleiben
weiterhin im Listenspeicher stehen.
Ob für einen bestimmten Index ein Unterprogramm
referenziert ist, kann mit
get_sub_pointer
werden. Falls kein Unterprogramm referenziert ist,
gibt der Befehl einen Wert von "–1" (d.h. 2
zurück.
Ein echtes Duplikat eines indizierten Unterpro-
gramms im geschützten Speicherbereich des Listen-
speichers kann – nachfolgend auf
save_disk/load_disk
erstellt werden. Mehrfach refe-
renzierte Unterprogramme werden dadurch entspre-
chend oft in den Listenspeicher geschrieben. Man
sollte darauf achten, dass es dabei zu keinem Spei-
cherüberlauf im geschützten Speicherbereich
kommt.
®
5 PCIe/104-Karte
bereitgestellt.
abgefragt
32
–1)
copy_dst_src
– mit
84

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis