hilfe:tipps:sonstiges:datenorg
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
hilfe:tipps:sonstiges:datenorg [07/04/2007 22:04] – code formatierung rmeissner | hilfe:tipps:sonstiges:datenorg [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Datenorganisation, | ||
+ | |||
+ | |||
+ | ===== Vorwort: ===== | ||
+ | |||
+ | Tausende von Tasten drücken wir zuweilen jeden Tag, um die für uns am wichtigsten erscheinenden Daten festzuhalten. Die einen Daten sind nur kurzfristig wichtig, andere widerum müssen lange gültig sein und erhalten werden. Aus beiden Gründen speichern wir sie in Dateien ab, die der PoFo für uns in Verzeichnissen verwahrt, bis wir über den Exitus der Gültigkeit entscheiden. Dummerweise kann aber auch eine Fehlermacht den Exitus erzwingen!\\ | ||
+ | Ziel dieses Workshops soll es sein, technische Hintergründe so zu vermitteln, dass man die daraus resultierenden Tipps leicht und schnell für die eigenen Daten umsetzen und verwenden kann: Zeit- und Arbeitsersparnis werden die Folgen sein!\\ | ||
+ | Wenn hier von Speichermedien die Rede ist, so kann man jeden der nun folgenden Datenträger dafür einsetzen: Ramdisk, Memorycard, Memory-Modul, | ||
+ | |||
+ | ===== 1. Thema: " | ||
+ | |||
+ | In den letzten neun Jahren wurden viele Speichermedien für den PoFo entwickelt oder bestehende Speichermedien dem PoFo angepasst. Die meisten davon benötigen eine Batterie, damit die Daten für längere Zeit gespeichert bleiben. Auch die Größe dieser Medien war und ist ein entscheidendes Kriterium zum Kauf, weil sie möglichst über den Eigenbedarf hinausgehen, | ||
+ | Angefangen hat alles mit den Memorycards in den Größen 32 Kilobyte, 64 Kilobyte und 128 Kilobyte. Pardon, ich vergaß die eingebaute Ramdisk mit ihrer Standardgröße von 32 Kilobyte. Ihr Vorteil ist die fast wahlfreie Größeneinstellung in Schritten von jeweils acht Kilobyte, was ansonsten kein externes Speichermedium zu bieten hat. Weiter ging es dann sehr bald mit Memorymodulen von 256 Kilobyte bis zu einem Megabyte. Auch die PCMCIA-Karten der Klasse I, die seit kurzer Zeit per Adapter vom PoFo genutzt werden können, sind noch auf einem Megabyte Speicherkapazität beschränkt.\\ | ||
+ | 3,5" Disketten mit einem Speichervolumen von bis zu 1.44 Megabyte sind eine preisgünstigere Alternative, | ||
+ | Noch einmal zur Ramdisk: Sie ist ein Teil des gesamten PoFo-Arbeitsspeicher, | ||
+ | Die 3.5" Disketten bieten den höchsten Speicher für den kleinsten Preis, sind aber auch das langsamste Medium, weil ein Diskettenlaufwerk noch mechanisch arbeitet: Der Schreib-/ | ||
+ | Die Speichermodule und -karten funktionieren rein elektronisch und sind unschlagbar schnell. Leider müssen sie durch Batterien die Daten am Leben erhalten, was die Verlustgefahr der Daten erhöht. Disketten, generell gesprochen, sind meist " | ||
+ | Gemeinsam ist aber allen Speichermedien die Abneigung gegen Flüssigkeiten aller Art, gegen Staub, die Angst verbogen, gefaltet oder gar gelocht zu werden, die Unverträglichkeit von Temperaturen über 60 Grad und unter 10 Grad Celsius und allzu intensive Berührung, insbesondere der Speicherfläche oder der Kontakte.\\ | ||
+ | Alle Speichermedien die über die Kartenlaufwerke A: und B: am PoFo genutzt werden können, haben einen doch sehr ansehnlichen Vorteil: Von diesen Speichermedien kann das ganze System gebootet und eingerichtet werden, spezielle Dateitypen wie *.HOO- und *.RUN-Dateien sind nur auf diesen Medien lauffähig !\\ | ||
+ | Spätestens wenn man die 96er Ausgabe der PCD-CD-ROM besitzt wird man feststellen, | ||
+ | |||
+ | ===== 2. Thema: "So sind alleSpeichemedien aufgebaut" | ||
+ | |||
+ | Unser Betriebssystem DIP-OS ist ein Sprößling des MS-DOS, welches ursprünglich ein mit Disketten operierendes System war, daher auch der Namensteil DOS. Die Disketten sind magnetische Scheiben, welche für die Datensicherung in kreisförmige Spuren aufgeteilt wurden, damit der Schreib-/ | ||
+ | Auch wenn Speicherkarten keinerlei Scheiben besitzen, ebenso entfällt der Schreib-/ | ||
+ | Die Sektoren sind die kleinsten Speicherplätze auf einem Speichermedium und schwanken in ihrer Anzahl, je nach Speichermedium, | ||
+ | Die Entwickler packten einfach mehrere Sektoren zu einem Sektor zusammen, damit die Anzahl der nutzbaren Sektoren sich erhöht. So ein Paket tauften sie Cluster, weil man zwischen Sektoren und Clustern auch unterscheiden können will. Wohl aus technischen Gründen, wie ich vermute. Auf jeden Fall hat man nun den Vorteil auch sehr große Speichermedien bearbeiten zu können, bis zu 32MB unter unserem DIP-OS nämlich. Leider hat man aber auch einen großen Nachteil: Es können nun nicht mehr Daten in einzelnen Sektoren gespeichert werden, sondern nur noch in den einzelnen Clustern, die ja wiederum eine gewisse Menge an Sektoren beinhalten: Es werden Sektoren verschwendet!\\ | ||
+ | Meine Daten, die ich nun zu Speichern gedenke, würden locker in einen Sektor passen und noch etwas Platz für Änderungen lassen. Da ich aber in einen Cluster speichern muß, alle DOS-Versionen erlauben nichts anderes, werden die anderen Sektoren in dem Cluster ungenutzt bleiben, weil ein Cluster immer nur zu einer Datei gehören kann. Man kann auf jeden Fall keinen Cluster für zwei verschiedene Dateien benutzen, oder ihn auf mehrere Dateien aufteilen.\\ | ||
+ | Und es kann sogar noch schlimmer kommen: Sind die zu speichernden Daten kleiner als ein Cluster, so wird der Rest des Clusters mit irgendwelchen Daten aus dem Ramspeicher aufgefüllt: | ||
+ | Die Größe eines Clusters ist von der Größe des Speichermediums abhängig und wird in Bytes gemessen. Ein Byte kann man mit einem Buchstaben vergleichen: | ||
+ | Einige gängige Clustergrößen sind, und nun wird es endlich wieder etwas konkreter: 128 Bytes, 256 Bytes, 512 Bytes und 1024 Bytes. Aber es gibt, gerade auf Festplatten, | ||
+ | Am günstigsten für uns ist natürlich die kleinste Clustergröße von 128 Bytes, weil wir dann am wenigsten Bytes beim speichern verschenken: | ||
+ | Eine Datei mit 150 Bytes benötigt bei einer Clustergröße von 128 Bytes zwei Cluster und verschenkt 106 Bytes. Bei einer Clustergröße von 256 Bytes benötigt dieselbe Datei nur einen Cluster und verschenkt ebenfalls 106 Bytes. Ist ein Cluster dagegen schon 512 Bytes groß, so werden bei besagter Datei schon 362 Bytes im Cluster ungenutzt bleiben. Und nun die große Preisfrage, bei der man nur an Erfahrung gewinnen kann: Wieviele Bytes bleiben bei einer Clustergröße von 1024 Bytes übrig? | ||
+ | In der Praxis wird man also bei so ziemlich jeder zu speichernden Datei einige Bytes im letzten Cluster verschenken müssen, weil man, gerade bei *.COM, *.EXE und *.SYS Dateien, kaum Einfluß nehmen kann. Zum Glück ist davon auch immer nur der letzte Cluster betroffen und nicht alle!\\ | ||
+ | Weil es kaum Informationen darüber gibt, welches Speichermedium welche Clustergröße hat, habe ich das mit mehreren Batchdateien in Erfahrung gebracht, die testweise Dateien und Verzeichnisse anlegten und die Änderungen per CHKDSK- Befehl in Textdateien festhielten. Zum einen war das eine MMTEST.BAT, die satte 30KB groß ist und zum anderen testete ich die Ramdisk C: mit einer etwa 9KB großen Batchdatei von Laufwerk A: aus. Sie werden sicherlich irgendwann einmal auf einer Diskette oder einer zukünftigen Club-CD-Rom zu finden sein. | ||
+ | In mühevoller Handarbeit habe ich die aus diesen Batchdateien entstandenen Textdateien ausgewertet und in folgende Wertetabelle umgesetzt (hoffentlich fehlerfrei!): | ||
+ | |||
+ | Auswertung in Dokument zusammen gefasst: Download {{hilfe: | ||
+ | |||
+ | Kommen wir zur Bedeutung dieser Wertetabelle: | ||
+ | Der " | ||
+ | |||
+ | Ein Beispiel für die Ramdisk: Wenn bei Speicher-Medium-Typ von " | ||
+ | Die " | ||
+ | Die " | ||
+ | Die "max. Anzahl der Hauptverzeichniseinträge" | ||
+ | Die "max. Einträge pro DIR-Cluster" | ||
+ | So kann ein Verzeichnis immer weiter wachsen, weil die Dateinamen auch in Clustern gespeichert werden, die sich auf dem ganzen Speichermedium verteilen können: Merkt das DIP-OS das ein Verzeichnis wächst, so schnappt es sich zur rechten Zeit einen noch freien Cluster und kennzeichnet ihn als sogenannten DIR- Cluster, in dem dann die Namen und Cluster der noch folgenden Dateien landen werden. Der Wachstum wird also durch hinzfügen von Dateien und Verzeichnissen, | ||
+ | Also sollte man sich reiflich überlegen, wieviele Dateien und Verzeichnisse man in einem Unterverzeichnis plaziert, weil es entsprechend viele DIR-Cluster kostet. Auch hier kann der letzte DIR-Cluster nicht vollkommen ausgenutzt sein, was man tunlichst erreichen sollte: Mehr Dateien ins Verzeichnis kopieren !\\ | ||
+ | Die Eingangs erwähnten Werteabellen enthalten dazu die für Euch relevanten Informationen, | ||
+ | |||
+ | ===== 3. Thema: " | ||
+ | |||
+ | Dies ist sehr abhängig von der Kapazität des Speichermediums. Je kleiner der Platz ist, desto mehr Verzeichnisse sollten erstellt werden. Aber auch dann muß man mit Köpfchen vorgehen, will man das beste Ergebnis herausholen ! Euch behilflich dabei sein soll wieder die obige Wertetabelle, | ||
+ | Verzeichnisse lohnen sich: | ||
+ | * wenn man mehr Dateien speichern will, als die Anzahl, die in das Hauptverzeichnis des Speichermediums speicherbar ist. | ||
+ | * wenn man verschiedene Dateitypen benutzt, die man z.B. an ihren Endungen erkennt: *.TXT, *.DIR, *.WKS etc. Für jeden Typ ein eigenes Verzeichnis ! | ||
+ | * wenn Dateien kopiert, verschoben oder verglichen werden sollen. Immer schön von anderen Dateien trennen, damit man nicht die Übersicht verliert ! | ||
+ | * wenn man Dateien häufig ändert, was zur Fragmentierung führt (Dateizerstückelung). Lieber kurz ein Verzeichnis einrichten und die Datei da drin bearbeiten, als im endgültigen Verzeichnis, | ||
+ | zerstückelt wird, was den PoFo ausbremst ! | ||
+ | |||
+ | Verzeichnisse lohnen sich nicht: | ||
+ | * wenn man weniger Dateien zu speichern hat, als die Anzahl, die in das Hauptverzeichnis des Speichermediums speicherbar ist. | ||
+ | * wenn man wirklich nur einen Dateityp speichert, oder nur die Dateien einer Tagesarbeit sichern muß. | ||
+ | * wenn nur ein Datentyp kopiert, verschoben oder verglichen werden soll. | ||
+ | * wenn Dateien absolut nicht verändert werden. | ||
+ | Meistens lohnen sich die Verzeichnisse immer, aber man sollte schon ein wenig vorher Nachdenken was dabei abgeht wen man solche einrichtet, denn es bedeutet immer einen gewisse Speicherverlust oder -verschwendung: | ||
+ | Jedes Unterverzeichnis bekommt zunächst einen DIR-Cluster und wächst dann, durch weitere Einträge, um weitere DIR-Cluster an !\\ | ||
+ | |||
+ | === Aufgabenstellung: | ||
+ | |||
+ | Weil die Anzahl der möglichen Datei- und Directoryeintragungen, | ||
+ | Wie lauten dazu die entsprechenden Batchzeilen, | ||
+ | - TIP: Verschieben erreicht man durch COPY und DEL. | ||
+ | - TIP: Die Startdateien müssen kurzfristig mitkopiert werden. | ||
+ | - TIP: Die A: | ||
+ | - TIP: Für das löschen muß man die Befehle FOR, IF, NOT und DEL kombinieren. | ||
+ | |||
+ | === Lösung: === | ||
+ | |||
+ | MD A:\SAV | ||
+ | COPY A:\* . * A:\SAV | ||
+ | FOR %%A in (A:\SAV\* . *) DO IF NOT % %A = = AUTOEXEC.BAT DEL %%A | ||
+ | COPY A: | ||
+ | DEL A: | ||
+ | DEL A: | ||
+ | |||
+ | |||
+ | |||
+ | ===== 7. Thema: "Der PoFo bleibt ein Rennpferd, trotz vieler Dateien" | ||
+ | |||
+ | Die häufige Änderung bestehender Dateien bringt, gerade wenn die Dateien mit jeder Änderung größer und größer werden, einen Geschwindigkeitsverlust mit sich, weil der PoFo die Datei nicht in einem Stück speichern kann. Schließlich liegt vor der zu ändernden Datei eine andere und genau hinter ihr meist wieder eine andere. Beim speichern der Ergänzung muß daher ein neuer Platz für diese gesucht werden, der dann meist hinter der letzten Datei zu finden ist. Leider kann das DIP-OS, auch Microsofts Betriebssystem können das bisher nicht, nicht die nachfolgenden Dateien verschieben, | ||
+ | Im Fachjargon werden diese Ergänzung als Fragmente (Teile) bezeichnet und die verteilte Speicherung dementsprechend Fragmentierung geschimpft. Sie ist deshalb so unbeliebt, weil das Betriebssystem beim Laden und beim Speichern auf die Suche nach den Fragmenten gehen muß, was entsprechend Zeit benötigt. Sehr stark macht sich das auf mechanischen Laufwerken bemerkbar: Man hört regelrecht wie der Schreib-/ | ||
+ | Es lohnt sich daher von Zeit zu Zeit eine Defragmentierung durchzuführen, | ||
+ | Möglichst auf einem anderen Speichermedium richtet man ein Verzeichnis ein und kopiert alle Dateien aus dem gerade aktuellen Unterverzeichnis in das neue hinein. Dann löscht man alle Dateien im aktuellen Unterverzeichnis. Jetzt wechselt man mit " | ||
+ | Im ersten Moment erscheint es widersinnig zu sein, daß Verzeichnis zu löschen und im nächsten Moment dasselbe Verzeichnis wieder anzulegen, aber das hat doch einen Grund: | ||
+ | Viele Dateien in einem Verzeichnis benötigen auch viele DIR-Cluster. Werden aber viele Dateien gelöscht, so werden die DIR-Cluster nicht automatisch zur Speicherung wieder freigegeben ! Sie sind erst dann wieder verfügbar, wenn man das Verzeichnis löscht. Und weil man sich sicherlich nicht permanent dran erinnern kann wieviele Dateien maximal jemals in einem Verzeichnis waren, sollte man generell das Verzeichnis im Zuge der Defragmentierung mal kurz mitlöschen ! | ||
+ | Hier mal ein Beispiel für manuelle Defragmentierung auf dem PoFo: | ||
+ | Verzeichnis C:\TEST soll defragmentiert werden unter Benutzung einer MMC in A:, die noch genug Platz hat.\\ | ||
+ | |||
+ | |||
+ | |||
+ | === Auslagerungsverzeichnis erstellen: === | ||
+ | |||
+ | * md a:\defrag | ||
+ | * Dateien von C: | ||
+ | * nach A:\DEFRAG kopieren: | ||
+ | * copy c:\test a:\defrag | ||
+ | * Dateien in C:\TEST löschen: | ||
+ | * for %a in (c:\test\* . *) do del c:\test\% a | ||
+ | * C:\TEST entfernen um | ||
+ | * verschwendete DIR-Cluster wieder | ||
+ | * nutzbar zu machen: | ||
+ | * rd c:\test | ||
+ | * C:\TEST wieder anlegen: md c:\test | ||
+ | * Genaue Anzahl DIR-Cluster in sortierter | ||
+ | * Reihenfolge anlegen: | ||
+ | * for %a in (a: | ||
+ | * Dateien von A:\DEFRAG wieder nach | ||
+ | * C:\TEST kopieren: | ||
+ | * for %a in (a: | ||
+ | * Defragmentierung ist nun abgeschlossen ! | ||
+ | * Jetzt wird A:\DEFRAG wieder gelöscht, zunächst die Dateien: | ||
+ | * for %a in (a: | ||
+ | * Und nun wird A:\DEFRAG gelöscht: | ||
+ | * rd a:\defrag | ||
+ | * endgültiges Ende ! | ||
+ | |||
+ | Das ganze nocheinmal als automatisch ablaufende Batchdatei: | ||
+ | |||
+ | <code dos> | ||
+ | @echo off | ||
+ | md a:\defrag | ||
+ | copy c:\test a:\defrag | ||
+ | for % %a in (c: | ||
+ | rd c:\test | ||
+ | md c:\test | ||
+ | for % %a in (a: | ||
+ | for % %a in (a: | ||
+ | for % %a in (a: | ||
+ | rd a:\defrag | ||
+ | </ | ||
+ | |||
+ | Und zu guter letzt als flexible **DEFRAG.BAT**: | ||
+ | |||
+ | <code dos> | ||
+ | @echo off | ||
+ | md a:\defrag | ||
+ | copy %1 a:\defrag | ||
+ | for % %a in (%1\*.*) do del %1\%%a | ||
+ | rd %1 | ||
+ | md %1 | ||
+ | for % %a in (a: | ||
+ | for % %a in (a: | ||
+ | for % %a in (a: | ||
+ | rd a:\defrag | ||
+ | </ | ||
+ | |||
+ | die mit " | ||
+ | |||
+ | ===== Schlußwort ===== | ||
+ | |||
+ | Jeder von uns hat sein ganz eigenes Ordnungssystem und dementsprechend klare Vorstellungen darüber. Darum sind die hier gezeigten Tips als Anregungen für eigene Überlegungen zu verstehen und zu gebrauchen.\\ | ||
+ | |||
+ | Viel Spaß dabei wünscht Euch: | ||
+ | Lars Aschenbach | ||
+ | |||