JP2006252345A - タスク管理システム - Google Patents

タスク管理システム Download PDF

Info

Publication number
JP2006252345A
JP2006252345A JP2005070081A JP2005070081A JP2006252345A JP 2006252345 A JP2006252345 A JP 2006252345A JP 2005070081 A JP2005070081 A JP 2005070081A JP 2005070081 A JP2005070081 A JP 2005070081A JP 2006252345 A JP2006252345 A JP 2006252345A
Authority
JP
Japan
Prior art keywords
task
verifier
shared memory
address
memory
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
JP2005070081A
Other languages
English (en)
Inventor
Toru Egashira
徹 江頭
Takeshi Inamura
雄 稲村
Atsushi Takeshita
敦 竹下
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2005070081A priority Critical patent/JP2006252345A/ja
Publication of JP2006252345A publication Critical patent/JP2006252345A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】共有メモリに対するタスクのアクセス権の管理を柔軟に行うタスク管理システムを提供する。
【解決手段】タスク管理システムは、共有メモリを特定するメモリ番号と共有メモリの検証子とを関連付けるレコードから構成される検証子記憶データを記憶する記憶手段230と、タスク用のタスクアドレス空間に記憶されているデータから検証子を生成する検証子生成部217と、タスクアドレス空間中の共有メモリに格納されているデータから生成された検証子を検証子記憶領域233に記憶する検証子更新部216と、タスクアドレス空間中の共有メモリに格納されているデータから生成された検証子と、検証子記憶領域233に記憶されている当該共有メモリの検証子とが一致するか否かについて検証する検証部218とを備える。
【選択図】図1

Description

