CH629901A5 - Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text. - Google Patents
Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text. Download PDFInfo
- Publication number
- CH629901A5 CH629901A5 CH21378A CH21378A CH629901A5 CH 629901 A5 CH629901 A5 CH 629901A5 CH 21378 A CH21378 A CH 21378A CH 21378 A CH21378 A CH 21378A CH 629901 A5 CH629901 A5 CH 629901A5
- Authority
- CH
- Switzerland
- Prior art keywords
- memory
- block
- segment
- data
- text
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Steu- 35 Textverarbeitungseinrichtung mit segmentiertem Massenspei-ern einer Textverarbeitungseinrichtung beim Speichern und Le- cher vorzusehen, das die erwähnten NachteUe vermeidet. Sein sen von Text, welche Einrichtung wenigstens einen seriellen Zweck ist die erhöhte Ausnutzung des vorhandenen Speicher-Speicher mit einem Speichermedium umfasst, das in gleich gros- raumes dank verbesserter Steuermethoden, und gesteigerte se Segmente mit je einer Anzahl gleicher Abschnitte unterteilt Richtigkeit der gespeicherten Daten sowie rascherer Zugriff zu ist. Während des Verfahrensablaufs wird ein Protokoll mit 40 diesen dank zweckmässigerer Protokollführung über die Spei-Daten über die Verwendung von Segmenten und Abschnitten chervorgänge.
des Mediums geführt. Die Erfindung wird nunmehr anhand einer bevorzugten
In den amerikanischen Patentschriften No. 3 753 239 und Ausführungsform der Erfindung in Verbindung mit den beige-3 781 813 ist ein Verfahren und eine Anordnung für eine fort- fügten Zeichnungen näher beschrieben.
laufende Aufzeichnung (Log) der Verwendung von Speicher- 4s In den Zeichnungen zeigt :
blocks in einem seriellen Massenspeicher beschrieben, wobei Fig. 1 ein Blockschaltbild eines Teils eines Textverarbei-
einzelne Blocks zur Speicherung von neuen und revidierten tungssystems mit einem segmentierten seriellen Speicher, der
Textseiten zugeordnet werden. Dadurch ist es bei der Bedie- erfindungsgemäss angesteuert werden kann.
nung einer Textverarbeitungseinrichtung nicht mehr notwendig, Fign. 2 und 3 die einleitende Arbeitsweise des Systems, wo-die fortlaufende logische Folge von Speicherblöcken zu verfol- so bei das zuletzt auf den neuesten Stand gebrachte Verzeichnis im gen, die den einzelnen Seiten eines zu erstellenden oder zu revi- Speicher für die Steuerung des Zugriffs zu diesem Speicher be-dierenden Dokuments entsprechen. Diese fortlaufende Auf- nutzt wird.
Zeichnung (Log) wird dabei in einem Block am Anfang des Fign. 4 bis 9 die wülkürliche Auswahl eines Blocks,
Speichers nach jedem Speichervorgang oder nach jedem Lösch- Fig. 10 die Auswahl des nächstfolgenden Blocks,
Vorgang aufgezeichnet. 55 Fig. 11 die Abschaltung eines Kurzzeitspeichers bei der
Auswahl sowohl des nächstfolgenden Blocks, als auch bei der
Eine Unzulänglichkeit dieses Verfahrens ist die übermässig Aufzeichnung des Blocks,
lange Zugriffszeit, die nach einem Speichervorgang unter Um- Fig. 12 eine Teil-Leseauswahl eines Blocks,
ständen benötigt wird, um jenen Speicherblock zu erreichen, in Fign. 13 bis 20 die Aufzeichnungsoperation eines Blocks,
welchem die fortlaufende Aufzeichnung (Log) einzutragen bzw. 60 Fig. 21 die Fortschreibung als Teil der Aufzeichnung eines neu zu schreiben ist. Der bewusste Speicherblock kann örtlich Blocks und verhältnismässig weit von dem Speicherplatz entfernt sein, wo Fig. 22 die Fehlernachführung in Verbindung mit der Auf sich der Textspeichervorgang abgespielt hat. Durch die oft wie- Zeichnung eines Blocks.
derholten Zugriffsbewegungen über lange Strecken, die bei dem Demgemäss werden ein Verfahren und eine Anordnung genannten Verfahren vom Zugriffsmechanismus abverlangt 65 zum Speichern und Abrufen von Textblöcken aufgezeigt, die werden, erhöht sich die Abnützung dieser elektromechanischen normalerweise Seiten eines Dokumentes darstellen und die als Teile. Im weiteren ist in diesen Patenschriften die Möglichkeit eine Folge von nicht gekennzeichneten Abschnitten unter-nicht berücksichtigt worden, dass beim Lesen des Log im Spei- schiedlicher Grösse auf Segmenten eines Serienspeichers abge
3 629 901
speichert sind. Die fehlende Kennzeichnung soll dabei bedeu- begrenzt. Abschnitte, in denen kein Text gespeichert ist, (Feh-
ten, dass in dem Text keine Seitenzahl oder irgendeine andere 1er, unbrauchbar oder unbenutzt, verfügbar) die zwischen fortlaufende Angabe enthalten ist. Die Anordnung versucht Blockanfängen liegen, ändern daran nichts. Die Nummer eines dabei, eine möglichst gute Ausnutzung des verfügbaren Spei- Datenblockes (Seitenzahl) wird durch die relative Lage des cherplatzes dadurch zu erreichen, dass die Blöcke in den Seg- 5 Blockanfangs gemäss Aufzeichnung in der Systemliste be-
menten des Speichers dicht beisammen abgespeichert werden. stimmt. Beispielsweise findet man den Block Nr. 3 dadurch,
In diesem Speicher werden Daten seriell von und nach dass man durch Überprüfung der Systemliste und des System-einem Speichersegment übertragen, jedoch kann ein wahlfreier logs der Kennzeichen den dritten Blockanfang ermittelt. Das oder pseudowahlfreier Zugriff zu dem Speichersegment auf der Auffinden irgendeines Blocks mit der Nr. i wird beispielsweise Ebene eines der Abschnitte erfolgen. Alle Segmente sind von io dadurch ermöglicht, dass man das Speichersegment, das den fester und gleicher Länge. Jedes Segment enthält auch eine An- Anfang des i-ten Blockes enthält, ermittelt und dann den richti-zahl von Abschnitten, wobei jeder der Abschnitte eine feste und gen Abschnitt liest, sowie die darauffolgenden, nur Daten entgleiche Länge aufweist. haltenden Abschnitte dieses Segmentes oder nachfolgender
Da die Daten seriell ohne Kennzeichnung einer laufenden Segmente in der Systemliste bis 1.) ein weiterer (i 4- 1) Block-Nummer (Seitenzahl) abgespeichert werden, lässt sich irgendein is anfangsabschnitt festgestellt wird oder 2.) die Liste endet. Nicht
Text nicht allein durch die Untersuchung der gespeicherten benutzte oder fehlerhafte und daher unbrauchbare Abschnitte
Textteile erkennen. Aus diesem Grund wird verfahrensgemäss werden übersprungen.
ein Verzeichnis geführt, aus dem die laufende Nummer der Das fortlaufende System-Verzeichnis, welches sowohl die Blöcke und der Ort dieser Blöcke im Speicher feststellbar sind. erwähnte Liste als auch das Log umfasst, steckt in einem wahl-Diese fortlaufende Aufzeichnung besteht aus zwei Teilen: 1. aus 20 freien Speicher der Anordnung und wird dann im segmentier-einer Systemliste, d.h. einer Liste der logischen Reihenfolge der ten, seriellen Speicher aufgezeichnet. Um Widersprüche zu verbenutzten Speichersegmente und 2. aus einem Systemlog, das meiden, die beim Stromausfall auftreten können, wenn dabei eine fortlaufende Aufzeichnung der Datenkennzeichnung eines die im wahlfreien Speicher aufgezeichneten Log-Daten gelöscht jeden Speichersegmentes im Speicher ist. werden, werden diese Daten jedesmal in den seriellen Speicher Die Anordnung versucht dabei die einzelnen Blöcke auf die 25 überschrieben, nachdem eine Datenaufzeichnung in ihm erfolgt Segmente des Speichers zu packen, jedoch nicht notwendiger- ist. Die Log-Daten werden zur Erhöhung der Zuverlässigkeit weise auf unmittelbar nebeneinander liegende Speichersegmen- und zur Verkürzung der Zugriffszeit während eines Speicherte. Ein Block kann beispielsweise über mehrere Speicherseg- Vorganges an mehreren, örtlich getrennten Stellen des seriellen mente gehen und die in der Systemliste aufgeführten Speicher- Speichers aufgezeichnet. Bei jedem Speichervorgang wird das segmente stellen eine Gruppe von Blöcken, beispielsweise ein 30 örtlich am nächsten liegende Log auf den neuesten Stand ge-aus mehreren Seiten bestehendes Dokument dar. Die Systemli- bracht. Das Log umfasst auch den Stand eines Aktivitätszählers, ste gibt daher die logische Reihenfolge der Speichersegmente der bei jeder Nachführung erhöht wird. Die neueste und richtige und nicht ein Verzeichnis ihrer tatsächlichen Reihenfolge an. Es Logeintragung kann beim Inbetriebsetzen des Systems auf diese sei beispielsweise die hypothetische Liste von Speichersegmen- Weise ermittelt werden.
ten betrachtet: f/m/d/e. Das Segment f liegt örtlich und logisch 35 Das Systemlog unterhält auch Aufzeichnungen jener Spei-vor dem Segment m. Das Segment m liegt logisch jedoch nicht cherabschnitte, welche nicht-ausmerzbare Fehler enthalten, örtlich vor dem Segment d. Die beiden Segmente d und e liegen damit keine Benutzung dieser Abschnitte versucht wird. Zusätzörtlich nebeneinander, obgleich die beiden Segmente m und d lieh ist die Zahl dieser fehlerbehafteten Abschnitte festgehalten und die beiden Segmente f und m örtlich nicht nebeneinander und der Benutzer der Textverarbeitungseinrichtung wird ge-liegen. In der Liste ist dabei jede Kombination von aufeinander- 40 warnt, wenn diese Zahl einen vorgegebenen Wert erreicht. Die-folgenden, nicht aufeinanderfolgenden, örtlich vor- und nachher se Warnung verhindert die weitere Benutzung nicht, bedeutet liegenden Anordnungen von Segmenten möglich. Die Liste aber, dass unter Umständen die Zuverlässigkeit der Speicherkennzeichnet die logische Reihenfolge, in der die Daten abge- einrichtung fraglich ist.
speichert sind. Wenn der Benutzer der Textverarbeitungseinrichtung will-In diesem Beispiel folgt beispielsweise m dem Segment f, 45 kürlich einen Block auswählt, dann kann dieser Block durch ihn und das Segment d folgt dem Segment m. Das Segment d folgt überprüft und korrigiert werden. So kann dieser Block bei-nicht dem Segment f, und hinter dem Segment e folgt kein wei- spielsweise durch zusätzlichen Text erweitert werden, so dass er teres Segment. Das Segment m geht dem Segment d voraus, und nicht länger in dem Speicherplatz, den er zuvor im Speicher das Segment f geht dem Segment m voraus. Das Segment f geht eingenommen hat, untergebracht werden kann. Wenn das Ende nicht dem Segment d voraus und dem Segment f geht gar kein so dieses Blocks ein Speichersegment mit der nächsthöheren Segment voraus. Block-Nummer mitbenutzt, kann es zu Schwierigkeiten kom-Das Systemlog der Kenndaten der Speichersegmente stellt men. Wegen dieses möglichen Konflikts wird das System alle ein Verzeichnis darüber dar, wie jeder Abschnitt eines jeden sich an das Ende des ausgewählten Blockes anschliessenden Segmentes derzeit in der Anordnung benutzt wird. Jedem Ab- Daten, die dieses Segment mitbenutzen, nach einem anderen schnitt eines Segmentes ist dabei nur eines der folgenden Cha- 55 Speicherort überführen, wenn ein solcher Konflikt mit anderen rakteristika in dem fortlaufenden Systemlog zugeordnet: 1. Daten vorliegt. Diese den Konflikt verursachenden Daten wer-nicht benutzt, verfügbar, 2. Fehler, unbrauchbar, 3. nur Daten, den vor dem ursprünglichen Lesen des angeforderten Blockes oder 4. Blockbeginn und Daten. Ein Datenblock (Seite) kann nach einem anderen Ort überführt, und zwar über einen Puffer-dabei über mehrere Abschnitte eines Speichersegments oder Speicher mit wahlfreiem Zugriff, der die angeforderten Daten sogar über mehrere Speichersegmente gehen. In einem Ab- <>0 hält. Diese Daten werden dann nach einem anderen Segment schnitt kann nicht mehr als ein Datenblock vorkommen. Wenn übertragen, das zunächst nicht in der Systemliste oder dem fortein Datenblock über mehrere Speichersegmente geht, dann lie- laufenden Systemlog enthalten ist. Diese an einem anderen Ort gen sie in der Systemliste nebeneinander. Wenn ein Block Ab- abgespeicherten Daten werden nicht in das Systemlog aufge-schnitte eines Segmentes überspannt, dann liegen diese Ab- nommen, wenn 1) dies nicht nach Abspeicherung der ursprüng-schnitte in dem Speichersegment hintereinander. Ein einzelner 65 lieh angeforderten und korrigierten Daten im Speicher tatsäch-Block wird durch eine Anfangskennzeichnung des Blocks in lieh notwendig ist, oder 2) wenn nicht bei dem Versuch Fehler dem Systemlog und durch die Anfangskennzeichnung eines auftreten, die angeforderten Daten in dem Segment abzuspei-nächstfolgenden Blocks oder durch das Ende der Systemliste ehern, von dem sie ursprünglich kamen, oder aber 3) wenn der
629 901
auf den ursprünglich angeforderten Block folgende Block nicht ebenfalls ausgewählt ist. Falls die Daten nicht an einem anderen Ort untergebracht werden können, wird der Datenblock doch abgerufen, und dem Benutzer wird diese besondere Bedingung mitgeteilt. Dieses im Log nicht gekennzeichnete Segment wird als Kurzzeitspeicher bezeichnet.
Alle Daten, die bei einer solchen Überführung nach einem neuen Speicherplatz nicht gelesen werden können, werden im Kurzzeitspeicher durch unverwechselbare Fehlercodes gekennzeichnet. Daher wird während dieser Umspeicherung der Inhalt eines Blockes nicht zusammengezogen, und alle Blockanfänge bleiben erhalten.
In Fig. 1 ist ein Teil eines Textverarbeitungssystems mit einer Datenverarbeitungsanlage 1 gezeigt, die an einer Adressenleitung 2 angeschlossen ist, über die in einem Steuerspeicher befindliche Befehle adressiert und über die Leitung 4 an den Prozessor abgegeben werden. Ein Systemtaktgenerator 5 liefert die Taktsignale über die mit C bezeichneten Leitungen. Die Datenverarbeitungsanlage 1 überträgt über Leitung 6 Steuersignale an einen segmentierten, externen seriellen Speicher 9, der beispielsweise ein Plattenspeicher, dessen verschiedene Spuren die einzelnen Segmente darstellen, oder auch ein Magnetbandspeicher sein kann, dessen Datenblöcke die Segmente darstellen. Der Speicher 9 liefert Unterbrechungs- und Statusinformation über Leitungen 7 bzw. 8 an die Datenverarbeitungsanlage!.
Ein Speicher 21 mit wahlfreiem Zugriff dient der Speicherung von Textdaten, der Erzeugung und Korrektur von Text und dient insgesamt als Pufferspeicher für die Rückspeicherung von Daten im externen Speicher 9. Die Speichersteuerung 18 steuert den Zugriff zu dem Speicher 21 über eine Freigabeleitung 17, eine Datenleitung 19 und eine Adressenleitung 20. Eine unmittelbare Datenübertragung zwischen externem Speicher 9 und Arbeitsspeicher 21 unter Umgehung der Datenverarbeitungsanlage 1 wird über eine Direkt-Speicherzugriffssteue-rung 13 durchgeführt. Die Daten werden zwischen der Direkt-Speicherzugriffssteuerung 13 und der Speichersteuerung 18 über die Datenleitung 15 und zwischen externem Speicher und Direkt-Speicherzugriffssteuerung 13 über Datenleitung 12 übertragen. Die Adressenleitung 14 weist dabei auf die entsprechende Adresse im Arbeitsspeicher 21 hin, bei der entsprechend einem Freigabesignal auf der Leitung 16 Daten gelesen oder eingeschrieben werden sollen. Von der Direktspeicherzugriff ssteuerung 13 nach dem externen Speicher 9 übertragene Steuersignale und vom externen Speicher 9 nach der Direkt-Speichersteuerung übertragene Statussignale laufen über Leitungen 11 bzw. 10. Die Datenverarbeitungsanlage 1 überträgt die zum Lesen oder Schreiben im Arbeitsspeicher erforderliche Adresse über die Adressenleitung 22 an die Speichersteuerung 18. Die Daten werden zwischen Datenverarbeitungsanlage und der Speichersteuerung 18 in Verbindung mit einem auf Leitung 24 liegenden Freigabesignal über Datenleitung 23 übertragen.
Der Steuerspeicher 3 wird gewöhnlich als Festwertspeicher ausgeführt, bei dem die Befehle fest eingespeichert sind. Selbstverständlich lässt sich der Steuerspeicher auch in Form eines Speichers mit wahlfreiem Zugriff ausführen, so dass jedes Mal beim Einschalten des Systems die Befehle neu in den Steuerspeicher geladen werden müssen. In einer anderen Ausführungsform können Datenverarbeitungsanlage 1 und Steuerspeicher 3 vollständig durch eine kombinatorische logische Schaltung ersetzt werden, so dass kein Prozessor und keine Befehle verwendet werden. Die im folgenden noch zu beschreibenden Flussdiagramme machen es einem mit der Technik und Entwicklung logischer Schaltungen vertrauten Fachmann möglich, die zur Durchführung der Erfindung erforderlichen logischen Schaltungen zu entwerfen. Diese Flussdiagramme sind jedoch so angelegt, dass sie es einem Programmierer ohne weiteres gestatten, eine digitale Datenverarbeitungsanlage für einen Zugriff zu einem segmentierten externen Speicher und für eine laufende Aufzeichnung der Benutzung dieses Speichers gemäss dem hier verwirklichten Erfindungsgedanken zu programmieren.
5 Fig. 2 zeigt die Anlaufphase des Systems, bei der eine Anzahl von im externen Speicher 9 aufgezeichneten Verzeichnissen untersucht werden, um das zuletzt erstellte Systemlog festzustellen, das sich aus einem Zählerstand in einem Aktivitätszählerfeld ermitteln lässt. Dabei geht man zunächst von der An-lo nähme aus, dass der externe Speicher 9 eine Anzahl X von Systemlogs enthält. Block 31 zeigt, dass die Register «Zähler» und «Lesen OK» auf Null gebracht und das Register N auf Eins eingestellt werden. Im Block 32 wird die Verzeichnisnummer N aus dem Speicher 9 gelesen. Bei 33 wird die gelesene Zahl auf is Lesefehler untersucht. Bei erfolgreichem Lesevorgang wird bei 36 das Register N um 1 erhöht, und bei 37 wird der Inhalt des N-Registers mit X verglichen. Angenommen der Inhalt des Registers ist nicht grösser als X, dann müssen weitere Verzeichnisse gelesen werden, und dieser Vorgang wird durch Auslesen des 2C nächsten Systemverzeichnisses mit Nr. N aus dem Speicher 9 wiederholt, wie dies bei 32 angedeutet ist. Angenommen, dass bei 33 der Lesevorgang erfolgreich verlaufen ist, wird bei 34 das «Lesen OK»-Register auf Eins eingestellt, und der am Beginn des Verzeichnisses eingespeicherte Zählerstand des Aktivitäts-25 zählers wird mit dem Inhalt des Zählerregisters bei 35 verglichen.
Ist der Inhalt des Aktivitätszählers grösser als oder gleich Null, dann wird das Verzeichnis, wie bei Block 38 angegeben, in den Arbeitsspeicher 21 eingespeichert. (In diesem Beispiel wird 30 der Zählerstand des Aktivitätszählers bei dem ersten Vergleich des Zählerstandes des Aktivitätszählers mit dem Inhalt des Zählerregisters immer gleich oder grösser sein als der Inhalt des Zählerregisters, da das Zählerregister zu Anfang auf Null eingestellt war.) Bei 39 wird das Zählerregister mit dem Inhalt des 35 Aktivitätszählers geladen, und bei 36 wird der Inhalt des Registers N um Eins erhöht. Jedesmal dann, wenn der Inhalt des Aktivitätszählers grösser ist als der Inhalt des Zählerregisters, wird ein Verzeichnis im Arbeitsspeicher 21 eingespeichert. Wenn bei 37 alle Verzeichnisse gelesen sind, dann ist das im 40 Arbeitsspeicher 21 liegende Verzeichnis dasjenige, das mit dem höchsten Zählerstand des Aktivitätszählers mit Erfolg gelesen worden ist.
Geht man von Fig. 2 auf Fig. 3 über, dann wird nach erfolgreichem Lesen aller Verzeichnisse das Register «Lesen OK» bei 45 40 überprüft, ob der Inhalt 0 oder 1 ist. Ist der Inhalt eine Eins, dann wurde ein gültiges Verzeichnis aus dem Speicher 9 entnommen, und der Ablauf geht im Block 42 zurück an den Benutzer des Textverarbeitungssystems. Wenn jedoch kein gültiges Verzeichnis gelesen wurde, dann wird bei 41 der Benutzer 50 davon verständigt, dass ein gültiges Verzeichnis nicht vorliegt, wodurch ein weiterer Zugriff zum externen Speicher 9 verhindert wird.
In den Fign. 4 bis 9 wird ein beliebiger Block ausgewählt, wobei eine durch den Benutzer und wiederum durch das Text-55 Verarbeitungssystem an die Verzeichnis- und Steuerschaltung gekennzeichnete beliebige Seite aus dem externen Speicher 9 abgerufen und in den Speicher 21 mit wahlfreiem Zugriff eingespeichert wird. Dieser Vorgang beginnt in Fig. 4 mit folgenden Annahmen. Für dieses Beispiel soll die angeforderte Blocknum-60 mer im N-Register enthalten sein und wird mit N bezeichnet, die im Arbeitsspeicher liegende Anfangsadresse, bei der die vom externen Speicher 9 abgerufenen Daten abgespeichert werden sollen, wird mit B bezeichnet und ist im B-Register eingespeichert, und die nicht benutzte Kapazität des Arbeitsspeichers 65 21 wird mit M bezeichnet und ist im M-Register abgespeichert. Die Kapazität M ist eine ganze Zahl, die die Grösse des Arbeitsspeichers 21 und des Puffers B anzeigt. Dies ist die Anzahl ganzer Abschnitte im Speicher 9, die der Pufferspeicher B unter
5 629 901
den gegebenen Umständen aufnehmen kann. Für eine beliebige externen Speicher 9 eingespeicherten Block im Arbeitsspeicher
Blockauswahl muss M mindestens gleich der Anzahl der Ab- 21 abgespeichert werden kann.
schnitte eines Segments minus 1 sein. Für dieses Beispiel sei Bei 46 soll nunmehr der wahrscheinlichere Fall betrachtet angenommen, dass jedes Segment im externen Speicher 9 acht werden, dass der bezeichnete Block N vorhanden ist. Beginnt
Abschnitte enthält. Daher muss M mindestens gleich 7 sein. 5 der nächste Block N+1 auf dem gleichen Segment des Spei-
Am Anfang wird bei 46 geprüft, ob ein Block N vorhanden chers, auf dem auch der Block N endet, dann kann es zu einer ist, wobei die Systemaufzeichnung des Verzeichnisses abgetastet Störung kommen. Das Problem besteht darin, dass dann, wenn und die Daten- und Blockanfangsabschnitte gezählt werden. Ist der Text im Block N abgerufen und erweitert wird, dieser neue der Datenblock N nicht vorhanden, dann können natürlich auch Text nicht mehr in denselben Speicherplatz passt, aus dem er keinerlei Textdaten aus dem externen Speicher 9 nach dem Ar- 10 entnommen wurde. Wenn der nächste Textblock nicht im glei-beitsspeicher 21 übertragen werden. Das anschliessend be- chen Segment beginnt, in dem der bezeichnete Block N endet, schriebene Verfahren wird für die Einstellung der Speicher- dann kann es keine Schwierigkeiten geben, da jede Ausdehnung Steuerung für die Abspeicherung eines weiteren, auf den letzten eines Textes über die Segmentgrenze in einem bisher unbenutz-zuvor eingespeicherten Block folgenden Textes durchgeführt. ten Segment abgespeichert würde. In Block 47 Fig. 4 sei der Das in der Speichersteuerung verwirklichte System wird 15 störungsfreie Fall betrachtet. Dann wird bei 48 der Kurzzeitwohl am besten an diesem Punkt genau beschrieben, nämlich Speicher gelöscht, und das Verfahren wird bei C in Fig. 7 fortge-die Verwendung von Auswahlzeigern und Aufzeichnungszei- setzt. Bei 70 wird dann das Segmentfeld des SP-Registers auf gern. In dem System werden zwei in Registern abgespeicherte die Nummer des ersten Segmentes, in dem der Block N abge-Zeiger verwendet, die auf Speicherplätze im segmentierten ex- speichert ist, eingestellt. Diese Information wird dem Verzeich-ternen Speicher 9 hinweisen. Diese Zeiger enthalten jeweils ein 20 nis entnommen. Bei 71 wird das Abschnittsfeld des SP-Regi-einem Segment im Speicher 9 entsprechendes Feld und ein wei- sters auf die Nummer des ersten Datenabschnittes des Blockes teres einem bestimmten Abschnitt in diesem Segment entspre- N aus dem Systemaufzeichnimgsabschnitt des Verzeichnisses chendes Feld. Der Auswahlzeiger SP soll dabei auf den nächsten entnommene Information eingestellt. Ist bei 72 der anzusteu-Abschnitt eines anzusteuernden oder aufzurufenden Segmentes ernde Block der erste Block eines Dokumentes, dann wird bei hinweisen. Da in diesem System ein Block nur teilweise gelesen 25 73 das Segmentfeld des RP-Registers auf die Segmentnummer werden kann, wie dies in den nachfolgenden Flussdiagrammen des Speichers 9 eingestellt, der das erste Segment des Blockes N im einzelnen noch gezeigt ist, und um diesen teilweisen Lesevor- bei 73 enthält, und bei 74 wird das Abschnittsfeld des RP-gang zu einem späteren Zeitpunkt forzusetzen und zu beenden, Registers auf Null eingestellt.
weist der Zeiger SP nicht immer auf den Anfang eines Blockes Bevor in Fig. 8 fortgefahren wird, soll angenommen werden,
hin. Wenn sowohl das Segmentfeld als auch das Abschnittsfeld 30 dass der angeforderte Block N nicht der erste Block ist, so dass von SP Null ist, dann wurden alle Daten ausgewählt. Blöcke der Ablauf bei 75 fortgesetzt wird, wo das Segmentfeld des RP-
können nur noch erzeugt, nicht jedoch revidiert werden, wenn Registers auf die Nummer des letzten Datensegmentes des der gesamte Zeiger SP Null ist. Blockes N-l eingestellt wird und bei 76 das Abschnittsfeld des
Der Aufzeichnungszeiger RP weist auf den letzten im exter- RP-Registers auf die Nummer des letzten Abschnittes einge-
nen Speicher abgespeicherten Abschnitt eines Segmentes hin. 35 stellt wird, auf dem Daten des Blockes N-l gespeichert wurden.
Wenn das Abschnittsfeld des Aufzeichnungszeigers RP gleich Fährt man bei D in Fig. 8 fort, dann bestimmt die Entschei-
Null ist, dann zeigt dies, dass das im Segmentfeld bezeichnete dung bei 78, ob ein partieller Lesevorgang vorliegt dadurch,
Segment in keinem Teil mit einer Aufzeichnung versehen ist. dass festgestellt wird, ob im Arbeitsspeicher 21 ausreichend
Der Zeiger RP kann niemals logisch grösser oder gleich SP sein, Speicherplatz zur Verfügung steht, um irgendeinen jenseits des wie dies aus der Systemliste und dem Systemlog hervorgeht. Bei 40 Auswahlzeigers, aber noch auf dem gleichen, durch das Seg-
dieser Definition gilt, dass dann, wenn der Inhalt des Auswahl- mentfeld des Auswahlzeigers gekennzeichneten Segments lie-
zeigerregisters gleich Null ist, der Auswahlzeiger als nicht vor- genden Abschnitt aufzunehmen. Wenn bei 78 M (die Speicher-
handen betrachtet wird. Die Zeiger können wohl auf das gleiche grosse in Abschnitten) gross genug ist, um alle Abschnitte des
Speichersegment, jedoch nicht auf den gleichen Abschnitt die- Blockes N in dem durch das Segmentfeld im SP-Register be-
ses Segmentes hinweisen. 45 zeichneten Segment aufzunehmen, dann werden bei 79 die
Nach Abschluss einer Blockspeicheroperation ist der logisch Textabschnitte des SP-Segmentes mit dem Block N bei der zwischen RP und SP liegende Bereich in dem Systemlog bezüg- Adresse B in den Arbeitsspeicher 21 eingelesen. Treten keine lieh der Datenkennzeichnung als unbenutzt gekennzeichnet mit Lesefehler auf, dann geht es bei 80 weiter nach Dl in Fig. 9.
Ausnahme der durch Fehler unbenutzbaren Abschnitte. Ist der Wenn jedoch Lesefehler auftreten, dann werden bei 81 Lese-
Auswahlzeiger Null, dann wird der zwischen RP und dem Ende 50 fehlercodes vor jedem Speicherplatz in jedem Lesefehler ent-
der Systemliste liegende Bereich in dem Systemlog als unbe- haltenden Abschnitt im Pufferspeicher B eingespeichert, wo-
nutzt gekennzeichnet. Jedes Segment, das keine Daten enthält, durch dem Benutzer angezeigt wird, wo Lesefehler aufgetreten wird aus der Systemliste entfernt. Dadurch wird sichergestellt, sind, worauf das Verfahren weiter nach Dl läuft.
dass für nachfolgende Arbeiten Speicherplatz zur Verfügung Wenn bei 78 in Fig. 8 M nicht gross genug war, den Block N
steht. 55 im SP-Segment aufzunehmen, dann wird bei 82 dem Benutzer
In Fig. 4 werden für den Fall, dass ein Block nicht vorhan- mitgeteilt, dass der Lesevorgang nicht vollständig durchgeführt den ist, bei 49 beide Felder des SP-Registers auf Null einge- ist. Wenn bei 83 mit M gleich Null der Speicher als voll gekenn-
stellt. Das Kurzzeitregister wird dabei gelöscht. Bei 50 wird das zeichnet ist, dann läuft das Verfahren weiter nach Dl und wenn
Segmentfeld des RP-Registers auf das letzte in der Systemliste M nicht gleich Null ist, dann wird bei 84 soviel aus dem Block N
befindliche logisch folgende Segment mit Daten eingestellt, und m im Segment SP ausgelesen, als der Arbeitsspeicher 21 aufneh-
bei 51 wird das Abschnittsfeld des RP-Registers auf den letzten men kann. Alle in den Arbeitsspeicher 21 eingelesenen Daten mit Textdaten versehenen Abschnitt der im Segmentfeldab- werden auf Fehler überprüft, und es werden, falls erforderlich,
schnitt von RP angegebenen Segmentnummer eingestellt. Bei gemäss 80 und 81 Fehlercodes eingegeben.
52 wird der Benutzer davon in Kenntnis gesetzt, dass der Block Ab D1 in Fig. 9 wird bei 86 angenommen, dass wegen unzu-
nicht gefunden wurde. Der Auswahlzeiger wird daraufhin so 65 reichender Pufferkapazität ein Teil-Lesevorgang erforderlich eingestellt, dass er anzeigt, dass es keinen weiteren abgespei- war. Bei 87 wird das Auswahlzeigerregister auf das nächste cherten Text zum Auswählen gibt, und der Aufzeichnungszeiger nicht gelesene Segment und den Abschnitt des Blockes N einge-
wird so eingestellt, dass Text unmittelbar hinter dem zuletzt im stellt, so dass das Lesen an diesem Punkt fortgesetzt werden
629 901
kann, wenn Speicherplatz im Arbeitsspeicher 21 zur Verfügung steht. Wenn bei den in den Arbeitsspeicher 21 eingeschriebenen Daten Fehlercodes vorkommen, dann wird der Benutzer davon in Kenntnis gesetzt. Ist dies nicht der Fall, geht das System zurück an den Benutzer.
In Fig. 9 soll bei 86 nunmehr der Fall betrachtet werden, bei dem kein teilweises Lesen erfolgt ist. Bei 91 wird das M-Regi-ster um die Anzahl der soeben gelesenen Datenabschnitte vermindert. Wenn bei 92 der Block N+1 in dem Segment SP vorhanden ist, dann wurde der ganze Block N gelesen und bei 93 wird das Abschnittsfeld des SP-Registers auf den Blockanfangsabschnitt des Blockes N +1 eingestellt. Der Auswahlzeiger zeigt damit auf den Anfang des nächsten Blockes in der logischen Folge von Blöcken auf dem Dokument. Zu diesem Zeitpunkt wird eine Überprüfung auf Fehlercodes im Arbeitsspeicher 21 durchgeführt und der Benutzer von gegebenenfalls vorhandenen Fehlercodes in Kenntnis gesetzt.
Ist bei 92 der Block N+1 in dem Segment SP nicht enthalten, dann wird die Systemliste des Verzeichnisses bei 94 daraufhin überprüft, ob auf das durch das Segmentfeld im SP-Register bezeichnete Segment ein weiteres Segment folgt. Ist dies nicht der Fall, dann wird bei 98 das SP-Register auf Null eingestellt und damit angezeigt, dass keine weiteren Blöcke vorhanden sind, die gelesen werden können. Nach Mitteilung von gegebenenfalls zuvor in den Arbeitsspeicher 21 eingelesenen Fehlercodes wird das System an den Benutzer zurückgegeben. Wenn bei 94 festgestellt wird, dass auf das durch den Auswahlzeiger festgelegte Segment ein weiteres Segment folgt, dann wird das Segmentfeld des SP-Registers auf das nachfolgende Segment eingestellt, und das Abschnittsfeld des SP-Registers wird auf diesen ersten Datenabschnitt dieses nächstfolgenden Segments bei 95 eingestellt, wobei diese Information aus dem Verzeichnis abgerufen wird. Wenn bei 96 das Abschnittsfeld des SP-Registers auf den Abschnitt eines Blockanfangs eingestellt ist, dann ist das Lesen des angeforderten Blockes beendet, und das System wird nach Mitteilung von im Arbeitsspeicher gegebenenfalls liegenden Fehlercodes an den Benutzer zurückgegeben. Zeigt jedoch das Abschnittsfeld des SP-Registers nicht auf einen Blockanfang eines nächstfolgenden Segmentes, dann wird bei 97 die Adresse B um die Menge der soeben gelesenen Daten erhöht, und das Verfahren geht weiter nach D und fährt mit dem Lesen des nächsten Segmentes fort.
Nunmehr sei in Fig. 4 bei 47 die Möglichkeit eines Konfliktes angenommen. D.h., dass der nächste Block (N+1) im gleichen Segment wie der angeforderte Block liegt. Dieser Konflikt tritt dann ein, wenn der angeforderte Block erweitert wird, so dass in dem Segment, in dem der Block N endet nicht genügend Platz vorhanden ist, um den erweiterten Block N aufzuzeichnen, ohne dabei Daten in den Abschnitten einzuschreiben, in denen der Block N+1 abgespeichert ist.
Geht man nunmehr nach B in Fig. 5 über, dann wird bei 55 ein mit ES bezeichnetes leeres Segment im Speicher 9 aufgefunden. Dieses leere Segment wird durch Bezugnahme auf das Verzeichnis als ein Segment ermittelt, für das das Systemlog weder Daten, noch wegen Fehler unbenutzbare Abschnitte aufweist, und das auch nicht in dem die Systemliste enthaltenden Teil des Verzeichnisses enthalten ist. Wenn bei 56 angenommen wird, dass im Speicher 9 ein leeres Segment zur Verfügung steht, dann werden bei 57 die einen Konflikt hervorrufenden Daten aus dem den Block N enthaltenden letzten Segment in die Adresse B des Arbeitsspeichers 21 eingelesen. Diese störenden Daten sind dabei alle diejenigen Daten des Segments, in dem der Block N endet und die auf das Ende des Blockes N folgen. Der Arbeitsspeicher 21 wirkt für diese Daten als zeitweiliger Pufferspeicher, so dass diese später nach dem Segment ES übertragen werden können. Wenn bei 58 beim Lesen der einen Konflikt hervorrufenden Daten Fehler festgestellt werden, dann werden für alle diejenigen aus dem Speicher 9 in den Arbeitsspeicher 21
eingelesenen, fehlerbehafteten Abschnitte, wie bei 59 angezeigt, Fehlercodes in den Arbeitsspeicher 21 eingeschrieben. Nach Einschreiben der Fehlercodes oder wenn keine solche vorhanden sind, werden die einen Konflikt verursachenden Daten aus dem Arbeitsspeicher ausgelesen und, wie bei 60 angedeutet, in das Segment ES eingeschrieben.
Dieser Schreibvorgang wird bei 61 auf Schreibfehler überprüft, und beim Auftreten von Schreibfehlern werden die Datenkennzeichnungen des soeben eingeschriebenen Segmentes ES zeitweilig bei 62 für eine Anzeige von Daten in jedem Abschnitt eingestellt, wodurch eine erneute Verwendung dieses Segmentes bei einer versuchten Rückspeicherung der Daten verhindert wird. Das Verfahren läuft dann zurück nach 55, wo dann der Versuch unternommen wird, ein weiteres leeres Segment für eine Rückspeicherung der störenden Daten aufzufinden.
Wenn bei 61 angenommen wird, dass beim Rückspeichern der Daten keine Fehler aufgetreten sind, dann geht das Verfahren weiter nach B1 in Fig. 6. Bei 65 in Fig. 6 wird der Kurzzeitspeicher auf das Segment ES eingestellt. Bei 66 wird die das Segment ES betreffende notwendige Information aufbewahrt, so dass sie später in das Verzeichnis aufgenommen werden kann, sollte sie schliesslich benötigt werden. (Sie wird beispielsweise dann benötigt, wenn die abgerufenen Daten erweitert werden, da sonst die in dem Kurzzeitspeicher abgespeicherten störenden Daten überschrieben würden). Die für das Segment ES aufbewahrte Information ist die Segmentnummer, aus der die rückübertragenen Daten entnommen wurden, sie wird im A-Register abgespeichert und als A bezeichnet, sowie die Datenkennzeichen (unbenutzt-verfügbar, Fehler-unbenutzt, Daten oder Daten- und Blockanfang) des jetzt existierenden Segmentes ES. Fährt man fort nach 67, dann werden alle Segmente, die bei der Rückübertragung von Daten Schreibfehler aufwiesen, freigegeben. In Fig. 5 Block 62 waren bekanntlich diejenigen Segmente, bei denen Schreibfehler aufgetreten waren, in das Systemverzeichnis aufgenommen worden, um Daten in allen deren Abschnitten anzuzeigen. Die Freigabe des Segmentes unterstellt dabei, dass diese Datenabschnitte im Systemlog als nicht benutzt gekennzeichnet werden. Diese Segmente wurden niemals in der Systemliste aufgenommen.
Nach Freigabe aller derjenigen Segmente, in denen Schreibfehler aufgetreten sind, wird das Verfahren in Fig. 7 bei C fortgesetzt, so dass der angeforderte Block in den Arbeitsspeicher 21 eingeschrieben werden kann. Betrachtet man nochmals Fig. 5, dann wird bei einem möglichen Konflikt bei der versuchten Rückspeicherung von einen Konflikt verursachenden Daten, wenn bei 56 kein freies Segment aufgefunden wird, der Kurzzeitspeicher gelöscht und dem Benutzer bei 63 mitgeteilt, dass keine Rückspeicherung möglich ist. Das Verfahren läuft weiter nach B2 in Fig. 6. Nachdem alle Segmente, bei denen Schreibfehler vorgekommen sind, freigegeben worden sind, läuft das Verfahren weiter nach C.
Eine weitere Art der Systemoperation ist die Auswahl des nächstfolgenden Blockes unter der Annahme, dass bereits eine willkürliche Auswahl eines Blockes stattgefunden hat. Wichtig hierbei ist, dass am Ende der zuvor abgelaufenen Blockauswahloperation der Auswahlzeiger auf denjenigen Block eingestellt worden ist, der bei der Auswahloperation des nächstfolgenden Blocks angesteuert werden soll, wobei zu Beginn der Auswahloperation für den nächstfolgenden Block keine Ersteinstellung des Auswahlzeigers erfolgt. In Fig. 10 beginnt dieses Verfahren mit einer vom Benutzer kommenden Anforderung, den Block N in die Pufferspeicheradresse B des Arbeitsspeichers 21 einzule-sen, der eine Kapazität M aufweist. Bei 101 wird der Systemlogteil des Verzeichnisses abgefragt, ob es tatsächlich einen Block N gibt. Ist dies nicht der Fall, dann wird das Auswahlzeigerregister bei 103 auf Null gestellt, und bei 104 wird dem Benutzer mitgeteüt, dass der Block im Speicher 9 nicht aufgefunden wur6
5
10
15
20
25
30
35
40
45
50
55
60
65
629 901
de. Bei 105 geht das Speichersteuersystem wieder an den Benutzer zurück.
Es sei nunmehr angenommen, dass bei 101 im Systemlog des Verzeichnisses festgestellt wurde, dass ein Block vorhanden ist. Dann wird bei 102 das Unterprogramm SCPAD (Kurzzeitspeicher) aufgerufen.
Dieses Unterprogramm (Kurzzeitspeicher) ist in Fig. 11 gezeigt. Wenn bei 108 das Kurzzeitspeicherregister leer ist, läuft das Verfahren zurück an den Anrufer, nämlich Punkt D in Fig. 10. Das Verfahren fährt dann bei D in Fig. 8 fort mit dem Übertragen von Daten aus dem nächstfolgenden ausgewählten Block nach dem Arbeitsspeicher 21. Wenn jedoch der Kurzzeitspeicher nicht leer ist, dann wird das Kurzzeitspeichersegment logisch in die Liste der Segmente in der Systemliste nach folgendem Verfahren aufgenommen. Bei 109 wird die Systemliste des Verzeichnisses für eine Einfügung der auf die Nummer des Segmentes A folgenden Segmentnummer des Kurzzeitspeichers auf den neuesten Stand gebracht. Segment A ist dabei das Segment, aus dem auf einen zuvor ausgewählten Block folgende Daten nach dem Kurzzeitspeicher übertragen wurden. Bei 110 wird das Systemlog des Verzeichnisses insoweit berichtigt, dass die tatsächlichen Datenkennzeichen des Kurzzeitspeichersegments berücksichtigt werden. Bei 111 wird das Systemlog des Verzeichnisses zur Berücksichtigung der neuen Datenkennzeichen des Segments A berichtigt. Diejenigen Abschnitte des Segments A, die nach dem Kurzzeitspeicher übertragen worden sind, werden nunmehr in dem Systemlog als nicht-benutzt gekennzeichnet. Bei 112 wird das Segmentfeld des SP-Registers auf das Segment des Kurzzeitspeichers eingestellt. Bei 113 wird das Kurzzeitspeicherregister gelöscht, und das System läuft wieder nach Punkt D in Fig. 10. Von diesem Punkt aus wird das Einlesen des angeforderten Blocks in den Arbeitsspeicher 21 fortgesetzt. Es sei darauf hingewiesen, dass die Daten aus dem Kurzzeitspeichersegment und nicht aus den Daten des Segments A ausgelesen werden, aus dem diese Daten nach dem Kurzzeitspeicher übertragen worden sind.
Eine andere Arbeitsweise des Systems ist das teilweise Lesen eines Datenblocks, das in Fig. 12 beginnt. In diesem Fall fordert ein Benutzer, dass das Lesen eines zuvor teilweise gelesenen Blocks aus dem externen Speicher 9 nach dem Arbeitsspeicher 21 bei der Pufferadresse B fortgesetzt wird. Wird die Pufferkapazität M grösser als Null, dann kann das Lesen eines Blocks oder eines Teils des Blocks bei D in Fig. 8 fortgesetzt werden.
Eine wichtige Operation der Speicheraufzeichnung und Steuerung findet statt, wenn ein Block im externen Speicher aufgezeichnet werden muss. Für diese Aufzeichnung müssen die entsprechenden Segmente und deren Abschnitte ausgewählt werden, und diese Information muss aufgezeichnet werden. In Fig. 13 beginnt eine solche Aufzeichnung mit einer Anforderung durch den Benutzer, dass der Speicherinhalt an der Adresse B im Arbeitsspeicher 21 an den externen Speicher 9 am Block N übertragen werden soll. Der Block soll dabei M Abschnitte aufweisen.
Bei 116 wird das Systemlog des Verzeichnisses abgefragt, ob im Speicher 9 Aufzeichnungsblöcke existieren. Sind keine Blök-ke vorhanden, dann muss für die Aufzeichnung ein leeres Segment ausgewählt werden, und die Register für den Auswahlzeiger, für den Kurzzeitspeicher und für den Aufzeichnungszeiger müssen eingestellt werden. Bei 117 wird ein leeres Segment aufgefunden und in die Systemliste in den Bereich des Verzeichnisses aufgenommen. Bei 118 wird das SP-Register auf Null eingestellt und das Kurzzeitspeicherregister gelöscht. Bei 119 wird der Segmentteil des RP-Registers auf das in der Systemliste befindliche Segment, eingestellt, und das Abschnittsfeld im RP-Register wird zu Null gemacht. Dieser Ablauf wird bei 120 fortgesetzt. Wenn bei 116 ein Block vorhanden ist, dann läuft das Verfahren unmittelbar nach 120. Wenn ein Block vorhanden ist, dann wird angenommen, dass die Aufzeichnungs- und Auswahlzeiger bereits eingestellt sind, da bei Vorhandensein von Blöcken angenommen wird, dass bereits ein Versuch, einen 5 dieser Blöcke auszuwählen, durchgeführt wurde, bevor ein Aufzeichnungsverfahren stattfinden kann.
Bei 120 wird das SP-Register daraufhin überprüft, ob es Null ist. Das SP-Register ist dann Null, wenn zuvor keine Blök-ke vorhanden waren oder wenn Blöcke vorhanden sind und der io Aufzeichnungszeiger auf den letzten Abschnitt in den bestehenden Blöcken hinweist. In anderen Fällen ist das Auswahlzeigerregister nicht Null, und das Verfahren läuft weiter nach H in Fig. 14.
Wenn der Auswahlzeiger nicht gleich Null ist, dann weist is der Auswahlzeiger auf den nächsten Block eines oder mehrerer Blöcke hin, und der Aufzeichnungszeiger liegt vor dem Auswahlzeiger. Die Aufzeichnung beginnt bei dem Aufzeichnungszeiger, muss jedoch vor Erreichen des Auswahlzeigers beendet werden. Somit wird in Fig. 14 bei 122 das Kurzzeitspeicherregi-20 ster daraufhin untersucht, ob es leer ist. Ist dies der Fall, dann ist hier keine Möglichkeit eines Konfliktes gegeben, bei dem der Aufzeichnungszeiger bis an den Auswahlzeiger heran kommen könnte, so dass der Ablauf weiterführt nach G für eine fortgesetzte Aufzeichnung, wie dies noch beschrieben wird. 25 Ist der Kurzzeitspeicher nicht leer, dann muss bestimmt werden, ob der Text, der ursprünglich vor dem Speicherinhalt des Kurzzeitspeichers lag, erweitert worden ist, so dass er nicht länger in das einen Block enthaltende Segment passt, welcher nach dem zuvor ausgewählten Block beginnt, der abgespeichert 30 werden muss. Wenn also angenommen wird, dass der Kurzzeitspeicher nicht leer ist, dann wird bei 123 überprüft, ob zwischen dem Aufzeichnungszeiger und dem Aus wahlzeiger genügend Speicherplatz für die Aufnahme des Blockes N vorhanden ist. Ist dies der Fall, dann kann die Aufzeichnung weitergehen nach 35 D. Ist jedoch nicht genug Speicherplatz vorhanden, dann wird das zuvor in Verbindung mit Fig. 11 beschriebene Unterprogramm SCPAD (Kurzzeitspeicher) abgerufen. Durch Abrufen dieses Unterprogramms wird der Kurzzeitspeicher an die Systemliste und das Systemlog übertragen, so dass das gerade ab-40 laufende Aufzeichnungsverfahren in den nunmehr unbenutzten Abschnitt des Aufzeichnungszeigers und Auswahlzeigersegments einschreiben kann.
Das Verfahren läuft weiter nach G in Fig. 15 oder würde bereits bei G angelangt sein, wenn in Fig. 13 bei 120 der Aus-45 wahlzeiger auf Null eingestellt worden wäre. Bei 126 wird das Abschnittsfeld des RP-Registers überprüft, um zu bestimmen, ob der Aufzeichnungszeiger nach dem Ende eines Segmentes weist. Ist dies der Fall, dann läuft das Verfahren weiter nach I, zu welchem Zeitpunkt ein weiteres Segment für die Aufzeich-50 nung aufgefunden werden muss, wenn ein solches vorhanden ist. Zeigt jedoch der Aufzeichnungszeiger nicht auf das Ende eines Segmentes, dann wird bei 127 der Inhalt des Arbeitsspeichers 21 daraufhin überprüft, ob er Null ist. Dies ist ein Teil der Aufzeichnung, da bei der Überführung von Datenabschnitten 55 und Segmenten vom benutzten zum nicht benutzten Zustand Daten vom Speicher 9 nach dem Arbeitsspeicher 21 übertragen und diese Daten dann im Arbeitsspeicher 21 gelöscht werden, worauf nach Löschen dieser Daten die Aufzeichnung angefordert wird.
60 Angenommen, dass Daten aus dem externen Speicher entfernt werden sollen, so dass der Speicherinhalt des Arbeitsspeichers 21 zu Null wird, dann geht der Ablauf bei 127 Fig. 15 nach J in Fig. 16. Bei 133 in Fig. 16 werden alle Abschnitte des Systemlogs des Verzeichnisses zwischen, jedoch nicht ein-65 schliesslich der Position des Aufzeichnungszeigers und des Auswahlzeigers, auf unbenutzt eingestellt. Der Status irgendwelcher aufgezeichneter fehlerhafter Abschnitte zwischen Aufzeichnungszeiger und Auswahlzeiger wird nicht verändert. Bei 134
629 901
wird das Verzeichnis daraufhin durchsucht, ob in der Systemliste irgendwelche leeren Segmente vorhanden sind. Ist das der Fall, dann werden bei 135 diese Segmente aus der Systemliste entfernt, so dass das System sie als benutzbare leere Segmente betrachtet. Der Ablauf geht dann weiter nach L in Fig. 18. Enthält die Systemliste keine leeren Segmente, dann läuft das Verfahren unmittelbar zu L.
In Fig. 18 verbleibt nur noch, bei diesem Löschabschnitt der Aufzeichnung von Daten das Verzeichnis auf den neuesten Stand zu bringen und dieses berichtigte Verzeichnis im externen Speicher 9 abzuspeichern. Bei 148 wird ein Zähler Y auf Eins gesetzt, der die im externen Speicher 9 abgespeicherten Verzeichnisse zählt. Bei 149 wird der Aktivitätszähler ganz zu Beginn des Verzeichnisses im Arbeitsspeicher 21 um Eins erhöht. Bei 150 wird dann das Verzeichnis an dem für Verzeichnisse vorgesehenen Speicherplatz im Speicher 9 aufgezeichnet, der der augenblicklichen Position des dem Speicher 9 zugeordneten Lese/Schreibkopfes am nächsten liegt. Wenn bei 151 während der Aufzeichnung eines Verzeichnisses keine Aufzeichnungsfehler vorkommen, dann geht das Verfahren wieder an den Benutzer zurück. Tritt bei 151 ein Aufzeichnungsfehler auf, dann wird bei 152 der Zähler Y um Eins im Zählerstand erhöht, und es wird bei 153 bestimmt, ob der Zählerstand im Zähler Y die Anzahl der Verzeichnisse X überschreitet. Ist dies nicht der Fall, dann gibt es weitere Aufzeichnungsplätze für Verzeichnisse im Speicher 9, und es wird bei 154 ein neuer Versuch unternommen, das Verzeichnis in der nächsten besonders zugeordneten Aufzeichnungsfläche für Verzeichnisse abzuspeichern. Ist Y grösser als X, dann gibt es keine weiteren Aufzeichnungsflächen für Verzeichnisse, und dem Benutzer wird mitgeteilt, dass die Verzeichnisse fehlerhaft sind und dass der externe Speicher nicht länger benutzbar ist.
In Fig. 15 war die unmittelbar vorhergegangene Diskussion auf die Löschung bei der Aufzeichnung gerichtet worden, wenn bei 127 M gleich Null ist. Es sei nunmehr angenommen, dass aus dem Arbeitsspeicher 21 Text nach dem externen Speicher 9 zurückübertragen werden soll, wobei M nicht gleich Null ist. Der Aufzeichnungszeiger wird nunmehr auf Aufzeichnung eingestellt, und bei 128 wird, beginnend mit dem ersten auf den Aufzeichnungszeiger folgenden Abschnitt soviel von den im Arbeitsspeicher 21 enthaltenen Daten aufgezeichnet, als auf den nicht fehlerbehafteten Abschnitten des durch das Segmentfeld des Aufzeichnungsträgers ausewiesenen Segmentes möglich ist. Die Aufzeichnung wird dann unmittelbar vor dem durch das Aufzeichnungsfeld des Aufzeichnungszeigers bezeichneten Abschnitt angehalten, wenn der Auf zeichnungszeiger in diesem Segment angetroffen wird. Bei 129 werden die neu in dem Speicher 9 aufgezeichneten Daten auf Fehler überprüft. Sind keine Aufzeichnungsfehler vorhanden, dann wird das Unterprogramm «Berichtigen» bei 130 abgerufen.
Das Berichtigungsprogramm läuft gemäss Fig. 21 ab, wobei das Register M bei 176 um die soeben aufgezeichnete Datenmenge verringert wird (die Anzahl der Abschnitte von Daten im Arbeitsspeicher 21). Bei 177 wird die Arbeitsspeicheradresse B um die soeben aufgezeichnete Datenmenge erhöht. Die Systemaufzeichnung wird berichtigt und gibt damit die neuen Daten oder Daten- und Blockanfangsabschnitte an, die bei der Aufzeichnung benutzt wurden. Schliesslich wird bei 179 das Abschnittsfeld des RP-Registers auf den letzten Abschnitt, auf dem eine Aufzeichnung versucht wurde, eingestellt, unabhängig davon, ob dies ein Fehlerabschnitt war oder nicht. Zu diesem Zeitpunkt geht das Verfahren wieder nach 131 in Fig. 15.
Es sei angenommen, dass bei 129 Fig. 15 in den soeben aufgezeichneten Daten Fehler aufgetreten sind. Das Verfahren läuft dann weiter nach K Fig. 17. Zunächst wird bei 138 das Unterprogramm SCPAD (Kurzzeitspeicher) abgerufen, das in Fig. 11 gezeigt und zuvor beschrieben wurde. Ist der Kurzzeitspeicher leer, dann läuft das Verfahren unmittelbar nach 139, und ist der Kurzzeitspeicher nicht leer, dann wird das Kurzzeitspeichersegment in das Verzeichnis eingebracht, und das Verfahren geht weiter bei 139. Wenn bei 139 weitere zusätzliche s leere Segmente im Speicher 9 vorhanden sind, dann wird das Unterprogramm ERRUP (Fehlerberichtigung) abgerufen.
In Fig. 22 beginnt das Unterprogramm ERRUP bei 182 durch Berichtigung des Systemlogs des Verzeichnisses zur Kennzeichnung des Fehlerabschnitts. Für jeden aufgezeichne-io ten Fehlerabschnitt wird bei 183 der Fehlerabschnittzähler um Eins erhöht. Bei 184 wird überprüft, ob der Inhalt des Fehlerzählers gleich dem Fehlergrenzwert ist. Der Fehlergrenzwert ist eine vorbestimmte Zahl, die um Eins grösser ist als die Anzahl der Fehlerabschnitte, die ohne Warnung an den Benutzer zuläs-ls sig sind. Wird dieser Grenzwert erreicht, dann wird bei 185 der Benutzer benachrichtigt, dass der Fehlergrenzwert erreicht ist. Nach dieser Benachrichtigung oder wenn der Zählerstand den Grenzwert nicht erreicht hat, geht das Verfahren wieder bei Fig. 17 bei G an den Anrufer zurück. Dann werden bei Fig. 15 20 weitere Aufzeichnungsversuche unternommen, falls das angezeigt ist.
In Fig. 17 sei bei 139 angenommen, dass keine weiteren leeren Segmente vorhanden sind. Dann wird bei 140 geprüft, ob für den aufzuzeichnenden Block N ein Blockanfang aufgezeich-25 net ist. Ist der Blockanfang aufgezeichnet, dann wird das Unterprogramm ERRUP in Fig. 22 abgerufen. Am Ende dieses Unterprogramms werden keine weiteren Versuche zur Aufzeichnung von Daten unternommen, und der Benutzer wird bei 144 davon in Kenntnis gesetzt, dass nicht alle aufzuzeichnenden 30 Daten aufgezeichnet worden sind. Dann läuft das Verfahren weiter nach L in Fig. 18, so dass das Verzeichnis berichtigt und erneut im Speicher 9 abgespeichert werden kann. Wenn bei 140 ein Blockanfang für den Block N nicht aufgezeichnet ist, dann wird das Abschnittsfeld des Aufzeichnungszeigers auf den 35 nächstfolgenden Abschnitt dieses Segments bei 142 eingestellt, und es wird bei 143 zwangsweise ein Blockanfang eingeleitet. Das verhindert den Verlust von Blockanfängen und die damit zusammenhängende Umnumerierung von nachfolgenden Blöcken.
40 Nunmehr soll der Ablauf nach Fig. 15 ab I besprochen werden, wenn für die Aufzeichnung ein anderes Segment angesteuert werden muss. Gemäss Fig. 19 wird bei 158 die Systemliste des Verzeichnisses daraufhin untersucht, ob ein in der Systemliste enthaltenes Segment hinter dem durch das Segmentfeld des 45 RP-Registers bezeichneten Segment liegt. Ist dies der Fall, dann wird bei 149 bestimmt, ob dieses dahinterliegende Segment für eine Aufzeichnung zur Verfügung steht. Ein dahinter liegendes Segment wird dann als für eine Aufzeichnung zur Verfügung stehend angenommen, wenn 1. der Segmentabschnitt des SP-50 Registers nicht auf dieses nächstliegende Segment hinweist und wenn 2. das nächstfolgende Segment keine Blockanfänge enthält. Steht dieses nächstfolgende Segment zur Verfügung, dann wird bei 160 der Segmentabschnitt des RP-Registers auf die laufende Nummer des nächstfolgenden Segments eingestellt, 55 und das Abschnittsfeld des RP-Registers wird auf Null gebracht. Damit kann die Aufzeichnung vom Anfang dieses nächstfolgenden Segments an gemäss der Arbeitsweise fortgesetzt werden, wie sie bei G in Fig. 15 beginnt.
Ist das nächstfolgende Segment für eine Aufzeichnung nicht 60 verfügbar, dann wird bei 161 der Inhalt des Kurzzeitspeicherregisters überprüft. Ist der Kurzzeitspeicher nicht frei, dann wird bei 160 für die Nichtaufzeichnung in dem nicht zur Verfügung stehenden nächsten Segment eine Ausnahme gemacht. An diesem Punkt wird das Segmentfeld des RP-Registers auf das 65 nächstfolgende Segment und das Abschnittsfeld des RP-Regi-sters auf Null eingestellt, so dass die Aufzeichnung nach G fortfahren kann. Dieses Segment wird dann zur Aufzeichnung benutzt, da der Kurzzeitspeicher später mit eingebracht werden
9 629 901
kann, wenn dies wegen Fehlern bei der Aufzeichnung in diesem Aufzeichnung und für erhöhte Zuverlässigkeit wird das Systemnächstfolgenden Segment nötig werden sollte. log an mehreren Orten, die nicht nebeneinander liegen, auf dem
Wenn bei 161 der Kurzzeitspeicher leer ist, dann wird bei Speicher aufgezeichnet. Das am nächsten liegende Systemlog 162 das Verzeichnis daraufhin überprüft, ob leere Segmente wird bei jeder Datenspeicherung auf den neuesten Stand gevorhanden sind. Wenn ein leeres Segment vorhanden ist, dann 5 bracht. Das Systemlog enthält einen Aktivitätszähler, der bei wird das leere Segment in die Systemliste hinter dem laufenden jeder Berichtigung entsprechend fortgeschrieben wird, so dass RP-Segment aufgenommen, und das Verfahren läuft weiter bei beim Systemanlauf das zuletzt benutzte und daher richtige Sy-160, wie oben beschrieben. Ist kein leeres Segment vorhanden, stemlog wieder aufgefunden werden kann.
dann läuft das Verfahren weiter nach 12 in Fig. 20. Vor Verlas- Dieses Systemlog enthält eine Aufzeichnung von Speichersen der Fig. 19 sei darauf hingewiesen, dass bei 158 dann, wenn 10 abschnitten mit nicht korrigierbaren Fehlern, so dass kein weitein der Systemliste hinter dem RP-Segment kein Segment liegt, rer Versuch zur Benutzung dieser Abschnitte unternommen das Verfahren nach 162 springt und dort bestimmt, ob ein leeres wird. Ausserdem wird eine Zählung dieser fehlerhaften AbSegment vorhanden ist oder nicht. Dies ist der Fall, bei dem der schnitte aufrechterhalten, und das Textverarbeitungssystem Aufzeichnungszeiger auf das letzte Segment in der Systemliste wird benachrichtigt, wenn dieser Zählerstand einen vorbe-hinweist. 15 stimmten Wert erreicht hat.
Gemäss Fig. 20 bei 12 wird bei 166 der zwischen dem Auf- Bei Zugriff zu einem ausgewählten Datenblock sucht das zeichnungszeiger und dem Auswahlzeiger und ohne diese bei- System alle Daten, die auf den ausgewählten Block im gleichen den Zeiger vorhandene Speicherplatz berechnet. Ist der Aus- Segment folgen, in dem der ausgewählte Block endet, auf. Diese wahlzeiger auf Null gestellt, dann ist definitionsgemäss der Spei- in Konflikt miteinander stehenden Daten werden vor dem er-
cherplatz gleich Null. Wenn bei 167 der Speicherplatz Null ist, 20 sten Lesen des angeforderten Blockes rückgespeichert, wobei dann läuft das Verfahren nach Kl in Fig. 17. In diesem Fall wird diese Rückspeicherung über einen Pufferspeicher mit wahlfrei-
der Benutzer davon in Kenntnis gesetzt, dass nicht alle Daten em Zugriff erfolgt, in dem letztlich die angeforderten Daten aufgezeichnet sind und das Verfahren mit der Berichtigung des liegen werden. Diese Daten werden nach einem anderen Spei-
Verzeichnisses und der Wiedereinspeicherung des berichtigten chersegment zurückgespeicher't, das zunächst in der Systemliste
Verzeichnisses im Speicher 9 fortgesetzt wird. Wenn der im 25 nicht enthalten ist. Diese zurückgespeicherten Daten werden
Speicher 9 zwischen Aufzeichnungszeiger und Auswahlzeiger dann nicht vom Systemlog erfasst, wenn 1.) dies nicht tatsäch-
liegende Speicherraum grösser als M ist (Inhalt des Arbeitsspei- lieh erforderlich ist, nachdem die ursprünglich angeforderten chers 21), dann geht das Verfahren weiter nach II Fig. 19. Von und berichtigten Daten wieder im externen Speicher abgespei-
dort läuft das Verfahren nach 160 Fig. 19, wie bereits beschrie- chert worden sind und 2.) solange nicht Fehler auftreten bei ben. Wenn in Fig. 20 bei Block 168 der im Speicher 9 zwischen 30 dem Versuch, die angeforderten Daten auf dem Segment, von
Aufzeichnungszeiger und Auswahlzeiger liegende Platz kleiner dem sie ursprünglich kamen, wieder abzuspeichern, oder 3.)
ist als der Speicherinhalt des Arbeitsspeichers 21, dann wird bei wenn der auf den ursprünglich angeforderten Block nachfolgen-
169 der Benutzer davon in Kenntnis gesetzt, dass nicht alle de Block ebenfalls ausgewählt wird. Lassen sich die Daten nicht Daten aufgezeichnet sind, worauf das Verfahren weiter nach zurückspeichern, dann wird trotzdem der Zugriff nach diesem
170 läuft, wo M dann auf den berechneten Speicherplatz einge- 35 Datenblock durchgeführt, und das System wird von dieser Bestellt wird. Das Verfahren geht dann weiter nach II Fig. 19. In dingung in Kenntnis gesetzt. Das nicht in das Systemlog über-Fig. 19 wird das Aufzeichnungszeigersegmentfeld auf das führte Segment wird als Kurzzeitspeicher bezeichnet. Alle nächstfolgende Segment eingestellt und das Abschnittsfeld des Daten, die bei der Rückspeicherung nicht gelesen werden, wer-Aufzeichnungszeigers auf Null. Das Verfahren geht dann weiter den in diesem Kurzzeitspeicher durch unverwechselbare Fehlernach G in Fig. 15 für eine Fortsetzung der Aufzeichnung vom 40 codes dargestellt. Somit werden bei der Rückspeicherung alle Aufzeichnungszeiger nach dem Auswahlzeiger. Das System hält Blockanfänge festgehalten.
dann an, bevor der Aufzeichnungszeiger den Auswahlzeiger Wenn der Arbeitsspeicher nicht den ganzen angeforderten
überläuft. Block annehmen kann, dann wird eine Teilauswahloperation
Zusammenfassend kann gesagt werden, dass ein System und verwendet, und es werden dabei so viele Abschnitte des Blockes ein Verfahren zum Speichern und Abrufen von Textblöcken 45 übertragen, als es in dem Arbeitsspeicher des Textverarbei-
und deren Abschnitten für ein Textverarbeitungssystem ge- tungssystems vollständige, ganzzahlige Abschnitte gibt, und schaffen wurden. Diese Textblöcke, die normalerweise Seiten zwar findet eine Übertragung vom externen Speicher nach dem eines Dokumentes darstellen, sind als Folge von nicht näher Arbeitsspeicher statt, worauf anschliessend der Rest des Blok-
bezeichneten Abschnitten unterschiedlicher Grösse auf Seg- kes nach dem Arbeitsspeicher des Textverarbeitungssystems menten eines seriellen Massenspeichers abgespeichert. In dem so übertragen wird, wenn dieser Arbeitsspeicher wieder Platz zur
System wird eine möglichst hohe Ausnutzung des normalerwei- Aufnahme von weiteren Textdaten aufweist.
se nicht benutzten Systemspeicherraumes dadurch versucht, Die Segmente werden dadurch zusammengerückt, dass zu-dass die Speicherblöcke auf einem Speichersegment dicht ge- nächst ein Block gelesen und anschliessend der Block ohne Bepackt werden. Ein Systemverzeichnis mit einer Systemliste und richtigung zwischen Lesen und Aufzeichnen wieder aufgezeich-einem Systemlog liegt in einem Speicher des Systems mit wähl- ss net wird. Auf diese Weise werden nicht benutzte Abschnitte zur freiem Zugriff und wird auf dem segmentierten externen Spei- Bildung vollständiger nicht benutzter Segmente verschoben, so eher aufgezeichnet. Das Systemlog wird jedesmal dann in dem dass diese unbenutzten Segmente aus der Systemliste entfernt externen Speicher aufgezeichnet, wenn auch dort Daten aufge- werden können.
zeichnet werden. Zur Verkürzung der Zugriffszeit während der
C
19 Blatt Zeichnungen
Claims (4)
1. Verfahren zum Steuern einer Textverarbeitungseinrich- Ganz offensichtlich können Daten im Speicher verloren gehen, tung beim Speichern und Lesen von Text, welche Einrichtung wenn beim Auslesen des Log im Speicher sich ein Fehler ein-wenigstens einen seriellen Speicher mit einem Speichermedium schleicht. Dies würde umfangreiches Wiedereintasten durch die umfasst, das in gleich grosse Segmente mit je einer Anzahl glei- 5 Gerätebedienung nötig machen, und zwar nicht wegen irgend-eher Abschnitte unterteilt ist, wobei während des Verfahrens- welcher Fehler des im Speicher aufgezeichneten Textes, son-ablaufs ein Protokoll mit Daten über die Verwendung von Seg- dem wegen der Fehler im Log.
menten und Abschnitten des Mediums geführt wird, dadurch Die genannten Patentschriften beschreiben eine fortlaufen-
gekennzeichnet, dass eine Anzahl von Abschnitten des genann- de Logaufzeichnung mit einem Abschnitt das Speicherband beten Mediums der Aufzeichnung solcher Verwendungsdaten vor- 10 treffend, in welchem durch Hinweisbits der Belegungsstatus behalten wird, und dass nach der Beendigung jeder Textspei- (belegt oder frei) jedes Blocks auf dem Speicherband bezeich-cherung auf dem Medium diese Verwendungsdaten jeweils auf net ist. Steckt in einem Block ein gravierender Fehler, ein Band-nur einem der vorbehaltenen Abschnitte aufgezeichnet werden defekt, der das Aufzeichnen oder Lesen verhindert, dann wird und zwar auf jenem der örtlich einem Schreib/Lesekopf am dieser Block als belegt bezeichnet. Es lässt sich also nicht unter nächsten liegt, welcher für die betreffende Textspeicherung ge- 15 scheiden, ob ein belegter Block gültigen Text gespeichert hat, braucht worden ist. oder wegen irgendwelcher Fehler nicht benutzbar ist.
2. Verfahren nach Patentanspruch 1, dadurch gekennzeich- Beim Verfahren nach den genannten Patentschriften ist net, dass die zur Aufzeichnung von Verwendungsdaten vorbe- auch nicht an Situationen gedacht, in denen Text aus einem haltenen Abschnitte auf dem Speichermedium getrennt durch Speicher nicht mit Erfolg in eine Textverarbeitungseinrich tung wenigstens ein für Textspeicherung vorgesehenes Segment ge- 20 eingegeben werden kann, wenn beim Lesen Fehler auftauchen, wählt werden. Es sei beispielsweise angenommen, dass zwei Seiten (Blöcke)
3. Verfahren nach Patentanspruch 1, dadurch gekennzeich- vom Band gelesen und in den Textverarbeitungsspeicher über-net, dass im Rahmen der genannten Verwendungsdaten der schrieben, aber von der Gerätebedienung nicht überprüft wor-Stand eines Aktivitätszählers aufgezeichnet wird, wobei dieser den sind. Es sei weiter angenommen, dass mit dem zweiten Stand bei jedem Textspeichervorgang um eine Einheit erhöht 25 Block kein gültiger Text gelesen worden ist, weshalb diese Seite wird. gar nicht im Speicher steht. Speichert nun die Bedienung diesen
4. Verfahren nach Patentanspruch 1, dadurch gekennzeich- ganzen Text ohne Überprüfung zurück, obwohl bei einer sol-net, dass im Rahmen der genannten Verwendungsdaten erste chen das Fehlen eines Textteils hätte bemerkt werden können, Angaben über die freie Verfügbarkeit von Speicherabschnitten so würde schliesslich das Aufzeichnungslog nachgeführt. Der und zweite Angaben über Fehlervorkommen bzw. Unbrauch- 30 Loginhalt würde das Löschen einer Textseite aus der betreffen-barkeit fehlerbehafteter Abschnitte aufgezeichnet werden. den Arbeit, d.h. Speicherraumverlust, anzeigen, wenn statt dessen die Gerätebedienung Speicherraum freihalten müsste, um den verlorenen Text wiedereinzutasten.
Es ist deshalb vorteilhaft, ein Verfahren zum Steuern einer
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/762,379 US4189781A (en) | 1977-01-25 | 1977-01-25 | Segmented storage logging and controlling |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CH629901A5 true CH629901A5 (de) | 1982-05-14 |
Family
ID=25064877
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CH21378A CH629901A5 (de) | 1977-01-25 | 1978-01-10 | Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text. |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US4189781A (de) |
| JP (2) | JPS5393733A (de) |
| AU (1) | AU513551B2 (de) |
| BR (1) | BR7800454A (de) |
| CA (1) | CA1187197A (de) |
| CH (1) | CH629901A5 (de) |
| DE (1) | DE2801981A1 (de) |
| ES (1) | ES466291A1 (de) |
| NL (1) | NL7800768A (de) |
Families Citing this family (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5779577A (en) * | 1980-11-05 | 1982-05-18 | Toshiba Corp | Retrieval device for picture information storage |
| EP0160672A4 (de) * | 1983-10-19 | 1986-05-12 | Text Sciences Corp | Verfahren und vorrichtung zum verdichten von daten. |
| US5159669A (en) * | 1988-12-15 | 1992-10-27 | Xerox Corporation | Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation |
| EP0405859B1 (de) * | 1989-06-30 | 1997-09-17 | Digital Equipment Corporation | Verfahren und Anordnung zur Steuerung von Schattenspeichern |
| DE69126067T2 (de) * | 1990-06-29 | 1997-10-02 | Oracle Corp | Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung |
| US6239794B1 (en) * | 1994-08-31 | 2001-05-29 | E Guide, Inc. | Method and system for simultaneously displaying a television program and information about the program |
| US6418556B1 (en) | 1993-09-09 | 2002-07-09 | United Video Properties, Inc. | Electronic television program guide schedule system and method |
| US5890699A (en) * | 1994-02-10 | 1999-04-06 | Nippondenso Co., Ltd. | Fluid flow control rotary valve |
| US8793738B2 (en) | 1994-05-04 | 2014-07-29 | Starsight Telecast Incorporated | Television system with downloadable features |
| US6661468B2 (en) * | 1994-05-20 | 2003-12-09 | United Video Properties, Inc. | Electronic television program guide schedule system and method |
| US20050204384A1 (en) * | 1994-08-31 | 2005-09-15 | Gemstar Development Corporation | Method and apparatus for displaying television programs and related text |
| US5894564A (en) * | 1995-06-07 | 1999-04-13 | International Business Machines Corporation | System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed |
| US6769128B1 (en) * | 1995-06-07 | 2004-07-27 | United Video Properties, Inc. | Electronic television program guide schedule system and method with data feed access |
| US6323911B1 (en) | 1995-10-02 | 2001-11-27 | Starsight Telecast, Inc. | System and method for using television schedule information |
| US8850477B2 (en) | 1995-10-02 | 2014-09-30 | Starsight Telecast, Inc. | Systems and methods for linking television viewers with advertisers and broadcasters |
| US5940073A (en) | 1996-05-03 | 1999-08-17 | Starsight Telecast Inc. | Method and system for displaying other information in a TV program guide |
| US8635649B2 (en) * | 1996-12-19 | 2014-01-21 | Gemstar Development Corporation | System and method for modifying advertisement responsive to EPG information |
| US6687906B1 (en) | 1996-12-19 | 2004-02-03 | Index Systems, Inc. | EPG with advertising inserts |
| JP4062577B2 (ja) | 1997-07-21 | 2008-03-19 | ジェムスター ディベロプメント コーポレイション | 表示及び記録制御インタフェースのためのシステム及び方法 |
| US6604240B2 (en) | 1997-10-06 | 2003-08-05 | United Video Properties, Inc. | Interactive television program guide system with operator showcase |
| BR9814251A (pt) | 1997-12-01 | 2000-10-03 | Starsight Telecast Inc | Sistema eletrônico de guia de programa com mensagens de publicidade em sobreposição |
| US7185355B1 (en) | 1998-03-04 | 2007-02-27 | United Video Properties, Inc. | Program guide system with preference profiles |
| US6564379B1 (en) | 1998-04-30 | 2003-05-13 | United Video Properties, Inc. | Program guide system with flip and browse advertisements |
| US20020095676A1 (en) | 1998-05-15 | 2002-07-18 | Robert A. Knee | Interactive television program guide system for determining user values for demographic categories |
| TW420777B (en) * | 1998-05-29 | 2001-02-01 | Bridgewell Inc | A query method of dynamitic attribute database management |
| CN1867068A (zh) | 1998-07-14 | 2006-11-22 | 联合视频制品公司 | 交互式电视节目导视系统及其方法 |
| US6898762B2 (en) | 1998-08-21 | 2005-05-24 | United Video Properties, Inc. | Client-server electronic program guide |
| CN1359591A (zh) | 1999-06-28 | 2002-07-17 | 英戴克系统公司 | 利用epg数据库修改广告的系统和方法 |
| WO2001001689A1 (en) | 1999-06-29 | 2001-01-04 | United Video Properties, Inc. | Method and system for a video-on-demand-related interactive display within an interactive television application |
| EP2309440A1 (de) | 2000-03-31 | 2011-04-13 | United Video Properties, Inc. | Gerät und Verfahren zur wiedergabe von Werbung verknüpft mit und gesteuert durch Meta-Daten |
| US6681309B2 (en) * | 2002-01-25 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads |
| US7984468B2 (en) | 2003-11-06 | 2011-07-19 | United Video Properties, Inc. | Systems and methods for providing program suggestions in an interactive television program guide |
| US8640166B1 (en) | 2005-05-06 | 2014-01-28 | Rovi Guides, Inc. | Systems and methods for content surfing |
| US8095951B1 (en) | 2005-05-06 | 2012-01-10 | Rovi Guides, Inc. | Systems and methods for providing a scan |
| US9113107B2 (en) | 2005-11-08 | 2015-08-18 | Rovi Guides, Inc. | Interactive advertising and program promotion in an interactive television system |
| US20070156521A1 (en) | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for commerce in media program related merchandise |
| US7529741B2 (en) | 2006-03-06 | 2009-05-05 | Veveo, Inc. | Methods and systems for segmenting relative user preferences into fine-grain and coarse-grain collections |
| US8316394B2 (en) | 2006-03-24 | 2012-11-20 | United Video Properties, Inc. | Interactive media guidance application with intelligent navigation and display features |
| WO2008016611A2 (en) | 2006-07-31 | 2008-02-07 | United Video Properties, Inc. | Systems and methods for providing media guidance planners |
| US8832742B2 (en) | 2006-10-06 | 2014-09-09 | United Video Properties, Inc. | Systems and methods for acquiring, categorizing and delivering media in interactive media guidance applications |
| US7801888B2 (en) | 2007-03-09 | 2010-09-21 | Microsoft Corporation | Media content search results ranked by popularity |
| US8407737B1 (en) | 2007-07-11 | 2013-03-26 | Rovi Guides, Inc. | Systems and methods for providing a scan transport bar |
| US8943539B2 (en) | 2007-11-21 | 2015-01-27 | Rovi Guides, Inc. | Enabling a friend to remotely modify user data |
| US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
| US9166714B2 (en) | 2009-09-11 | 2015-10-20 | Veveo, Inc. | Method of and system for presenting enriched video viewing analytics |
| US8359616B2 (en) | 2009-09-30 | 2013-01-22 | United Video Properties, Inc. | Systems and methods for automatically generating advertisements using a media guidance application |
| US8479062B2 (en) | 2010-12-03 | 2013-07-02 | International Business Machines Corporation | Program disturb error logging and correction for flash memory |
| WO2012094564A1 (en) | 2011-01-06 | 2012-07-12 | Veveo, Inc. | Methods of and systems for content search based on environment sampling |
| US9848276B2 (en) | 2013-03-11 | 2017-12-19 | Rovi Guides, Inc. | Systems and methods for auto-configuring a user equipment device with content consumption material |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3781813A (en) * | 1971-06-30 | 1973-12-25 | Ibm | Machine log system |
| US3997876A (en) * | 1972-06-07 | 1976-12-14 | International Business Machines Corporation | Apparatus and method for avoiding defects in the recording medium within a peripheral storage system |
| US3942155A (en) * | 1973-12-03 | 1976-03-02 | International Business Machines Corporation | System for packing page frames with segments |
| US3911403A (en) * | 1974-09-03 | 1975-10-07 | Gte Information Syst Inc | Data storage and processing apparatus |
-
1977
- 1977-01-25 US US05/762,379 patent/US4189781A/en not_active Expired - Lifetime
- 1977-11-25 AU AU30980/77A patent/AU513551B2/en not_active Expired
- 1977-11-29 CA CA000291920A patent/CA1187197A/en not_active Expired
- 1977-12-23 JP JP15461677A patent/JPS5393733A/ja active Granted
-
1978
- 1978-01-10 CH CH21378A patent/CH629901A5/de not_active IP Right Cessation
- 1978-01-18 DE DE19782801981 patent/DE2801981A1/de active Granted
- 1978-01-23 NL NL7800768A patent/NL7800768A/xx not_active Application Discontinuation
- 1978-01-24 ES ES466291A patent/ES466291A1/es not_active Expired
- 1978-01-25 BR BR7800454A patent/BR7800454A/pt unknown
-
1983
- 1983-05-10 JP JP58080221A patent/JPS5943787B2/ja not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| AU513551B2 (en) | 1980-12-11 |
| US4189781A (en) | 1980-02-19 |
| ES466291A1 (es) | 1978-10-01 |
| CA1187197A (en) | 1985-05-14 |
| JPS5943787B2 (ja) | 1984-10-24 |
| JPS5911462A (ja) | 1984-01-21 |
| JPS6148182B2 (de) | 1986-10-23 |
| DE2801981A1 (de) | 1978-07-27 |
| NL7800768A (nl) | 1978-07-27 |
| AU3098077A (en) | 1979-05-31 |
| JPS5393733A (en) | 1978-08-17 |
| BR7800454A (pt) | 1978-10-03 |
| DE2801981C2 (de) | 1988-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CH629901A5 (de) | Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text. | |
| DE3784190T2 (de) | Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung. | |
| DE3131341C2 (de) | ||
| DE69030024T2 (de) | Verfahren zur Herstellung einer Duplikation von einer Datenbank | |
| DE68925653T2 (de) | Verfahren und System zur Sicherungssteuerung in einem Datenverarbeitungssystem | |
| DE2656546C2 (de) | Datenblock-Austauschanordnung | |
| DE69418482T2 (de) | Inkrementales datensicherungssystem | |
| DE69330319T2 (de) | Verfahren und System für Datenspeicher-Formatumwandlung, Daten-Zugriffsverfahren und Steuergerät | |
| DE69321901T2 (de) | Redundante Speicherplattenmatrix mit verbesserter Schreib- und Lesegeschwindigkeit | |
| DE1499182C3 (de) | Datenspeichersystem | |
| DE69325741T2 (de) | Speicherkartengerät | |
| DE2523414B2 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
| DE2801982A1 (de) | Verfahren zum austausch von information zwischen einem externen speicher und einem arbeitsspeicher in einem textverarbeitungssystem | |
| DE2122338A1 (de) | Schaltungsanordnung zur Steuerung des Datenflusses in Datenverarbeitungsanlagen | |
| DE69405000T2 (de) | Verteilte eintragsspeicher für informationen, die in audioqualitätsspeichereinheiten gespeichert sind | |
| DE2551238A1 (de) | Informationsuebertragungseinrichtung | |
| DE60037004T2 (de) | Aufzeichnungsmedium mit schreibgeschützter defektliste | |
| DE1524111C3 (de) | Elektronische Datenverarbeitungsanlage | |
| DE19827637A1 (de) | Sicherungsverfahren für Betriebsdaten eines Netzelementes und Steuerungseinrichtung für ein Netzelement | |
| DE2221442A1 (de) | Assoziativspeicher | |
| DE112011102139T5 (de) | Bandspeichereinheit und Schreibverfahren dafür | |
| DE2801989A1 (de) | Verfahren zum steuern der abspeicherung eines textes in einem textverarbeitungssystem | |
| DE69430891T2 (de) | Vorrichtung zur informationsaufnahme und -übertragung. | |
| EP1514171B1 (de) | Verfahren zur wiederherstellung von verwaltungsdatensätzen eines blockweise löschbaren speichers | |
| DE69133092T2 (de) | Speicherkarte mit EEPROM |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PL | Patent ceased |