home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
tt
/
vmem11
/
read_me.txt
< prev
Wrap
Text File
|
1993-08-30
|
6KB
|
115 lines
VMEM V1.1
Virtuelle Speicherverwaltung für alle Atari Rechner
© 1990 Robert Federle
Grundsätzliches:
================
Was ist ein virtueller Speicher?
--------------------------------
Viele kennen das Problem: da besitzt man einen Rechner mit "nur" 512 KByte
und dennoch laufen einige Programme nur mit mindestens einem oder mehreren
MByte. Meistens liegt dies daran, daß diese Programme sämtliche Daten im
Speicher halten. So legen die meisten Zeichenprogramme einen UNDO-Puffer an,
der meist genau so groß ist wie die eigentliche Zeichenfläche. Da eine DIN A4
Seite (ungepackt, einfarbig) 950 KByte groß ist, wird selbst bei einem Mega
ST 2 mit 2 MByte Speicher das Arbeiten verhindert. Zwar kann man inzwischen
bei den meisten Programmen diesen UNDO-Puffer weglassen, doch was macht man,
wenn man ihn einmal braucht?? Dauerndes Speichern auf der Platte ist auch
nicht sinnvoll, denn damit übernimmt man selbst die Arbeit, die eigentlich
der Computer machen sollte.
Aus diesem Grund wurde das Programm VMEM geschrieben. Mit VMEM ist es nun
möglich, große Datenmengen statt im Hauptspeicher auf der viel größeren Platte
zu speichern, wobei man mit speziellen Befehlen auf einfachste Art und Weise
darauf zugreifen kann. Vor der Benutzung des Speichers muß man ihn anfordern,
danach muß man ihn wieder freigeben. Dies ist beim normalen Speicher gleich.
Der einzige Unterschied besteht darin, daß der Hauptspeicher immer am gleichen
Platz ist, wohingegen man auf den virtuellen Speicher nur durch ein "Fenster",
dem Datencache, zugreifen kann. Dieses "Fenster" muß vor dem Zugriff mittels
einer speziellen Funktion (VM_ADDRESS) auf den gewünschten Speicherbereich des
virtuellen Speichers eingestellt werden. Erst danach kann auf man die Daten,
die nun im Cache liegen, zugreifen und diese verändern. Man muß diese Daten
jedoch nicht selbst zurückschreiben, da dies die "intelligente" Verwaltung
des Caches übernimmt.
Was nützt mir ein virtueller Speicher?
--------------------------------------
Falls Sie ein Anwender sind und ein Programm bekommen, das VMEM unterstützt,
so sind Sie in der Lage, Datenmengen zu handhaben, die größer als Ihr Speicher
sind. Somit können selbst Besitzer von 1 MByte und weniger eine DIN A4-Seite
von 300 DPI bearbeiten.
Als Programmierer gibt es mehrere Einsatzgebiete für VMEM. Den wohl sinnvoll-
sten Einsatz bieten wohl die Mal- und Zeichenprogramm, die in der Lage sind,
große Vorlagen (z.B. von Scannern) zu bearbeiten. Man sollte aber nicht nur
den UNDO-Puffer in den virtuellen Speicher verlagern, denn dank der hohen
Übertragungsgeschwindigkeiten der meisten Platten kann man selbst große Bilder
fließend scrollen (siehe VMEMDEMO).
Aber auch in Sound-Sampler kann man VMEM verwenden. Zwar kann man die Daten
nicht vom virtuellen Speicher lesen und gleichzeitig ausgeben, jedoch können
einmal aufgenommene Samples mit Hilfe von VMEM auf die Platte ausgelagert und
bei Bedarf wieder eingeladen werden. Da die meisten Platten mehr als 500 KByte
pro Sekunde übertragen, dauert dies im schlimmsten Fall 3-4 Sekunden.
Man muß VMEM aber nicht nur bei Datenmengen verwenden, die mehrere MByte be-
tragen. Selbst bei einem 100 KByte-Block, den man auf die Platte ausgelagert
hat, spart man wichtigen Hauptspeicher. Natürlich ist es in diesem Fall un-
sinnig, einen Cache anzulegen, der größer als 100 KByte ist. Hier würde auch
ein 10 KByte-Cache reichen.
Das beigefügte VMEMDEMO zeigt eine einfache Anwendung. Hierbei wird eine zuvor
gewählte GEM-IMG-Datei in den Hauptspeicher eingelesen, in den virtuellen
Speicher entpackt und anschließend gescrollt. Das Entpacken dauert ca. 10 mal
länger als üblich. Das Scrollen hingegen, das waagrecht mit 16 Bit und senk-
recht mit 16 Zeilen erfolgt, ist nur um den Faktor 3 bis 4 langsamer als bei
vergleichbaren Programmen. Zudem ergibt sich bei dem horizontalen Scrolling
kein einziger Zugriff auf die Platte, obwohl jeweils 32 KByte aus dem "Fenster"
herauskopiert werden. Der Algorithmus, der in der Funktion VM_ADDRESS steckt,
ist soweit optimiert, daß selbst bei großen "Sprüngen" im virtuellen Speicher
nur die Seiten zurückgeschrieben werden, die geändert wurden und auf die am
längsten nicht mehr zugegriffen wurde (sog. LRU-Aging-Algorithmus).
******************************************************************************
* Ein Hinweis an Besitzer einer Wechselplatte: *
* *
* Falls die temporäre Datei auf der Wechselplatte angelegt wird, so darf sie *
* vor Programmbeendigung unter keinen Umständen herausgenommen werden!!! *
******************************************************************************
Leistungsmerkmale von VMEM V1.1:
================================
* Verwaltung von bis zu 2 Gigabyte an zusätzlichem Speicher
* lauffähig auf allen Atari-Rechnern mit Fest-/Wechselplatte
* VMEM erlaubt die Nutzung großer Datenmengen auch bei Rechnern, deren
Hauptspeicher nur 512 KByte beträgt
* frei konfigurierbare Größe des Speichers und des Caches
* Cache mit "intelligentem" Verwaltungsalgorithmus (modifizierter LRU-Aging)
* einfache Programmierung (ähnlich Malloc und Mfree des Betriebssystems)
* spezielle Zugriffsbefehle erledigen den Datenaustausch zwischen dem
virtuellen Speicher und dem physikalischen Speicher / Datenträger
mit der größtmöglichen Geschwindigkeit
* geringer Mehraufwand bei der Erweiterung bestehender Programme
* einmalige Installation im Speicher
* Updates von VMEM erfordern keine übersetzung bestehender Programme