本発明は、複数のタスクを並列に実行するオペレーティングシステム(OS)におけるタスク管理システムに関する。
従来から、電子計算機上で複数のタスクを高速に切り替えながら実行することで並行処理を実現する際のタスクの切り替えを実現するタスク管理システムが知られている。かかるタスク管理システムは、電子計算機のオペレーティングシステムのサブシステムである。
図12〜図15を参照して、従来のタスク管理システムについて説明する。図12は、従来のタスク管理システム100の構成を示すブロック図である。
図12に示すように、従来のタスク管理システム100は、タスク管理手段110と、記憶手段130とを備える。タスク管理手段110は、タスク中断部111と、次タスク選択部112と、アドレス切替部113と、タスク再開部114とを備える。
タスク中断部111は、実行状態のタスクを実行待機状態に変更する。次タスク選択部112は、実行再開するタスクを選出する。アドレス切替部113は、タスクアドレス空間を切り替える。タスク再開部114は、実行再開するタスクを実行待機状態から実行状態に変更する。
記憶手段130は、タスク情報記憶領域131と、複数のタスクアドレス空間132−1〜132−nとを備える。
タスク情報記憶領域131は、各タスクを識別するためのタスク番号と、各タスクの状態を示すタスク情報とを関連付けるタスク情報記憶データを記憶する領域である。ここで、タスク情報には、CPU(中央処理装置)のレジスタの内容や、当該タスクが利用していたタスクアドレス空間の指定子等の当該タスクを後刻実行再開するのに必要なデータや、当該タスクの優先度や累計実行時間等の管理上のデータが含まれる。
図13は、タスク情報記憶データのデータ構造を具体例で示す図である。タスク情報記憶データ300は、タスク番号欄とタスク情報欄とを備える行から構成される表形式のデータであり、同一行のタスク番号欄のタスク番号と、タスク情報欄のタスク情報が関連付けられている。尚、タスク情報は一般に複雑なデータ構造であるため、図示は省略している。又、タスク情報記憶データの行のことをレコードとも呼ぶ。
図12に示すタスクアドレス空間132−1〜132−nは、各タスクに固有のアドレス空間であるタスクアドレス空間である。タスクアドレス空間は論理アドレス空間であり、物理アドレス空間とのマッピング(対応付け)はタスクごとに一般に異なる。即ち、異なるタスクで同じアドレスに対しアクセスしても、実際にアクセスされる物理アドレスは一般に異なる(同じであっても良い)。
但し、アドレス空間のマッピングのための機構を備えていない電子計算機も世に多数存在し、そのような電子計算機ではタスクアドレス空間は全て物理アドレス空間と等しいアドレス空間となる。
アドレス空間のマッピング機構を備えている電子計算機において、オペレーティングシステムは一般に、異なるタスクのタスクアドレス空間は互いに重複しない物理アドレス空間にマッピングすることによりタスク相互の隔離を行うが、異なるタスクのタスクアドレス空間の一部を意図的に同じ物理アドレス空間にマッピングすることにより、タスク間でデータの受け渡しを行えるようにすることもできる。そのように、複数のタスクアドレス空間にマッピングされることが想定される物理アドレス空間の部分、又は、広義にはその物理アドレス空間の部分がマッピングされる各タスクのタスクアドレス空間の部分のことを共有メモリという。
図14は、共有メモリの概念を説明する図であり、共有メモリである物理アドレス空間の同一の部分を3つのタスクがそれぞれのタスクアドレス空間の一部としてマッピングしている。同図のように、一般に共有メモリがマッピングされるアドレスは各タスクにおいて異なる。
尚、共有メモリは、物理アドレス空間において一般に複数用意することができる。そのうち特定の共有メモリを特定のタスクがタスクアドレス空間にマッピングしているとき、そのタスクはその共有メモリを利用しているという。
次に、従来のタスク管理システムの動作について説明する。図15は、従来のタスク管理システム100がタスクの切り替えを行う際に行う処理を説明するフローチャートである。
図15のステップS101において、タスク中断部111は、現在実行状態であるタスクを実行待機状態にし、そのタスクのタスク情報を、タスク情報記憶領域131に記憶する。ここで実行状態であったタスクを、以降「タスクA」と参照することにする。
次に、ステップS102において、次タスク選択部112は、次に実行再開対象とするタスクを選択する。ここで、実行再開対象として選択されたタスクを、以降「タスクB」と参照することにする。より具体的には、次タスク選択部112は、タスク情報記憶領域131を参照して、タスク間の公平性や優先度等を考慮して、タスク管理システム100が取り扱うタスクの中から、実行再開する対象となるタスク(タスクB)を決定する。
次に、ステップS103において、アドレス切替部113は、タスクBが以前実行状態であったときに利用していたタスクアドレス空間が利用できるように、タスクアドレス空間を切り替える。より具体的には、CPUのセグメントレジスタの設定や、ページテーブルの変更等のように、論理アドレスと物理アドレスとのマッピング機構の設定変更によって、タスクアドレス空間を切り替える。但し、かかるアドレスマッピング機構を用いていない電子計算機(即ち、物理アドレスを唯一のアドレス空間とするシステム)において、物理アドレス空間を分割した各々をタスクアドレス空間とする場合には、タスクアドレス空間の切り替えの設定処理は不要である。
次に、ステップS104において、タスク再開部114は、タスクBを実行状態にし、本動作は終了する。より具体的には、タスク再開部114は、タスク情報記憶領域131からタスクBのタスク情報を取得し、取得したタスク情報に基づいてCPUのレジスタ内容を設定することでタスクBの実行を再開させる。
上述のような従来のタスク管理システムの例としては、タスクスイッチ制御部とタスク中断部とタスク再開部とを備えるシステム(例えば、特許文献1参照。)や、UNIX(登録商標)等のマルチタスクOSが知られている。
特開2000−66904号公報
しかしながら、従来のタスク管理システムでは、共有メモリに対するタスクのアクセス権の管理を柔軟に行うことができなかった。即ち、個々の共有メモリに独立してタスクごとのアクセス権設定ができず、又、アクセス権を動的に変更できなかった。
このため、あるタスクを特定の共有メモリにアクセス可能とすると、そのタスクは同時に別の共有メモリにもアクセス可能となってしまう不都合があり、又、タスクの共有メモリに対するアクセス権をそのタスクのライフタイムの途中で剥奪したり、再び付与したりすることができず、継続してアクセスを許すしかなかった。
これらの不都合があることにより、注目する共有メモリに本来アクセスすることが認められないはずのタスクが当該共有メモリに格納されているデータを読み出して利用することが可能であるという問題点があり、又、共有メモリを正当利用(共有メモリのアクセス権を持ち、かつ、その共有メモリを利用すること)する他のタスクに知られることなく、当該共有メモリの格納するデータを書き換えてしまうことが可能であるという問題点があった。
そこで、本発明は、上記の課題に鑑み、共有メモリに対するタスクのアクセス権の管理を柔軟に行うことができ、共有メモリに対するアクセス権のないタスクからは当該共有メモリに格納されているデータを読み出して利用することを不可能にでき、又、共有メモリに対するアクセス権のないタスクが当該共有メモリに格納されているデータを書き換えた場合にはそれを検知することができるタスク管理システムを提供することを目的とする。
上記目的を達成するため、本発明の特徴は、複数のタスクを並列に実行するオペレーティングシステムにおけるタスク管理システムであって、(a)共有メモリを特定するメモリ番号と共有メモリの検証子とを関連付けるレコードから構成される検証子記憶データを記憶する記憶手段と、(b)タスク用のタスクアドレス空間に記憶されているデータから検証子を生成する検証子生成部と、(c)タスク切り替えの際に、実行状態から実行待機状態に変更される第1のタスクが正当利用している第1の共有メモリについて、検証子生成部が生成した検証子を、第1の共有メモリのメモリ番号に関連付けられた検証子の値として、検証子記憶データに設定する検証子更新部と、(d)タスク切り替えの際に、実行待機状態から実行状態に変更される第2のタスクが正当利用している第2の共有メモリについて、検証子生成部が生成した検証子が、検証子記憶データ中の第1の共有メモリのメモリ番号に関連付けられた検証子と一致するか否かについて検証する検証部とを備えるタスク管理システムであることを要旨とする。
本発明の特徴に係るタスク管理システムによると、特定の共有メモリに注目した時に、その共有メモリを正当利用するタスクが実行状態から実行待機状態に変更される時にはその共有メモリの検証子が生成されて検証子記憶データに記憶され、次にその共有メモリを正当利用するタスクが実行待機状態から実行状態に変更される時にはその共有メモリの検証子が生成され、それと検証子記憶データに記憶されている検証子とが比較される。
よって、その間にその共有メモリが不当利用(正当利用以外の共有データの利用のこと)され、その記憶するデータに変更が生じたことを検知することができる。
又、本発明の特徴に係るタスク管理システムの検証子更新部は、第1のタスクが正当利用している第1の共有メモリを第2のタスクが正当利用していない場合に、検証子を検証子記憶データに設定し、検証部は、第2のタスクが正当利用している第2の共有メモリを第1のタスクが正当利用していない場合に、検証子の一致を検証してもよい。
このタスク管理システムによると、タスクを切り替える際に切り替わる前後のタスクが共通の共有メモリを正当利用している場合に、検証子更新処理のうちその共有メモリについての部分処理を省略することができ、かつ、検証処理のうちその共有メモリについての部分処理を省略することができる。
又、本発明の特徴に係るタスク管理システムの記憶手段は、タスク情報記憶領域にはタスクを特定するタスク番号とタスクが正当利用している共有メモリを特定するメモリ番号とを関連付けるレコードから構成されるタスク情報記憶データを更に記憶し、検証子更新部は、第1のタスクについて、タスク情報記憶データの第1のレコードによりタスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第1のタスクが正当利用している第1の共有メモリとし、検証部は、第2のタスクについて、タスク情報記憶データの第2のレコードによりタスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第2のタスクが正当利用している第2の共有メモリとしてもよい。
このタスク管理システムによると、タスク情報記憶データを参照することにより、共有メモリに対するタスクのアクセス権の管理を更に柔軟に行うことができる。
又、本発明の特徴に係るタスク管理システムにおいて、タスク情報記憶データを構成するレコードには、レコードが削除対象であるかどうかを指定する削除フラグが関連付けられており、検証子更新部は、検証子を検証子記憶データに設定した後に、タスク情報記憶データの第1のレコードに関連付けられた削除フラグが真値の場合は、レコードを削除してもよい。
このタスク管理システムによると、検証子更新処理の後にタスク情報記憶データのレコードが削除される。このため、検証子更新処理の前にタスク情報記憶データのレコードが削除されてしまうことにより、当該レコードに基づいて行われるべきであった共有メモリの検証子更新処理が行われず、検証子記憶データ中の検証子が共有メモリに記憶されているデータの現状を反映しなくなってしまうような不都合が起こらず、アクセス権の剥奪を動的に行っても問題が起こらない。
又、本発明の特徴に係るタスク管理システムは、検証子更新部が検証子を検証子記憶データに設定する前に、第1のタスクが正当利用している第1の共有メモリに記憶されているデータを暗号化する暗号化部と、検証部が検証子の一致を検証した後に、当該検証結果に応じて、もしくは無条件に、第2のタスクが正当利用している第2の共有メモリに記憶されているデータを復号する復号部とを備えてもよい。
このタスク管理システムによると、特定の共有メモリに注目した時に、その共有メモリを正当利用するタスクが実行状態から実行待機状態に変更される時にはその共有メモリに記憶されているデータが暗号化され、次にその共有メモリを正当利用するタスクが実行待機状態から実行状態に変更される時にはその共有メモリに記憶されているデータが復号される。よって、その間にその共有メモリが不当利用されてその記憶するデータが読み出されても、当該データは暗号化されているために正常に利用することは実用上不可能である。
又、本発明の特徴に係るタスク管理システムにおいて、暗号化部は、第1のタスクが正当利用している第1の共有メモリを第2のタスクが正当利用していない場合には、第1の共有メモリに記憶されているデータを暗号化し、復号部は、第2のタスクが正当利用している第2の共有メモリを第1のタスクが正当利用していない場合には、第1の共有メモリに記憶されているデータを復号してもよい。
このタスク管理システムによると、タスクを切り替える際に切り替わる前後のタスクが共通の共有メモリを正当利用している場合に、暗号化処理のうちその共有メモリについての部分処理を省略することができ、かつ、復号処理のうちその共有メモリについての部分処理を省略することができる。
又、本発明の特徴に係るタスク管理システムにおいて、検証子記憶データは、共有メモリを特定するメモリ番号と共有メモリの物理アドレスとを関連付けるレコードから構成され、アドレス及びメモリ番号の入力を受けて、アドレスの物理アドレスと、メモリ番号に検証子記憶データにおいて関連付けられている物理アドレスとが等しい場合に、メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断するアドレス確認部を更に備えてもよい。
このタスク管理システムによると、共有メモリがタスクアドレス空間における特定のアドレスに存在するかどうかを確認することができる。よって、事前にこの確認をしておくことにより、タスク情報記憶データに誤った共有メモリアドレスを設定してしまうことによりその誤った情報に基づいて検証子更新処理が行われたり、その誤った情報に基づいて共有メモリのデータが暗号化されたりする不都合が発生することを防止できるため、タスク情報記憶データの編集によりタスクにアクセス権を動的に付与しても問題が起こりにくい。
又、本発明の特徴に係るタスク管理システムにおいて、検証子記憶データは、共有メモリを特定するメモリ番号と共有メモリに固有の情報であるマークと共有メモリ中のマークの位置を指定するマーク位置とを関連付けるレコードから構成され、アドレス及びメモリ番号の入力を受けて、アドレスに検証子記憶データにおいてメモリ番号に関連付けられているマーク位置の値を加えたアドレスに、検証子記憶データにおいてメモリ番号に関連付けられているマークが記憶されている場合に、メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断するアドレス確認部を更に備えてもよい。
このタスク管理システムによると、共有メモリがタスクアドレス空間における特定のアドレスに存在するかどうかを確認することができる。よって、事前にこの確認をしておくことにより、タスク情報記憶データに誤った共有メモリアドレスを設定してしまうことによりその誤った情報に基づいて検証子更新処理が行われたりする不都合が発生することを防止できるため、タスク情報記憶データの編集によりタスクにアクセス権を動的に付与しても問題が起こりにくい。
又、本発明の特徴に係るタスク管理システムにおいて、検証子記憶データは共有メモリを特定するメモリ番号と共有メモリに固有の情報であるマークと共有メモリ中のマークの位置を指定するマーク位置とを関連付けるレコードから構成され、アドレス及びメモリ番号の入力を受けて、復号部は、アドレスにメモリ番号で特定されるアドレス範囲のデータを復号し、アドレスに検証子記憶データにおいてメモリ番号に関連付けられているマーク位置の値を加えたアドレスに、検証子記憶データにおいてメモリ番号に関連付けられているマークが記憶されている場合に、メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断するアドレス確認部を備えてもよい。
このタスク管理システムによると、共有メモリがタスクアドレス空間における特定のアドレスに存在するかどうかを確認することができる。よって、事前にこの確認をしておくことにより、タスク情報記憶データに誤った共有メモリアドレスを設定してしまうことによりその誤った情報に基づいて検証子更新処理が行われたり、その誤った情報に基づいて共有メモリのデータが暗号化されたりする不都合が発生することを防止できるため、タスク情報記憶データの編集によりタスクにアクセス権を動的に付与しても問題が起こりにくい。
本発明によると、共有メモリに対するタスクのアクセス権の管理を柔軟に行うことができ、共有メモリに対するアクセス権のないタスクからは当該共有メモリに格納されているデータを読み出して利用することを不可能にでき、又、共有メモリに対するアクセス権のないタスクが当該共有メモリに格納されているデータを書き換えた場合にはそれを検知することができるタスク管理システムを提供することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。但し、図面は模式的なものであることに留意すべきである。
(タスク管理システム)
本実施形態では、複数のタスクを並列に実行するオペレーティングシステムにおけるタスク管理システムについて説明する。
本実施形態に係るタスク管理システム200は、図1に示すように、タスク管理手段210と記憶手段230とを備える。
タスク管理手段210は、タスク中断部111と、次タスク選択部112と、アドレス切替部113と、タスク再開部114と、暗号化部215と、検証子更新部216と、検証子生成部217と、検証部218と、復号部219と、アドレス確認部220とを備える。
タスク中断部111と、次タスク選択部112と、アドレス切替部113と、タスク再開部114とは、従来技術によるタスク管理手段110における各部と同一である。
検証子生成部217は、タスク用のタスクアドレス空間に記憶されているデータの検証子を生成する。具体的には、検証子生成部217は、記憶手段230の現在利用できるタスクアドレス空間を含むアドレス空間における所定アドレス範囲に記憶されているデータから検証子を生成する。
ここで、検証子は、所定アドレス範囲に記憶されているデータを、所定の変換関数に入力することによって算出される出力データである。但し、かかる変換関数の性質としては、同一の入力データに対して同一の出力データを算出し、又、任意の入力データ「A」に対する出力データが「B」であったときに、出力データが同じく「B」となるような入力データ「A」とは異なる入力データ「C」を見出すことが非常に困難であることが必要である。
そのような性質を満たす変換関数としては、「MD5(Message Digest 5)」や「SHA(Secure Hash Algorithm)」等のセキュアハッシュ関数や、入力データを可逆符号化する可逆符号化関数(入力データをそのまま出力データとする変換関数を含む)等が挙げられる。又、セキュアハッシュ関数は、入力データ長によらない長さのデータを出力するが、計算処理負荷が比較的大きい。一方、可逆符号化関数は、計算処理負荷は比較的小さいが、入力データ長に応じた長さのデータを出力するという性質を持つ。したがって、検証子生成部217は、指定された所定アドレス範囲の広さが、比較的小さい場合(例えば、所定閾値よりも小さい場合)には、可逆符号化関数の出力を出力データとして採用し、それ以外の場合(例えば、所定閾値よりも大きい場合)には、セキュアハッシュ関数の出力を出力データとして採用する変換関数を用いることもできる。
検証子更新部216は、タスクアドレス空間中の共有メモリに格納されているデータから生成された検証子を検証子記憶領域233に記憶する。具体的には、検証子更新部216は、タスク切り替えの際に、実行状態から実行待機状態に変更される第1のタスクが正当利用している第1の共有メモリについて、検証子生成部217が生成した検証子を、第1の共有メモリのメモリ番号に関連付けられた検証子の値として、記憶手段230に記憶された検証子記憶データに設定する。又、検証子更新部216は、第1のタスクが正当利用している第1の共有メモリを第2のタスクが正当利用していない場合にのみ、検証子を検証子記憶データに設定してもよい。
尚、後に詳述するが、検証子更新部216は、第1のタスクについて、タスク情報記憶データの第1のレコードにより当該タスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第1のタスクが正当利用している第1の共有メモリとする。
又、検証子更新部216は、検証子を検証子記憶データに設定した後に、タスク情報記憶データの第1のレコードに関連付けられた削除フラグが真値の場合は、当該レコードを削除する。
検証部218は、タスクアドレス空間中の共有メモリに格納されているデータから生成された検証子と、検証子記憶領域233に記憶されている当該共有メモリの検証子とが一致するか否かについて検証する。具体的には、検証部218は、タスク切り替えの際に、実行待機状態から実行状態に変更される第2のタスクが正当利用している第2の共有メモリについて、検証子生成部217が生成した検証子が、記憶手段230に記憶された検証子記憶データ中の第1の共有メモリのメモリ番号に関連付けられた検証子と一致するか否かについて検証する。又、検証部218は、第2のタスクが正当利用している第2の共有メモリを第1のタスクが正当利用していない場合にのみ、検証子の一致を検証してもよい。
尚、後に詳述するが、検証部218は、第2のタスクについて、タスク情報記憶データの第2のレコードにより当該タスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第2のタスクが正当利用している第2の共有メモリとする。
暗号化部215は、タスクアドレス空間中の所定アドレス範囲に記憶されているデータを暗号化する。具体的には、暗号化部215は、検証子更新部216が検証子を検証子記憶データに設定する前に、タスク切り替えの際に、実行状態から実行待機状態に変更される第1のタスクが正当利用している第1の共有メモリに記憶されているデータを暗号化する。
復号部219は、タスクアドレス空間中の所定アドレス範囲に記憶されている暗号化されたデータを復号する。具体的には、復号部219は、検証部218が検証子の一致を検証した後に、当該検証結果に応じて、もしくは無条件に、タスク切り替えの際に、実行待機状態から実行状態に変更される第2のタスクが正当利用している第2の共有メモリに記憶されているデータを復号する。又、復号部219は、アドレス及びメモリ番号の入力を受けて、当該アドレスにメモリ番号で特定されるアドレス範囲のデータを復号してもよい。
アドレス確認部220は、指定されたアドレスに指定された共有メモリが存在するかを確認する。具体的には、アドレス確認部220は、アドレス及びメモリ番号の入力を受けて、当該アドレスの物理アドレスと、当該メモリ番号に検証子記憶データにおいて関連付けられている物理アドレスとが等しい場合に、当該メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断してもよい。あるいは、アドレス確認部220は、アドレス及びメモリ番号の入力を受けて、当該アドレスに検証子記憶データにおいて当該メモリ番号に関連付けられているマーク位置の値を加えたアドレスに、検証子記憶データにおいて当該メモリ番号に関連付けられているマークが記憶されている場合に、当該メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断してもよい。
記憶手段230は、タスク情報記憶領域231と、複数のタスクアドレス空間132−1〜132−nと、検証子記憶領域233とを備える。記憶手段230は、RAMなどの内部記憶装置であってもよく、HDなどの外部記憶装置であってもよい。
タスクアドレス空間132−1〜132−nは、従来技術に係るタスク管理システム100におけるタスクアドレス空間132−1〜132−nと同一である。
タスク情報記憶領域231は、タスクを識別するためのタスク番号と、タスクの状態を示すタスク情報と、共有メモリのタスクアドレス空間におけるアドレスを示す共有メモリアドレスと、共有メモリを識別するメモリ番号と、削除すべき情報かどうかを示す削除フラグとを要素として関連付ける、タスク情報記憶データを記憶する領域である。
これら要素のうち、タスク番号及びタスク情報に関しては、従来技術におけるそれらと同一である。共有メモリアドレスは、特定のタスクアドレス空間における特定の共有メモリのアドレスである。メモリ番号は、共有メモリを識別する番号であり、タスク管理システム100の全域を通じて通用する番号である。即ち、あるタスクにおけるメモリ番号が“3”の共有メモリは、その他のタスクにおけるメモリ番号“3”の共有メモリと同一である。削除フラグは、その値が真値であるときには、タスク情報記憶データにおけるその削除フラグを要素とする関連付けを削除すべきであることを意味するフラグである。
尚、タスク情報記憶データにおいて、タスク番号とメモリ番号が関連付けられている場合、そのタスク番号で特定されるタスクは、そのメモリ番号で特定される共有メモリのアクセス権を持つ。
図2は、タスク情報記憶データのデータ構造を具体例で示す図である。タスク情報記憶データ310は、タスク番号欄とタスク情報欄と共有メモリアドレス欄とメモリ番号欄と削除フラグ欄とを備える行(図2では、L31〜38)から構成される表形式のデータであり、同一行のタスク番号欄のタスク番号と、タスク情報欄のタスク情報と、共有メモリアドレス欄と共有メモリアドレスと、メモリ番号欄のメモリ番号と、削除フラグ欄の削除フラグとが関連付けられている。尚、タスク情報は一般に複雑なデータ構造であるため、図示は省略している。又、後に詳述するが、L36は、削除フラグの値が真値であるため、図3に示すように、削除される。
検証子記憶領域233は、共有メモリを識別するメモリ番号と、共有メモリのアドレス空間のサイズを示すメモリ長と、共有メモリの暗号化の要否を示す暗号化フラグと、共有メモリの検証子と、共有メモリの物理アドレスと、マークのデータ内容であるマーク内容と、マークの共有メモリの先頭からの相対アドレスであるマーク位置とを要素として関連付ける検証子記憶データを記憶する領域である。
これら要素のうち、メモリ番号及び検証子、物理アドレスについては前述したとおりである。メモリ長は、共有メモリのアドレス空間の大きさを、その空間に記憶することが可能な最長のデータのバイト数やワード数などで示したものである。暗号化フラグは共有メモリに格納するデータの暗号化処理・復号処理の要否を指定するフラグであり、真値の時には、暗号化処理・復号処理が必要であることを意味する。マーク内容は、マークのデータパタンとして用いられているデータである。マーク位置は、共有メモリにおいてマークが格納されているアドレスを共有メモリの先頭アドレスからの相対アドレスで示したものである。尚、ここで、「マーク」とは、共有メモリを識別するために共有メモリのアドレス空間の一部に格納されるデータパタンである。異なる共有メモリではマーク内容もしくはマーク位置が異なるようにしておくことにより、既知のマークを確認することで、あるアドレス空間がいずれかの共有メモリであるかどうかを推測することができる。
図4は、検証子記憶データのデータ構造を具体例で示す図である。検証子記憶データ400は、メモリ番号欄と、メモリ長欄と、暗号化フラグ欄と、検証子欄と、物理アドレス欄と、マーク内容欄と、マーク位置欄とを備える行から構成される表形式のデータであり、同一行のメモリ番号欄のメモリ番号と、メモリ長欄のメモリ長と、暗号化フラグ欄の暗号化フラグと、検証子欄の検証子と、物理アドレス欄の物理アドレスと、マーク内容欄のマーク内容と、マーク位置欄のマーク位置とが関連付けられている。尚、検証子記憶データの行のことをレコードとも呼ぶ。
(タスク管理方法)
次に、本実施形態に係るタスク管理方法について、図5〜図11を用いて説明する。尚、タスク中断部111と次タスク選択部112とアドレス切替部113とタスク再開部114の動作は、従来技術に係る動作と同じであるため、説明を省略する。
まず、図5を用いて、タスク管理システム200がタスクの切り替えを行う際に行う動作について説明する。
ステップS101において、タスク中断部111が現在実行状態であるタスクを実行待機状態にし、そのタスクのタスク情報を、タスク情報記憶領域131に記憶する。ここで実行状態であったタスクを、以降「タスクA」と参照することにする。
次に、ステップS102において、次タスク選択部112が次に実行再開対象とするタスクを選択する。ここで実行再開対象として選択されたタスクを、以降「タスクB」と参照することにする。より具体的には、次タスク選択部112は、タスク情報記憶領域131を参照して、タスク間の公平性や優先度等を考慮して、タスク管理システム100が取り扱うタスクの中から、実行再開する対象となるタスク(タスクB)を決定する。
次に、ステップS111において、タスクAの検証子を更新する。より具体的には、タスクAとタスクBのタスク番号をパラメタとして、検証子更新部216が中心となり、後述の検証子更新処理を行う。
次に、ステップS103において、アドレス切替部113は、タスクBが以前実行状態であったときに利用していたタスクアドレス空間が利用できるように、タスクアドレス空間を切り替える。アドレス空間の切り替えは、より具体的には、CPUのセグメントレジスタの設定や、ページテーブルの変更等のように、論理アドレスと物理アドレスとのマッピング機構の設定変更によって、タスクアドレス空間を切り替える。但し、かかるアドレスマッピング機構を用いていない電子計算機(即ち、物理アドレスを唯一のアドレス空間とするシステム)において、物理アドレス空間を分割した各々をタスクアドレス空間とする場合には、タスクアドレス空間の切り替えの設定処理は不要である。
次に、ステップS112において、タスクBについて検証する。より具体的には、タスクAとタスクBのタスク番号をパラメタとして、検証部218が中心となり後述の検証処理を行う。
次に、ステップS113において、検証部218が検証処理にて検証成功の報告をした場合には、ステップS104に進み、それ以外の場合は、ステップS114に進む。
次に、ステップS104において、タスク再開部114は、タスクBを実行状態にし、処理を終了する。より具体的には、タスク再開部114は、タスク情報記憶領域131からタスクBのタスク情報を取得し、取得したタスク情報に基づいて、CPUのレジスタ内容を設定することでタスクBの実行を再開させる。
一方、ステップS114において、タスク管理システム100は、異常検出時処理を行い、処理を終了する。異常検出時処理とは、例えば、電子計算機の管理者に異常発生を通知する処理や、イベントログに異常発生を記録する処理や、タスクBに異常発生を通知する処理や、ステップS104と同じ処理や、タスクBを終了させる処理のいずれか又はそれらの処理の複合等が挙げられる。
次に、図5のステップS111に示す検証子更新処理の動作について、図6を用いて詳細に説明する。
まず、ステップS201において、タスク管理システム200は、検証子更新処理のパラメタであるタスクAのタスク番号と、パラメタであるタスクBのタスク番号とを、変数TAとTBとにそれぞれ代入する。
ステップS202〜ステップS208はループ処理であり、タスク管理システム200は、タスク情報記憶領域231の記憶するタスク情報記憶データを走査し、タスク番号欄がTAの値と等しい行があるごとに、当該行を「行LT」と参照し、ステップS203以下の処理を行う。タスク情報記憶データをすべて走査し終わったら、ループ処理を終了し、検証子更新処理を終了する。
具体例を用いて説明すると、タスク情報記憶領域231が図2に示すタスク情報記憶データ310を記憶しており、TAの値が4335であった場合には、タスク番号欄がTAの値と等しい行は、タスク情報記憶データ310に行L32と行L33の2つあるため、本ループ処理においてステップS203以下の処理は、2回行われる。そのうち1回においては、行L32が行LTとして参照され、別の1回においては行L33が行LTとして参照される。
ステップS203において、検証子更新部216は、行LTの共有メモリアドレス欄の値と行LTのメモリ番号欄の値とを、変数Aと変数Dにそれぞれ代入し、検証子記憶領域233の記憶する検証子記憶データの中でメモリ番号欄がDの値と等しい行を以下行LVと参照し、行LVのデータ長欄の値を変数Nに代入する。
次に、ステップS204において、検証子更新部216は、タスク番号がTBの値であるタスクもメモリ番号がDの値である共有メモリを利用しているかを確認する。即ち、タスク情報記憶領域231の記憶するタスク情報記憶データの中でタスク番号欄がTBの値と等しく、かつ、メモリ番号欄がDの値と等しい行が存在するかどうか確認し、当該行が存在する場合は、ステップS206に進み、それ以外の場合は、ステップS205に進む。
次に、ステップS205において、後述の処理P2を行う。
次に、ステップS206において、検証子更新部216は、行LTの削除フラグ欄の値を確認し、それが真値の場合は、ステップS207に進み、それ以外の場合は、ステップS208に進む。
次に、ステップS207において、検証子更新部216は、タスク情報記憶領域231の記憶するタスク情報記憶データの行LTを削除する。具体例を用いて説明すると、タスク情報記憶領域231が図2のタスク情報記憶データ310を記憶しており、行LTが行L36であった場合にステップS207の処理を行うと行L36は削除され、タスク情報記憶領域231の記憶内容は、図3のタスク情報記憶データ311のようになる。
次に、ステップS208において、ループ始端であるステップS202に進み、ループ処理を継続する。
次に、図6のステップS205に示す処理P2の動作について、図7を用いて詳細に説明する。
まず、ステップS211において、タスク管理システム200は、行LVの暗号化フラグ欄の値を確認し、それが真値の場合は、ステップS212に進み、それ以外の場合は、ステップS213に進む。
次に、ステップS212において、暗号化部215は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータを暗号化する。
次に、ステップS213において、検証子生成部217は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータにつき検証子を生成する。
次に、ステップS214において、検証子更新部216は、行LVの検証子欄に生成された検証子を代入し、本動作を終了する。
次に、図5のステップS112に示す検証処理の動作について、図8を用いて詳細に説明する。
まず、ステップS301において、タスク管理システム200は、検証処理のパラメタであるタスクAのタスク番号と、パラメタであるタスクBのタスク番号とを、変数TAとTBとにそれぞれ代入する。
ステップS302〜ステップS306はループ処理であり、タスク管理システム200は、タスク情報記憶領域231の記憶するタスク情報記憶データを走査し、タスク番号欄がTAの値と等しい行があるごとに、当該行を「行LT」と参照し、ステップS303以下の処理を行う。タスク情報記憶データをすべて走査し終わったら、ループ処理を終了し、ステップS307に進む。
ステップS303において、検証部218は、行LTの共有メモリアドレス欄の値と行LTのメモリ番号欄の値とを変数Aと変数Dにそれぞれ代入し、検証子記憶領域233の記憶する検証子記憶データの中でメモリ番号欄がDの値と等しい行を以下行LVと参照し、行LVのデータ長欄の値を変数Nに代入する。
次に、ステップS304において、検証部218は、タスク番号がTBの値であるタスクもメモリ番号がDの値である共有メモリを利用しているかを確認する。即ち、タスク情報記憶領域231の記憶するタスク情報記憶データの中でタスク番号欄がTBの値と等しく、かつ、メモリ番号欄がDの値と等しい行が存在するかどうか確認し、当該行が存在する場合、ステップS306に進み、それ以外の場合は、ステップS305に進む。
次に、ステップS305において、後述の処理P3を行う。
次に、ステップS306において、本動作はループ始端であるステップS302に進み、ループ処理を継続する。
次に、ステップS307において、検証部218は、ステップS302〜ステップS306のループ処理にて検証子不一致があったかどうか確認し、検証子不一致があった場合には、ステップS309に進み、それ以外の場合は、ステップS308に進む。尚、検証子不一致があったかどうかの判断は、ステップS305の処理P3におけるステップS313の処理が行われたことがあるかどうかにより判断する。同処理が行われたことがある場合には、検証子不一致があったと判断する。
次に、ステップS308において、検証部218は、検証成功を報告し、本動作を終了する。
一方、ステップS309において、検証部218は、検証失敗を報告し、本動作を終了する。
次に、図8のステップS305に示す処理P3の動作について、図9を用いて詳細に説明する。
まず、ステップS311において、検証子生成部217は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータにつき検証子を生成する。
ステップS312において、検証部218は、生成された検証子と行LVの検証子欄の値とが一致するかどうか確認し、一致する場合は、ステップS314に進み、それ以外の場合は、ステップS313に進む。
ステップS313において、タスク管理システム200は、検証子不一致処理を行い、本動作を終了する。検証子不一致処理は、例えば、電子計算機の管理者に異常発生を通知する処理や、イベントログに異常発生を記録する処理や、タスクBに異常発生を通知する処理や、ステップS314及びS315からなる処理と同じ処理や、タスクBを終了させる処理のいずれか又はそれらの処理の複合等が挙げられる。
次に、ステップS314において、タスク管理システム200は、行LVの暗号化フラグ欄の値を確認し、それが真値の場合は、ステップS315に進み、それ以外の場合は、処理を終了する。
次に、ステップS315において、復号部219は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータを復号し、処理を終了する。
本実施形態に係るタスク管理方法では、事前に、共有メモリがタスクアドレス空間における特定のアドレスに存在するか否かを確認する。このアドレス確認処理は、定期的にあるいは任意に、アドレス及びメモリ番号がタスク管理手段210に入力されることにより、実行される。
次に、アドレス確認部220が行うアドレス確認処理は、具体的には、以下の2種類の動作が挙げられる。1種類目の動作について、図10を用いて説明する。
まず、ステップS401において、アドレス確認部220は、パラメタのアドレス値とパラメタのメモリ番号とを変数Aと変数Dとにそれぞれ代入する。
次に、ステップS402において、アドレス確認部220は、検証子記憶領域233の記憶する検証子記憶データの中でメモリ番号欄がDの値と等しい行を以下行LVと参照し、行LVの物理アドレス欄の値を変数PDに代入し、Aの値である論理アドレスを物理アドレスに変換した値を変数PAに代入する。
次に、ステップS403において、アドレス確認部220は、PAの値とPDの値とが等しいかどうか確認し、等しい場合は、ステップS404に進み、それ以外の場合は、ステップS405に進む。
次に、ステップS404に進んだ場合は、即ち、パラメタのメモリ番号(D)で特定される共有メモリのアドレスはパラメタのアドレス値(A)のアドレスであるとみなせるため、ステップS404において、アドレス確認部220は、アドレス正当を報告し、処理を終了する。
一方、ステップS405において、アドレス確認部220は、アドレス不当を報告し、処理を終了する。
次に、アドレス確認部220が行うアドレス確認処理の2種類目の動作について、図11を用いて説明する。
まず、ステップS411において、アドレス確認部220は、パラメタのアドレス値とパラメタのメモリ番号とを変数Aと変数Dとにそれぞれ代入する。
次に、ステップS412において、アドレス確認部220は、検証子記憶領域233の記憶する検証子記憶データの中でメモリ番号欄がDの値と等しい行を以下行LVと参照し、行LVのデータ長欄の値とマーク内容欄の値とマーク位置欄の値とを変数Nと変数Mと変数Pとにそれぞれ代入する。
次に、ステップS413において、アドレス確認部220は、行LVの暗号化フラグ欄の値を確認し、それが真値の場合は、ステップS414に進み、それ以外の場合は、ステップS416に進む。
次に、ステップS414において、アドレス確認部220は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータを一時保存する。一時保存とは、データを一時保存用変数(図示せず)にコピーすることである。
次に、ステップS415において、復号部219は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されているデータを復号する。
次に、ステップS416において、アドレス確認部220は、記憶手段230においてAの値にPの値を加えた値のアドレスに格納されているデータがMの値と一致するかどうかを確認し、一致する場合は、ステップS417に進み、それ以外の場合は、ステップS418に進む。
ステップS417に進んだ場合は、即ち、パラメタのメモリ番号(D)で特定される共有メモリのアドレスは、パラメタのアドレス値(A)のアドレスであるとみなせるため、ステップS417において、アドレス確認部220は、アドレス正当を報告する。
一方、ステップS418において、アドレス確認部220は、アドレス不当を報告する。
次に、ステップS419において、アドレス確認部220は、記憶手段230においてAの値のアドレス及びNの値のデータ長で定まるアドレス範囲に格納されていたデータを復元し、処理を終了する。復元とは、当該アドレス範囲に、ステップS414の処理において一時保存用変数にコピーしておいたデータを格納することである。但し、本動作においてステップS414の処理が行われなかった場合には、この復元処理も行わない。
(作用及び効果)
本実施形態に係るタスク管理システム200によると、特定の共有メモリに注目した時に、その共有メモリを正当利用するタスクが実行状態から実行待機状態に変更される時にはその共有メモリの検証子が生成されて記憶手段230の検証子記憶領域233に記憶され、次にその共有メモリを正当利用するタスクが実行待機状態から実行状態に変更される時にはその共有メモリの検証子が生成され、それと検証子記憶データに記憶されている検証子とが比較される。
このため、共有メモリに対するタスクのアクセス権の管理を柔軟に行うことができ、共有メモリに対するアクセス権のないタスクからは当該共有メモリに格納されているデータを読み出して利用することを不可能にでき、又、共有メモリに対するアクセス権のないタスクが当該共有メモリに格納されているデータを書き換えた場合にはそれを検知することができる。
又、本実施形態に係るタスク管理システム200の検証子更新部216は、実行状態から実行待機状態に変更される第1のタスクが正当利用している第1の共有メモリを第2のタスクが正当利用していない場合に、検証子を検証子記憶データに設定し、検証部218は、実行待機状態から実行状態に変更される第2のタスクが正当利用している第2の共有メモリを第1のタスクが正当利用していない場合に、検証子の一致を検証することができる。
このため、タスクを切り替える際に切り替わる前後のタスクが共通の共有メモリを正当利用している場合に、検証子更新処理のうちその共有メモリについての部分処理を省略することができ、かつ、検証処理のうちその共有メモリについての部分処理を省略することができる。
又、本実施形態に係るタスク管理システム200の記憶手段230は、タスク情報記憶領域にはタスクを特定するタスク番号とタスクが正当利用している共有メモリを特定するメモリ番号とを関連付けるレコードから構成されるタスク情報記憶データを更に記憶し、検証子更新部216は、第1のタスクについて、タスク情報記憶データの第1のレコードによりタスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第1のタスクが正当利用している第1の共有メモリとし、検証部219は、第2のタスクについて、タスク情報記憶データの第2のレコードによりタスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、第2のタスクが正当利用している第2の共有メモリとすることができる。
このため、タスク情報記憶データを参照することにより、共有メモリに対するタスクのアクセス権の管理を更に柔軟に行うことができる。
又、本実施形態に係るタスク管理システム200において、タスク情報記憶データを構成するレコードには、レコードが削除対象であるかどうかを指定する削除フラグが関連付けられており、検証子更新部216は、検証子を検証子記憶データに設定した後に、タスク情報記憶データの第1のレコードに関連付けられた削除フラグが真値の場合は、レコードを削除することができる。
このように、検証子更新処理の後にタスク情報記憶データのレコードが削除されるため、検証子更新処理の前にタスク情報記憶データのレコードが削除されてしまうことにより、当該レコードに基づいて行われるべきであった共有メモリの検証子更新処理が行われず、検証子記憶データ中の検証子が共有メモリに記憶されているデータの現状を反映しなくなってしまうような不都合が起こらず、アクセス権の剥奪を動的に行っても問題が起こらない。
又、本実施形態に係るタスク管理システム200は、検証子更新部216が検証子を検証子記憶データに設定する前に、第1のタスクが正当利用している第1の共有メモリに記憶されているデータを暗号化する暗号化部215と、検証部218が検証子の一致を検証した後に、当該検証結果に応じて、もしくは無条件に、第2のタスクが正当利用している第2の共有メモリに記憶されているデータを復号する復号部219とを備える。
このため、特定の共有メモリに注目した時に、その共有メモリを正当利用するタスクが実行状態から実行待機状態に変更される時にはその共有メモリに記憶されているデータが暗号化され、次にその共有メモリを正当利用するタスクが実行待機状態から実行状態に変更される時にはその共有メモリに記憶されているデータが復号される。よって、その間にその共有メモリが不当利用されてその記憶するデータが読み出されても、当該データは暗号化されているために正常に利用することは実用上不可能である。
又、本実施形態に係るタスク管理システム200において、暗号化部215は、第1のタスクが正当利用している第1の共有メモリを第2のタスクが正当利用していない場合には、第1の共有メモリに記憶されているデータを暗号化し、復号部219は、第2のタスクが正当利用している第2の共有メモリを第1のタスクが正当利用していない場合には、第1の共有メモリに記憶されているデータを復号する。
このため、タスクを切り替える際に切り替わる前後のタスクが共通の共有メモリを正当利用している場合に、暗号化処理のうちその共有メモリについての部分処理を省略することができ、かつ、復号処理のうちその共有メモリについての部分処理を省略することができる。
又、本実施形態に係るタスク管理システム200は、アドレス確認部220を備える。アドレス確認部220は、アドレス及びメモリ番号の入力を受けて、アドレスの物理アドレスと、メモリ番号に検証子記憶データにおいて関連付けられている物理アドレスとが等しい場合に、メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断する。
又、アドレス確認部220は、アドレス及びメモリ番号の入力を受けて、アドレスに検証子記憶データにおいてメモリ番号に関連付けられているマーク位置の値を加えたアドレスに、検証子記憶データにおいてメモリ番号に関連付けられているマークが記憶されている場合に、メモリ番号で特定される共有メモリのアドレスは入力されたアドレスで正当であると判断してもよい。
更に、復号部219は、アドレス及びメモリ番号の入力を受けて、アドレスにメモリ番号で特定されるアドレス範囲のデータを復号する。
このため、共有メモリがタスクアドレス空間における特定のアドレスに存在するかどうかを確認することができる。よって、事前にこの確認をしておくことにより、タスク情報記憶データに誤った共有メモリアドレスを設定してしまうことによりその誤った情報に基づいて検証子更新処理が行われたり、その誤った情報に基づいて共有メモリのデータが暗号化されたりする不都合が発生することを防止できるため、タスク情報記憶データの編集によりタスクにアクセス権を動的に付与しても問題が起こりにくい。
本実施形態に係るタスク管理システムの構成ブロック図である。 本実施形態に係るタスク管理システムのタスク情報記憶領域に記憶されるタスク情報記憶データの一例である(その1)。 本実施形態に係るタスク管理システムのタスク情報記憶領域に記憶されるタスク情報記憶データの一例である(その2)。 本実施形態に係るタスク管理システムの検証子記憶領域に記憶される検証子記憶データの一例である。 本実施形態に係るタスク管理方法を示すフローチャートである。 図5のステップS111の詳細を示すフローチャートである。 図6のステップS205の詳細を示すフローチャートである。 図5のステップS112の詳細を示すフローチャートである。 図8のステップS305の詳細を示すフローチャートである。 本実施形態に係るタスク管理方法におけるアドレス確認処理を示すフローチャートである(その1)。 本実施形態に係るタスク管理方法におけるアドレス確認処理を示すフローチャートである(その2)。 従来のタスク管理システムの構成ブロック図である。 従来のタスク管理システムのタスク情報記憶領域に記憶されるタスク情報記憶データの一例である。 共有メモリを説明するための図である。 従来のタスク管理方法を示すフローチャートである。
符号の説明
100…タスク管理システム
110…タスク管理手段
111…タスク中断部
112…次タスク選択部
113…アドレス切替部
114…タスク再開部
130…記憶手段
131…タスク情報記憶領域
132…タスクアドレス空間
200…タスク管理システム
210…タスク管理手段
215…暗号化部
216…検証子更新部
217…検証子生成部
218…検証部
219…復号部
220…アドレス確認部
230…記憶手段
231…タスク情報記憶領域
233…検証子記憶領域
300、310、311…タスク情報記憶データ
400…検証子記憶データ


