JP2003248590A - 結果不正検出方法およびシステム - Google Patents

結果不正検出方法およびシステム

Info

Publication number
JP2003248590A
JP2003248590A JP2002045711A JP2002045711A JP2003248590A JP 2003248590 A JP2003248590 A JP 2003248590A JP 2002045711 A JP2002045711 A JP 2002045711A JP 2002045711 A JP2002045711 A JP 2002045711A JP 2003248590 A JP2003248590 A JP 2003248590A
Authority
JP
Japan
Prior art keywords
task
executed
memory
scheduling
transaction
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
Application number
JP2002045711A
Other languages
English (en)
Inventor
Akiyoshi Tanaka
章誉 田中
Yoji Fujiwara
要治 藤原
Tsutomu Ishigaki
力 石垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002045711A priority Critical patent/JP2003248590A/ja
Publication of JP2003248590A publication Critical patent/JP2003248590A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 複数のスレッドを有するトランザクションが
取り得る全てのマルチタスクスケジューリングに関して
発生し得るメモリ空間への不正書替えの検出。 【解決手段】 システム117におけるタスクテーブル作
成機構101がOS112にトランザクション(TR)109の実行を
要求し、ルーチン115とメモリ116を監視し、TR109のメ
モリアクセス情報102だけを収集し、タスク情報を取り
出しテーブル103を作成し、該テーブルを基にスケジュ
ーリング作成機構104がテーブル105を作成する。そして
判定機構106はOSに再度TR109の実行を要求し、今度はテ
ーブル105のスケジューリングに基づき割込み制御ルー
チン107がOSのスケジューラ113に割込みを発生させなが
らスケジューリングを行う。この間、結果比較ルーチン
108は、タスクがアクセスする監視対象のメモリ空間に
格納された値が最初のTR109の実行時に取得したタスク
の情報102の値と比べて値が不正か否か判断する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチスレッド及び
マルチプロセスのマルチタスクスケジューリング実行時
に発生するメモリの不正書替え検出方法に関する。
【0002】
【従来の技術】マルチタスク処理環境において共通のメ
モリ空間にアクセスする場合、メモリ空間の内容が不正
に書き換えられることがある。この不正をソフトウェア
を用いて発見するデバッグ手法には、特開平9−223
69号公報「マルチタスキング方式のカーネルにおける
不正動作検出方法」がある。この手法は、あるタスクA
から別のタスクBに切り替わるタイミングで監視対象と
なるメモリ空間の内容を保存メモリ空間に保存し、タス
クBの処理が終了した時点で保存メモリ空間の内容と監
視対象となるメモリ空間の現在の内容を比較し、不正動
作検出手段がメモリ内容の変化に基づいてメモリ書替え
不正動作を検知している。
【0003】
【発明が解決しようとする課題】通常、OSが行うマル
チタスクスケジューリングは、例え同じプログラムを実
行しても、毎回同じスケジューリングが保証されている
わけではない。マシン環境の変化や実行中の割り込み、
最適化などの実行環境の変化によってスケジューリング
は異なってくる。上記の従来手法ではOS主導のマルチ
タスクスケジューリングを基に不正動作検出を行ってい
るため、その検出手段で検出できる不正動作は、その時
のスケジューリングに関してのみであり、実行したプロ
グラムが、どんなスケジューリングて実行されても、い
つでも正常に動作することを保証することは出来ない。
本発明の目的は、複数のスレッドを有するトランザクシ
ョンが取り得る全てのマルチタスクスケジューリングに
関して発生し得るメモリ空間への不正書替えを検出でき
るようにすることである。
【0004】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、検査対象となる複数のスレッドを有する
トランザクションのメモリアクセス情報と、該メモリア
クセス情報から取り出しアクセスメモリ空間毎に集めた
タスク情報の集合毎にタスク情報をスケジューリングし
た1以上のスケジュールアイテムをメモリに格納し、前
記検査対象のトランザクションがOSのスケジューリン
グの下に実行されるとき、実行されるタスクを監視し、
実行されるタスクが、前記1以上のスケジュールアイテ
ムから選択したスケジュールアイテムが示す実行の順番
に当たるタスクと同じとき実行させ、異なるとき待機さ
せ、待機させたタスクが前記スケジュールアイテムが示
す実行の順番になったとき待機を解除し実行させ、実行
させたタスクがそのアクセスアドレスに格納した値と、
該実行させたタスクに対応する前記メモリアクセス情報
中の値を比較し、比較結果が異なるとき結果不正の発生
を表示するようにする。
【0005】
【発明の実施の形態】(1)メモリ結果不正検出システ
ムの構成 図1は、本発明における実施例であるマルチタスク間に
おけるメモリ結果不正検出システムの構成を示すもので
ある。本実施例は、メモリ結果不正検出システム117
を有し、メモリ結果不正検出システム117の検査対象
となるトランザクション109を有する。このトランザ
クション109に含まれるスレッドは通常2つ以上存在
してもよいが、本実施例では本システムの構成を解り易
く説明するためにトランザクション109に含まれるス
レッドをスレッド1(110)とスレッド2(111)
の2つとしている。ここで示すスレッドは、プログラム
カウンタを独自に持つ一連の命令群で、それぞれのスレ
ッドはデータを共有しながら独自に実行される。またス
レッドを構成する命令群を構成する最小単位の命令がタ
スクになる。トランザクション109を処理するOS
(オペレーティングシステム)112は、トランザクシ
ョン109中のタスクスケジューリングを行うスケジュ
ーラ113を有し、スケジューラ113は、次に実行さ
れるタスク114をデータバス119を通してタスク処
理ルーチン115に送り、タスク処理ルーチン115で
タスク114を解析し処理を実行する。タスク114が
メモリアクセス処理を実行する場合は、タスク処理ルー
チン115からデータバス120を通してメモリ116
にアクセスし、指定したメモリ空間に対して書き込み処
理、又は読み込み処理が行われる。
【0006】一方、結果不正検出を行うメモリ結果不正
検出システム117は、検査対象となるトランザクショ
ン109がメモリ116にアクセスするメモリアクセス
情報102だけをOS(112)から収集し、そのメモ
リアクセス情報102からメモリアドレス毎のタスク情
報を持つタスクテーブル103を作成するタスクテーブ
ル作成機構101を有し、そのタスクテーブル103内
にあるタスク情報を基に予め定めたスケジューリング規
則に従ってタスクのスケジューリングをし、スケジュー
リング情報を蓄積したスケジュールテーブル105を作
成するスケジューリング作成機構104を有し、スケジ
ュールテーブル105で記述されたスケジューリング通
りトランザクション109のスケジューリングを行うた
めに、割り込みシステムコール118をスケジューラ1
13に対して発生させ制御する割り込み制御ルーチン1
07と、割り込み制御ルーチン107によって制御され
たメモリ116にアクセスするタスクが終了した直後の
メモリ116内のメモリ空間に格納された値と、予めト
ランザクション109を実行した時にそのタスクが終了
した時点でのメモリ空間に格納された値をメモリアクセ
ス情報102に保存しておいた値とを比較することによ
って結果不正を判定する結果比較ルーチン108を有す
る結果不正判定機構106から構成されている。メモリ
結果不正検出システム117は、トランザクションのテ
スト実行時に適用され、動作する。メモリ結果不正検出
システム117は、OSのスケジューラで作成され得る
全てのケースのスケジュールについてトランザクション
のテスト実行を行うことができる。
【0007】(2)メモリ結果不正検出システムの処理
の流れ 図2は本発明の実施例であるメモリ結果不正検出システ
ムの処理の流れを示すフローチャートである。まず、ユ
ーザがメモリ結果不正検出システム117を開始する
(ステップ201)。次に複数のスレッドを有する検査
対象となるトランザクション109をユーザが指定し
(ステップ202)、タスクテーブル作成機構101が
OS(112)にトランザクション109を実行するよ
う要求し、OS(112)側でトランザクション109
が実行されると、タスクテーブル作成機構101はタス
ク処理ルーチン115とメモリ116を監視し、トラン
ザクション109のメモリアクセス情報102を収集し
て、メモリアクセス情報102からタスク情報を取り出
し自動的にタスクテーブル103を作成する(ステップ
203)。OS(112)側でトランザクション109
が終了し、タスクテーブル103が完成したら、次にス
ケジューリング作成機構104が、ステップ203で作
成したタスクテーブル103のタスク情報からスケジュ
ール規則に基づいてスケジュールテーブル105を作成
する(ステップ204)。
【0008】結果不正判定機構106がもう一度同じト
ランザクションを実行するようにOS(112)に要求
し、今度はスケジュールテーブル105のスケジューリ
ングに基づいて割り込み制御ルーチン107がOS(1
12)のスケジューラ113に割り込みを発生させなが
らスケジューリングを行う(ステップ205)。このス
ケジューリング制御の間、結果比較ルーチン108は、
タスクがアクセスする監視対象のメモリ空間に格納され
た値がステップ203で走査した時に取得したタスクの
メモリアクセス情報102の値と比べて値が不正かどう
か判断する(ステップ206)。もし値が不正と判断さ
れれば、結果比較ルーチン108が結果不正をユーザに
伝える(ステップ207)。正常な値の場合は、OS側
でトランザクション109が終了したかどうか結果不正
判定機構106が判定し(ステップ208)、終了して
いない場合はそのままトランザクション109を続け
(ステップ209)、トランザクション109が終了す
れば本システムを終了する(ステップ210)。
【0009】(3)タスクテーブル作成機構の構成 タスクテーブル作成機構の構成例を図3に示す。タスク
テーブル作成機構101はスレッド1(110)、スレ
ッド2(111)からなるトランザクション109から
メモリアクセス情報102を取得する共有メモリアクセ
ス情報取得処理部301を有する。メモリアクセス情報
102はスレッド1(110)に対するメモリアクセス
情報303、スレッド2(111)に対するメモリアク
セス情報304から構成される。それぞれのメモリアク
セス情報は、メモリ操作を実行したタスクを識別するタ
スク識別子305、そのタスクがメモリに対して行った
操作(書き込み、読み込み、読み書き)を表すアクセス
操作306、そのタスクがメモリ操作した場所を示すメ
モリアドレス307、そのタスク終了直後のメモリアド
レス307が示すメモリに格納された値308を有す。
【0010】また、タスクテーブル作成機構は、メモリ
アクセス情報102からタスクテーブル103に変換す
るタスクテーブル変換処理部309を有し、タスクテー
ブル103はメモリアクセス情報102からメモリアド
レスごとにグループ化された同じメモリアドレスにアク
セスするタスク情報の集合を示す複数のタスクアイテム
310、311から構成される。個々のタスクアイテム
は、また、スレッド別にグループ化した複数のタスク情
報群312、313に分類される。個々のタスク情報は
タスク識別子305、アクセス操作306から構成され
る。タスクアイテムを構成するタスク情報群内のタスク
情報はタスクがOS(112)のスケジューラ113に
よって実行された順序に従って配置されている。
【0011】(4)タスクテーブル作成機構の処理の流
れ 図4はタスクテーブル作成機構の処理の流れを示すフロ
ーチャートである。タスクテーブル作成機構101は、
まず初めに負荷の少ない正しい結果が得られる実行環境
の状態にあるOS(112)に対して検査対象となる複
数のスレッドを含むトランザクション109を実行する
よう要求し(ステップ401)、OS(112)でトラ
ンザクション109の実行が開始されると同時に共有メ
モリアクセス情報取得処理部301がOS(112)で
現在実行されているトランザクション109のタスク
を、タスク処理ルーチン115とメモリ116に対し一
つ一つ監視しながら各スレッド毎のメモリアクセス情報
102を作成する(ステップ402)。次に、タスクテ
ーブル作成機構101がトランザクション109が終了
したかどうかをOS(112)に問い合わせ(ステップ
403)、もし終了していなければ(ステップ40
4)、再びメモリアクセス情報102を作成するためス
テップ402を実行し、終了すれば完成したメモリアク
セス情報102からタスクテーブル変換処理部309が
メモリアドレス毎にグループ化を行いタスクアイテムを
作成する(ステップ405)。タスクテーブル変換処理
部309は、メモリアクセス情報102内の全てのメモ
リアドレスについてグループ化したかどうか判定し(ス
テップ406)、まだ完了していない場合(ステップ4
07)は、(ステップ405)に戻り、完了すればタス
クテーブル103が完成(ステップ408)し、次のス
ケジューリング作成機構の処理に移る。
【0012】(5)スケジューリング作成機構の構成 スケジューリング作成機構の構成を、具体的なトランザ
クションとこのトランザクションから取得されるメモリ
アクセス情報の例を示した図5と、そのトランザクショ
ンを基に作成されたタスクテーブルを記述した図6、ス
ケジューリング作成機構の構成を示す図7を用いて説明
する。図5に示される検査対象となるトランザクション
は、スレッド1(110)、スレッド2(111)で構
成され、それぞれのスレッドはプログラムソース501
で示されるプログラムを実行する。プログラムソース5
01には、グローバル変数aを宣言したソースコード5
02、グローバル変数bを宣言したソースコード503
を含み、スレッド1(110)によって実行されるモジ
ュール508、スレッド2(111)によって実行され
るモジュール509で構成される。モジュール508、
509の中には排他ロックの取得を実行するソースコー
ド504、506、排他ロックの解除を示すソースコー
ド505、507が含まれ、ソースコード504、50
5に囲まれたソースコードの実行と、ソースコード50
6、507に囲まれたソースコードの実行はお互いに排
他の関係にある。OS(112)がこのトランザクショ
ンを実行し、スレッド1(110)がモジュール508
を実行した時に共有メモリアクセス情報取得処理部30
1が取得したスレッド1(110)のメモリアクセス情
報が510になり、続いてスレッド2(111)がモジ
ュール509を実行した時に共有メモリアクセス情報取
得処理部301が取得したスレッド2(111)のメモ
リアクセス情報が511になる。メモリアクセス情報の
個々の要素は、まず最初にアクセスされたメモリアドレ
スを示し(*a,*bと書かれてる記号はそれぞれ変数a,bの
アドレスを示している)、次にタスク識別子を表し、ア
クセス操作(読み込みはRead,書き込みはWrite,読み書
きはReadWriteで表される)、そのタスクが終了した時
点でのメモリアドレスが示すメモリに格納された値を表
している。
【0013】図6には、図5で示されたメモリアクセス
情報510、511を基にタスクテーブル変換処理部3
09によって作成されたタスクテーブル601を表し、
タスクテーブル601を構成する変数aのアドレスをア
クセスするタスクを基に集められたタスクアイテム60
2、変数bのアドレスをアクセスするタスクを基に集め
られたタスクアイテム603を示す。それぞれのタスク
アイテムの右列はスレッド1(110)のタスク情報群
を表し、左列はスレッド2(111)のタスク情報群を
表す。
【0014】図7では、タスクアイテム602を用いて
スケジューリングを作成するためのスケジューリング作
成機構の構成が示されている。タスクアイテム602か
ら以下に示すスケジューリング規則に従ってスケジュー
リング作成処理部701によってスケジュールテーブル
702の作成が行われる。スケジュールテーブル702
はスケジューリング規則を満たすスケジュールパターン
を表すスケジュールアイテムで構成され、図7ではタス
クアイテム602を基に作成された一部のスケジュール
アイテム703、704、705、706を示してい
る。スケジューリング規則は次ぎのとおりである。 規則1:同一スレッド内のタスク間の順序は変更できな
い。 規則2:アクセス操作が読み込みのタスクは必ず別スレ
ッドの書き込み操作を行うタスクの直後にのみ配置でき
る。
【0015】スケジュールアイテム703はスレッド1
(110)の処理が終了してからスレッド2(111)
の処理を実行するスケジュールパターンを示している。
スケジュールアイテム704は、スケジュールアイテム
703からタスク識別子が「タスクB1」のタスクをス
ケジューリング規則に基づいて先頭に配置しようとした
場合のスケジュールパターンを表している。タスク識別
子が「タスクB1」のタスクは、アクセス操作がReadの
ためスケジューリング規則2に基づいてタスク識別子が
「タスクA1」のタスクの直前ではなく直後に配置され
る。スケジュールアイテム705は、スケジュールアイ
テム704からタスク識別子が「タスクB2」のタスク
をスケジューリング規則に基づいて先頭に配置しようと
した場合のスケジュールパターンを表している。タスク
識別子が「タスクB2」のタスクは、アクセス操作がWr
iteであるが、スケジューリング規則1に基づいてタス
ク識別子が「タスクA1」のタスクの直前ではなく、タ
スク識別子が「タスクB1」のタスクの直後に配置され
る。スケジュールアイテム706は、スケジュールアイ
テム705からタスク識別子が「タスクB5」のタスク
をスケジューリング規則に基づいて先頭に配置しようと
した場合のスケジュールパターンを表している。タスク
識別子が「タスクB5」のタスクは、アクセス操作がRe
adWriteであるが、スケジューリング規則1に基づいて
タスク識別子が「タスクA1」のタスクの直前ではな
く、タスク識別子が「タスクB2」のタスクの直後に配
置される。このようにスケジューリング作成機構はタス
クアイテムからスケジューリング規則を満たすパターン
を表すスケジュールアイテムを全て作成しスケジュール
テーブルを完成させる。
【0016】(6)スケジューリング作成機構の処理の
流れ 図8にスケジューリング作成機構の処理の流れを示す。
スケジューリング作成処理部701は、タスクテーブル
変換処理部309で作成されたタスクテーブルからタス
クアイテムを1つ選択し同時に新規のスケジュールテー
ブルを作成し、タスクアイテムの左列から順番にタスク
情報を一列に並べたスケジュールアイテムを作成する
(ステップ801)。この時の動作例は図7のタスクア
イテム602からスケジュールアイテム703が作成さ
れる所にあてはまる。選択したタスクアイテムに関する
以前に作成したスケジュールアイテムからスケジューリ
ング規則を満たすタスクの配置移動を行い、以前の全て
のスケジュールアイテムとスケジューリングが重複しな
いようにスケジュールアイテムを作成する(ステップ8
02)。選択したタスクアイテムに関する以前の全ての
スケジュールアイテムからスケジューリング規則を満た
すスケジューリングが存在しないかどうか判断し(ステ
ップ803)、まだスケジューリングが存在する場合は
(ステップ804)、ステップ802に移動する。も
し、以前の全てのスケジュールアイテムからスケジュー
リング規則を満たすスケジューリングが存在しない場合
は、タスクテーブルに含まれる全てのタスクアイテムを
選択したかどうか判断し(ステップ805)、全てのタ
スクアイテムを選択していない場合は(ステップ80
6)、ステップ801に移動する。全てのタスクアイテ
ムを選択した場合は全スケジュールテーブルが完成し
(ステップ807)、結果不正判定機構に制御が移る。
【0017】(7)結果不正判定機構の構成 図9では、結果不正判定機構106がスケジュールアイ
テム3(705)を用いたスケジューリングに従ってト
ランザクションを実行し結果不正が発生しないかどうか
の判定を行っている。結果不正判定機構106にある割
り込み制御ルーチン107は、スケジュールアイテム3
(705)に従ってタスクが実行されるようOSのスケ
ジューラ113内の次に実行されるタスク114を監視
し、タスク114がスケジュールアイテム3(705)
が示す実行順序と違ったタスクを示した場合、スケジュ
ーラ113に対してその実行順序と違ったタスクを待機
させる割り込みを発生させ、待機させたタスクの順番が
回ってくれば待機解除の割り込みをスケジューラ114
に対して発生させ、OS(112)のタスク処理ルーチ
ン115によってそのタスクを実行させる。タスク処理
ルーチン115で実行したタスクが後に示す結果不正判
定タイミングの条件に一致すれば、割り込み制御ルーチ
ン107は結果比較ルーチン108に結果不正判定を依
頼する。結果不正判定を依頼された結果比較ルーチン1
08は、そのタスク終了直後のメモリ116のメモリア
ドレスである*aに格納された値901と、メモリアクセ
ス情報510、511にあるそのタスクの実行結果の値
を比較し結果不正を判定する。
【0018】(8)結果不正判定機構の処理の流れ 図10、図11を用いて結果不正判定機構の処理の流れ
を説明する。結果不正判定機構106はスケジュールテ
ーブル105からスケジュールアイテムを一つ選択し
(ステップ1001)、次に、検査対象となるメモリア
クセス情報を取得した時に実行したトランザクションと
同じトランザクション109を実行するようにOS(1
12)に要求し、OS(112)にトランザクション1
09を実行させる(ステップ1002)。次に、割り込
み制御ルーチン107が、実行すべきタスクをスケジュ
ールアイテムの先頭から順番に選択し(ステップ100
3)、図11で示す結果不正判定処理ルーチンを実行す
る(ステップ1004)。
【0019】結果不正判定処理ルーチンが開始される
と、次に実行されるタスク(OSのスケジューラ113
内の次に実行されるタスク)が、選択したスケジュール
アイテムに存在するかどうか判断し(ステップ110
1)、なければ(ステップ1102)そのままタスクが
タスク処理ルーチン115で実行され(ステップ110
3)、もう一度ステップ1101に戻る。
【0020】上記の次に実行されるタスクが、選択した
スケジュールアイテムに存在すると判断された場合は、
次に実行すべきタスク(スケジュールアイテム内の次に
実行すべきタスク)がOSのスケジューラにおいて待機
状態にあるかどうかOS(112)に問い合わせ(ステ
ップ1104)、タスクが待機状態にあると(ステップ
1105)、OS(112)に実行されるタスクを待機
状態にする要求を出し(ステップ1118)、次に実行
すべきタスクの待機状態を解除する要求をOS(11
2)に出す(ステップ1106)。そして、OS(11
2)にタスクの実行要求(ステップ1111)を行う。
次に実行すべきタスクが待機状態でない場合は、次に実
行されるタスクと次に実行すべきタスクが等しいかどう
か判断し(ステップ1107)、等しい場合はタスクの
実行要求がOS(112)に対して行われる(ステップ
1111)。次に実行されるタスクと次に実行すべきタ
スクが等しくない場合(ステップ1108)は、次に実
行すべきタスクが属するスレッド以外の検査対象となる
スレッドが、他のスレッドに対して排他をとっているか
どうかOS(112)に問い合わせ(ステップ110
9)、排他を取っている場合は選択したスケジュールア
イテムのスケジュールは実行不可能なので現在実行中の
トランザクション109の停止要求をOS(112)に
出し、図10のステップ1007に進む。排他を取って
いない場合は、次に実行されるタスクを待機状態にする
要求をOS(112)に出し(ステップ1110)、ス
テップ1101に戻る。
【0021】ステップ1111でタスクの実行がタスク
処理ルーチン113によって実行され終了すると、実行
したタスクが結果不正判定タイミング条件、すなわち、
タスクのアクセス操作が読み込みでかつ直前に実行され
たタスクのアクセス操作が書き込みであるという条件、
を満たすかどうか判断し(ステップ1112)、条件を
満たさない場合は(ステップ1113)、結果不正判定
処理ルーチンを終了する(ステップ1117)。結果不
正判定タイミング条件を満たす場合は、結果比較ルーチ
ン108が、そのタスク終了直後のメモリアドレス*aに
格納された値901と、メモリアクセス情報510、5
11にあるそのタスクの実行結果の値が等しいかどうか
比較し(ステップ1114)、結果が異なれば(ステッ
プ1115)結果不正が発生したことを表示し(ステッ
プ1116)、結果が等しければ結果不正判定処理ルー
チンを終了する(ステップ1117)。
【0022】結果不正判定処理ルーチンが終了すれば図
10に戻り、選択したスケジュールアイテムの最後のタ
スクを処理したかどうかをタスク処理ルーチン115に
問い合わせ(ステップ1006)、そうでなければステ
ップ1003に戻り、選択したスケジュールアイテムの
最後のタスクをタスク処理ルーチン115が処理した場
合は、スケジュールテーブルに含まれる全てのスケジュ
ールアイテムを処理したかどうか判断し(ステップ10
07)、そうでなければステップ1001に戻る。スケ
ジュールテーブルに含まれる全てのスケジュールアイテ
ムを処理した場合は、検査対象のトランザクションの検
査が終了する。
【0023】
【発明の効果】本発明によれば、検査対象となるマルチ
スレッド、マルチタスクで構成されるトランザクション
が実行時にとり得る全てのマルチタスクスケジューリン
グを作成し、作成したマルチタスクスケジューリングに
従ってトランザクションを実行しながら同時にメモリの
監視を行うことにより、トランザクションが取り得る全
てのスケジューリングに対してメモリの不正書替えを検
出することを可能にする。また、従来の検出方法では非
常に検出することが困難だった、タイミングによるトラ
ンザクションの実行環境の変化によって発生する潜伏化
し易いメモリの不正書替えを検出することを可能にな
る。
【図面の簡単な説明】
【図1】本発明の実施例であるメモリ結果不正検出シス
テムの全体構成を示す図である。
【図2】本発明の実施例であるメモリ結果不正検出シス
テム全体の処理を示す流れ図である。
【図3】本発明の実施例であるタスクテーブル作成機構
の構成を示す図である。
【図4】本発明の実施例であるタスクテーブル作成機構
の処理を示す流れ図である。
【図5】本発明の実施例であるトランザクションからメ
モリアクセス情報を取得する具体例を示す図である。
【図6】本発明の実施例である図5で示したメモリアク
セス情報からタスクテーブルを作成する作成例を示す図
である。
【図7】本発明の実施例であるスケジューリング作成機
構の構成を示す図である。
【図8】本発明の実施例であるスケジューリング作成機
構の処理を示す流れ図である。
【図9】本発明の実施例である結果不正判定機構の構成
を示す図である。
【図10】本発明の実施例である結果不正判定機構の処
理を示す流れ図である。
【図11】本発明の実施例である結果不正判定処理ルー
チンの処理を示す流れ図である。
【符号の説明】
101 タスクテーブル作成機構 102 メモリアクセス情報 103 タスクテーブル 104 スケジューリング作成機構 105 スケジュールテーブル 106 結果不正判定機構 107 割り込み制御ルーチン 108 結果比較ルーチン 109 トランザクション 110、111 スレッド 112 OS 113 スケジューラ 114 タスク 115 タスク処理ルーチン 116 メモリ 117 メモリ結果不正検出システム 118 制御割り込みシステムコール 119、120 データバス
フロントページの続き (72)発明者 石垣 力 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 Fターム(参考) 5B042 GA23 GA33 GB01 JJ15 JJ30 KK13 MC03 MC07 MC08 MC21 5B098 AA03 GA04 JJ08 JJ09

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセス又はマルチスレッドが実
    行可能なOS(オペレーティングシステム)を有するコ
    ンピュータ上で、マルチタスクスケジューリングによっ
    て実行されたタスクが共通メモリ空間にアクセスするこ
    とによって発生する結果不正検出方法であって、 検査対象となるトランザクションのメモリアクセス情報
    と、該メモリアクセス情報から取り出しアクセスメモリ
    空間毎に集めたタスク情報の集合毎にタスク情報をスケ
    ジューリングした1以上のスケジュールアイテムをメモ
    リに格納し、 前記検査対象のトランザクションがOSのスケジューリ
    ングの下に実行されるとき、実行されるタスクを監視
    し、実行されるタスクが、前記1以上のスケジュールア
    イテムから選択したスケジュールアイテムが示す実行の
    順番に当たるタスクと同じとき実行させ、異なるとき待
    機させ、待機させたタスクが前記スケジュールアイテム
    が示す実行の順番になったとき待機を解除し実行させ、 実行させたタスクがそのアクセスメモリ空間に格納した
    値と、該実行させたタスクに対応する前記メモリアクセ
    ス情報中の値を比較し、比較結果が異なるとき結果不正
    の発生を表示することを特徴とする結果不正検出方法。
  2. 【請求項2】 請求項1記載の結果不正検出方法におい
    て、 前記検査対象のトランザクションをOSのスケジューリ
    ングの下に実行させ、該実行中にトランザクションがメ
    モリにアクセスするメモリアクセス情報を収集して、該
    収集したメモリアクセス情報を前記検査対象となるトラ
    ンザクションのメモリアクセス情報とし、 該メモリアクセス情報からタスク情報を取り出し、該タ
    スク情報をアクセスメモリ空間毎に集め、各アクセスメ
    モリ空間毎にタスクテーブルを作成し、該各タスクテー
    ブル毎にスケジューリング規則に従ってタスクをスケジ
    ューリングして、前記1以上のスケジュールアイテムを
    作成することを特徴とする結果不正検出方法。
  3. 【請求項3】 マルチプロセス又はマルチスレッドが実
    行可能なOS(オペレーティングシステム)を有するコ
    ンピュータ上で、マルチタスクスケジューリングによっ
    て実行されたタスクが共通メモリ空間にアクセスするこ
    とによって発生する結果不正検出システムであって、 検査対象となるトランザクションのメモリアクセス情報
    と、該メモリアクセス情報から取り出しアクセスメモリ
    空間毎に集めたタスク情報の集合毎にタスク情報をスケ
    ジューリングした1以上のスケジュールアイテムを格納
    した記憶手段と、 前記検査対象のトランザクションがOSのスケジューリ
    ングの下に実行されるとき、実行されるタスクを監視
    し、実行されるタスクが、前記1以上のスケジュールア
    イテムから選択したスケジュールアイテムが示す実行の
    順番に当たるタスクと同じとき実行させ、異なるとき待
    機させ、待機させたタスクが前記スケジュールアイテム
    が示す実行の順番になったとき待機を解除し実行させる
    手段と、、 実行させたタスクがそのアクセスメモリ空間に格納した
    値と、該実行させたタスクに対応する前記メモリアクセ
    ス情報中の値を比較し、比較結果が異なるとき結果不正
    の発生を表示する手段を有することを特徴とする結果不
    正検出システム。
  4. 【請求項4】 請求項1記載の結果不正検出システムに
    おいて、 前記検査対象のトランザクションをOSのスケジューリ
    ングの下に実行させ、該実行中にトランザクションがメ
    モリにアクセスするメモリアクセス情報を収集して、該
    収集したメモリアクセス情報を前記検査対象となるトラ
    ンザクションのメモリアクセス情報としてメモリに格納
    する手段と、 該メモリアクセス情報からタスク情報を取り出し、該タ
    スク情報をアクセスメモリ空間毎に集め、各アクセスメ
    モリ空間毎にタスクテーブルを作成する手段と、 該各タスクテーブル毎にスケジューリング規則に従って
    タスクをスケジューリングして、前記1以上のスケジュ
    ールアイテムを作成してメモリに格納する手段を有する
    ことを特徴とする結果不正検出システム。
  5. 【請求項5】 検査対象のトランザクションをOSのス
    ケジューリングの下に実行させ、該実行中にトランザク
    ションがメモリにアクセスするメモリアクセス情報を収
    集し、収集したメモリアクセス情報をメモリに格納する
    手順と、 該作成したメモリアクセス情報からタスク情報を取り出
    し、該タスク情報をアクセスメモリ空間毎に集め、各ア
    クセスメモリ空間毎にタスクテーブルを作成する手順
    と、 該各タスクテーブル毎にスケジューリング規則に従って
    タスクをスケジューリングして、1以上のスケジュール
    アイテムを作成してメモリに格納する手順と、該1以上
    のスケジュールアイテムから1つのスケジュールアイテ
    ムを選択する手順と、 前記検査対象のトランザクションがOSのスケジューリ
    ングの下に実行されるとき、実行されるタスクを監視
    し、実行されるタスクが、前記選択したスケジュールア
    イテムが示す実行の順番に当たるタスクと同じとき実行
    させ、異なるとき待機させ、待機させたタスクが前記ス
    ケジュールアイテムが示す実行の順番になったとき待機
    を解除し実行させる手順と、 実行させたタスクがそのアクセスメモリ空間に格納した
    値と、該実行させたタスクに対応する前記メモリアクセ
    ス情報中の値を比較し、比較結果が異なるとき結果不正
    の発生を表示する手順をコンピュータに実行させるため
    のプログラム。
