logo_90
Uni ZH | Informatikdienste | PostScript

Speicherplatz-Verwaltung

Um den Speicherplatz zu verwalten, wird grundsätzlich das Operator-Paar "save - restore" verwendet. Zum einen kapseln diese Operatoren die grafische Darstellung ab; unerwünschte Auswirkungen auf andere Teile eines View-Objekts werden unterbunden. Zum zweiten gibt der PostScript-Server nach der Ausführung von restore den gesamten Speicherplatz wieder frei, den die zusammengesetzten Objekte, die Definitionen und die Routinen belegt haben. Importierende Applikationen verwenden üblicherweise diese Methode der Speicherplatz-Verwaltung. Beispiel:
 
%!PostScript Code Hauptdokument
  ...
save			% Status sicherstellen
     200 200 translate	% Ursprung verschieben
       .7 .7 scale	% Grafik verkleinern
     % PostScript Code der eingebetteten Grafik
     % Definitionen 
       ...
restore			% urspruenglichen Status wiederherstellen
% Fortsetzung des Hauptdokuments
  ...
Es handelt sich dabei um den virtuellen Speicherplatz, der dem PostScript-Prozessor -- zusätzlich zum Stack und zum Seitenspeicher -- zur Verfügung steht. In diesen Speicherbereich kommen auch die ladbaren Fonts zu stehen.

Der Einsatz von save/restore bleibt auch sinnvoll, wenn Sie PostScript Level 2 verwenden. Allerdings kennt Level 2 zusätzliche Operatoren wie undefinefont, undef (zum Freigeben von Speicherplatz) und setglobal. Einige Operatoren erlauben den direkten Speicherzugriff:

dict key undef
entfernt den durch den Schlüssel key spezifizierten Eintrag aus dem angegebenen Dictionary.
key undefinefont
entfernt den durch key spezifizierten Font aus dem FontDictionary.
index undefineuserobject
löscht das durch index spezifizierte Benutzer-Objekt aus dem Array UserObjects. Damit kann gezielt zusätzlicher Speicherplatz geschaffen werden, um neue Prozeduren abzulegen oder neue Benutzer-Objekte zu definieren.
Uni ZH | Informatikdienste | PostScript
Last update: 13-JUN-00/vo