Claims (9)

  1. 複数のタスクを並列に実行するオペレーティングシステムにおけるタスク管理システムであって、
    共有メモリを特定するメモリ番号と該共有メモリの検証子とを関連付けるレコードから構成される検証子記憶データを記憶する記憶手段と、
    前記タスク用のタスクアドレス空間に記憶されているデータから検証子を生成する検証子生成部と、
    タスク切り替えの際に、実行状態から実行待機状態に変更される第1のタスクが正当利用している第1の共有メモリについて、前記検証子生成部が生成した検証子を、前記第1の共有メモリのメモリ番号に関連付けられた検証子の値として、前記検証子記憶データに設定する検証子更新部と、
    前記タスク切り替えの際に、実行待機状態から実行状態に変更される第2のタスクが正当利用している第2の共有メモリについて、前記検証子生成部が生成した検証子が、前記検証子記憶データ中の前記第1の共有メモリのメモリ番号に関連付けられた検証子と一致するか否かについて検証する検証部と
    を備えることを特徴とするタスク管理システム。
  2. 前記検証子更新部は、前記第1のタスクが正当利用している前記第1の共有メモリを前記第2のタスクが正当利用していない場合に、前記検証子を前記検証子記憶データに設定し、
    前記検証部は、前記第2のタスクが正当利用している前記第2の共有メモリを前記第1のタスクが正当利用していない場合に、検証子の一致を検証する
    ことを特徴とする請求項1に記載のタスク管理システム。
  3. 前記記憶手段は、タスク情報記憶領域にはタスクを特定するタスク番号と該タスクが正当利用している共有メモリを特定するメモリ番号とを関連付けるレコードから構成されるタスク情報記憶データを更に記憶し、
    前記検証子更新部は、前記第1のタスクについて、前記タスク情報記憶データの第1のレコードにより該タスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、前記第1のタスクが正当利用している前記第1の共有メモリとし、
    前記検証部は、前記第2のタスクについて、前記タスク情報記憶データの第2のレコードにより該タスクのタスク番号に関連付けられたメモリ番号で特定される共有メモリを、前記第2のタスクが正当利用している前記第2の共有メモリとする
    ことを特徴とする請求項1又は2に記載のタスク管理システム。
  4. 前記タスク情報記憶データを構成するレコードには、該レコードが削除対象であるかどうかを指定する削除フラグが関連付けられており、
    前記検証子更新部は、前記検証子を前記検証子記憶データに設定した後に、前記タスク情報記憶データの前記第1のレコードに関連付けられた削除フラグが真値の場合は、該レコードを削除する
    ことを特徴とする請求項3に記載のタスク管理システム。
  5. 前記検証子更新部が前記検証子を前記検証子記憶データに設定する前に、前記第1のタスクが正当利用している前記第1の共有メモリに記憶されているデータを暗号化する暗号化部と、
    前記検証部が検証子の一致を検証した後に、当該検証結果に応じて、もしくは無条件に、前記第2のタスクが正当利用している前記第2の共有メモリに記憶されているデータを復号する復号部と
    を備えることを特徴とする請求項1〜4のいずれかに1項に記載のタスク管理システム。
  6. 前記暗号化部は、前記第1のタスクが正当利用している前記第1の共有メモリを前記第2のタスクが正当利用していない場合には、前記第1の共有メモリに記憶されているデータを暗号化し、
    前記復号部は、前記第2のタスクが正当利用している前記第2の共有メモリを前記第1のタスクが正当利用していない場合には、前記第1の共有メモリに記憶されているデータを復号する
    ことを特徴とする請求項5に記載のタスク管理システム。
  7. 前記検証子記憶データは、共有メモリを特定するメモリ番号と該共有メモリの物理アドレスとを関連付けるレコードから構成され、
    アドレス及びメモリ番号の入力を受けて、
    該アドレスの物理アドレスと、該メモリ番号に前記検証子記憶データにおいて関連付けられている物理アドレスとが等しい場合に、該メモリ番号で特定される共有メモリのアドレスは前記入力された前記アドレスで正当であると判断するアドレス確認部を更に備える
    ことを特徴とする請求項1〜6のいずれか1項に記載のタスク管理システム。
  8. 前記検証子記憶データは、共有メモリを特定するメモリ番号と該共有メモリに固有の情報であるマークと該共有メモリ中の該マークの位置を指定するマーク位置とを関連付けるレコードから構成され、
    アドレス及びメモリ番号の入力を受けて、
    該アドレスに前記検証子記憶データにおいて該メモリ番号に関連付けられているマーク位置の値を加えたアドレスに、前記検証子記憶データにおいて該メモリ番号に関連付けられているマークが記憶されている場合に、該メモリ番号で特定される共有メモリのアドレスは前記入力された前記アドレスで正当であると判断するアドレス確認部を更に備える
    ことを特徴とする請求項1〜4のいずれか1項に記載のタスク管理システム。
  9. 前記検証子記憶データは共有メモリを特定するメモリ番号と該共有メモリに固有の情報であるマークと該共有メモリ中の該マークの位置を指定するマーク位置とを関連付けるレコードから構成され、
    アドレス及びメモリ番号の入力を受けて、
    前記復号部は、該アドレスに該メモリ番号で特定されるアドレス範囲のデータを復号し、
    該アドレスに前記検証子記憶データにおいて該メモリ番号に関連付けられているマーク位置の値を加えたアドレスに、前記検証子記憶データにおいて該メモリ番号に関連付けられているマークが記憶されている場合に、該メモリ番号で特定される共有メモリのアドレスは前記入力された前記アドレスで正当であると判断するアドレス確認部を備える
    ことを特徴とする請求項5又は6に記載のタスク管理システム。