JP2002045711A 2002-02-22 2002-02-22 結果不正検出方法およびシステム Pending JP2003248590A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002045711A JP2003248590A (ja) 2002-02-22 2002-02-22 結果不正検出方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002045711A JP2003248590A (ja) 2002-02-22 2002-02-22 結果不正検出方法およびシステム

Publications (1)

Publication Number Publication Date
JP2003248590A true JP2003248590A (ja) 2003-09-05

Family

ID=28659408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002045711A Pending JP2003248590A (ja) 2002-02-22 2002-02-22 結果不正検出方法およびシステム

Country Status (1)

Country Link
JP (1) JP2003248590A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867347A (zh) * 2016-03-29 2016-08-17 全球能源互联网研究院 一种基于机器学习技术的跨空间级联故障检测方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867347A (zh) * 2016-03-29 2016-08-17 全球能源互联网研究院 一种基于机器学习技术的跨空间级联故障检测方法

Similar Documents

Publication Publication Date Title
JP5432973B2 (ja) アプリケーションプログラムのパフォーマンス解析方法、アプリケーションプログラムのパフォーマンス解析に用いられるシステム及び装置
CN101218561B (zh) 用于提供用户可编程低开销多线程化的处理器、系统和方法
JP4476193B2 (ja) 情報処理方法および情報処理装置
US7840787B2 (en) Method and apparatus for non-deterministic incremental program replay using checkpoints and syndrome tracking
US7908604B2 (en) Synchronization method and program for a parallel computer
WO2009067219A1 (en) Contention management for a hardware transactional memory
JP2010503070A (ja) 従属命令スレッドスケジューリング
US20090132796A1 (en) Polling using reservation mechanism
US20020004966A1 (en) Painting apparatus
JP5326374B2 (ja) プロセッサ、性能プロファイリング装置、性能プロファイリングプログラムおよび性能プロファイリング方法
JPH0823837B2 (ja) サンプリング性能分析方法及び装置
US20070130569A1 (en) Method, apparatus and program storage device for providing a no context switch attribute that allows a user mode thread to become a near interrupt disabled priority
KR19980086609A (ko) 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어
JP5397546B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
US7779230B2 (en) Data flow execution of methods in sequential programs
JP2003248590A (ja) 結果不正検出方法およびシステム
JP2004192052A (ja) ソフトウェア処理方法およびソフトウェア処理システム
KR20200077297A (ko) 멀티 프로세스/멀티 스레드에서 사용하는 공유 메모리에 대한 원자성 위반 결함 탐지 방법 및 장치
JP4066838B2 (ja) 共有リソースの競合検出器および共有リソースの競合検出方法
JP3323169B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JP5429395B2 (ja) 情報処理装置、情報処理プログラム、および情報処理方法
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP7454700B2 (ja) 演算装置及び検査方法
JPH1069405A (ja) タスク単位cpu使用率測定システム
JP6477216B2 (ja) 演算装置、スレッド切替方法、及びマルチスレッドプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040318