JPS62194554A - メモリ内容管理方式 - Google Patents
メモリ内容管理方式Info
- Publication number
- JPS62194554A JPS62194554A JP61035143A JP3514386A JPS62194554A JP S62194554 A JPS62194554 A JP S62194554A JP 61035143 A JP61035143 A JP 61035143A JP 3514386 A JP3514386 A JP 3514386A JP S62194554 A JPS62194554 A JP S62194554A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- record
- string data
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ワードプロセシングなどに代表される文字列
データを編集するためのメモリ内容管理方式に係り、特
にデータの挿入や削除、およびファイルの更新に要する
処理時間を短縮するためのメモリ内容管理方式に関する
。
データを編集するためのメモリ内容管理方式に係り、特
にデータの挿入や削除、およびファイルの更新に要する
処理時間を短縮するためのメモリ内容管理方式に関する
。
一般にワードプロセシング機能は、書き込み/読み出し
可能な外部記憶装置に蓄えられた文字列データを修正す
るためのものである。しかしながら、その実現方式とし
て、データの挿入・削除によって生じるデータの移動を
外部記憶装置上のデータに対して直接に行うことは、R
/Wベッドの移動など機械系統の動作が頻繁に発生する
ことになり、応答性能の面で実用的なものにならない。
可能な外部記憶装置に蓄えられた文字列データを修正す
るためのものである。しかしながら、その実現方式とし
て、データの挿入・削除によって生じるデータの移動を
外部記憶装置上のデータに対して直接に行うことは、R
/Wベッドの移動など機械系統の動作が頻繁に発生する
ことになり、応答性能の面で実用的なものにならない。
そこで、従来の装置では、外部記憶装置から編集対象と
なる範囲の文字列データの写しを主記憶装置上に取り出
し、この上で編集を行って、編集が終了するときや別の
範囲に対する編集を行おうとするとき、編集の加えられ
た主記憶上のデータを外部記憶装置上の元の場所に書き
込むようにしている。なお、この種の技術は、例えば、
雑誌rbitJにおいて連載された汎用エディタSPE
が挙げられる(連載「エディタを作ろう」: b i
tVol、16.Nn1l−)ki13 Vol、17
.Na1−Na5)。
なる範囲の文字列データの写しを主記憶装置上に取り出
し、この上で編集を行って、編集が終了するときや別の
範囲に対する編集を行おうとするとき、編集の加えられ
た主記憶上のデータを外部記憶装置上の元の場所に書き
込むようにしている。なお、この種の技術は、例えば、
雑誌rbitJにおいて連載された汎用エディタSPE
が挙げられる(連載「エディタを作ろう」: b i
tVol、16.Nn1l−)ki13 Vol、17
.Na1−Na5)。
従来方式の多くは、外部記憶装置および主記憶上の文字
列データを一次元的に偏成するものであり、このため、
データの挿入・削除によって生じるデータの移動は、主
記憶上の文字列データに対して広域的に行われ、さらに
、この主記憶上のデータを外部記憶上に格納する段階に
おいても、外部記憶装置上のデータ移動が広域的に行わ
れることになり1機械系統の動作の発生頻度は軽減され
るものの、やはり時間を要するものであった。
列データを一次元的に偏成するものであり、このため、
データの挿入・削除によって生じるデータの移動は、主
記憶上の文字列データに対して広域的に行われ、さらに
、この主記憶上のデータを外部記憶上に格納する段階に
おいても、外部記憶装置上のデータ移動が広域的に行わ
れることになり1機械系統の動作の発生頻度は軽減され
るものの、やはり時間を要するものであった。
本発明の目的は、従来方式に比べ、より高速なワードプ
ロセシングを可能とするメモリ内容管理方式を提供する
ことにある。
ロセシングを可能とするメモリ内容管理方式を提供する
ことにある。
上記目的を達成するために、本発明のメモリ内容管理方
式では、外部記憶領域に格納されている文字列データの
中から、編集対象とする範囲の文字列データを読み出し
、主記憶領域に格納するステップと、上記主記憶領域を
複数のメモリブロックと分割し、各ブロック毎に、そこ
に格納された文字列データの長さと、該文字列データの
繋がりに従ったブロック間の接続関係を示す管理情報を
記憶するステップと、上記主記憶領域に格納された文字
列データに対して更新および削除処理を加えるステップ
と、上記更新および削除による状態変化の有無を上記ブ
ロック毎に記憶すると共に上記管理情報を更新するステ
ップと、上記状態変化のあったブロックに対応する上記
外部記憶領域上の文字列データに対して、上記主記憶領
域の内容に従ったデータ書き換え処理を施すステップと
を有することを特徴とする。
式では、外部記憶領域に格納されている文字列データの
中から、編集対象とする範囲の文字列データを読み出し
、主記憶領域に格納するステップと、上記主記憶領域を
複数のメモリブロックと分割し、各ブロック毎に、そこ
に格納された文字列データの長さと、該文字列データの
繋がりに従ったブロック間の接続関係を示す管理情報を
記憶するステップと、上記主記憶領域に格納された文字
列データに対して更新および削除処理を加えるステップ
と、上記更新および削除による状態変化の有無を上記ブ
ロック毎に記憶すると共に上記管理情報を更新するステ
ップと、上記状態変化のあったブロックに対応する上記
外部記憶領域上の文字列データに対して、上記主記憶領
域の内容に従ったデータ書き換え処理を施すステップと
を有することを特徴とする。
本発明によれば、基本的に、外部記憶領域上の文字列デ
ータの一部を主記憶領域上に置くという点で公知技術を
踏襲しながらも、データの更新。
ータの一部を主記憶領域上に置くという点で公知技術を
踏襲しながらも、データの更新。
挿入、削除によって生じるデータの移動範囲を局所化し
ているため、これによって、処理時間の向上を実現でき
る。
ているため、これによって、処理時間の向上を実現でき
る。
以下、本発明の実施例を図を用いて説明する。
第1図は、ワードプロセシング機能を実現する典型的な
システム構成を示したものである。
システム構成を示したものである。
図において、101は主記憶装置102に格納されたプ
ログラムに従ってデータ処理動作を行う処理装置、10
3は外部記憶装置104に対するデータの入出力を制御
するための外部記憶制御装置、105はキーボード10
6を制御するための装置、107はCRTディスプレイ
108に対する表示制御を行うディスプレイ制御装置で
ある。
ログラムに従ってデータ処理動作を行う処理装置、10
3は外部記憶装置104に対するデータの入出力を制御
するための外部記憶制御装置、105はキーボード10
6を制御するための装置、107はCRTディスプレイ
108に対する表示制御を行うディスプレイ制御装置で
ある。
主記憶袋[102上には、データの他に、例えばオペレ
ーティングシステム(以下O8と略す)109、および
ワードプロセシングプログラム(以下WPと略す)11
0が格納されている。ここで、03109はシステム規
模に応じた各種の制御機能を備えるが、本実施例におい
ては、○5109は少なくとも、システムに接続されて
いる各種デバイス103〜108の制御プログラムと。
ーティングシステム(以下O8と略す)109、および
ワードプロセシングプログラム(以下WPと略す)11
0が格納されている。ここで、03109はシステム規
模に応じた各種の制御機能を備えるが、本実施例におい
ては、○5109は少なくとも、システムに接続されて
いる各種デバイス103〜108の制御プログラムと。
書き込み・読み出し可能な外部記憶装置103゜104
に対して、レコード単位での入出力を可能とする制御プ
ログラム(よく知られた[相対編成ランダムアクセス」
を可能としたもの)を具備しているものとする。尚、こ
れら2つの制御プログラムは、いずれも公知のものであ
り、○5109の具備機能としてではなく、WPIIO
が具備するものとして用意してもよい。
に対して、レコード単位での入出力を可能とする制御プ
ログラム(よく知られた[相対編成ランダムアクセス」
を可能としたもの)を具備しているものとする。尚、こ
れら2つの制御プログラムは、いずれも公知のものであ
り、○5109の具備機能としてではなく、WPIIO
が具備するものとして用意してもよい。
次に、本発明によるメモリ管理方式の基本的な考え方に
ついて述べる。
ついて述べる。
ワードプロセシング機能の編集対象である文字列データ
の管理としては、大別すると次の2種のものがある。
の管理としては、大別すると次の2種のものがある。
第1のものは、ロール紙方式と称されるものであり、無
限に長い紙のうえに文字が巴かれるという考え方に立脚
したデータ管理方式である。よく知られたプログラムエ
ディタなどが、これに相当する。
限に長い紙のうえに文字が巴かれるという考え方に立脚
したデータ管理方式である。よく知られたプログラムエ
ディタなどが、これに相当する。
第2のものはカット紙方式と称されるもので、1枚の紙
の単位で文字が置かれ、これらの紙を1列に並べること
で、全体の文書が完成されているという考え方に立脚し
たデータ管理方式である。
の単位で文字が置かれ、これらの紙を1列に並べること
で、全体の文書が完成されているという考え方に立脚し
たデータ管理方式である。
この方式は、ワードプロセッサなどの文書編集機能にお
いて採用されている。
いて採用されている。
これら2つの方式のデータ管理上の具体的に相違点は、
カット紙方式では紙(ページと呼ぶ)という管理単位が
存在し、ロール紙方向にはそのようなものは存在しない
という点である。本発明によるメモリ管理方式は、上記
カット紙方式に関するものである。
カット紙方式では紙(ページと呼ぶ)という管理単位が
存在し、ロール紙方向にはそのようなものは存在しない
という点である。本発明によるメモリ管理方式は、上記
カット紙方式に関するものである。
第2図は、第1図で示した外部記憶装置104上に文字
列データの並びを相対編成ファイルとして編成したとき
のデータ管理形式を説明するための図である。同図から
明らかなように、ファイルは、文字列データを格納する
ためのレコード群203と、これらを管理するためのレ
コード群201.202とから成り、すべてのレコード
には、他のレコードと区別するためのレコード番号が付
与されている。ここでレコード番号の付与とは、各レコ
ードの中にそれを表す値を実際に書き込むことではなく
、先述の03109の機能により、成るレコード番号を
指定して入出力動作を起こさせるとき、その対象となる
レコードがファイルの中で一意的に決められ、かつ、同
じレコード番号を指定するならば、常に同じレコードと
対応づけてできるようにしておくことを意味する。
列データの並びを相対編成ファイルとして編成したとき
のデータ管理形式を説明するための図である。同図から
明らかなように、ファイルは、文字列データを格納する
ためのレコード群203と、これらを管理するためのレ
コード群201.202とから成り、すべてのレコード
には、他のレコードと区別するためのレコード番号が付
与されている。ここでレコード番号の付与とは、各レコ
ードの中にそれを表す値を実際に書き込むことではなく
、先述の03109の機能により、成るレコード番号を
指定して入出力動作を起こさせるとき、その対象となる
レコードがファイルの中で一意的に決められ、かつ、同
じレコード番号を指定するならば、常に同じレコードと
対応づけてできるようにしておくことを意味する。
本発明において、文字列のデータレコード203は、「
ページ」と呼ぶ管理単位に分けて管理される。具体的に
は、ページ管理レコードと称する管理レコード202が
用意され、この上に当該ページに含まれる各データレコ
ードのレコード番号が書き込まれる。さらに該ファイル
全体に渡り存在するページを管理するため、言い換えれ
ばページ管理レコードを管理するために、ファイル管理
レコードと称するレコード201が用意される。この管
理レコードには、複数のページ管理レコードのレコード
番号がページの上昇順に格納される。また、1つの管理
レコードで管理することができる上限値よりもページの
数が多いような場合に対処するために、ファイル管理レ
コード201は複数個用意され、各々をポインタでつな
ぐようにしである。この場合のポインタは、前方及び後
方にくるファイル管理レコードを示すレコード番号であ
り、これらのポインタは該ファイル管理レコードの所定
のフィールドに書き込まれる。
ページ」と呼ぶ管理単位に分けて管理される。具体的に
は、ページ管理レコードと称する管理レコード202が
用意され、この上に当該ページに含まれる各データレコ
ードのレコード番号が書き込まれる。さらに該ファイル
全体に渡り存在するページを管理するため、言い換えれ
ばページ管理レコードを管理するために、ファイル管理
レコードと称するレコード201が用意される。この管
理レコードには、複数のページ管理レコードのレコード
番号がページの上昇順に格納される。また、1つの管理
レコードで管理することができる上限値よりもページの
数が多いような場合に対処するために、ファイル管理レ
コード201は複数個用意され、各々をポインタでつな
ぐようにしである。この場合のポインタは、前方及び後
方にくるファイル管理レコードを示すレコード番号であ
り、これらのポインタは該ファイル管理レコードの所定
のフィールドに書き込まれる。
尚、ファイル管理レコードの連鎖において、先頭にくる
ファイル管理レコードのレコード番号は、予め決められ
た値(例えば”0″)に設定され、これにより上述のよ
うにレコード番号を手掛かりとして行う検索の最初の手
掛かりが与えられるようになっている。
ファイル管理レコードのレコード番号は、予め決められ
た値(例えば”0″)に設定され、これにより上述のよ
うにレコード番号を手掛かりとして行う検索の最初の手
掛かりが与えられるようになっている。
第3図は、主記憶装置102上に置かれるWPのデータ
部のうち1本発明の構成要件となる編集バッファ301
と状態テーブル303の2種類のデータを示している。
部のうち1本発明の構成要件となる編集バッファ301
と状態テーブル303の2種類のデータを示している。
編集バッファ301は、それぞれが1バイトである記憶
単位を2次元配列して構成される。2次元配列は、高級
言語(例えば、FORTRAN )の文法に従って定義
することが可能であり、言語プロセッサ(コンパイラ)
の働きによって、実際のメモリ確保が行われる。この2
次元配列において、各要素のアドレスが連続する方向の
1つの列を「ブロック」302と定義すると、この−2
次元配列は、複数のブロック集まりからなる。この場合
、各ブロックのサイズを大きく取ると、ファイルアクセ
スの回数が減る反面、ブロック内でのメモリ使用効率、
即ち、ブロック長とブロック内での有効データ長との比
が悪くなり、小さく取ると、その逆の性質となるため、
これら2種の因子の双方を極端に劣化させない値、例え
ば前述のファイルにおけるレコード長と一致した値にブ
ロック長を定める。また、ブロックの個数は、1ページ
に格納される文字列データの情報量として、ワードプロ
セシング業務に支障をきたさない範囲の容量確保が行え
るような値とする。いずれにしても、これまでに述べた
ブロック長と個数は、ワードプロセシング機能の設計段
階において、その値を決めるものであり、ワードプロセ
シング機能の実行特番二番よ、すでに与えられた値とし
て、途中変更することなく処理していくものである。
単位を2次元配列して構成される。2次元配列は、高級
言語(例えば、FORTRAN )の文法に従って定義
することが可能であり、言語プロセッサ(コンパイラ)
の働きによって、実際のメモリ確保が行われる。この2
次元配列において、各要素のアドレスが連続する方向の
1つの列を「ブロック」302と定義すると、この−2
次元配列は、複数のブロック集まりからなる。この場合
、各ブロックのサイズを大きく取ると、ファイルアクセ
スの回数が減る反面、ブロック内でのメモリ使用効率、
即ち、ブロック長とブロック内での有効データ長との比
が悪くなり、小さく取ると、その逆の性質となるため、
これら2種の因子の双方を極端に劣化させない値、例え
ば前述のファイルにおけるレコード長と一致した値にブ
ロック長を定める。また、ブロックの個数は、1ページ
に格納される文字列データの情報量として、ワードプロ
セシング業務に支障をきたさない範囲の容量確保が行え
るような値とする。いずれにしても、これまでに述べた
ブロック長と個数は、ワードプロセシング機能の設計段
階において、その値を決めるものであり、ワードプロセ
シング機能の実行特番二番よ、すでに与えられた値とし
て、途中変更することなく処理していくものである。
このようなブロック構造において、文字列データは以下
のように管理される。すなわち、一般しこ文字列データ
は一次元的に連続するため、この文字列データを各々が
1つのブロックに入るような長さに分割する。各ブロッ
クには、この分割された文字列データが格納され、ブロ
ックの中に格納された文字列データの長さが処理される
。また、文字列データの一次元的な並びに従って、分割
格納したブロックのつながりも管理される。
のように管理される。すなわち、一般しこ文字列データ
は一次元的に連続するため、この文字列データを各々が
1つのブロックに入るような長さに分割する。各ブロッ
クには、この分割された文字列データが格納され、ブロ
ックの中に格納された文字列データの長さが処理される
。また、文字列データの一次元的な並びに従って、分割
格納したブロックのつながりも管理される。
一方、状態テーブル303は、各ブロック対応に異なる
値を取り得るようにした1次元配列であり、各ブロック
に対してどのような変更が行われたかを4種類の状態に
集約して管理するものである。これ64種類の状態は、
それぞれ他の状態と区別するための固有の値(状態値と
呼ぶ)で表わされる。また、これらの状態値は、ワード
プロセシング機能において、例えば、あるブロック上の
データに対する編集操作が行われるときなどの機会に、
参照/更新され、また、編集バッファに対して行われた
編集操作をファイルに反映(出力)する際に、その対象
となるブロックが(新規に使われたものか、あるいは内
容の変更のあったものか等の識別のために用いられる。
値を取り得るようにした1次元配列であり、各ブロック
に対してどのような変更が行われたかを4種類の状態に
集約して管理するものである。これ64種類の状態は、
それぞれ他の状態と区別するための固有の値(状態値と
呼ぶ)で表わされる。また、これらの状態値は、ワード
プロセシング機能において、例えば、あるブロック上の
データに対する編集操作が行われるときなどの機会に、
参照/更新され、また、編集バッファに対して行われた
編集操作をファイルに反映(出力)する際に、その対象
となるブロックが(新規に使われたものか、あるいは内
容の変更のあったものか等の識別のために用いられる。
本実施例において、上記4種の状態の意味と各状態値は
以下の通りである。
以下の通りである。
(1)未使用ブロック(00)
(2)ファイルからロードされた後、何の更新もおこな
われていないブロック(10) (3)新規に使われたか、あるいはファイルからロード
された後、更新の行われたブロック(11)(4)ファ
イルからロードされた後、編集によって削除されたブロ
ック(ol) 次に、前述した主記憶装置上および外部記憶装置上のデ
ータの編成法をもとに、ワードプロセシング機能の典型
的な処理を解説し、本発明の特徴であるデータ移動の影
響範囲の局所化について、その実現方式を開示する6ワ
一ドプロセシング機能の典型的な処理としては、(1)
ページ取り出し、(2)データ挿入、(3)データ削除
、(4)ページ格納、の4種をとりあげ、フローチャー
トを参照して説明する。ここで、開示する範囲は、編集
バッファ、状態テーブル、およびファイルに対する操作
に焦点を絞ったものにとどめ、他のキー人力処理、画面
表示処理などは、本発明と直接関係しないため省略する
ことにする。
われていないブロック(10) (3)新規に使われたか、あるいはファイルからロード
された後、更新の行われたブロック(11)(4)ファ
イルからロードされた後、編集によって削除されたブロ
ック(ol) 次に、前述した主記憶装置上および外部記憶装置上のデ
ータの編成法をもとに、ワードプロセシング機能の典型
的な処理を解説し、本発明の特徴であるデータ移動の影
響範囲の局所化について、その実現方式を開示する6ワ
一ドプロセシング機能の典型的な処理としては、(1)
ページ取り出し、(2)データ挿入、(3)データ削除
、(4)ページ格納、の4種をとりあげ、フローチャー
トを参照して説明する。ここで、開示する範囲は、編集
バッファ、状態テーブル、およびファイルに対する操作
に焦点を絞ったものにとどめ、他のキー人力処理、画面
表示処理などは、本発明と直接関係しないため省略する
ことにする。
第4図は、ページ取り出しのための処理フローチャート
である。本処理への入力パラメータは、編集対象とする
ファイルの名称と、そのファイル内のページの番号であ
る。まず、テーブル類の初期化のために、状態テーブル
の各要素に対して。
である。本処理への入力パラメータは、編集対象とする
ファイルの名称と、そのファイル内のページの番号であ
る。まず、テーブル類の初期化のために、状態テーブル
の各要素に対して。
状態値として「00」を書き込む。(ステップ401)
。
。
次に指定ファイルの内容を検索し、指定ページ番号に該
当するページ管理レコードを読み出す(ステップ402
,403)。その結果、ページ管理レコードの上に管理
されたデータレコードのレコード番号の一覧が入手され
る。このレコード番号列をもとに、そのレコードの内容
を順次読み出し、編集バッファの先頭ブロックから順次
格納していくとともに、状態テーブルの該ブロックに関
する状態値を「10」として設定していく(ステップ4
04)。
当するページ管理レコードを読み出す(ステップ402
,403)。その結果、ページ管理レコードの上に管理
されたデータレコードのレコード番号の一覧が入手され
る。このレコード番号列をもとに、そのレコードの内容
を順次読み出し、編集バッファの先頭ブロックから順次
格納していくとともに、状態テーブルの該ブロックに関
する状態値を「10」として設定していく(ステップ4
04)。
以上の読み出し動作がすべて終了すれば、最後に読み出
したデータレコードの総数を一時的な格納場所に登録す
る(ステップ405)。この値は、後述するページの格
納処理の中で使用される。
したデータレコードの総数を一時的な格納場所に登録す
る(ステップ405)。この値は、後述するページの格
納処理の中で使用される。
第5図は、データ挿入のための処理フローチャートであ
る。今、挿入データの長さをN、ブロック長さをB、ブ
ロック上のそれまでに書かれたあるデータの長さをLと
し、挿入位置を該ブロック上のデータの先頭からの位置
で表して符号Pで示すことにする。
る。今、挿入データの長さをN、ブロック長さをB、ブ
ロック上のそれまでに書かれたあるデータの長さをLと
し、挿入位置を該ブロック上のデータの先頭からの位置
で表して符号Pで示すことにする。
まず、ステップ501でN、B、L、P値を設定し、第
一段階の判定として、当該ブロック上に挿入データが入
りきるかを、下式により判定する(ステップ502)。
一段階の判定として、当該ブロック上に挿入データが入
りきるかを、下式により判定する(ステップ502)。
N+L≦B ・・・・・・
(1)これが成立するならば、該ブロックにデータが格
納可能であり、他のブロック・には影響を与えないこと
を示している。そこで、Pバイト目よりLバイト目まで
のデータを現在位置よりNバイト後に移動しくステップ
503)、その結果空けられた場所に挿入データNバイ
トを書き込む(ステップ504)。この後、当該ブロッ
クに変更が起こったことを示すために、上記ブロックに
対応する状態テーブルの内容を1例えば「11」という
値に設定しくステップ505)、この処理を終了する。
(1)これが成立するならば、該ブロックにデータが格
納可能であり、他のブロック・には影響を与えないこと
を示している。そこで、Pバイト目よりLバイト目まで
のデータを現在位置よりNバイト後に移動しくステップ
503)、その結果空けられた場所に挿入データNバイ
トを書き込む(ステップ504)。この後、当該ブロッ
クに変更が起こったことを示すために、上記ブロックに
対応する状態テーブルの内容を1例えば「11」という
値に設定しくステップ505)、この処理を終了する。
また、式(1)が成立しない場合は、当該ブロックには
データは入りきらないこと、すなわち新たな空きブロッ
クが必要となることを示している。
データは入りきらないこと、すなわち新たな空きブロッ
クが必要となることを示している。
そこで、必要とされる空きブロックの数Eを、下式によ
り求める(ステップ506)。
り求める(ステップ506)。
E= (N+L)/B ・・・・・・(
2)但し、式(2)における記号“/″は、除算の商だ
けを求める演算子を意味している。
2)但し、式(2)における記号“/″は、除算の商だ
けを求める演算子を意味している。
必要とされるE個の空きブロックは、編集バッファ上の
各ブロックの状態値を順次参照し、その値が「Oo」あ
るいは「01」のものをE個見付は出すことにより用意
される(ステップ507)。
各ブロックの状態値を順次参照し、その値が「Oo」あ
るいは「01」のものをE個見付は出すことにより用意
される(ステップ507)。
次にステップ508で、挿入の対象となったブロックと
用意された空きブロック(計E+1個)の中で、N+L
バイトのデータを、平均的に配置するようにする6また
。これらE+1個のブロックの間に、文字列の並びに従
ったブロックのつながりを定義する(ステップ509)
。これらE+1個のブロックは、いずれも内容に変更が
あったため、ステップ511で当該ブロックに対応する
状態値を「11」と設定した後、この処理を終了する。
用意された空きブロック(計E+1個)の中で、N+L
バイトのデータを、平均的に配置するようにする6また
。これらE+1個のブロックの間に、文字列の並びに従
ったブロックのつながりを定義する(ステップ509)
。これらE+1個のブロックは、いずれも内容に変更が
あったため、ステップ511で当該ブロックに対応する
状態値を「11」と設定した後、この処理を終了する。
第6図は、データ削除のための処理フローチャートであ
る。データ削除処理では、削除する範囲として開始点と
終了点の2点を指定し、その範囲の文字列データを消去
し、以降に続く文字列を前に詰める。開始点、終了点の
指定は、ステップ601に示すように、いずれも編集バ
ッファ上のブロックと、そのブロックの中での文字列デ
ータのバイト位置により指定されるものとし、開始点の
位置は終了点の位置よりも小さいものとする。
る。データ削除処理では、削除する範囲として開始点と
終了点の2点を指定し、その範囲の文字列データを消去
し、以降に続く文字列を前に詰める。開始点、終了点の
指定は、ステップ601に示すように、いずれも編集バ
ッファ上のブロックと、そのブロックの中での文字列デ
ータのバイト位置により指定されるものとし、開始点の
位置は終了点の位置よりも小さいものとする。
この場合、上記2点が同じブロック内の位置を示すとき
、そのブロックの中だけで変更が行われることを意味し
ているため、指定範囲の文字列データを削除し、ブロッ
ク内の残りの部分を前に詰めるようにすればよい。また
、この場合も、当該ブロックに内容の変更が生じたこと
を示すために、状態値として「11」を設定して処理を
終了する(ステップ602〜605)。
、そのブロックの中だけで変更が行われることを意味し
ているため、指定範囲の文字列データを削除し、ブロッ
ク内の残りの部分を前に詰めるようにすればよい。また
、この場合も、当該ブロックに内容の変更が生じたこと
を示すために、状態値として「11」を設定して処理を
終了する(ステップ602〜605)。
尚、上記のデータ消除処理において、特に削除開始位置
が当該ブロック内の先頭バイト位置を示し、かつ削除終
了位置が当該ブロック内の最終バイト位置を示している
ような場合、本削除処理の実行の結果、当該ブロックは
文字列データを全く持たないブロック(削除ブロックと
称する)となってしまう。このような場合には、ブロッ
クの状態値を「01」とし、ブロック間のつながりも当
該ブロックを飛ばすように更新しておく(ステップ60
6,607)。
が当該ブロック内の先頭バイト位置を示し、かつ削除終
了位置が当該ブロック内の最終バイト位置を示している
ような場合、本削除処理の実行の結果、当該ブロックは
文字列データを全く持たないブロック(削除ブロックと
称する)となってしまう。このような場合には、ブロッ
クの状態値を「01」とし、ブロック間のつながりも当
該ブロックを飛ばすように更新しておく(ステップ60
6,607)。
次に、削除範囲が2つ以上のブロックにまたがって設定
された場合の処理について述べる。
された場合の処理について述べる。
今、削除開始位置に該当したブロックの先頭から削除開
始バイト位置までの長さをF、削除終了位置に該当した
ブロック中の削除終了バイト位置から当該ブロックの文
字列データの最終バイトまでの長さを、R,ブロック長
をBと定義すると。
始バイト位置までの長さをF、削除終了位置に該当した
ブロック中の削除終了バイト位置から当該ブロックの文
字列データの最終バイトまでの長さを、R,ブロック長
をBと定義すると。
更新するブロックの数を最小限にとどめてFとRを格納
するのに必要な最小限のブロック数Mを求めると、次式
のようになる。
するのに必要な最小限のブロック数Mを求めると、次式
のようになる。
M=↑((F+R)÷B) ・・・・・・(3)
但し、記号″↑″は、小数点以下の切り上げを意味する
。
但し、記号″↑″は、小数点以下の切り上げを意味する
。
従って、削除前の状態で削除開始位置から終了位置まで
に使用されていたブロック数をUとすると、このU個の
連続ブロックのうち、後方から(U−M)個のブロック
は不用なブロックとなるため、これらの該ブロックの状
態値を「01」として削除ブロックであることを表示す
るとともに、それまでに設定されていたブロック間のつ
ながりも消去するようにすればよい(ステップ608〜
611)。
に使用されていたブロック数をUとすると、このU個の
連続ブロックのうち、後方から(U−M)個のブロック
は不用なブロックとなるため、これらの該ブロックの状
態値を「01」として削除ブロックであることを表示す
るとともに、それまでに設定されていたブロック間のつ
ながりも消去するようにすればよい(ステップ608〜
611)。
また、結果的に残ったM個のブロックに対しは、データ
挿入の場合と同様に、F+Rバイトのデータを平均的に
配置しくステップ612)、これらのブロックに対して
は、内容に変更があったことを表示するために、当該ブ
ロックに対応する状態値を「11」に設定して処理を終
了する(ステップ614)。
挿入の場合と同様に、F+Rバイトのデータを平均的に
配置しくステップ612)、これらのブロックに対して
は、内容に変更があったことを表示するために、当該ブ
ロックに対応する状態値を「11」に設定して処理を終
了する(ステップ614)。
第7図は、ページ格納のための処理フローチャートを示
す。ステップ701,702ではブロックの状態判定の
ための各種パラメータを設定する。
す。ステップ701,702ではブロックの状態判定の
ための各種パラメータを設定する。
編集バッファの内、前半の部分はファイルから読み出し
たものである。但し、ここで言う「前半の部分」とは、
先述のページ読み出しで求められた「読み出しデータレ
コード総数」の個数(N)分に該当する。この範囲のブ
ロックに対して状態値の判定を行い、もし状態値が「1
0」であれば、(ステップ705)、ファイルからロー
ドした内容に変更が生じなかったことを示しているため
、このブロックをファイルに格納する必要はない。
たものである。但し、ここで言う「前半の部分」とは、
先述のページ読み出しで求められた「読み出しデータレ
コード総数」の個数(N)分に該当する。この範囲のブ
ロックに対して状態値の判定を行い、もし状態値が「1
0」であれば、(ステップ705)、ファイルからロー
ドした内容に変更が生じなかったことを示しているため
、このブロックをファイルに格納する必要はない。
もし、状態値が「11」であれば(ステップ706)、
ファイルからロードした後に、何んらかの内容変更がな
されたことを示しているため、ファイル上の元のレコー
ドの内容をこのブロックの内容と置き換える(ステップ
707)。さらに。
ファイルからロードした後に、何んらかの内容変更がな
されたことを示しているため、ファイル上の元のレコー
ドの内容をこのブロックの内容と置き換える(ステップ
707)。さらに。
状態値が「01」であれば、(ステップ708)、ファ
イルからロードされた後、編集操作によって該ブロック
が削除されたことを示しており、ファイル上の対応する
レコードをファイルから削除する(ステップ709)、
尚、状態値「00」は、上記範囲のブロックに対しては
設定されないこと明らかであり、判定から除外しても構
わない。つぎに、「読み出しデータレコード総数」の示
す値よりも大きいブロックについて、その状態値を調べ
ていく。この範囲のブロックは、ファイルからロードさ
れたものでなく1編集操作の過程において、新たに加わ
ったブロックであるため、これらのブロックは、ファイ
ルに対して新たなデータレコードとして追加して書き込
む必要のあるものである。その対象となるブロックは、
状態値が「11」となっているものである(ステップ7
11.712)。
イルからロードされた後、編集操作によって該ブロック
が削除されたことを示しており、ファイル上の対応する
レコードをファイルから削除する(ステップ709)、
尚、状態値「00」は、上記範囲のブロックに対しては
設定されないこと明らかであり、判定から除外しても構
わない。つぎに、「読み出しデータレコード総数」の示
す値よりも大きいブロックについて、その状態値を調べ
ていく。この範囲のブロックは、ファイルからロードさ
れたものでなく1編集操作の過程において、新たに加わ
ったブロックであるため、これらのブロックは、ファイ
ルに対して新たなデータレコードとして追加して書き込
む必要のあるものである。その対象となるブロックは、
状態値が「11」となっているものである(ステップ7
11.712)。
以上の説明から明らかな如く、本発明は4ワ一ドプロセ
シング機能において要請される文字列データの挿入・削
除の処理において、それらの処理過程で発生するデータ
移動の対象範囲を局所化することができるため、対象デ
ータ量が限定された分だけ処理速度を向上することが可
能となる。
シング機能において要請される文字列データの挿入・削
除の処理において、それらの処理過程で発生するデータ
移動の対象範囲を局所化することができるため、対象デ
ータ量が限定された分だけ処理速度を向上することが可
能となる。
第1図は典型的なワードプロセシング機能を備えたシス
テムの構成を示すブロック図、第2図は外部記憶装置上
のファイルのデータ管理形式を説明するための図、第3
図は主記憶上のデータ管理形式を説明するための図、第
4図〜第7図は本発明による典型的なワードプロセシン
グ機能の処理冨1図 第 2 図 3ρl 篤 〆 図 17 固
テムの構成を示すブロック図、第2図は外部記憶装置上
のファイルのデータ管理形式を説明するための図、第3
図は主記憶上のデータ管理形式を説明するための図、第
4図〜第7図は本発明による典型的なワードプロセシン
グ機能の処理冨1図 第 2 図 3ρl 篤 〆 図 17 固
Claims (1)
- 1、外部記憶領域に格納されている文字列データの中か
ら、編集対象とする範囲の文字列データを読み出し、主
記憶領域に格納するステップと、上記主記憶領域を複数
のメモリブロックに分割し、各ブロック毎に、そこに格
納された文字列データの長さと、該文字列データの繋が
りに従つたブロック間の接続関係を示す管理情報を記憶
するステップと、上記主記憶領域に格納された文字列デ
ータに対して更新および削除処理を加えるステップと、
上記更新および削除による状態変化の有無を上記ブロッ
ク毎に記憶すると共に上記管理情報を更新するステップ
と、上記状態変化のあつたブロックに対応する上記外部
記憶領域上の文字列データに対して、上記主記憶領域の
内容に従つたデータ書き換え処理を施すステップとを有
することを特徴とするメモリ内容管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61035143A JPS62194554A (ja) | 1986-02-21 | 1986-02-21 | メモリ内容管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61035143A JPS62194554A (ja) | 1986-02-21 | 1986-02-21 | メモリ内容管理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS62194554A true JPS62194554A (ja) | 1987-08-27 |
Family
ID=12433683
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61035143A Pending JPS62194554A (ja) | 1986-02-21 | 1986-02-21 | メモリ内容管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62194554A (ja) |
-
1986
- 1986-02-21 JP JP61035143A patent/JPS62194554A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA2047696C (en) | Method of reading and writing files on non-erasable storage media | |
| US5375233A (en) | File system | |
| US4513391A (en) | Text processing apparatus with two-stage formatting of text | |
| EP0487331B1 (en) | Directory management system | |
| JP2734391B2 (ja) | 不揮発性メモリのファイル管理装置 | |
| WO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、記録媒体 | |
| JP3024619B2 (ja) | ファイル管理方法 | |
| US8275812B2 (en) | Method to reduce wasted character data areas of java strings | |
| US5133066A (en) | Method for selecting multiple versions of data in a reduced record units text editing system | |
| US5745749A (en) | Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value | |
| Blobel | The BOS system | |
| JP2874810B2 (ja) | キーの記憶割り当て方法 | |
| Pramanik | Map editing. | |
| JP3578501B2 (ja) | 文書検索方法及び装置 | |
| JPH07182215A (ja) | データ管理装置 | |
| JPH03100841A (ja) | 情報処理装置 | |
| Hirschsohn | A machine independent fortran data management software system for scientific and engineering applications | |
| JPS6253861B2 (ja) | ||
| JPS62293358A (ja) | 文書フアイリング方法 | |
| JPS6231378B2 (ja) | ||
| JPS6355642A (ja) | 式解析スタック制御装置 | |
| JPH04156626A (ja) | Vtocのファイルエントリ作成方式 | |
| JP2000200202A (ja) | アプリケ―ションプログラムのデバッグにおけるリンク処理方法及びそのシステム並びに情報記録媒体 | |
| JPH0145648B2 (ja) | ||
| JPS60221868A (ja) | 医療事務用計算機のフアイルシステム |