JP2005070081A 2005-03-11 2005-03-11 タスク管理システム Pending JP2006252345A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005070081A JP2006252345A (ja) 2005-03-11 2005-03-11 タスク管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005070081A JP2006252345A (ja) 2005-03-11 2005-03-11 タスク管理システム

Publications (1)

Publication Number Publication Date
JP2006252345A true JP2006252345A (ja) 2006-09-21

Family

ID=37092760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005070081A Pending JP2006252345A (ja) 2005-03-11 2005-03-11 タスク管理システム

Country Status (1)

Country Link
JP (1) JP2006252345A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008096848A1 (ja) * 2007-02-08 2008-08-14 Nec Corporation アクセス制御システム、アクセス制御方法、電子装置、及び制御プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008096848A1 (ja) * 2007-02-08 2008-08-14 Nec Corporation アクセス制御システム、アクセス制御方法、電子装置、及び制御プログラム
US8434127B2 (en) 2007-02-08 2013-04-30 Nec Corporation Access control system, access control method, electronic device and control program
JP5263602B2 (ja) * 2007-02-08 2013-08-14 日本電気株式会社 アクセス制御システム、アクセス制御方法、電子装置、及び制御プログラム

Similar Documents

Publication Publication Date Title
JP6675227B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
EP2446388B1 (en) Data verification method
JP4648687B2 (ja) データストレージシステムにおける暗号化変換の方法と装置
KR101216995B1 (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
JP2009003933A (ja) 不揮発性メモリにおけるデータの耐故障的な暗号化保護、完全性保護、及びアンチリプレイ保護のための方法、システム及び装置
US20040143748A1 (en) Data access control method for tamper resistant microprocessor using cache memory
CN112699383B (zh) 数据密码设备、存储器系统及其操作方法
JP4941556B2 (ja) 暗号化装置、暗号化方法および暗号化プログラム
US10848305B2 (en) Key generation information trees
JPWO2007091492A1 (ja) セキュア処理装置、方法、プログラム
US11270005B2 (en) Device data protection based on network topology
JP2011181000A (ja) コントローラ、半導体記憶装置および半導体記憶装置の制御方法
US7949137B2 (en) Virtual disk management methods
US11461476B2 (en) Method for executing a binary code of a function secured by a microprocessor
JP2009111687A (ja) 記憶装置、暗号化データ処理方法
US8667278B2 (en) Information processing apparatus and data transmission method of information processing apparatus
JP2006252345A (ja) タスク管理システム
CN114995918A (zh) 基板管理控制器的启动方法、配置方法、装置及电子设备
JP2014203362A (ja) ストレージ装置及びストレージ制御方法
JP2006120089A (ja) データ管理システム及びデータ管理方法
JP2005039637A (ja) 画像形成装置
KR102525429B1 (ko) 시스템 식별자를 생성 및 저장하는 사설 교환기 장치 및 방법
JP2004252852A (ja) 情報処理装置及び情報処理方法
US20230274037A1 (en) Secure Flash Controller
WO2022176164A1 (ja) プログラム処理装置、プログラム処理方法、及び、プログラム