JPH04242838A - データ書き込み処理中断箇所判定方式 - Google Patents
データ書き込み処理中断箇所判定方式Info
- Publication number
- JPH04242838A JPH04242838A JP2416159A JP41615990A JPH04242838A JP H04242838 A JPH04242838 A JP H04242838A JP 2416159 A JP2416159 A JP 2416159A JP 41615990 A JP41615990 A JP 41615990A JP H04242838 A JPH04242838 A JP H04242838A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- variables
- interrupted
- variable
- sub
- 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
- 238000000034 method Methods 0.000 claims description 57
- 238000003672 processing method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は電子計算機システムのト
ランザクション処理のデータ書き込み処理中断箇所判定
方式に関するものである。
ランザクション処理のデータ書き込み処理中断箇所判定
方式に関するものである。
【0002】
【従来の技術】メモリ等の記憶領域へのデータ書き込み
を伴うシステムにおいて、何らかの理由でデータ書き込
み処理を中断しなければならず、かつ、記憶領域上のデ
ータを破壊してはならない場合には、処理再開時に、途
中まで書き込んだデータを元に戻すか、正しい値に書き
直し、データが破壊されるのを防ぐ、トランザクション
処理と呼ばれる処理を行う必要がある。
を伴うシステムにおいて、何らかの理由でデータ書き込
み処理を中断しなければならず、かつ、記憶領域上のデ
ータを破壊してはならない場合には、処理再開時に、途
中まで書き込んだデータを元に戻すか、正しい値に書き
直し、データが破壊されるのを防ぐ、トランザクション
処理と呼ばれる処理を行う必要がある。
【0003】従来、この種のトランザクション処理は、
図3に示すように、前処理として、処理の進行に合わせ
て処理の内容を示すコードを変数に記憶させて行く方式
が広く用いられてきた。
図3に示すように、前処理として、処理の進行に合わせ
て処理の内容を示すコードを変数に記憶させて行く方式
が広く用いられてきた。
【0004】例えば、メモリ内の記憶領域A,Bの内容
を、作業領域Cを用いて入れ替え、更にビット反転させ
て書き込む処理を、次の副処理を経て行う場合を考える
。 副処理1:Aをビット反転させてCに書き込む。 副処理2:Bをビット反転させてAに書き込む。 副処理3:CをBに書き込む。
を、作業領域Cを用いて入れ替え、更にビット反転させ
て書き込む処理を、次の副処理を経て行う場合を考える
。 副処理1:Aをビット反転させてCに書き込む。 副処理2:Bをビット反転させてAに書き込む。 副処理3:CをBに書き込む。
【0005】ここで、変数を次のように定める。なお、
各副処理はこれらの変数に基づいて行われると共に、処
理中断後にはこれらの変数の値に基づいてトランザクシ
ョン処理が行われる。 V1:書き込み元の記憶領域名を示す変数。 V2:書き込み先の記憶領域名を示す変数。 V3:ビット反転するか否かを示す変数。 V4:実行対象の副処理を示す変数。
各副処理はこれらの変数に基づいて行われると共に、処
理中断後にはこれらの変数の値に基づいてトランザクシ
ョン処理が行われる。 V1:書き込み元の記憶領域名を示す変数。 V2:書き込み先の記憶領域名を示す変数。 V3:ビット反転するか否かを示す変数。 V4:実行対象の副処理を示す変数。
【0006】また、図3において、Siは処理の内容を
示すコードであり、副処理およびiの値によって種々の
値をとる。
示すコードであり、副処理およびiの値によって種々の
値をとる。
【0007】処理実行時において、先ず、iに1を設定
し(ステップ301)、V1に副処理1の書き込み元の
記憶領域名であるAを設定し(ステップ302)、次い
で、iに1を加え(ステップ303)、iの値が変数の
数N(この例ではN=4)以下であるか否かを判断する
(ステップ304)。
し(ステップ301)、V1に副処理1の書き込み元の
記憶領域名であるAを設定し(ステップ302)、次い
で、iに1を加え(ステップ303)、iの値が変数の
数N(この例ではN=4)以下であるか否かを判断する
(ステップ304)。
【0008】この時点ではi=2であるためYESの側
に移行し、V2に副処理1の書き込み先の記憶領域名で
あるCを設定し(ステップ302)、次いで、iに1を
加え(ステップ303)、iの値が変数の数4以下であ
るか否かを判断する(ステップ304)。
に移行し、V2に副処理1の書き込み先の記憶領域名で
あるCを設定し(ステップ302)、次いで、iに1を
加え(ステップ303)、iの値が変数の数4以下であ
るか否かを判断する(ステップ304)。
【0009】この時点ではi=3であるためYESの側
に移行し、V3に副処理1でビット反転するか否かを示
す“反転”を設定し(ステップ302)、次いで、iに
1を加え(ステップ303)、iの値が変数の数4以下
であるか否かを判断する(ステップ304)。
に移行し、V3に副処理1でビット反転するか否かを示
す“反転”を設定し(ステップ302)、次いで、iに
1を加え(ステップ303)、iの値が変数の数4以下
であるか否かを判断する(ステップ304)。
【0010】この時点ではi=4であるためYESの側
に移行し、V4に副処理1の番号1を設定し(ステップ
302)、次いで、iに1を加え(ステップ303)、
iの値が変数の数4以下であるか否かを判断する(ステ
ップ304)。
に移行し、V4に副処理1の番号1を設定し(ステップ
302)、次いで、iに1を加え(ステップ303)、
iの値が変数の数4以下であるか否かを判断する(ステ
ップ304)。
【0011】この時点ではi=5であるためNOの側に
移行し、副処理1を実行する(ステップ305)。
移行し、副処理1を実行する(ステップ305)。
【0012】次いで、一連の副処理が終了したか否かを
判断し(ステップ306)、この時点では未だ副処理1
しか終了していないためNOの側に移行し、上記と同様
な動作を副処理2,3についても行う。
判断し(ステップ306)、この時点では未だ副処理1
しか終了していないためNOの側に移行し、上記と同様
な動作を副処理2,3についても行う。
【0013】そして、一連の副処理が終了した場合に変
数をリセットする(ステップ307)。
数をリセットする(ステップ307)。
【0014】上記の処理をまとめると次のようになる。
V1=A,V2=C,V3=“反転”, V4=1と
してから副処理1を実行し、 V1=B,V2=A,V3=“反転”, V4=2と
してから副処理2を実行し、 V1=C,V2=B,V3=“非反転”,V4=3とし
てから副処理3を実行し、最後に変数をリセットする。
してから副処理1を実行し、 V1=B,V2=A,V3=“反転”, V4=2と
してから副処理2を実行し、 V1=C,V2=B,V3=“非反転”,V4=3とし
てから副処理3を実行し、最後に変数をリセットする。
【0015】一方、上記の処理が何らかの理由により実
行の途中で中断した場合は次のようにして処置する。
行の途中で中断した場合は次のようにして処置する。
【0016】例えば、上記の副処理2の実行の途中で中
断されてしまった場合を考えると、変数は、V4=2 であることから、中断したのが副処理2の途中であった
ことが分かるので、 V1=B,V2=A,V3=“反転” で示される副処理2を行い、次いで、 V1=C,V2=B,V3=“非反転”,V4=3とし
て副処理3を行い、最後に変数をリセットする。
断されてしまった場合を考えると、変数は、V4=2 であることから、中断したのが副処理2の途中であった
ことが分かるので、 V1=B,V2=A,V3=“反転” で示される副処理2を行い、次いで、 V1=C,V2=B,V3=“非反転”,V4=3とし
て副処理3を行い、最後に変数をリセットする。
【0017】以上の手順で、適切なトランザクション処
理を施すことができる。
理を施すことができる。
【0018】このように従来のトランザクション処理方
式では、副処理の途中で実行が中断された場合、処理再
開時に、変数に記憶された処理内容を示すコードを参照
することにより、中断された処理の内容を判断し、適切
なトランザクション処理を施すことができた。
式では、副処理の途中で実行が中断された場合、処理再
開時に、変数に記憶された処理内容を示すコードを参照
することにより、中断された処理の内容を判断し、適切
なトランザクション処理を施すことができた。
【0019】
【発明が解決しようとする課題】上述したように、従来
のトランザクション処理方式にあっては、副処理の途中
で実行が中断された場合には適切なトランザクション処
理を施すことができたが、処理内容を示すコードを書き
込んでいる途中で実行が中断された場合には、処理再開
時に正しくないコードを参照してトランザクション処理
を行うことになり、適切なトランザクション処理を施せ
ない場合が起こり得るという欠点があった。
のトランザクション処理方式にあっては、副処理の途中
で実行が中断された場合には適切なトランザクション処
理を施すことができたが、処理内容を示すコードを書き
込んでいる途中で実行が中断された場合には、処理再開
時に正しくないコードを参照してトランザクション処理
を行うことになり、適切なトランザクション処理を施せ
ない場合が起こり得るという欠点があった。
【0020】例えば、前述した例において、副処理2の
前の変数書き込み時に、変数を、 V1=B まで書き込み、 V2=A を書き込む直前に実行が中断された場合、変数の値は、
V1=B,V2=C,V3=“反転”,V4=1となっ
ており、V1,V2,V3に基づいて中断した処理を再
実行してしまうので、Bの内容をCに書き込むという誤
った処理を行ってしまう。
前の変数書き込み時に、変数を、 V1=B まで書き込み、 V2=A を書き込む直前に実行が中断された場合、変数の値は、
V1=B,V2=C,V3=“反転”,V4=1となっ
ており、V1,V2,V3に基づいて中断した処理を再
実行してしまうので、Bの内容をCに書き込むという誤
った処理を行ってしまう。
【0021】また、変数にメモリアドレス等を書き込む
場合に、1つの変数の使用バイトが大きいと、その変数
を途中まで書き換えた時に実行が中断された場合も、同
様に適切なトランザクション処理が行えなくなる。
場合に、1つの変数の使用バイトが大きいと、その変数
を途中まで書き換えた時に実行が中断された場合も、同
様に適切なトランザクション処理が行えなくなる。
【0022】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、処理再開時に適切なト
ランザクション処理が行えるように、中断した箇所を特
定することのできるデータ書き込み処理中断箇所判定方
式を提供することにある。
あり、その目的とするところは、処理再開時に適切なト
ランザクション処理が行えるように、中断した箇所を特
定することのできるデータ書き込み処理中断箇所判定方
式を提供することにある。
【0023】
【課題を解決するための手段】本発明は上記の目的を達
成するため、データ書き込み処理が実行の途中で中断さ
れる可能性があるシステムにおけるトランザクション処
理のデータ書き込み処理中断箇所判定方式において、実
行中の処理の内容を示すコードを格納する変数として、
同じ内容が格納されるべき3個以上の変数を1組とした
変数の組を1組以上用いると共に、前記変数の組の内の
どの組を書き換え中かを示す変数を用い、処理の進行に
合わせて前記変数の組と前記どの組を書き換え中かを示
す変数とを書き換えて行き、処理が実行の途中で中断さ
れた際に、各変数の値から中断された箇所を特定するよ
うにしている。
成するため、データ書き込み処理が実行の途中で中断さ
れる可能性があるシステムにおけるトランザクション処
理のデータ書き込み処理中断箇所判定方式において、実
行中の処理の内容を示すコードを格納する変数として、
同じ内容が格納されるべき3個以上の変数を1組とした
変数の組を1組以上用いると共に、前記変数の組の内の
どの組を書き換え中かを示す変数を用い、処理の進行に
合わせて前記変数の組と前記どの組を書き換え中かを示
す変数とを書き換えて行き、処理が実行の途中で中断さ
れた際に、各変数の値から中断された箇所を特定するよ
うにしている。
【0024】
【作用】本発明のデータ書き込み処理中断箇所判定方式
にあっては、処理の進行に合わせ、同じ内容が格納され
るべき3個以上の変数を1組とした変数の組を1組以上
用いて実行中の処理の内容を示すコードを格納すると共
に、その変数の組の内のどの組を書き換え中かを示す値
を他の変数に格納して行き、処理が実行の途中で中断さ
れた際に、各変数の値から中断された箇所を特定する。
にあっては、処理の進行に合わせ、同じ内容が格納され
るべき3個以上の変数を1組とした変数の組を1組以上
用いて実行中の処理の内容を示すコードを格納すると共
に、その変数の組の内のどの組を書き換え中かを示す値
を他の変数に格納して行き、処理が実行の途中で中断さ
れた際に、各変数の値から中断された箇所を特定する。
【0025】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
説明する。
【0026】図1は本発明のデータ書き込み処理中断箇
所判定方式における変数書き込み処理の一実施例を示す
フローチャートである。なお、変数Vは、3個で1組と
している。また、変数Wは組とする必要はない。
所判定方式における変数書き込み処理の一実施例を示す
フローチャートである。なお、変数Vは、3個で1組と
している。また、変数Wは組とする必要はない。
【0027】以下、従来例で説明したのと同じ処理、す
なわち、メモリ内の記憶領域A,Bの内容を、作業領域
Cを用いて入れ替え、更にビット反転させて書き込む処
理を、 副処理1:Aをビット反転させてCに書き込む。 副処理2:Bをビット反転させてAに書き込む。 副処理3:CをBに書き込む。 を経て行う場合を例として動作を説明する。
なわち、メモリ内の記憶領域A,Bの内容を、作業領域
Cを用いて入れ替え、更にビット反転させて書き込む処
理を、 副処理1:Aをビット反転させてCに書き込む。 副処理2:Bをビット反転させてAに書き込む。 副処理3:CをBに書き込む。 を経て行う場合を例として動作を説明する。
【0028】なお、変数の組Vは次のように定める。
V(1,1)〜V(1,3):書き込み元の記憶領域名
を示す変数の組。 V(2,1)〜V(2,3):書き込み先の記憶領域名
を示す変数の組。 V(3,1)〜V(3,3):ビット反転するか否かを
示す変数の組。 V(4,1)〜V(4,3):実行対象の副処理を示す
変数の組。
を示す変数の組。 V(2,1)〜V(2,3):書き込み先の記憶領域名
を示す変数の組。 V(3,1)〜V(3,3):ビット反転するか否かを
示す変数の組。 V(4,1)〜V(4,3):実行対象の副処理を示す
変数の組。
【0029】また、他の変数として、Wを、書き換え対
象の変数の組を示す変数とする。例えば、変数の組V(
3,1)〜V(3,3)を書き換えている場合は値を“
V3”と示すことにする。なお、変数Wには、上記以外
に、“副処理開始”,“処理終了”も設定されるものと
する。また、Siは処理の内容を示すコードであり、副
処理およびiの値によって種々の値をとる。
象の変数の組を示す変数とする。例えば、変数の組V(
3,1)〜V(3,3)を書き換えている場合は値を“
V3”と示すことにする。なお、変数Wには、上記以外
に、“副処理開始”,“処理終了”も設定されるものと
する。また、Siは処理の内容を示すコードであり、副
処理およびiの値によって種々の値をとる。
【0030】処理実行時において、先ず、iに1を設定
し(ステップ101)、V(1,1)に副処理1の書き
込み元の記憶領域名であるAを設定し(ステップ102
)、Wに書き込みの対象となっている変数の組を示す“
V1”を設定し(ステップ103)、同じ組の他の変数
V(1,2),V(1,3)についても副処理1の書き
込み元の記憶領域名であるAを設定し(ステップ104
,105)、次いで、iに1を加え(ステップ106)
、iの値が変数の組の数N(この例ではN=4)以下で
あるか否かを判断する(ステップ107)。
し(ステップ101)、V(1,1)に副処理1の書き
込み元の記憶領域名であるAを設定し(ステップ102
)、Wに書き込みの対象となっている変数の組を示す“
V1”を設定し(ステップ103)、同じ組の他の変数
V(1,2),V(1,3)についても副処理1の書き
込み元の記憶領域名であるAを設定し(ステップ104
,105)、次いで、iに1を加え(ステップ106)
、iの値が変数の組の数N(この例ではN=4)以下で
あるか否かを判断する(ステップ107)。
【0031】この時点ではi=2であるためYESの側
に移行し、V(2,1)に副処理1の書き込み先の記憶
領域名であるCを設定し(ステップ102)、Wに書き
込みの対象となっている変数の組を示す“V2”を設定
し(ステップ103)、同じ組の他の変数V(2,2)
,V(2,3)についても副処理1の書き込み先の記憶
領域名であるCを設定し(ステップ104,105)、
次いで、iに1を加え(ステップ106)、iの値が変
数の組の数4以下であるか否かを判断する(ステップ1
07)。
に移行し、V(2,1)に副処理1の書き込み先の記憶
領域名であるCを設定し(ステップ102)、Wに書き
込みの対象となっている変数の組を示す“V2”を設定
し(ステップ103)、同じ組の他の変数V(2,2)
,V(2,3)についても副処理1の書き込み先の記憶
領域名であるCを設定し(ステップ104,105)、
次いで、iに1を加え(ステップ106)、iの値が変
数の組の数4以下であるか否かを判断する(ステップ1
07)。
【0032】この時点ではi=3であるためYESの側
に移行し、V(3,1)に副処理1でビット反転するか
否かを示す“反転”を設定し(ステップ102)、Wに
書き込みの対象となっている変数の組を示す“V3”を
設定し(ステップ103)、同じ組の他の変数V(3,
2),V(3,3)についてもビット反転するか否かを
示す“反転”を設定し(ステップ104,105)、次
いで、iに1を加え(ステップ106)、iの値が変数
の組の数4以下であるか否かを判断する(ステップ10
7)。
に移行し、V(3,1)に副処理1でビット反転するか
否かを示す“反転”を設定し(ステップ102)、Wに
書き込みの対象となっている変数の組を示す“V3”を
設定し(ステップ103)、同じ組の他の変数V(3,
2),V(3,3)についてもビット反転するか否かを
示す“反転”を設定し(ステップ104,105)、次
いで、iに1を加え(ステップ106)、iの値が変数
の組の数4以下であるか否かを判断する(ステップ10
7)。
【0033】この時点ではi=4であるためYESの側
に移行し、V(4,1)に副処理1の番号1を設定し(
ステップ102)、Wに書き込みの対象となっている変
数の組を示す“V4”を設定し(ステップ103)、同
じ組の他の変数V(4,2),V(4,3)についても
副処理1の番号1を設定し(ステップ104,105)
、次いで、iに1を加え(ステップ106)、iの値が
変数の組の数4以下であるか否かを判断する(ステップ
107)。
に移行し、V(4,1)に副処理1の番号1を設定し(
ステップ102)、Wに書き込みの対象となっている変
数の組を示す“V4”を設定し(ステップ103)、同
じ組の他の変数V(4,2),V(4,3)についても
副処理1の番号1を設定し(ステップ104,105)
、次いで、iに1を加え(ステップ106)、iの値が
変数の組の数4以下であるか否かを判断する(ステップ
107)。
【0034】この時点ではi=5であるためNOの側に
移行し、Wに“副処理開始”を設定する(ステップ10
8)。
移行し、Wに“副処理開始”を設定する(ステップ10
8)。
【0035】そして、副処理1を実行する(ステップ1
09)。
09)。
【0036】次いで、一連の副処理が終了したか否かを
判断する(ステップ110)。なお、この判断はV(4
,−)の値が副処理の数3と等しいか否かで判断できる
。
判断する(ステップ110)。なお、この判断はV(4
,−)の値が副処理の数3と等しいか否かで判断できる
。
【0037】この時点では未だ副処理1しか終了してい
ないためNOの側に移行し、上記と同様な動作を副処理
2,3についても行う。
ないためNOの側に移行し、上記と同様な動作を副処理
2,3についても行う。
【0038】そして、一連の副処理が終了した場合にW
に“処理終了”を設定する(ステップ111)。
に“処理終了”を設定する(ステップ111)。
【0039】上記の処理をまとめると次のようになる。
〔1〕 V(1,1)=A ,W=“V1”,V(
1,2)=A ,V(1,3)=A の順に書き換
える。 〔2〕 V(2,1)=C ,W=“V2”,V(
2,2)=C ,V(2,3)=C の順に書き換
える。 〔3〕 V(3,1)=“反転”,W=“V3”,V
(3,2)=“反転”,V(3,3)=“反転” の
順に書き換える。 〔4〕 V(4,1)=1 ,W=“V4”,V(
4,2)=1 ,V(4,3)=1 の順に書き換
える。 〔5〕 W=“副処理開始” とする。 〔6〕 副処理1を実行する。 〔7〕 V(1,1)=B ,W=“V1”,V(
1,2)=B ,V(1,3)=B の順に書き換
える。 〔8〕 V(2,1)=A ,W=“V2”,V(
2,2)=A ,V(2,3)=A の順に書き換
える。
1,2)=A ,V(1,3)=A の順に書き換
える。 〔2〕 V(2,1)=C ,W=“V2”,V(
2,2)=C ,V(2,3)=C の順に書き換
える。 〔3〕 V(3,1)=“反転”,W=“V3”,V
(3,2)=“反転”,V(3,3)=“反転” の
順に書き換える。 〔4〕 V(4,1)=1 ,W=“V4”,V(
4,2)=1 ,V(4,3)=1 の順に書き換
える。 〔5〕 W=“副処理開始” とする。 〔6〕 副処理1を実行する。 〔7〕 V(1,1)=B ,W=“V1”,V(
1,2)=B ,V(1,3)=B の順に書き換
える。 〔8〕 V(2,1)=A ,W=“V2”,V(
2,2)=A ,V(2,3)=A の順に書き換
える。
〔9〕 V(3,1)=“反転”,W=“V3”,V
(3,2)=“反転”,V(3,3)=“反転” の
順に書き換える。 〔10〕 V(4,1)=2 ,W=“V4”,V
(4,2)=2 ,V(4,3)=2 の順に書き
換える。 〔11〕 W=“副処理開始” とする。 〔12〕 副処理2を実行する。 〔13〕 V(1,1)=C ,W=“V1”,V
(1,2)=C ,V(1,3)=C の順に書き
換える。 〔14〕 V(2,1)=B ,W=“V2”,V
(2,2)=B ,V(2,3)=B の順に書き
換える。 〔15〕 V(3,1)=“非反転”,W=“V3”
,V(3,2)=“非反転”,V(3,3)=“非反転
”の順に書き換える。 〔16〕 V(4,1)=3 ,W=“V4”,V
(4,2)=3 ,V(4,3)=3 の順に書き
換える。 〔17〕 W=“副処理開始” とする。 〔18〕 副処理3を実行する。 〔19〕 W=“処理終了” とする。
(3,2)=“反転”,V(3,3)=“反転” の
順に書き換える。 〔10〕 V(4,1)=2 ,W=“V4”,V
(4,2)=2 ,V(4,3)=2 の順に書き
換える。 〔11〕 W=“副処理開始” とする。 〔12〕 副処理2を実行する。 〔13〕 V(1,1)=C ,W=“V1”,V
(1,2)=C ,V(1,3)=C の順に書き
換える。 〔14〕 V(2,1)=B ,W=“V2”,V
(2,2)=B ,V(2,3)=B の順に書き
換える。 〔15〕 V(3,1)=“非反転”,W=“V3”
,V(3,2)=“非反転”,V(3,3)=“非反転
”の順に書き換える。 〔16〕 V(4,1)=3 ,W=“V4”,V
(4,2)=3 ,V(4,3)=3 の順に書き
換える。 〔17〕 W=“副処理開始” とする。 〔18〕 副処理3を実行する。 〔19〕 W=“処理終了” とする。
【0040】一方、上記の処理が何らかの理由により実
行の途中で中断した場合に、再開時に行う変数検証処理
を図2に示す。
行の途中で中断した場合に、再開時に行う変数検証処理
を図2に示す。
【0041】図2において、先ず、変数Wが“処理終了
”であるか否かを判断し(ステップ201)、“処理終
了”である場合には、図1のステップ111を通過して
いるため、中断された処理は無く、トランザクション処
理の必要はない。
”であるか否かを判断し(ステップ201)、“処理終
了”である場合には、図1のステップ111を通過して
いるため、中断された処理は無く、トランザクション処
理の必要はない。
【0042】変数Wが“処理終了”でない場合には、変
数Wが“副処理開始”であるか否かを判断し(ステップ
202)、“副処理開始”である場合には、図1のステ
ップ108を通過し、ステップ103あるいはステップ
111には達していないことから、変数Vが示す副処理
の実行中に中断されたことがわかる。なお、この場合、
厳密には副処理が正常に完了している場合もあるが、安
全のため再実行の対象としている。
数Wが“副処理開始”であるか否かを判断し(ステップ
202)、“副処理開始”である場合には、図1のステ
ップ108を通過し、ステップ103あるいはステップ
111には達していないことから、変数Vが示す副処理
の実行中に中断されたことがわかる。なお、この場合、
厳密には副処理が正常に完了している場合もあるが、安
全のため再実行の対象としている。
【0043】変数Wが“副処理開始”でない場合には、
変数Wが“Vi”で、かつ、変数V(i,1),V(i
,2),V(i,3)のうち1つでも異なるものがある
か否かを判断し(ステップ203)、その条件が満たさ
れている場合にはV(i,2),V(i,3)のどちら
かの書き込み中に中断されたことがわかる。
変数Wが“Vi”で、かつ、変数V(i,1),V(i
,2),V(i,3)のうち1つでも異なるものがある
か否かを判断し(ステップ203)、その条件が満たさ
れている場合にはV(i,2),V(i,3)のどちら
かの書き込み中に中断されたことがわかる。
【0044】変数Wが“Vi”で、かつ、変数V(i,
1),V(i,2),V(i,3)のうち1つでも異な
るものがあるという条件が満たされない(全てが等しい
)場合には、V(i+1,1)とV(i+1,2)とが
等しくないか否かを判断し(ステップ204)、等しく
ない場合にはV(i,3)を書き込んだ後に中断された
ことがわかる。
1),V(i,2),V(i,3)のうち1つでも異な
るものがあるという条件が満たされない(全てが等しい
)場合には、V(i+1,1)とV(i+1,2)とが
等しくないか否かを判断し(ステップ204)、等しく
ない場合にはV(i,3)を書き込んだ後に中断された
ことがわかる。
【0045】V(i+1,1)とV(i+1,2)とが
等しい場合には、V(j,1)≠V(j,2)となるj
があるか否かを判断し(ステップ205)、ある場合に
はV(j,1)を書き込んだ後に中断されたことがわか
り、ない場合にはV(i,3)を書き込んだ後に中断さ
れたことがわかる。
等しい場合には、V(j,1)≠V(j,2)となるj
があるか否かを判断し(ステップ205)、ある場合に
はV(j,1)を書き込んだ後に中断されたことがわか
り、ない場合にはV(i,3)を書き込んだ後に中断さ
れたことがわかる。
【0046】そして、上記の判定の結果に応じて適切な
トランザクション処理を施す。なお、トランザクション
処理の形態はシステムの性質において種々に考えられる
ため、特定することはできない。例えば、正しくない変
数Vの値を正しいものに変更してから処理を再開したり
、全ての処理をやり直したりする等が考えられる。
トランザクション処理を施す。なお、トランザクション
処理の形態はシステムの性質において種々に考えられる
ため、特定することはできない。例えば、正しくない変
数Vの値を正しいものに変更してから処理を再開したり
、全ての処理をやり直したりする等が考えられる。
【0047】例えば、前記した書き込み処理の〔16〕
のV(4,2)に3を書き込んでいる途中で実行が中断
され、V(4,2)の値が不正な値(Xとする。)とな
ってしまった場合、処理再開時には、 W=“V4” V(1,1)〜V(1,3)=C V(2,1)〜V(2,3)=B V(3,1)〜V(3,3)=“非反転”V(4,1)
=3 V(4,2)=X V(4,3)=
2 となっている。
のV(4,2)に3を書き込んでいる途中で実行が中断
され、V(4,2)の値が不正な値(Xとする。)とな
ってしまった場合、処理再開時には、 W=“V4” V(1,1)〜V(1,3)=C V(2,1)〜V(2,3)=B V(3,1)〜V(3,3)=“非反転”V(4,1)
=3 V(4,2)=X V(4,3)=
2 となっている。
【0048】従って、図2の変数検証処理を行うと、ス
テップ203でYESの側に移行することとなり、V(
4,2)の書き込み中に中断されたことがわかる。
テップ203でYESの側に移行することとなり、V(
4,2)の書き込み中に中断されたことがわかる。
【0049】そして、V(4,2),V(4,3)を3
に書き換え、〔17〕以降の処理を行うことにより、適
切なトランザクション処理が施せる。
に書き換え、〔17〕以降の処理を行うことにより、適
切なトランザクション処理が施せる。
【0050】
【発明の効果】以上説明したように、本発明のデータ書
き込み処理中断箇所判定方式にあっては、処理がどの時
点で中断されたものであっても、中断した箇所が明確に
特定できるため、適切なトランザクション処理を施せる
という効果がある。
き込み処理中断箇所判定方式にあっては、処理がどの時
点で中断されたものであっても、中断した箇所が明確に
特定できるため、適切なトランザクション処理を施せる
という効果がある。
【図1】本発明のデータ書き込み処理中断箇所判定方式
における変数書き込み処理の一実施例を示すフローチャ
ートである。
における変数書き込み処理の一実施例を示すフローチャ
ートである。
【図2】本発明のデータ書き込み処理中断箇所判定方式
における変数検証処理の一実施例を示すフローチャート
である。
における変数検証処理の一実施例を示すフローチャート
である。
【図3】従来のトランザクション処理方式における変数
書き込み処理を示すフローチャートである。
書き込み処理を示すフローチャートである。
Claims (1)
- 【請求項1】 データ書き込み処理が実行の途中で中
断される可能性があるシステムにおけるトランザクショ
ン処理のデータ書き込み処理中断箇所判定方式において
、実行中の処理の内容を示すコードを格納する変数とし
て、同じ内容が格納されるべき3個以上の変数を1組と
した変数の組を1組以上用いると共に、前記変数の組の
内のどの組を書き換え中かを示す変数を用い、処理の進
行に合わせて前記変数の組と前記どの組を書き換え中か
を示す変数とを書き換えて行き、処理が実行の途中で中
断された際に、各変数の値から中断された箇所を特定す
ることを特徴としたデータ書き込み処理中断箇所判定方
式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2416159A JPH04242838A (ja) | 1990-12-29 | 1990-12-29 | データ書き込み処理中断箇所判定方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2416159A JPH04242838A (ja) | 1990-12-29 | 1990-12-29 | データ書き込み処理中断箇所判定方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04242838A true JPH04242838A (ja) | 1992-08-31 |
Family
ID=18524400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2416159A Pending JPH04242838A (ja) | 1990-12-29 | 1990-12-29 | データ書き込み処理中断箇所判定方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04242838A (ja) |
-
1990
- 1990-12-29 JP JP2416159A patent/JPH04242838A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2310906C2 (ru) | Способ защиты вычислительного устройства от несанкционированного выполнения операций с содержимым его регистров и вычислительное устройство для осуществления этого способа | |
JPH04242838A (ja) | データ書き込み処理中断箇所判定方式 | |
CA2025197C (en) | Method and system for dynamically controlling the operation of a program | |
JP2731047B2 (ja) | プログラムのオペランドチェック方式 | |
JPH0784894A (ja) | 不揮発性メモリの書き込み方法 | |
US7080231B2 (en) | Processor with tagging buffer and methods for avoiding memory collisions | |
JP3130798B2 (ja) | バス転送装置 | |
JPS62145429A (ja) | アドレス生成制御方式 | |
JPH08320813A (ja) | プログラムシミュレータ装置及びプログラムデバッグ方法 | |
JPS63278162A (ja) | 情報処理装置におけるエラ−訂正装置 | |
JPH06274421A (ja) | データ保証方式 | |
JPS59153247A (ja) | デバツグ装置 | |
JPH0233173B2 (ja) | ||
JPH0713833A (ja) | 順編成ファイル処理方式 | |
JPS6149695B2 (ja) | ||
JPH0535499A (ja) | データ処理装置及びデータ処理方法 | |
JPS63228237A (ja) | プログラムデバツグ方式 | |
JPS58158747A (ja) | プログラマブル・コントロ−ラ | |
JPS63159905A (ja) | プログラマブルコントロ−ラの入出力強制オン/オフ方式 | |
JPS59103158A (ja) | デイジタル信号処理プログラムデバツグ方式 | |
JPS60549A (ja) | メモリ試験方式 | |
JPS61173360A (ja) | 不揮発メモリのデ−タ保護方式 | |
JPS6083148A (ja) | プログラム暴走検出方法 | |
JPS6284353A (ja) | 記憶読出し方式 | |
JPH04264625A (ja) | レジスタ管理方式 |