JPH07200317A - 操作権管理装置 - Google Patents
操作権管理装置Info
- Publication number
- JPH07200317A JPH07200317A JP5349335A JP34933593A JPH07200317A JP H07200317 A JPH07200317 A JP H07200317A JP 5349335 A JP5349335 A JP 5349335A JP 34933593 A JP34933593 A JP 34933593A JP H07200317 A JPH07200317 A JP H07200317A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- change
- memory area
- operation right
- authority
- 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
- Storage Device Security (AREA)
Abstract
(57)【要約】
【目的】 スレッドの操作権管理の柔軟化を目的とす
る。 【構成】 本発明は、複数の並行して実行されるスレッ
ドによりプログラムを実行する手段と、各スレッドに対
する操作を、この操作を行う主体となるスレッドまたは
ユーザ、もしくはこの操作を行う主体が存在するメモリ
領域またはプログラムの少なくともいずれかに基づい
て、許可するか否かを指示する操作権情報を記憶する手
段とを備える操作権管理装置において、前記操作権情報
の変更を、この変更を行う主体となるスレッドまたは、
ユーザもしくはこの変更を行う主体が存在するメモリ領
域またはプログラムの少なくともいずれかに基づいて、
許可するか否かを示す変更権情報を記憶する手段と、前
記操作権情報の変更を実行する前に、記憶された前記変
更権情報を参照して、この変更が許可されるか否かを検
証する手段とを具備したことを特徴とする。
る。 【構成】 本発明は、複数の並行して実行されるスレッ
ドによりプログラムを実行する手段と、各スレッドに対
する操作を、この操作を行う主体となるスレッドまたは
ユーザ、もしくはこの操作を行う主体が存在するメモリ
領域またはプログラムの少なくともいずれかに基づい
て、許可するか否かを指示する操作権情報を記憶する手
段とを備える操作権管理装置において、前記操作権情報
の変更を、この変更を行う主体となるスレッドまたは、
ユーザもしくはこの変更を行う主体が存在するメモリ領
域またはプログラムの少なくともいずれかに基づいて、
許可するか否かを示す変更権情報を記憶する手段と、前
記操作権情報の変更を実行する前に、記憶された前記変
更権情報を参照して、この変更が許可されるか否かを検
証する手段とを具備したことを特徴とする。
Description
【0001】
【産業上の利用分野】本発明は、計算機システム中での
メモリ領域またはスレッドへの操作権を管理する操作権
管理装置に関するものである。
メモリ領域またはスレッドへの操作権を管理する操作権
管理装置に関するものである。
【0002】
【従来の技術】近年マイクロプロセッサの性能向上によ
り複数の小型のコンピュータをネットワークでつないで
使用することが通常のこととなり、ネットワーク結合さ
れた計算機やユーザー同士での協調作業が可能となり、
操作権の管理を厳密に行う必要が出てきた。
り複数の小型のコンピュータをネットワークでつないで
使用することが通常のこととなり、ネットワーク結合さ
れた計算機やユーザー同士での協調作業が可能となり、
操作権の管理を厳密に行う必要が出てきた。
【0003】またオブジェクト指向技術の進歩やサーバ
・クライアント・モデルのような新しいパラダイムの出
現により、従来の記憶装置やファイルを単位とした操作
権管理では十分な性能が得られなくなってきた。
・クライアント・モデルのような新しいパラダイムの出
現により、従来の記憶装置やファイルを単位とした操作
権管理では十分な性能が得られなくなってきた。
【0004】こういった問題を解決するために、単一仮
想記憶などの技術により、メモリやCD−ROMやハー
ドディスク・ドライブのような記憶装置、さらにはディ
スプレイやキーボードといったあらゆる計算機資源を同
一の概念で管理するオペレーティング・システムの設計
が試みられている。中でも、各種の資源を同一の仮想空
間上に配置する単一仮想記憶の技術は特徴的なものであ
る。さらに、この単一仮想記憶をいくつかのブロックに
分割し、ブロック単位で操作権を管理する方法が提案さ
れている。この管理単位を「メモリ領域」と呼び、あら
ゆる記憶装置の操作権管理の単位として用いられる。
想記憶などの技術により、メモリやCD−ROMやハー
ドディスク・ドライブのような記憶装置、さらにはディ
スプレイやキーボードといったあらゆる計算機資源を同
一の概念で管理するオペレーティング・システムの設計
が試みられている。中でも、各種の資源を同一の仮想空
間上に配置する単一仮想記憶の技術は特徴的なものであ
る。さらに、この単一仮想記憶をいくつかのブロックに
分割し、ブロック単位で操作権を管理する方法が提案さ
れている。この管理単位を「メモリ領域」と呼び、あら
ゆる記憶装置の操作権管理の単位として用いられる。
【0005】一方、オペレーティング・システムはマイ
クロ・カーネル技術の定着により、プログラムの実行を
管理するスレッドという単位を使って管理するのが一般
的になりつつある。すなわち、プログラム実行の制御対
象としてプロセスまたはスレッドと呼ばれる制御単位が
用いられる。個々のスレッドは独立にプロセッサのレジ
スタ値やスタックなどを持ち、オペーレーティング・シ
ステムによりプロセッサを割り当てられた間だけプログ
ラムを実行し、一定時間後またはハードウェア割り込み
などが発生したときにオペレーティング・システムはス
レッドに対するプロセッサの割り当てを解除して他のス
レッドへプロセッサを割り当てる。個々のスレッドは独
立したレジスタ値を持っているため、仮想的に並列に動
いているプロセッサであるとみなすことができる。
クロ・カーネル技術の定着により、プログラムの実行を
管理するスレッドという単位を使って管理するのが一般
的になりつつある。すなわち、プログラム実行の制御対
象としてプロセスまたはスレッドと呼ばれる制御単位が
用いられる。個々のスレッドは独立にプロセッサのレジ
スタ値やスタックなどを持ち、オペーレーティング・シ
ステムによりプロセッサを割り当てられた間だけプログ
ラムを実行し、一定時間後またはハードウェア割り込み
などが発生したときにオペレーティング・システムはス
レッドに対するプロセッサの割り当てを解除して他のス
レッドへプロセッサを割り当てる。個々のスレッドは独
立したレジスタ値を持っているため、仮想的に並列に動
いているプロセッサであるとみなすことができる。
【0006】このようなオペレーティングシステムで
は、メモリ領域とスレッドという二つの概念を単位とし
て計算機資源を構成し、そこへの操作権を管理する情報
もACL(Access Control List)という形で各メモリ領
域および各スレッドに付随させて管理することが行われ
る。
は、メモリ領域とスレッドという二つの概念を単位とし
て計算機資源を構成し、そこへの操作権を管理する情報
もACL(Access Control List)という形で各メモリ領
域および各スレッドに付随させて管理することが行われ
る。
【0007】例えば、スレッドの場合を例に説明する
と、スレッド自体を操作したいとき、すなわちスレッド
の実行を一時停止したり再開したりしたいときやスレッ
ドを強制的に消滅させたいとき、またはスレッドの情報
(レジスタ値やスタック等の内部状態)を調べたいとき
のため、オペレーティングシステムはスレッド操作命令
群を備えており、あるスレッドから別のスレッドを操作
することが可能である。このようなスレッド操作命令群
は、ユーザプログラムからシステムコールとしてオペレ
ーティング・システムに指示し、利用できるようになっ
ている。
と、スレッド自体を操作したいとき、すなわちスレッド
の実行を一時停止したり再開したりしたいときやスレッ
ドを強制的に消滅させたいとき、またはスレッドの情報
(レジスタ値やスタック等の内部状態)を調べたいとき
のため、オペレーティングシステムはスレッド操作命令
群を備えており、あるスレッドから別のスレッドを操作
することが可能である。このようなスレッド操作命令群
は、ユーザプログラムからシステムコールとしてオペレ
ーティング・システムに指示し、利用できるようになっ
ている。
【0008】このようなスレッド操作命令があるとき
に、どのスレッドからでもスレッド操作命令を発行でき
るようにすると、不当な操作もできることになってしま
うので保護の機能が必要になる。たとえばスレッドを強
制的に消滅させるようなことは特定の権限を持つスレッ
ドだけから行えるようにすることが必要になる。
に、どのスレッドからでもスレッド操作命令を発行でき
るようにすると、不当な操作もできることになってしま
うので保護の機能が必要になる。たとえばスレッドを強
制的に消滅させるようなことは特定の権限を持つスレッ
ドだけから行えるようにすることが必要になる。
【0009】さらに、仮想空間が複数あり、仮想空間ご
とに1つのプログラムやデータが配置されており、スレ
ッドもその空間内しか動きまわれないようなMach
(参考文献:「分散オペレーティング・システム」前川
守他編、共立出版)をはじめとするオペレーティング・
システムの場合、同じ空間内に存在するスレッドの保護
を同一とし、スレッドの保護をメモリ空間の保護に依存
する方法をとっている。
とに1つのプログラムやデータが配置されており、スレ
ッドもその空間内しか動きまわれないようなMach
(参考文献:「分散オペレーティング・システム」前川
守他編、共立出版)をはじめとするオペレーティング・
システムの場合、同じ空間内に存在するスレッドの保護
を同一とし、スレッドの保護をメモリ空間の保護に依存
する方法をとっている。
【0010】しかし、それらのスレッドを区別して保護
することはできない。また、単一仮想空間のシステムの
ように、1つのアドレス空間内にすべてのプログラムが
配置され、複数のスレッドが存在する場合、スレッドの
保護はメモリ保護だけではなくオペレーティングシステ
ムによる権限の設定が必要になる。
することはできない。また、単一仮想空間のシステムの
ように、1つのアドレス空間内にすべてのプログラムが
配置され、複数のスレッドが存在する場合、スレッドの
保護はメモリ保護だけではなくオペレーティングシステ
ムによる権限の設定が必要になる。
【0011】この問題のひとつの解決法は、スレッドの
所有者を決めて、同一の所有者のスレッド間ではスレッ
ドの操作を許す方式であり、Unixオペレーティングシス
テムのsignalはこれに相当する。しかしこれでは同一の
所有者のスレッド間の保護の柔軟性に欠け、さらに、操
作権限を他の所有者のスレッドに渡すことができない。
また、複数の所有者のスレッドからのスレッド操作を可
能にしたりできないなど、柔軟にスレッドの操作ができ
るようなスレッド保護機能が不足していた。
所有者を決めて、同一の所有者のスレッド間ではスレッ
ドの操作を許す方式であり、Unixオペレーティングシス
テムのsignalはこれに相当する。しかしこれでは同一の
所有者のスレッド間の保護の柔軟性に欠け、さらに、操
作権限を他の所有者のスレッドに渡すことができない。
また、複数の所有者のスレッドからのスレッド操作を可
能にしたりできないなど、柔軟にスレッドの操作ができ
るようなスレッド保護機能が不足していた。
【0012】また、一方ではデータ・ファイルへの操作
権の多彩な設定ができるように、ファイルやディレクト
リに対するACLに、情報の追加権、削除権、ACLの
変更権などのさまざまな情報を付加して柔軟性を高めよ
うとするDCE(参考文献:OSF DCE技術解説、
ソフトリサーチセンター)のような試みもあるが、やは
り複数の所有者にメモリ領域のACLの管理を行わせる
ような柔軟な保護機能は不足している。
権の多彩な設定ができるように、ファイルやディレクト
リに対するACLに、情報の追加権、削除権、ACLの
変更権などのさまざまな情報を付加して柔軟性を高めよ
うとするDCE(参考文献:OSF DCE技術解説、
ソフトリサーチセンター)のような試みもあるが、やは
り複数の所有者にメモリ領域のACLの管理を行わせる
ような柔軟な保護機能は不足している。
【0013】
【発明が解決しようとする課題】以上述べてきたことに
基づいて従来の操作権管理装置の主要な課題をまとめる
と次のようになる。
基づいて従来の操作権管理装置の主要な課題をまとめる
と次のようになる。
【0014】(1)従来、スレッドに対する操作を、こ
の操作を行う主体や、この操作を行う主体が存在するメ
モリ領域などに基づいて、許可するか否かを指示する方
法は試みられている。しかし、スレッドに対するこの操
作権情報を変更する権利については、例えば、そのスレ
ッドの所有者には認める、あるいはルートと呼ばれる特
別のユーザにのみ認める、といった単純な管理しか行う
ことができなかった。
の操作を行う主体や、この操作を行う主体が存在するメ
モリ領域などに基づいて、許可するか否かを指示する方
法は試みられている。しかし、スレッドに対するこの操
作権情報を変更する権利については、例えば、そのスレ
ッドの所有者には認める、あるいはルートと呼ばれる特
別のユーザにのみ認める、といった単純な管理しか行う
ことができなかった。
【0015】(2)また、従来、実メモリ、仮想メモ
リ、データ・ファイルなどのメモリ領域に対する操作を
行う主体や、この操作を行う主体が存在するメモリ領域
などに基づいて、許可するか否かを指示する方法は試み
られている。しかし、メモリ領域に対するこの操作権情
報を変更する権利については、例えば、そのメモリ領域
の所有者には認める、あるいはルートと呼ばれる特別の
ユーザにのみ認める、といった単純な管理しか行うこと
ができなかった。
リ、データ・ファイルなどのメモリ領域に対する操作を
行う主体や、この操作を行う主体が存在するメモリ領域
などに基づいて、許可するか否かを指示する方法は試み
られている。しかし、メモリ領域に対するこの操作権情
報を変更する権利については、例えば、そのメモリ領域
の所有者には認める、あるいはルートと呼ばれる特別の
ユーザにのみ認める、といった単純な管理しか行うこと
ができなかった。
【0016】(3)さらに、スレッドやメモリに対する
操作権を柔軟に記述し、かつ、同様に変更権をも柔軟に
記述すると、柔軟な記述ができるようになる反面、スレ
ッドやメモリに対する保護のためのデータ量が多くな
り、その管理が複雑になるという欠点を持つという問題
がある。
操作権を柔軟に記述し、かつ、同様に変更権をも柔軟に
記述すると、柔軟な記述ができるようになる反面、スレ
ッドやメモリに対する保護のためのデータ量が多くな
り、その管理が複雑になるという欠点を持つという問題
がある。
【0017】このように、従来の操作権管理装置では、
メモリ領域単位での操作権限の設定ができなかったり、
操作権限の設定の面で柔軟性に欠けたり、または、同一
の仮想アドレス空間を共有しているスレッド間では保護
が無かったか、または制約が強かった。
メモリ領域単位での操作権限の設定ができなかったり、
操作権限の設定の面で柔軟性に欠けたり、または、同一
の仮想アドレス空間を共有しているスレッド間では保護
が無かったか、または制約が強かった。
【0018】本発明は、上記課題を考慮してなされたも
のであり、別々の仮想空間にいるスレッド間はもとよ
り、同一仮想アドレス空間を共有しているスレッド間で
のスレッド操作命令あるいは個々のメモリ領域に対し
て、同一の方法で柔軟性があり、かつ十分な保護を行う
操作権管理装置を提供することを目的とする。
のであり、別々の仮想空間にいるスレッド間はもとよ
り、同一仮想アドレス空間を共有しているスレッド間で
のスレッド操作命令あるいは個々のメモリ領域に対し
て、同一の方法で柔軟性があり、かつ十分な保護を行う
操作権管理装置を提供することを目的とする。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、本発明(請求項1)では、複数の並行して実行され
るスレッドによりプログラムを実行する手段と、各スレ
ッドに対する操作を、この操作を行う主体となるスレッ
ドまたはユーザ、もしくはこの操作を行う主体が存在す
るメモリ領域またはプログラムの少なくともいずれかに
基づいて、許可するか否かを指示する操作権情報を記憶
する手段とを備える操作権管理装置において、前記操作
権情報の変更を、この変更を行う主体となるスレッドま
たは、ユーザもしくはこの変更を行う主体が存在するメ
モリ領域またはプログラムの少なくともいずれかに基づ
いて、許可するか否かを示す変更権情報を記憶する手段
と、前記操作権情報の変更を実行する前に、記憶された
前記変更権情報を参照して、この変更が許可されるか否
かを検証する手段とを具備したことを特徴とする。
に、本発明(請求項1)では、複数の並行して実行され
るスレッドによりプログラムを実行する手段と、各スレ
ッドに対する操作を、この操作を行う主体となるスレッ
ドまたはユーザ、もしくはこの操作を行う主体が存在す
るメモリ領域またはプログラムの少なくともいずれかに
基づいて、許可するか否かを指示する操作権情報を記憶
する手段とを備える操作権管理装置において、前記操作
権情報の変更を、この変更を行う主体となるスレッドま
たは、ユーザもしくはこの変更を行う主体が存在するメ
モリ領域またはプログラムの少なくともいずれかに基づ
いて、許可するか否かを示す変更権情報を記憶する手段
と、前記操作権情報の変更を実行する前に、記憶された
前記変更権情報を参照して、この変更が許可されるか否
かを検証する手段とを具備したことを特徴とする。
【0020】また、本発明(請求項2)では、実メモリ
または仮想メモリを複数のメモリ領域の集合として管理
する手段と、各メモリ領域に対する操作を、この操作を
行う主体となるスレッドまたはユーザ、もしくはこの操
作を行う主体が存在するメモリ領域またはプログラムの
少なくともいずれかに基づいて、許可するか否かを指示
する操作権情報を記憶する手段とを備える操作権管理装
置において、前記操作権情報の変更を、この変更を行う
主体となるスレッドまたは、ユーザもしくはこの変更を
行う主体が存在するメモリ領域またはプログラムの少な
くともいずれかに基づいて、許可するか否かを示す変更
権情報を記憶する手段と、前記操作権情報の変更を実行
する前に、記憶された前記変更権情報を参照して、この
変更が許可されるか否かを検証する手段とを具備したこ
とを特徴とする。
または仮想メモリを複数のメモリ領域の集合として管理
する手段と、各メモリ領域に対する操作を、この操作を
行う主体となるスレッドまたはユーザ、もしくはこの操
作を行う主体が存在するメモリ領域またはプログラムの
少なくともいずれかに基づいて、許可するか否かを指示
する操作権情報を記憶する手段とを備える操作権管理装
置において、前記操作権情報の変更を、この変更を行う
主体となるスレッドまたは、ユーザもしくはこの変更を
行う主体が存在するメモリ領域またはプログラムの少な
くともいずれかに基づいて、許可するか否かを示す変更
権情報を記憶する手段と、前記操作権情報の変更を実行
する前に、記憶された前記変更権情報を参照して、この
変更が許可されるか否かを検証する手段とを具備したこ
とを特徴とする。
【0021】また、望ましくは、上記発明(請求項1)
において、スレッド作成時には、あらかじめ定められた
デフォルトの変更権情報が設定されることを特徴とす
る。
において、スレッド作成時には、あらかじめ定められた
デフォルトの変更権情報が設定されることを特徴とす
る。
【0022】また、望ましくは、上記発明(請求項2)
において、メモリ領域作成時には、あらかじめ定められ
たデフォルトの変更権情報が設定されることを特徴とす
る。
において、メモリ領域作成時には、あらかじめ定められ
たデフォルトの変更権情報が設定されることを特徴とす
る。
【0023】さらに、上記各操作権管理装置において、
前記操作権情報を記憶する手段の情報を変更することが
不可能になるような、前記変更権情報を記憶する手段の
情報の変更を認めないようにしても良い。
前記操作権情報を記憶する手段の情報を変更することが
不可能になるような、前記変更権情報を記憶する手段の
情報の変更を認めないようにしても良い。
【0024】また、本発明(請求項3)では、上記発明
(請求項1または2)において、前記変更権情報を前記
操作権情報に付随されて記憶することを特徴とする。
(請求項1または2)において、前記変更権情報を前記
操作権情報に付随されて記憶することを特徴とする。
【0025】さらに、上記各操作権管理装置において、
前記操作権情報を記憶する手段の情報を変更することの
できる複数の条件を記憶する操作権管理権限記憶手段
と、前記変更権情報を記憶する手段の情報に変更を加え
ようとする際に該操作権管理権限記憶手段の情報により
この変更を行う権限があるか否かを検証する手段と、こ
の権限があると検証された場合に前記変更を許可する手
段とをさらに設けても良い。また、この場合、前記変更
権情報を記憶する手段の情報を変更することが不可能に
なるような、前記操作権変更権管理権限記憶手段の情報
の変更を認めないようにしても良い。
前記操作権情報を記憶する手段の情報を変更することの
できる複数の条件を記憶する操作権管理権限記憶手段
と、前記変更権情報を記憶する手段の情報に変更を加え
ようとする際に該操作権管理権限記憶手段の情報により
この変更を行う権限があるか否かを検証する手段と、こ
の権限があると検証された場合に前記変更を許可する手
段とをさらに設けても良い。また、この場合、前記変更
権情報を記憶する手段の情報を変更することが不可能に
なるような、前記操作権変更権管理権限記憶手段の情報
の変更を認めないようにしても良い。
【0026】
【作用】本発明(請求項1)によれば、スレッドへの操
作権の管理のみならず、その操作権の管理の権限である
変更権についても、さまざまな条件の組み合わせによっ
て柔軟に表現、管理することができるようになる。
作権の管理のみならず、その操作権の管理の権限である
変更権についても、さまざまな条件の組み合わせによっ
て柔軟に表現、管理することができるようになる。
【0027】この機構を用いれば、スレッドの操作権に
関して、特定のスレッドにのみその変更を許可したり、
またそれらの複数の条件を組み合わせて表現したりする
ことができる。
関して、特定のスレッドにのみその変更を許可したり、
またそれらの複数の条件を組み合わせて表現したりする
ことができる。
【0028】特に、近年多く利用されるようになったグ
ループウェアと呼ばれる計算機の協調作業アプリケーシ
ョンを作成する際には、スレッドの共有や、排他制御、
他のプログラムからの保護、などのきめ細かな制御を容
易に記述することが必要になるが、本発明を用いればこ
の記述を柔軟に行うことができる。
ループウェアと呼ばれる計算機の協調作業アプリケーシ
ョンを作成する際には、スレッドの共有や、排他制御、
他のプログラムからの保護、などのきめ細かな制御を容
易に記述することが必要になるが、本発明を用いればこ
の記述を柔軟に行うことができる。
【0029】また、プログラムの誤りや、システム・コ
ールの不正な呼び出しなどによって、スレッドへの操作
権が異常に書き換えられてしまうことを未然に防ぐこと
ができるので、スレッドの共有を行いつつもなおスレッ
ドの動作に関する信頼性が飛躍的に向上する。
ールの不正な呼び出しなどによって、スレッドへの操作
権が異常に書き換えられてしまうことを未然に防ぐこと
ができるので、スレッドの共有を行いつつもなおスレッ
ドの動作に関する信頼性が飛躍的に向上する。
【0030】また、本発明(請求項2)によれば、メモ
リ領域への操作権の管理のみならず、その操作権の管理
の権限である変更権についても、さまざまな条件の組み
合わせによって柔軟に表現、管理することができるよう
になる。
リ領域への操作権の管理のみならず、その操作権の管理
の権限である変更権についても、さまざまな条件の組み
合わせによって柔軟に表現、管理することができるよう
になる。
【0031】この機構を用いれば、メモリ領域への操作
権に関して、特定のスレッドにのみその変更を強化した
り、特定のメモリ領域に存在するスレッドにのみその変
更を許可したり、またそれら複数の条件を組み合わせて
表現したりすることができる。
権に関して、特定のスレッドにのみその変更を強化した
り、特定のメモリ領域に存在するスレッドにのみその変
更を許可したり、またそれら複数の条件を組み合わせて
表現したりすることができる。
【0032】特に、近年利用が試みられている単一仮想
記憶と呼ばれる、複数のアプリケーションが同一の仮想
空間上で動作するオペレーティング・システムにおいて
は、メモリ領域の共有や、排他制御、他のプログラムか
らの保護、などのきめ細かな制御を記述することが必要
となるが、本発明を用いればこの記述を柔軟に行うこと
ができる。
記憶と呼ばれる、複数のアプリケーションが同一の仮想
空間上で動作するオペレーティング・システムにおいて
は、メモリ領域の共有や、排他制御、他のプログラムか
らの保護、などのきめ細かな制御を記述することが必要
となるが、本発明を用いればこの記述を柔軟に行うこと
ができる。
【0033】また、プログラムの誤りや、システム・コ
ールの不正な呼び出しなどによって、メモリ領域への操
作権が異常に書き換えられてしまうことを未然に防ぐこ
とができるので、メモリ領域に書かれたデータが不用意
に書き換えられてしまうことがおこらず、メモリ領域の
共有を行いつつもなおメモリ領域に書かれたデータに対
する信頼性が飛躍的に向上する。
ールの不正な呼び出しなどによって、メモリ領域への操
作権が異常に書き換えられてしまうことを未然に防ぐこ
とができるので、メモリ領域に書かれたデータが不用意
に書き換えられてしまうことがおこらず、メモリ領域の
共有を行いつつもなおメモリ領域に書かれたデータに対
する信頼性が飛躍的に向上する。
【0034】さらに、本発明(請求項3)によれば、ス
レッドやメモリに対する操作権情報と、その操作権情報
の変更を行う変更権情報とは、一般に共通点が多く、デ
ータ構造も似通ったものになることが多い。本発明にお
いては、変更権情報を操作権情報に付随させて記憶する
ことにより、共通のデータをなるべく一つのものとして
管理するため、データ量を少なくすることができ、変更
権および操作権を検証するための手続きも共通化する。
レッドやメモリに対する操作権情報と、その操作権情報
の変更を行う変更権情報とは、一般に共通点が多く、デ
ータ構造も似通ったものになることが多い。本発明にお
いては、変更権情報を操作権情報に付随させて記憶する
ことにより、共通のデータをなるべく一つのものとして
管理するため、データ量を少なくすることができ、変更
権および操作権を検証するための手続きも共通化する。
【0035】また、スレッドやメモリに対する操作権や
変更権などの管理は、一般にメモリ管理ユニットと呼ば
れるハードウェアを用いることによって、実行性能を向
上させることができる。そのような場合に、操作権およ
び変更権それぞれに別のハードウェアを用意すること
は、計算機の構成を複雑にする可能性がある。しかし、
本発明によって、操作権と変更権を同一に管理すること
により、必要なハードウェアを単純化することができ
る。
変更権などの管理は、一般にメモリ管理ユニットと呼ば
れるハードウェアを用いることによって、実行性能を向
上させることができる。そのような場合に、操作権およ
び変更権それぞれに別のハードウェアを用意すること
は、計算機の構成を複雑にする可能性がある。しかし、
本発明によって、操作権と変更権を同一に管理すること
により、必要なハードウェアを単純化することができ
る。
【0036】
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。
て説明する。
【0037】本発明に係る操作権管理装置は、オペレー
ティング・システム(OS)と呼ばれる計算機システム
全体の実行制御を行うものの構成要素の一部である。O
Sは計算機資源であるメモリ、プロセッサ、周辺機器を
管理し、また、ユーザプログラムとよばれるユーザが指
示した実務上の処理を行うプログラムの実行を制御す
る。一つの装置上には複数のユーザプログラムがのって
おり、OSがそれらのプログラム間の制御も行う。
ティング・システム(OS)と呼ばれる計算機システム
全体の実行制御を行うものの構成要素の一部である。O
Sは計算機資源であるメモリ、プロセッサ、周辺機器を
管理し、また、ユーザプログラムとよばれるユーザが指
示した実務上の処理を行うプログラムの実行を制御す
る。一つの装置上には複数のユーザプログラムがのって
おり、OSがそれらのプログラム間の制御も行う。
【0038】ユーザプログラムは、実行上に必要となる
物理メモリなどの資源を確保したり、周辺機器にデータ
を入出力したり、他のユーザプログラムにデータを転送
したり、処理を依頼したり、実行を制御するためにOS
に対して指示を行うことが必要となる。このOSに対す
る指示をシステムコールを呼ばれる特別な手段で行う。
本実施例では、システムコールのうち、操作権を考慮す
るユーザプログラムの制御に関して説明する。
物理メモリなどの資源を確保したり、周辺機器にデータ
を入出力したり、他のユーザプログラムにデータを転送
したり、処理を依頼したり、実行を制御するためにOS
に対して指示を行うことが必要となる。このOSに対す
る指示をシステムコールを呼ばれる特別な手段で行う。
本実施例では、システムコールのうち、操作権を考慮す
るユーザプログラムの制御に関して説明する。
【0039】操作権については、スレッドの管理とメモ
リ領域の管理がある。これらメモリ領域の管理とスレッ
ドの管理については同一の部分が多いので、同様の機構
を重複して説明することは避け、主にスレッドに対する
操作権管理を例として、同一の部分には同一の用語を用
いて説明する。
リ領域の管理がある。これらメモリ領域の管理とスレッ
ドの管理については同一の部分が多いので、同様の機構
を重複して説明することは避け、主にスレッドに対する
操作権管理を例として、同一の部分には同一の用語を用
いて説明する。
【0040】なお、本実施例では、メモリの「操作」と
は、アクセス(読み書き実行)のことを表すものとす
る。
は、アクセス(読み書き実行)のことを表すものとす
る。
【0041】最初に、本実施例の特徴を概略的に述べ
る。本実施例では、個々のメモリ領域またはスレッドに
対して、どのような条件で操作を許可するかという情報
を登録したリストを設け、このリストにより許可されて
いる場合に限り、操作を許可するとともに、この情報自
体を変更することのできる権限を、前記リストと同一の
形式、類似の形式あるいは共通の形式で管理する。ま
た、特定の条件の時にのみこの変更を許す機構を付加す
る。また、この変更をする権限の変更についても同一の
形式、類似の形式あるいは共通の形式で管理する。
る。本実施例では、個々のメモリ領域またはスレッドに
対して、どのような条件で操作を許可するかという情報
を登録したリストを設け、このリストにより許可されて
いる場合に限り、操作を許可するとともに、この情報自
体を変更することのできる権限を、前記リストと同一の
形式、類似の形式あるいは共通の形式で管理する。ま
た、特定の条件の時にのみこの変更を許す機構を付加す
る。また、この変更をする権限の変更についても同一の
形式、類似の形式あるいは共通の形式で管理する。
【0042】この結果、本実施例は、不当な操作命令や
プログラムの誤りからメモリ領域やスレッドを保護し、
またこのような誤った操作命令を検出することによって
プログラムの誤りの検出を容易とするために、メモリ領
域またはスレッドごとに設けた操作の可否を示す情報を
変更する権利自体もそのメモリ領域またはスレッドが持
つので、操作権の管理のみならず、操作権の管理の権限
すらも同一の形式、類似の形式あるいは共通の形式で管
理し、削除し、追加し、または変更することを柔軟に行
うことができるようになる、という作用効果を奏するも
のである。
プログラムの誤りからメモリ領域やスレッドを保護し、
またこのような誤った操作命令を検出することによって
プログラムの誤りの検出を容易とするために、メモリ領
域またはスレッドごとに設けた操作の可否を示す情報を
変更する権利自体もそのメモリ領域またはスレッドが持
つので、操作権の管理のみならず、操作権の管理の権限
すらも同一の形式、類似の形式あるいは共通の形式で管
理し、削除し、追加し、または変更することを柔軟に行
うことができるようになる、という作用効果を奏するも
のである。
【0043】また、この操作権の管理の権限は、メモリ
領域やスレッドの所有者とは全く別の機構より、通常の
アクセス制御リストと同様の形式で複数持つので、操作
権管理の権限を複数のスレッドで共有したり、自分の作
ったメモリ領域やスレッドの管理権を他のスレッドに譲
渡したりするなどの柔軟な操作権管理が可能となる。
領域やスレッドの所有者とは全く別の機構より、通常の
アクセス制御リストと同様の形式で複数持つので、操作
権管理の権限を複数のスレッドで共有したり、自分の作
ったメモリ領域やスレッドの管理権を他のスレッドに譲
渡したりするなどの柔軟な操作権管理が可能となる。
【0044】(第1の実施例)以下、本発明の第1の実
施例について説明する。
施例について説明する。
【0045】図1は、本実施例の全体構成図である。プ
ログラム記憶部1には、計算機で処理する命令が記述さ
れたユーザプログラムや処理する対象のデータ、計算機
で処理途中の結果を一時的に記憶するスタックなどのデ
ータがメモリ空間上に蓄えられている。メモリ空間は、
複数の領域(メモリ領域)に区切られて管理され、それ
ぞれの領域には、お互いを区別するための識別子がつい
ており、メモリ領域ごとにプログラムやデータやスタッ
クを配置している。
ログラム記憶部1には、計算機で処理する命令が記述さ
れたユーザプログラムや処理する対象のデータ、計算機
で処理途中の結果を一時的に記憶するスタックなどのデ
ータがメモリ空間上に蓄えられている。メモリ空間は、
複数の領域(メモリ領域)に区切られて管理され、それ
ぞれの領域には、お互いを区別するための識別子がつい
ており、メモリ領域ごとにプログラムやデータやスタッ
クを配置している。
【0046】さらに、プログラム記憶部1に蓄えられて
いるプログラムを解釈実行し、データを処理する実行主
体であるプロセッサ2と、プロセッサ内の状態を管理す
るスレッド管理部3、プロセッサの実行状態の切り替え
処理を行う実行状態切り替え部4がある。
いるプログラムを解釈実行し、データを処理する実行主
体であるプロセッサ2と、プロセッサ内の状態を管理す
るスレッド管理部3、プロセッサの実行状態の切り替え
処理を行う実行状態切り替え部4がある。
【0047】プロセッサ2内には、命令の実行途中に一
時的に利用するレジスタ類、現在実行している命令のプ
ログラム記憶部での位置を示すためのプログラムカウン
タ(PC)、スタックデータの先頭位置を示すスタック
ポインタ(SP)などが存在し、これら一連のデータを
入れ替えることで、複数の別々のユーザプログラムの処
理を時分割で並行して進めることが可能となる。
時的に利用するレジスタ類、現在実行している命令のプ
ログラム記憶部での位置を示すためのプログラムカウン
タ(PC)、スタックデータの先頭位置を示すスタック
ポインタ(SP)などが存在し、これら一連のデータを
入れ替えることで、複数の別々のユーザプログラムの処
理を時分割で並行して進めることが可能となる。
【0048】スレッドとは、上記プロセッサ内で使用す
る一連のデータのことを呼び、これを複数組用意し、こ
のスレッドを切り替えてプロセッサにセットし実際に実
行させることにより、時分割処理が可能となる。
る一連のデータのことを呼び、これを複数組用意し、こ
のスレッドを切り替えてプロセッサにセットし実際に実
行させることにより、時分割処理が可能となる。
【0049】メモリ領域ID記憶部5は、現在実行中の
プログラムがプログラム記憶部1のどのメモリ領域に存
在しているかを、そのメモリ領域のIDとして記憶して
いるものである。これは、プロセッサ2内のPCの値を
利用し、現在実行中のメモリ領域IDを求めて、記憶し
ている。このメモリ領域IDは、現在実行中のプログラ
ムIDとみなすこともできる。
プログラムがプログラム記憶部1のどのメモリ領域に存
在しているかを、そのメモリ領域のIDとして記憶して
いるものである。これは、プロセッサ2内のPCの値を
利用し、現在実行中のメモリ領域IDを求めて、記憶し
ている。このメモリ領域IDは、現在実行中のプログラ
ムIDとみなすこともできる。
【0050】スレッド管理部3の中にはスレッド管理テ
ーブルと呼ぶ表があり、プロセッサ2にセットするレジ
スタの情報やそのほかの情報がスレッドごとに管理され
ている。スレッドには、お互いを区別するために識別子
(スレッドID)がついている。
ーブルと呼ぶ表があり、プロセッサ2にセットするレジ
スタの情報やそのほかの情報がスレッドごとに管理され
ている。スレッドには、お互いを区別するために識別子
(スレッドID)がついている。
【0051】実行状態切替部4は、現在プロセッサ2上
で実行しているスレッド(例えばスレッドID=1)を
中断し、スレッド(スレッドID=1)の状態をスレッ
ド管理テーブルの所定の位置(スレッドID=1の格納
領域)に退避し、別のスレッド(例えばスレッドID=
2)を起動すべく、スレッド管理テーブルのスレッド
(スレッドID=2)の情報をプロセッサ2に再セット
し、スレッド(スレッドID=2)の実行を再開させ
る。また、実行状態切替部4には、さらに、どのスレッ
ドをセットし退避するかを決定するスレッドスケジュー
リング機構(図示せず)と、いつスケジューリングする
か指示するタイマ部(図示せず)が存在する。
で実行しているスレッド(例えばスレッドID=1)を
中断し、スレッド(スレッドID=1)の状態をスレッ
ド管理テーブルの所定の位置(スレッドID=1の格納
領域)に退避し、別のスレッド(例えばスレッドID=
2)を起動すべく、スレッド管理テーブルのスレッド
(スレッドID=2)の情報をプロセッサ2に再セット
し、スレッド(スレッドID=2)の実行を再開させ
る。また、実行状態切替部4には、さらに、どのスレッ
ドをセットし退避するかを決定するスレッドスケジュー
リング機構(図示せず)と、いつスケジューリングする
か指示するタイマ部(図示せず)が存在する。
【0052】スレッドID記憶部6は、スレッドIDを
記憶するためのものである。
記憶するためのものである。
【0053】操作権リスト記憶部7は、スレッド保護に
関するテーブルを保持し、スレッドごとにスレッドに対
する操作を実行する権限がどうなっているかを記憶する
もので、操作権限判定部12で使用される。本実施例は
スレッドの操作権管理を例として説明しているが、メモ
リ領域の操作権管理の場合には、この操作権リスト記憶
部7はメモリ領域の保護に関するテーブルを保持し、ス
レッドごとにメモリ領域に対する操作を実行する権限が
どうなっているかを記憶するものである。以下同様にス
レッドに関する機構とメモリ領域に関する機構の同一の
部分については説明を省略し、スレッドに関するものを
代表して記述する。
関するテーブルを保持し、スレッドごとにスレッドに対
する操作を実行する権限がどうなっているかを記憶する
もので、操作権限判定部12で使用される。本実施例は
スレッドの操作権管理を例として説明しているが、メモ
リ領域の操作権管理の場合には、この操作権リスト記憶
部7はメモリ領域の保護に関するテーブルを保持し、ス
レッドごとにメモリ領域に対する操作を実行する権限が
どうなっているかを記憶するものである。以下同様にス
レッドに関する機構とメモリ領域に関する機構の同一の
部分については説明を省略し、スレッドに関するものを
代表して記述する。
【0054】さて、システムコールとしてユーザプログ
ラムを実行しているあるスレッドが他のスレッドに対し
て制御しようとする例として、Thread Get Statusシ
ステムコールを発行する場合について説明する。
ラムを実行しているあるスレッドが他のスレッドに対し
て制御しようとする例として、Thread Get Statusシ
ステムコールを発行する場合について説明する。
【0055】このシステムコールは、スレッドIDで指
示されたスレッドの状態、つまりそのスレッドのレジス
タ類の情報を、このシステムコールの呼び出し元のユー
ザ・プログラムに通知するものである。いま、スレッド
1(スレッドID=1)がプログラムA(メモリ領域I
D=A)を実行中、そこでスレッド2(スレッドID=
2)の情報をこのシステムコールで得ようとしたとす
る。C言語で記載されているプログラムAでは、次のよ
うに記されている。 err = Thread Get Status(2, &Thread Status);こ
こで、関数Thread Get Statusがスレッドの情報を得
るシステムコールであって、第1引数の2は、スレッド
2(スレッドID=2)の情報を得ることを指示してお
り、第2引数の&Thread Statusはシステムコールの結
果得られたスレッド2の情報を格納するメモリ領域の先
頭位置を指示している。また、このシステムコールの実
行が成功したかどうかは、この関数の返り値として変数
err に入る。
示されたスレッドの状態、つまりそのスレッドのレジス
タ類の情報を、このシステムコールの呼び出し元のユー
ザ・プログラムに通知するものである。いま、スレッド
1(スレッドID=1)がプログラムA(メモリ領域I
D=A)を実行中、そこでスレッド2(スレッドID=
2)の情報をこのシステムコールで得ようとしたとす
る。C言語で記載されているプログラムAでは、次のよ
うに記されている。 err = Thread Get Status(2, &Thread Status);こ
こで、関数Thread Get Statusがスレッドの情報を得
るシステムコールであって、第1引数の2は、スレッド
2(スレッドID=2)の情報を得ることを指示してお
り、第2引数の&Thread Statusはシステムコールの結
果得られたスレッド2の情報を格納するメモリ領域の先
頭位置を指示している。また、このシステムコールの実
行が成功したかどうかは、この関数の返り値として変数
err に入る。
【0056】この関数をプログラムAのスレッド1が実
行すると、スレッド1はシステムコールにより実行モー
ドがユーザレベルから特権レベルに遷移し、OSを呼び
出す。特権レベルとは、OSが処理を行う専用レベルの
ことである。
行すると、スレッド1はシステムコールにより実行モー
ドがユーザレベルから特権レベルに遷移し、OSを呼び
出す。特権レベルとは、OSが処理を行う専用レベルの
ことである。
【0057】呼び出されたOSでは、OS内のシステム
コール受付部8に処理が移る。ここでは、このシステム
コールを呼びだした元のユーザプログラムの中断処理を
行い、要求されたシステムコールの種類と指示された引
き数を受取り、それぞれその情報を引数検出部9とシス
テムコールの種類判別部10に送る。
コール受付部8に処理が移る。ここでは、このシステム
コールを呼びだした元のユーザプログラムの中断処理を
行い、要求されたシステムコールの種類と指示された引
き数を受取り、それぞれその情報を引数検出部9とシス
テムコールの種類判別部10に送る。
【0058】本例では、指示されたシステムコールは、
Thread Get Statusなので、システムコールの種類判
定部10で、次には、Thread Get Status処理部11
を呼び出す。
Thread Get Statusなので、システムコールの種類判
定部10で、次には、Thread Get Status処理部11
を呼び出す。
【0059】そこでの処理は、図2に示した操作権リス
ト記憶部7を使って行われる。この例では操作権リスト
記憶部7はスレッドに対する操作権リストを記憶するも
のである。この記憶部には、図2に示したようなテーブ
ルを保持している。テーブルには、操作スレッドID、
対象スレッドID,操作スレッドが存在するメモリ領域
ID、スレッド操作権限、スレッド操作権変更権限の各
エリアをもっている。
ト記憶部7を使って行われる。この例では操作権リスト
記憶部7はスレッドに対する操作権リストを記憶するも
のである。この記憶部には、図2に示したようなテーブ
ルを保持している。テーブルには、操作スレッドID、
対象スレッドID,操作スレッドが存在するメモリ領域
ID、スレッド操作権限、スレッド操作権変更権限の各
エリアをもっている。
【0060】同様のエリアとしては、対象スレッドが存
在するメモリ領域IDを指定することも考えられるが、
本例ではかかるエリアを持たないものを例として説明す
る。
在するメモリ領域IDを指定することも考えられるが、
本例ではかかるエリアを持たないものを例として説明す
る。
【0061】メモリ領域に対する操作権リスト記憶部も
同様であるが、テーブルの内容は若干異なる。これにつ
いての詳細は第2の実施例で説明する。
同様であるが、テーブルの内容は若干異なる。これにつ
いての詳細は第2の実施例で説明する。
【0062】操作スレッドIDとはスレッド操作のシス
テムコールを実行しようとしているスレッドのスレッド
IDのことで、対象スレッドIDとはこのシステムコー
ルの引数で指定された操作対象のスレッドIDを示す。
また、操作スレッドが存在するメモリ領域IDとは、こ
の実行されようとしているシステムコールを含むプログ
ラムの存在するメモリ領域IDのことであり、スレッド
操作権限とは、どういうスレッド操作が可能かを示すも
ので、スレッドの内部状態を読み出す権限、スレッドの
内部状態を変更する権限、スレッドの実行を停止/再開
する権限の3つの権限を独立に指定することができる。
スレッド操作権変更権限は、スレッド操作権限の記入さ
れたフィールドの情報を変更する権限のことであり、こ
の権限が指定されている場合、その列に書かれているス
レッド操作権限のフィールドの情報が変更できるだけで
なく、その列に書かれている対象スレッドIDに関する
全てのスレッド操作権限フィールドの情報を変更するこ
とができる。
テムコールを実行しようとしているスレッドのスレッド
IDのことで、対象スレッドIDとはこのシステムコー
ルの引数で指定された操作対象のスレッドIDを示す。
また、操作スレッドが存在するメモリ領域IDとは、こ
の実行されようとしているシステムコールを含むプログ
ラムの存在するメモリ領域IDのことであり、スレッド
操作権限とは、どういうスレッド操作が可能かを示すも
ので、スレッドの内部状態を読み出す権限、スレッドの
内部状態を変更する権限、スレッドの実行を停止/再開
する権限の3つの権限を独立に指定することができる。
スレッド操作権変更権限は、スレッド操作権限の記入さ
れたフィールドの情報を変更する権限のことであり、こ
の権限が指定されている場合、その列に書かれているス
レッド操作権限のフィールドの情報が変更できるだけで
なく、その列に書かれている対象スレッドIDに関する
全てのスレッド操作権限フィールドの情報を変更するこ
とができる。
【0063】たとえば図の例では、スレッド1(スレッ
ドID=1)が発したシステムコールでは、スレッド2
(スレッドID=2)の内部状態の参照と変更は可能だ
が、スレッド2の実行の停止/再開およびスレッド2の
操作権限の変更はできないことを示している。また、ス
レッド1は、スレッド3(スレッドID=3)に対して
は実行の停止/再開はできるがそれ以外の操作はできな
い。さらに、スレッド1は、スレッド2とスレッド3以
外のスレッドに対しては、何の操作もできないことを示
している。また、スレッド100(スレッドID=10
0)はスレッド2の内部状態の読み出しおよび操作権限
の変更ができることを示している。
ドID=1)が発したシステムコールでは、スレッド2
(スレッドID=2)の内部状態の参照と変更は可能だ
が、スレッド2の実行の停止/再開およびスレッド2の
操作権限の変更はできないことを示している。また、ス
レッド1は、スレッド3(スレッドID=3)に対して
は実行の停止/再開はできるがそれ以外の操作はできな
い。さらに、スレッド1は、スレッド2とスレッド3以
外のスレッドに対しては、何の操作もできないことを示
している。また、スレッド100(スレッドID=10
0)はスレッド2の内部状態の読み出しおよび操作権限
の変更ができることを示している。
【0064】スレッド1が対象スレッドの場合の例で、
テーブル中の操作スレッドが存在するメモリ領域IDの
部分にallという情報が保持されているが、これは、
このシステムコールがどのユーザプログラムから行われ
ても同等で、システムコールを実行するスレッドIDの
みに実行権限が依存することを示している。
テーブル中の操作スレッドが存在するメモリ領域IDの
部分にallという情報が保持されているが、これは、
このシステムコールがどのユーザプログラムから行われ
ても同等で、システムコールを実行するスレッドIDの
みに実行権限が依存することを示している。
【0065】メモリ領域IDの欄がallでないとき
は、そのIDのメモリ領域に存在するプログラムからシ
ステムコールが実行された時の操作権限を規定する。た
とえば、スレッド3が、プログラムA(メモリ領域ID
=A)の実行中、スレッド1に対しては、すべての操作
が可能であるが、それ以外のときは、操作不可である。
つまり、スレッド3がプログラムB(メモリ領域ID=
B)の実行中、スレッド1に対して同様なシステムコー
ルを実行しても操作できないし、スレッド5(スレッド
ID=5)がプログラムAにおいてスレッド1に対して
同じシステムコールを実行しても操作できない。すなわ
ち、このテーブルに記載のないスレッド操作は一切でき
ない。
は、そのIDのメモリ領域に存在するプログラムからシ
ステムコールが実行された時の操作権限を規定する。た
とえば、スレッド3が、プログラムA(メモリ領域ID
=A)の実行中、スレッド1に対しては、すべての操作
が可能であるが、それ以外のときは、操作不可である。
つまり、スレッド3がプログラムB(メモリ領域ID=
B)の実行中、スレッド1に対して同様なシステムコー
ルを実行しても操作できないし、スレッド5(スレッド
ID=5)がプログラムAにおいてスレッド1に対して
同じシステムコールを実行しても操作できない。すなわ
ち、このテーブルに記載のないスレッド操作は一切でき
ない。
【0066】図2の例では、スレッド操作権限変更権限
のフィールドは1つだけであるが、前記3つの権限ごと
に操作権の変更権限を別々に指定できるようにしても良
い。
のフィールドは1つだけであるが、前記3つの権限ごと
に操作権の変更権限を別々に指定できるようにしても良
い。
【0067】また、スレッド操作権限には、本前の例で
挙げた3つの権限の他にもあってよい。例えば、操作を
するユーザのユーザID、該当フィールドを時間制限す
るための有効期間開始時刻、有効時間終了時刻などが考
えられる。その場合にも、それら権限の変更権を設定す
ることができる。
挙げた3つの権限の他にもあってよい。例えば、操作を
するユーザのユーザID、該当フィールドを時間制限す
るための有効期間開始時刻、有効時間終了時刻などが考
えられる。その場合にも、それら権限の変更権を設定す
ることができる。
【0068】また、本実施例では、スレッド操作権限と
スレッド操作権の変更権限とを、同一のテーブルの中で
操作スレッドID、対象スレッドID、操作スレッドが
存在するメモリ領域IDを共有して表現しているが、ス
レッド操作権限と、スレッド操作権の変更権限とを別々
のテーブルに記述し、それぞれについて操作スレッドI
D、対象スレッドID、操作スレッドが存在するメモリ
領域IDを指定しても良い。
スレッド操作権の変更権限とを、同一のテーブルの中で
操作スレッドID、対象スレッドID、操作スレッドが
存在するメモリ領域IDを共有して表現しているが、ス
レッド操作権限と、スレッド操作権の変更権限とを別々
のテーブルに記述し、それぞれについて操作スレッドI
D、対象スレッドID、操作スレッドが存在するメモリ
領域IDを指定しても良い。
【0069】次に、Thread Get Status処理部11の
処理の流れを図3に示す。
処理の流れを図3に示す。
【0070】まず、ステップS1にて、このシステムコ
ールを実行した操作スレッドID、メモリ領域IDをそ
れそれスレッドID記憶部6とメモリ領域ID記憶部5
から情報を得る。上述したように、現在実行中のスレッ
ドIDは、実行状態切替部4でセットされ、現在実行中
のメモリ領域IDは、プロセッサの内部にあるPCの情
報からセットされている。さらに、システムコールの第
一引数から対象スレッドID検出部13が対象スレッド
IDを得ている。第二引数からは、スレッド情報格納位
置検出部14が、このシステムコールの実行結果を格納
するユーザ・プログラムのメモリ位置を検出する。
ールを実行した操作スレッドID、メモリ領域IDをそ
れそれスレッドID記憶部6とメモリ領域ID記憶部5
から情報を得る。上述したように、現在実行中のスレッ
ドIDは、実行状態切替部4でセットされ、現在実行中
のメモリ領域IDは、プロセッサの内部にあるPCの情
報からセットされている。さらに、システムコールの第
一引数から対象スレッドID検出部13が対象スレッド
IDを得ている。第二引数からは、スレッド情報格納位
置検出部14が、このシステムコールの実行結果を格納
するユーザ・プログラムのメモリ位置を検出する。
【0071】次にステップS2にて、以上の3つの情報
をもとに操作権記憶部71の表を引き、該当エントリを
サーチし、スレッド操作権限を調べる。もし、見つかれ
ば、ステップS3に進み、なければステップS8を行う
エラー処理部15へ進む。
をもとに操作権記憶部71の表を引き、該当エントリを
サーチし、スレッド操作権限を調べる。もし、見つかれ
ば、ステップS3に進み、なければステップS8を行う
エラー処理部15へ進む。
【0072】サーチは、テーブルの上から順に比較を行
い、最初にマッチしたエントリの情報を次のステップ以
降で利用する。テーブルのフィールドのall部分は、
すべてにマッチすることを意味する。もし、テーブルの
最後のエントリまで比較し、マッチしなかったらサーチ
の失敗となる。
い、最初にマッチしたエントリの情報を次のステップ以
降で利用する。テーブルのフィールドのall部分は、
すべてにマッチすることを意味する。もし、テーブルの
最後のエントリまで比較し、マッチしなかったらサーチ
の失敗となる。
【0073】ステップS3では、見つかったエントリの
スレッド操作権限を表す部分のうち、スレッド内部状態
読出権限に該当する部分の情報を読み出し、許可か否か
を判断する。この判定は操作権限判定部12で行う。も
し判定で許可されればステップS4へ進み、不許可にな
ればステップS8のエラー処理へ移る。
スレッド操作権限を表す部分のうち、スレッド内部状態
読出権限に該当する部分の情報を読み出し、許可か否か
を判断する。この判定は操作権限判定部12で行う。も
し判定で許可されればステップS4へ進み、不許可にな
ればステップS8のエラー処理へ移る。
【0074】次のステップS4では、対象スレッドに対
して、許可されたスレッドの内部状態を読み出すための
スレッド管理テーブルの参照操作を実行する。この処理
はスレッド状態参照実行部16にて行う。ここでは、該
当スレッドの内部状態であるスレッド情報を、スレッド
情報格納位置検出部14で指示されたメモリ中に格納す
る。
して、許可されたスレッドの内部状態を読み出すための
スレッド管理テーブルの参照操作を実行する。この処理
はスレッド状態参照実行部16にて行う。ここでは、該
当スレッドの内部状態であるスレッド情報を、スレッド
情報格納位置検出部14で指示されたメモリ中に格納す
る。
【0075】ステップS5にて、ステップS4での処理
結果を判定する。処理が成功するとステップS6にて、
成功を示すコードをシステムコール終了部17へ伝え
る。失敗するとステップS7にて、失敗を示すコードを
システムコール終了部17へ伝える。
結果を判定する。処理が成功するとステップS6にて、
成功を示すコードをシステムコール終了部17へ伝え
る。失敗するとステップS7にて、失敗を示すコードを
システムコール終了部17へ伝える。
【0076】ステップS8では、エラーコードをシステ
ムコール終了部17へ伝える。
ムコール終了部17へ伝える。
【0077】Thread Get Status処理部11での処理
を終えると、最後に、システムコール終了部17に処理
が進む。このシステムコールを実行したユーザプログラ
ムに返す返値をシステムコールの返値として戻るように
処理を行い、中断していた呼出元のユーザプログラムの
実行ができるように復帰処理を行い、実行レベルを特権
レベルからユーザレベルへ戻す処理を行う。
を終えると、最後に、システムコール終了部17に処理
が進む。このシステムコールを実行したユーザプログラ
ムに返す返値をシステムコールの返値として戻るように
処理を行い、中断していた呼出元のユーザプログラムの
実行ができるように復帰処理を行い、実行レベルを特権
レベルからユーザレベルへ戻す処理を行う。
【0078】次に、操作権記憶部71に記入されたスレ
ッド操作権限を変更するシステムシステムコールについ
て説明する。
ッド操作権限を変更するシステムシステムコールについ
て説明する。
【0079】Thread Add Acl(指定操作スレッドI
D、指定対象スレッドID、指定メモリ領域ID、追加
する指定操作権限) なるシステムコールは、上記で説明
したスレッド操作権限を、新たに追加するものである。
D、指定対象スレッドID、指定メモリ領域ID、追加
する指定操作権限) なるシステムコールは、上記で説明
したスレッド操作権限を、新たに追加するものである。
【0080】いま、スレッド100(スレッドID=1
00)がスレッド1(スレッドID=1)に対し、スレ
ッド2(スレッドID=2)の実行の停止/再開権限を
付与しようとしたとする。C言語で記載されているプロ
グラムCでは、次のように記されている。
00)がスレッド1(スレッドID=1)に対し、スレ
ッド2(スレッドID=2)の実行の停止/再開権限を
付与しようとしたとする。C言語で記載されているプロ
グラムCでは、次のように記されている。
【0081】err = Thread Add Acl(1, 2, all, THR
EAD SUSPEND);ここで、関数Thread Add Acl は、
スレッドに対する操作権を追加するためのシステムコー
ルであって、第1引数の1は、指定した操作スレッド番
号(対象スレッドID)が1であること、すなわちスレ
ッドID=1に対して権限を与えることを指示してい
る。第2引数の2は、指定した対象スレッド番号(指定
対象スレッドID)が2であること、すなわちスレッド
ID=2を操作する権限であることを指示している。第
3引数のallは、指定した操作スレッドが存在するメ
モリ領域ID(指定メモリ領域ID)がallであるこ
と、すなわち操作スレッドが存在するメモリ領域IDに
よって与える権限を制限することはしないということを
指示している。第4引数のTHREAD SUSPEND は、これら
3つの指定した組み合わせに対して、付加する操作権限
(指定操作権限)を指示している。この例では、スレッ
ドの実行の停止/再開権限を付加することを意味してい
る。第4引数には複数種類の権限を同時に指定すること
もできる。
EAD SUSPEND);ここで、関数Thread Add Acl は、
スレッドに対する操作権を追加するためのシステムコー
ルであって、第1引数の1は、指定した操作スレッド番
号(対象スレッドID)が1であること、すなわちスレ
ッドID=1に対して権限を与えることを指示してい
る。第2引数の2は、指定した対象スレッド番号(指定
対象スレッドID)が2であること、すなわちスレッド
ID=2を操作する権限であることを指示している。第
3引数のallは、指定した操作スレッドが存在するメ
モリ領域ID(指定メモリ領域ID)がallであるこ
と、すなわち操作スレッドが存在するメモリ領域IDに
よって与える権限を制限することはしないということを
指示している。第4引数のTHREAD SUSPEND は、これら
3つの指定した組み合わせに対して、付加する操作権限
(指定操作権限)を指示している。この例では、スレッ
ドの実行の停止/再開権限を付加することを意味してい
る。第4引数には複数種類の権限を同時に指定すること
もできる。
【0082】この関数をプログラムCのスレッド100
が実行すると、スレッド100はシステムコールにより
プロセッサの実行モードをユーザレベルから特権レベル
に遷移させ、OSを呼び出す。特権レベルとは、OSが
処理を行う専用レベルのことである。
が実行すると、スレッド100はシステムコールにより
プロセッサの実行モードをユーザレベルから特権レベル
に遷移させ、OSを呼び出す。特権レベルとは、OSが
処理を行う専用レベルのことである。
【0083】呼び出されたOSでは、OS内のシステム
コール受付部8に処理が移る。ここでは、このシステム
コールを呼び出した元のユーザプログラムの中断処理を
行い、要求されたシステムコールの種類と指示された引
数を受け取り、それぞれその情報を引数検出部9とシス
テムコールの種類判別部10に送る。
コール受付部8に処理が移る。ここでは、このシステム
コールを呼び出した元のユーザプログラムの中断処理を
行い、要求されたシステムコールの種類と指示された引
数を受け取り、それぞれその情報を引数検出部9とシス
テムコールの種類判別部10に送る。
【0084】本例では、指示されたシステムコールは、
Thread Add Acl なので、システムコールの種類判別
部10で、Thread Add Acl 処理部21を呼び出す。
Thread Add Acl 処理部21は図1におけるThread
Get Status処理部11を図4のように置き換えたもの
である。なお、Thread Add Acl 処理部21とThread
Get Status処理部11は本来一体のブロック図とし
て示すべきものであるが、図が煩雑になるため説明の便
宜をはかり図1および図4の別々の図としてある。
Thread Add Acl なので、システムコールの種類判別
部10で、Thread Add Acl 処理部21を呼び出す。
Thread Add Acl 処理部21は図1におけるThread
Get Status処理部11を図4のように置き換えたもの
である。なお、Thread Add Acl 処理部21とThread
Get Status処理部11は本来一体のブロック図とし
て示すべきものであるが、図が煩雑になるため説明の便
宜をはかり図1および図4の別々の図としてある。
【0085】そこでの処理は、図2に示したスレッド操
作権リスト記憶部7を使って行われる。その内容および
意味は前に説明した通りである。
作権リスト記憶部7を使って行われる。その内容および
意味は前に説明した通りである。
【0086】次に、図5にThread Add Acl 処理部2
1の処理の流れを示す。
1の処理の流れを示す。
【0087】まず、ステップS11にて、このシステム
コールを実行した実行スレッドID、メモリ領域IDを
それぞれスレッドID記憶部6とメモリ領域ID記憶部
5から情報を得る。さらに、システムコールの第2引数
から指定対象スレッドID検出部23が、このシステム
コールによってスレッド操作権限の変更を行う対象とし
たスレッドのIDを得る。
コールを実行した実行スレッドID、メモリ領域IDを
それぞれスレッドID記憶部6とメモリ領域ID記憶部
5から情報を得る。さらに、システムコールの第2引数
から指定対象スレッドID検出部23が、このシステム
コールによってスレッド操作権限の変更を行う対象とし
たスレッドのIDを得る。
【0088】次にステップS12にて、以上の3つの情
報をもとにスレッド操作権リスト記憶部7のテーブルを
引き、該当エントリをサーチする。もし、見つかれば、
ステップS13に進み、なければステップS19を行う
エラー処理部15へ進む。サーチは、テーブルの上から
順に比較を行い、最初にマッチしたエントリの情報を次
のステップ以降で利用する。テーブルのフィールドのa
ll部分は、全てにマッチすることを意味する。もし、
テーブルの最後のエントリまで比較し、マッチしなかっ
たらサーチの失敗となる。
報をもとにスレッド操作権リスト記憶部7のテーブルを
引き、該当エントリをサーチする。もし、見つかれば、
ステップS13に進み、なければステップS19を行う
エラー処理部15へ進む。サーチは、テーブルの上から
順に比較を行い、最初にマッチしたエントリの情報を次
のステップ以降で利用する。テーブルのフィールドのa
ll部分は、全てにマッチすることを意味する。もし、
テーブルの最後のエントリまで比較し、マッチしなかっ
たらサーチの失敗となる。
【0089】ステップS13では、見つかったエントリ
のスレッド操作権変更権限に該当する部分の情報を読み
出し、許可か否かを判断する。この判定は操作権変更権
判定部26で行う。もし判定で許可されればステップS
14へ進み、不許可になればステップS19のエラー処
理へ移る。
のスレッド操作権変更権限に該当する部分の情報を読み
出し、許可か否かを判断する。この判定は操作権変更権
判定部26で行う。もし判定で許可されればステップS
14へ進み、不許可になればステップS19のエラー処
理へ移る。
【0090】ステップS14では、システムコールの第
1引数から、指定対象スレッドID検出部23が指定し
た対象スレッドIDを得る。また、システムコールの第
3引数から、指定メモリ領域ID検出部24が指定した
操作スレッドが存在するメモリ領域IDを得る。さら
に、システム・コールの第4引数から、指定操作権限検
出部25が指定した追加すべき操作権限を得る。
1引数から、指定対象スレッドID検出部23が指定し
た対象スレッドIDを得る。また、システムコールの第
3引数から、指定メモリ領域ID検出部24が指定した
操作スレッドが存在するメモリ領域IDを得る。さら
に、システム・コールの第4引数から、指定操作権限検
出部25が指定した追加すべき操作権限を得る。
【0091】ステップS15では、ステップS11およ
びステップS14で得られた対象スレッドID、指定対
象スレッドID、指定メモリ領域ID、指定操作権限を
もとに操作権リスト変更部27が操作権リスト記憶部7
を書き換える。つまり、まず操作権リスト記憶部7のテ
ーブルを順にサーチし、対象スレッドIDと指定対象ス
レッドIDと指定メモリ領域IDの3つが全て一致する
列があれば、その列のスレッド操作権限のフィールドを
書き換え、もしなければ、指定した3つのIDを示す列
を新たに操作権リスト記憶部7のテーブルに追加する。
この例では、指定した3つのIDと一致する列が最初に
見付かるので、その列のスレッド操作権限のフィールド
にあるスレッドの実行の停止/再開権限を×から○に変
更する。
びステップS14で得られた対象スレッドID、指定対
象スレッドID、指定メモリ領域ID、指定操作権限を
もとに操作権リスト変更部27が操作権リスト記憶部7
を書き換える。つまり、まず操作権リスト記憶部7のテ
ーブルを順にサーチし、対象スレッドIDと指定対象ス
レッドIDと指定メモリ領域IDの3つが全て一致する
列があれば、その列のスレッド操作権限のフィールドを
書き換え、もしなければ、指定した3つのIDを示す列
を新たに操作権リスト記憶部7のテーブルに追加する。
この例では、指定した3つのIDと一致する列が最初に
見付かるので、その列のスレッド操作権限のフィールド
にあるスレッドの実行の停止/再開権限を×から○に変
更する。
【0092】ステップS16にて、ステップS15での
処理結果を判定する。処理が成功するとステップS17
にて、成功を示すコードをシステムコール終了部17へ
伝える。失敗するとステップS18にて、失敗を示すコ
ードをシステムコール終了部17へ伝える。ステップS
19では、エラーコードをシステムコール終了部17へ
伝える。
処理結果を判定する。処理が成功するとステップS17
にて、成功を示すコードをシステムコール終了部17へ
伝える。失敗するとステップS18にて、失敗を示すコ
ードをシステムコール終了部17へ伝える。ステップS
19では、エラーコードをシステムコール終了部17へ
伝える。
【0093】Thread Add Acl 実行部21での処理を
終えると、最後にシステムコール終了部17に処理が進
む。このシステムコールを実行したユーザプログラムに
返す返値をシステムコールの返値として戻るように処理
を行い、中断していた呼出元のユーザプログラムの実行
ができるように復帰処理を行い、実行レベルを特権レベ
ルからユーザレベルへ戻す処理を行う。
終えると、最後にシステムコール終了部17に処理が進
む。このシステムコールを実行したユーザプログラムに
返す返値をシステムコールの返値として戻るように処理
を行い、中断していた呼出元のユーザプログラムの実行
ができるように復帰処理を行い、実行レベルを特権レベ
ルからユーザレベルへ戻す処理を行う。
【0094】本例のようなThread Add Acl システム
・コールの実行が成功した結果、図2で示された操作権
リスト記憶部7のデータは図6のように変更される。
・コールの実行が成功した結果、図2で示された操作権
リスト記憶部7のデータは図6のように変更される。
【0095】本例では操作権リスト変更部27におい
て、書換を必要とする該当フィールドを書き換えるだけ
で、Thread Add Acl システム・コールからの要求を
実行することができたが、Thread Add Acl システム
・コールに与えられた引数の内容によっては、該当フィ
ールドを書き換えるだけでは表現できず、操作権リスト
記憶部7のデータを増やさなくてはならない。
て、書換を必要とする該当フィールドを書き換えるだけ
で、Thread Add Acl システム・コールからの要求を
実行することができたが、Thread Add Acl システム
・コールに与えられた引数の内容によっては、該当フィ
ールドを書き換えるだけでは表現できず、操作権リスト
記憶部7のデータを増やさなくてはならない。
【0096】例えば、操作権リスト記憶部7のデータが
先の図2に示したとおりであるとき、 Thread Add
Acl (3, 2, A, THREAD SUSPEND*THREAD GET STATU
S) を実行した場合を考える。
先の図2に示したとおりであるとき、 Thread Add
Acl (3, 2, A, THREAD SUSPEND*THREAD GET STATU
S) を実行した場合を考える。
【0097】ここで、第1引数の3は、指定した操作ス
レッド番号(対象スレッドID)が3であること、すな
わちスレッドID=3に対して権限を与えることを指示
しており、第2引数の2は、指定した対象スレッド番号
(指定対象スレッドID)が2であること、すなわちス
レッドID=2を操作する権限であることを指示してお
り、第3引数のAは、指定メモリ領域IDがAであるこ
と、すなわち、このシステムコールの実行により変更さ
れる権限は、プログラムA(メモリ領域ID=A)を実
行中にのみ有効であることを指示しており、第4引数の
THREAD SUSPEND は、これら3つの指定した組み合わせ
に対して、スレッドの実行の停止/再開権限を付加する
こと、そしてTHREAD GET STATUSはスレッドの内部状
態読出権限を付加することを指示している。
レッド番号(対象スレッドID)が3であること、すな
わちスレッドID=3に対して権限を与えることを指示
しており、第2引数の2は、指定した対象スレッド番号
(指定対象スレッドID)が2であること、すなわちス
レッドID=2を操作する権限であることを指示してお
り、第3引数のAは、指定メモリ領域IDがAであるこ
と、すなわち、このシステムコールの実行により変更さ
れる権限は、プログラムA(メモリ領域ID=A)を実
行中にのみ有効であることを指示しており、第4引数の
THREAD SUSPEND は、これら3つの指定した組み合わせ
に対して、スレッドの実行の停止/再開権限を付加する
こと、そしてTHREAD GET STATUSはスレッドの内部状
態読出権限を付加することを指示している。
【0098】このシステム・コールが発せられると、操
作権リスト変更部27が、操作権リスト記憶部7のテー
ブルを順にサーチし、対象スレッドIDと指定対象スレ
ッドIDと指定メモリ領域IDの3つが全て一致する列
をさがすが、この場合そのような列は存在しないので、
このシステム・コールは、操作権リスト記憶部7の持つ
テーブルの一部のフィールドを書き換えるだけでは実行
できない。指定した3つのIDを示す列を新たに操作権
リスト記憶部7のテーブルに追加する。このような手順
を踏むことにより、このシステム・コールの実行が終了
すると、図2で示された操作権リスト記憶部7のデータ
は図7のように変更され、操作権リスト記憶部7の列の
長さが1つ長くなっている。
作権リスト変更部27が、操作権リスト記憶部7のテー
ブルを順にサーチし、対象スレッドIDと指定対象スレ
ッドIDと指定メモリ領域IDの3つが全て一致する列
をさがすが、この場合そのような列は存在しないので、
このシステム・コールは、操作権リスト記憶部7の持つ
テーブルの一部のフィールドを書き換えるだけでは実行
できない。指定した3つのIDを示す列を新たに操作権
リスト記憶部7のテーブルに追加する。このような手順
を踏むことにより、このシステム・コールの実行が終了
すると、図2で示された操作権リスト記憶部7のデータ
は図7のように変更され、操作権リスト記憶部7の列の
長さが1つ長くなっている。
【0099】以上の説明においては、最初に操作権変更
権限をどこに指定するかということについては記述され
ていない。一般にはOSの起動時に、一部の特権的なス
レッドに対してこの権限を与え、以下階層的に権限を増
やしてゆくことにより実現することが可能である。
権限をどこに指定するかということについては記述され
ていない。一般にはOSの起動時に、一部の特権的なス
レッドに対してこの権限を与え、以下階層的に権限を増
やしてゆくことにより実現することが可能である。
【0100】しかし、スレッドの作成時に必ず操作権変
更権を指定しなければならないのは、プログラミングの
手間を増やすおそれがあるので、メモリ領域またはスレ
ッドの作成時には、あらかじめ定められたデフォルトの
操作権変更権が設定されるように構成しても良い。デフ
ォルトを何にするかについては各種考えられるが、最も
簡単には、そのメモリ領域またはスレッドを起動したス
レッドに対して操作権変更権を与えることが考えられ
る。この方法は、デフォルトとして従来OSにおけるオ
ーナーの概念を用いたことになり、さらに本実施例で説
明した方法により、本発明の操作権管理装置はより柔軟
な操作権管理を実現するものである。
更権を指定しなければならないのは、プログラミングの
手間を増やすおそれがあるので、メモリ領域またはスレ
ッドの作成時には、あらかじめ定められたデフォルトの
操作権変更権が設定されるように構成しても良い。デフ
ォルトを何にするかについては各種考えられるが、最も
簡単には、そのメモリ領域またはスレッドを起動したス
レッドに対して操作権変更権を与えることが考えられ
る。この方法は、デフォルトとして従来OSにおけるオ
ーナーの概念を用いたことになり、さらに本実施例で説
明した方法により、本発明の操作権管理装置はより柔軟
な操作権管理を実現するものである。
【0101】また、先の例ではThread Add Acl の第
4引数に指定することのできる指定操作権限に制約はな
いものとして記述したので、第4引数にTHREAD CHANGE
ACL を指定することができる。すなわち、スレッド操
作権変更権限を変更させることもできる。また、以上説
明したThread Add Acl と同様に、Thread Del Acl
なるシステム・コールを用いて、例えば Thread Del Acl(3,1,A,THREAD CHANGE ACL ) は、スレッドが、メモリ領域ID=Aのメモリ領域か
ら、スレッドID=1のスレッドのスレッド操作権限を
取り除くことを意味している。この場合、永遠に誰にも
操作権変更権限を変更することのできないようなスレッ
ドを作ってしまうおそれがあるが、そういった変更が行
われることが問題となるオペレーティングシステムにお
いては、操作権変更権記憶部の情報を変更する際に、操
作権記憶部の情報を変更することが不可能になるような
変更を禁止するようにしても良い。例えば、先にあげた Thread Del Acl(3,1,A,THREAD CHANGE ACL ) を実行すると、もはやスレッドID=1のスレッドに対
し、スレッド操作権限を変更することのできるスレッド
が1つもなくなる。このようなシステム・コールが実行
されると、操作権リスト変更部27はエラーを検出した
ことになり、失敗を示すコードをシステムコール終了部
17へ伝え、操作権リスト記憶部のデータは変更されな
い。
4引数に指定することのできる指定操作権限に制約はな
いものとして記述したので、第4引数にTHREAD CHANGE
ACL を指定することができる。すなわち、スレッド操
作権変更権限を変更させることもできる。また、以上説
明したThread Add Acl と同様に、Thread Del Acl
なるシステム・コールを用いて、例えば Thread Del Acl(3,1,A,THREAD CHANGE ACL ) は、スレッドが、メモリ領域ID=Aのメモリ領域か
ら、スレッドID=1のスレッドのスレッド操作権限を
取り除くことを意味している。この場合、永遠に誰にも
操作権変更権限を変更することのできないようなスレッ
ドを作ってしまうおそれがあるが、そういった変更が行
われることが問題となるオペレーティングシステムにお
いては、操作権変更権記憶部の情報を変更する際に、操
作権記憶部の情報を変更することが不可能になるような
変更を禁止するようにしても良い。例えば、先にあげた Thread Del Acl(3,1,A,THREAD CHANGE ACL ) を実行すると、もはやスレッドID=1のスレッドに対
し、スレッド操作権限を変更することのできるスレッド
が1つもなくなる。このようなシステム・コールが実行
されると、操作権リスト変更部27はエラーを検出した
ことになり、失敗を示すコードをシステムコール終了部
17へ伝え、操作権リスト記憶部のデータは変更されな
い。
【0102】また、操作権変更権を変更する権利を別個
のものとして扱い、操作権リスト記憶部7に操作権変更
権管理権限のフィールド(操作権変更権管理権限記憶
部)を用意し、より確実な操作権管理を行っても良い。
のものとして扱い、操作権リスト記憶部7に操作権変更
権管理権限のフィールド(操作権変更権管理権限記憶
部)を用意し、より確実な操作権管理を行っても良い。
【0103】さらには、操作権変更権記憶部の情報を変
更することが不可能になるような、操作権変更権管理権
限記憶部の情報の変更を禁止するようにしても良い。
更することが不可能になるような、操作権変更権管理権
限記憶部の情報の変更を禁止するようにしても良い。
【0104】なお、上記「スレッドID」を「ユーザI
D」に置き換えて構成することも可能である。この場
合、図1におけるスレッドID記憶部6を、ユーザID
記憶部と置き換える修正を施せば良い。
D」に置き換えて構成することも可能である。この場
合、図1におけるスレッドID記憶部6を、ユーザID
記憶部と置き換える修正を施せば良い。
【0105】また、前述した「操作スレッドが存在する
メモリ領域ID」を「操作スレッドが実行しているプロ
グラムID」に置き換えて構成することも可能である。
この場合、図1におけるメモリ領域ID記憶部5は、プ
ログラムID記憶部と置き換える修正を施せば良い。
メモリ領域ID」を「操作スレッドが実行しているプロ
グラムID」に置き換えて構成することも可能である。
この場合、図1におけるメモリ領域ID記憶部5は、プ
ログラムID記憶部と置き換える修正を施せば良い。
【0106】(第2の実施例)次に、本発明の第2の実
施例について説明する。
施例について説明する。
【0107】本発明の操作権管理装置は、メモリ領域や
スレッドに対する操作権管理を、例えばオーナーといっ
た固定的な概念により行うのではなく、操作権変更権を
操作権リスト自体に持たせ、自由に削除、追加させるこ
とによって柔軟に行うことを目的としている。ここで
は、この機構を生かした例として、複数人による共同作
業のアプリケーションが動作する場合に、操作権管理が
柔軟に行われることを示す実施例について述べる。
スレッドに対する操作権管理を、例えばオーナーといっ
た固定的な概念により行うのではなく、操作権変更権を
操作権リスト自体に持たせ、自由に削除、追加させるこ
とによって柔軟に行うことを目的としている。ここで
は、この機構を生かした例として、複数人による共同作
業のアプリケーションが動作する場合に、操作権管理が
柔軟に行われることを示す実施例について述べる。
【0108】ユーザーAは、計算機を使った電子会議を
開催すべく、新たにスレッド10(スレッドID=1
0)を作成した。より具体的には、ユーザーAの動かし
ていたログイン・シェルであるスレッド11がスレッド
10を作成した。このとき、操作権リスト記憶部7の該
当部分のデータは図8のようになっている。以下図には
操作権リスト記憶部7のテーブルのうち、本実施例を説
明するのに必要な部分のみを記述し、他の部分について
は記述を省略する。
開催すべく、新たにスレッド10(スレッドID=1
0)を作成した。より具体的には、ユーザーAの動かし
ていたログイン・シェルであるスレッド11がスレッド
10を作成した。このとき、操作権リスト記憶部7の該
当部分のデータは図8のようになっている。以下図には
操作権リスト記憶部7のテーブルのうち、本実施例を説
明するのに必要な部分のみを記述し、他の部分について
は記述を省略する。
【0109】スレッド11(スレッドID=11)はス
レッド10(スレッドID=10)の内部状態読み出し
およびスレッド操作権の変更ができる。しかし、内部状
態を変更したり、実行の停止/再開を行うことはできな
い。つまり、既に動き始めたスレッド10(スレッドI
D=10)は、それを作成したスレッド11(スレッド
ID=11)によって誤って実行を妨害されることはな
い。これらの初期状態はスレッドを作成するシステムコ
ールの引数として指定するものとする。
レッド10(スレッドID=10)の内部状態読み出し
およびスレッド操作権の変更ができる。しかし、内部状
態を変更したり、実行の停止/再開を行うことはできな
い。つまり、既に動き始めたスレッド10(スレッドI
D=10)は、それを作成したスレッド11(スレッド
ID=11)によって誤って実行を妨害されることはな
い。これらの初期状態はスレッドを作成するシステムコ
ールの引数として指定するものとする。
【0110】作成されたスレッド10は電子会議のプロ
グラムを実行し、ユーザーAとのインターフェースを司
る。また、スレッド10は電子会議をサポートするため
のメモリ領域として、メモリ領域30(メモリ領域ID
=30)を作成する。
グラムを実行し、ユーザーAとのインターフェースを司
る。また、スレッド10は電子会議をサポートするため
のメモリ領域として、メモリ領域30(メモリ領域ID
=30)を作成する。
【0111】メモリ領域30に関する操作権の管理に
は、スレッドの操作権の管理と同様に操作権リスト記憶
部7を用いる。ただし、スレッドの操作権管理の説明で
述べた対象スレッドID、スレッド操作権限、スレッド
の内部状態読出権限、スレッドの内部状態変更権限、ス
レッドの実行の停止/再開権限、スレッド操作権変更権
限は、メモリ領域の操作権管理においてはそれぞれ対象
メモリ領域ID、メモリ領域操作権限、メモリ領域の内
部データ読出権限、メモリ領域の内部データ変更権限、
メモリ領域にあるプログラムの実行権限、メモリ領域操
作権変更権限、となる。
は、スレッドの操作権の管理と同様に操作権リスト記憶
部7を用いる。ただし、スレッドの操作権管理の説明で
述べた対象スレッドID、スレッド操作権限、スレッド
の内部状態読出権限、スレッドの内部状態変更権限、ス
レッドの実行の停止/再開権限、スレッド操作権変更権
限は、メモリ領域の操作権管理においてはそれぞれ対象
メモリ領域ID、メモリ領域操作権限、メモリ領域の内
部データ読出権限、メモリ領域の内部データ変更権限、
メモリ領域にあるプログラムの実行権限、メモリ領域操
作権変更権限、となる。
【0112】図9に示した操作権リスト記憶部は、スレ
ッド10がメモリ領域30の内部データの読み出しおよ
び変更、操作権変更ができることを意味している。
ッド10がメモリ領域30の内部データの読み出しおよ
び変更、操作権変更ができることを意味している。
【0113】次にユーザーBおよびユーザーCが電子会
議への参加を表明し、スレッド10は新たにユーザーB
およびユーザーCのためのスレッド12(スレッドID
=12)およびスレッド13(スレッドID=13)を
作成した。その結果、図8の操作権リスト記憶部7のデ
ータは図10のように追加される。また電子会議をサポ
ートするためのメモリ領域であるメモリ領域30は、ス
レッド12およびスレッド13からも使われるので、図
9の操作権リスト記憶部7のデータは図11のように追
加される。
議への参加を表明し、スレッド10は新たにユーザーB
およびユーザーCのためのスレッド12(スレッドID
=12)およびスレッド13(スレッドID=13)を
作成した。その結果、図8の操作権リスト記憶部7のデ
ータは図10のように追加される。また電子会議をサポ
ートするためのメモリ領域であるメモリ領域30は、ス
レッド12およびスレッド13からも使われるので、図
9の操作権リスト記憶部7のデータは図11のように追
加される。
【0114】つまり、スレッド12およびスレッド13
はスレッド10によりコントロールされており、スレッ
ドに関するあらゆる操作ができるが、スレッド12およ
びスレッド13は他のスレッドのコントロールをするこ
とはできない。これにより、スレッド10が先導して電
子会議の進行をプログラムされた通りに実行することが
できる。
はスレッド10によりコントロールされており、スレッ
ドに関するあらゆる操作ができるが、スレッド12およ
びスレッド13は他のスレッドのコントロールをするこ
とはできない。これにより、スレッド10が先導して電
子会議の進行をプログラムされた通りに実行することが
できる。
【0115】共通のメモリ領域として使われるメモリ領
域30は、スレッド10、スレッド12、スレッド13
のいずれからもデータの読み出し、変更ができるが、そ
の領域が誰から(どのスレッドから)どのような操作が
できるかということを変更することができるのはスレッ
ド10だけである。
域30は、スレッド10、スレッド12、スレッド13
のいずれからもデータの読み出し、変更ができるが、そ
の領域が誰から(どのスレッドから)どのような操作が
できるかということを変更することができるのはスレッ
ド10だけである。
【0116】このような仕組みで、複雑な依存関係のあ
る電子会議のようなコミュニケーション・プログラムも
OSの操作権管理機構を用いて確実に記述することがで
きる。
る電子会議のようなコミュニケーション・プログラムも
OSの操作権管理機構を用いて確実に記述することがで
きる。
【0117】次に、会議を先導していたユーザーAのス
レッド10が、途中で会議を抜け、会議はそのまま進行
している場合を考える。
レッド10が、途中で会議を抜け、会議はそのまま進行
している場合を考える。
【0118】単純にスレッド10が自分自身の実行を終
了させたのでは、メモリ領域30の操作権を変更するこ
とのできるスレッドがいなくなり、会議を正しく進行さ
せることができなくなる。このような場合には、ユーザ
ーAは一旦会議の進行権を他の人(例えばユーザーB)
に譲らなければならない。
了させたのでは、メモリ領域30の操作権を変更するこ
とのできるスレッドがいなくなり、会議を正しく進行さ
せることができなくなる。このような場合には、ユーザ
ーAは一旦会議の進行権を他の人(例えばユーザーB)
に譲らなければならない。
【0119】まず、メモリ領域30の操作権をスレッド
12(ユーザーBのスレッド、スレッドID=12)に
設定する。そして、スレッド13の管理権をスレッド1
2に譲り、そのあとで実行を終了する。それ以外のもの
で、操作スレッドIDが10であるものは、スレッド1
0の終了と同時に自動的に消滅させる。
12(ユーザーBのスレッド、スレッドID=12)に
設定する。そして、スレッド13の管理権をスレッド1
2に譲り、そのあとで実行を終了する。それ以外のもの
で、操作スレッドIDが10であるものは、スレッド1
0の終了と同時に自動的に消滅させる。
【0120】これによって、図10および図11の操作
権リスト記憶部はそれぞれ図12および図13のように
なる。すなわち、メモリ領域30へのアクセスはスレッ
ド12とスレッド13の両方からできるが、スレッドの
管理自体の権利はスレッド12が継承する。注意すべき
点は、スレッド10の実行が終了したために、ユーザー
Aのlogin shell であるスレッド11からは、電子会議
を実行するいずれのプログラムに対しても何の権利もな
くなっていることである。
権リスト記憶部はそれぞれ図12および図13のように
なる。すなわち、メモリ領域30へのアクセスはスレッ
ド12とスレッド13の両方からできるが、スレッドの
管理自体の権利はスレッド12が継承する。注意すべき
点は、スレッド10の実行が終了したために、ユーザー
Aのlogin shell であるスレッド11からは、電子会議
を実行するいずれのプログラムに対しても何の権利もな
くなっていることである。
【0121】ここに示した例は電子会議プログラムを実
現する一方法を示したものであり、必ずしもこのような
手順で操作権を譲渡してゆかなければプログラムが記述
できないということは意味していない。
現する一方法を示したものであり、必ずしもこのような
手順で操作権を譲渡してゆかなければプログラムが記述
できないということは意味していない。
【0122】このようにして、スレッドおよびメモリ領
域への操作権を管理しつつ、管理者の変更を実現するこ
とができる。
域への操作権を管理しつつ、管理者の変更を実現するこ
とができる。
【0123】本発明の操作権管理装置を使えば、「会議
に参加する」あるいは「会議から退室する」という、本
実施例で具体的に例をあげて説明したような場合におけ
る、曖昧な操作権管理も、アプリケーションで逐一記述
することなく、OSのサポートにより柔軟かつ確実に実
現することができる。
に参加する」あるいは「会議から退室する」という、本
実施例で具体的に例をあげて説明したような場合におけ
る、曖昧な操作権管理も、アプリケーションで逐一記述
することなく、OSのサポートにより柔軟かつ確実に実
現することができる。
【0124】また、本発明は上述した実施例に限定され
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。
【0125】
【発明の効果】本発明の操作権管理装置によれば、スレ
ッドまたはメモリ領域に対する操作を保護するための操
作権管理を柔軟かつ確実に行うことができる。
ッドまたはメモリ領域に対する操作を保護するための操
作権管理を柔軟かつ確実に行うことができる。
【図1】Thread Get Statusを説明するための構成図
【図2】図1の操作権リスト記憶部7の内部構成例を示
す図
す図
【図3】本実施例に係わる操作権管理装置において操作
権を変更する動作を示すフローチャート
権を変更する動作を示すフローチャート
【図4】Thread Add Acl を説明するための構成図
【図5】本実施例に係わる操作権管理装置において操作
権変更権を変更する動作を示すフロー図
権変更権を変更する動作を示すフロー図
【図6】図4の操作権リスト記憶部7の内部構成例を示
す第1の図
す第1の図
【図7】図4の操作権リスト記憶部7の内部構成例を示
す第2の図
す第2の図
【図8】電子会議開催時のスレッド操作権リストを示す
図
図
【図9】電子会議開催直後のメモリ領域操作権リストを
示す図
示す図
【図10】電子会議に新たなメンバが参加した際のスレ
ッド操作権リストを示す図
ッド操作権リストを示す図
【図11】電子会議に新たなメンバが参加した際のメモ
リ領域操作権リストを示す図
リ領域操作権リストを示す図
【図12】ユーザーAが電子会議の先導権をユーザーB
に委譲した際のスレッド操作権リストを示す図
に委譲した際のスレッド操作権リストを示す図
【図13】ユーザーAが電子会議の先導権をユーザーB
に委譲した際のメモリ領域操作権リストを示す図
に委譲した際のメモリ領域操作権リストを示す図
1…プログラム記憶部、2…プロセッサ、3…スレッド
管理部、4…実行状態切替部、5…メモリ領域ID記憶
部、6…スレッドID記憶部、7…操作権リスト記憶
部、8…システムコール受付部、9…引数検出部、10
…システムコールの種類判定部、11,21…システム
コール実行部、12…操作権限判定部、13…対象スレ
ッドID検出部、14…スレッド情報格納位置検出部、
15…エラー処理部、16…スレッド状態参照実行部、
17…システムコール終了部、22…指定操作スレッド
ID検出部、23…指定対象スレッドID検出部、24
…指定メモリ領域ID検出部、25…指定操作権限検出
部、26…操作権変更権判定部、27…操作権リスト変
更部
管理部、4…実行状態切替部、5…メモリ領域ID記憶
部、6…スレッドID記憶部、7…操作権リスト記憶
部、8…システムコール受付部、9…引数検出部、10
…システムコールの種類判定部、11,21…システム
コール実行部、12…操作権限判定部、13…対象スレ
ッドID検出部、14…スレッド情報格納位置検出部、
15…エラー処理部、16…スレッド状態参照実行部、
17…システムコール終了部、22…指定操作スレッド
ID検出部、23…指定対象スレッドID検出部、24
…指定メモリ領域ID検出部、25…指定操作権限検出
部、26…操作権変更権判定部、27…操作権リスト変
更部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 申 承昊 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 吉田 英樹 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内
Claims (3)
- 【請求項1】複数の並行して実行されるスレッドにより
プログラムを実行する手段と、 各スレッドに対する操作を、この操作を行う主体となる
スレッドまたはユーザ、もしくはこの操作を行う主体が
存在するメモリ領域またはプログラムの少なくともいず
れかに基づいて、許可するか否かを指示する操作権情報
を記憶する手段とを備える操作権管理装置において、 前記操作権情報の変更を、この変更を行う主体となるス
レッドまたは、ユーザもしくはこの変更を行う主体が存
在するメモリ領域またはプログラムの少なくともいずれ
かに基づいて、許可するか否かを示す変更権情報を記憶
する手段と、 前記操作権情報の変更を実行する前に、記憶された前記
変更権情報を参照して、この変更が許可されるか否かを
検証する手段とを具備したことを特徴とする操作権管理
装置。 - 【請求項2】実メモリまたは仮想メモリを複数のメモリ
領域の集合として管理する手段と、 各メモリ領域に対する操作を、この操作を行う主体とな
るスレッドまたはユーザ、もしくはこの操作を行う主体
が存在するメモリ領域またはプログラムの少なくともい
ずれかに基づいて、許可するか否かを指示する操作権情
報を記憶する手段とを備える操作権管理装置において、 前記操作権情報の変更を、この変更を行う主体となるス
レッドまたは、ユーザもしくはこの変更を行う主体が存
在するメモリ領域またはプログラムの少なくともいずれ
かに基づいて、許可するか否かを示す変更権情報を記憶
する手段と、 前記操作権情報の変更を実行する前に、記憶された前記
変更権情報を参照して、この変更が許可されるか否かを
検証する手段とを具備したことを特徴とする操作権管理
装置。 - 【請求項3】前記変更権情報を前記操作権情報に付随さ
れて記憶することを特徴とする請求項1または2に記載
の操作権管理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5349335A JPH07200317A (ja) | 1993-12-28 | 1993-12-28 | 操作権管理装置 |
| US08/779,118 US5892944A (en) | 1993-07-20 | 1997-01-06 | Program execution and operation right management system suitable for single virtual memory scheme |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5349335A JPH07200317A (ja) | 1993-12-28 | 1993-12-28 | 操作権管理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07200317A true JPH07200317A (ja) | 1995-08-04 |
Family
ID=18403087
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5349335A Pending JPH07200317A (ja) | 1993-07-20 | 1993-12-28 | 操作権管理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07200317A (ja) |
Cited By (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003518279A (ja) * | 1999-01-22 | 2003-06-03 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてグローバル・データ構造を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
| US6859533B1 (en) | 1999-04-06 | 2005-02-22 | Contentguard Holdings, Inc. | System and method for transferring the right to decode messages in a symmetric encoding scheme |
| US6865551B1 (en) | 1994-11-23 | 2005-03-08 | Contentguard Holdings, Inc. | Removable content repositories |
| US6876984B2 (en) | 2001-05-31 | 2005-04-05 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
| US6885748B1 (en) | 1999-10-23 | 2005-04-26 | Contentguard Holdings, Inc. | System and method for protection of digital works |
| US6895503B2 (en) | 2001-05-31 | 2005-05-17 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
| US6895392B2 (en) | 1994-11-23 | 2005-05-17 | Contentguard Holdings, Inc. | Usage rights grammar and digital works having usage rights created with the grammar |
| US6912294B2 (en) | 2000-12-29 | 2005-06-28 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
| US6920436B2 (en) | 1994-11-23 | 2005-07-19 | Contentguard Holdings, Inc. | Digital work structure |
| US6931545B1 (en) | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
| US6937726B1 (en) | 1999-04-06 | 2005-08-30 | Contentguard Holdings, Inc. | System and method for protecting data files by periodically refreshing a decryption key |
| US6938021B2 (en) | 1997-11-06 | 2005-08-30 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
| US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
| US6973445B2 (en) | 2001-05-31 | 2005-12-06 | Contentguard Holdings, Inc. | Demarcated digital content and method for creating and processing demarcated digital works |
| US7028009B2 (en) | 2001-01-17 | 2006-04-11 | Contentguardiholdings, Inc. | Method and apparatus for distributing enforceable property rights |
| US7031471B2 (en) | 1997-02-28 | 2006-04-18 | Contentguard Holdings, Inc. | System for controlling the distribution and use of rendered digital works through watermarking |
| US7051212B2 (en) | 1995-02-13 | 2006-05-23 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
| US7068787B1 (en) | 1998-10-23 | 2006-06-27 | Contentguard Holdings, Inc. | System and method for protection of digital works |
| US7069451B1 (en) | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7073199B1 (en) | 2000-08-28 | 2006-07-04 | Contentguard Holdings, Inc. | Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine |
| US7085741B2 (en) | 2001-01-17 | 2006-08-01 | Contentguard Holdings, Inc. | Method and apparatus for managing digital content usage rights |
| US7095854B1 (en) | 1995-02-13 | 2006-08-22 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7117180B1 (en) | 1994-11-23 | 2006-10-03 | Contentguard Holdings, Inc. | System for controlling the use of digital works using removable content repositories |
| US7120802B2 (en) | 1996-08-12 | 2006-10-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure computing environments |
| US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
| US7133845B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System and methods for secure transaction management and electronic rights protection |
| US7143290B1 (en) | 1995-02-13 | 2006-11-28 | Intertrust Technologies Corporation | Trusted and secure techniques, systems and methods for item delivery and execution |
| US7152046B2 (en) | 2001-05-31 | 2006-12-19 | Contentguard Holdings, Inc. | Method and apparatus for tracking status of resource in a system for managing use of the resources |
| US7165174B1 (en) | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
| US7206765B2 (en) | 2001-01-17 | 2007-04-17 | Contentguard Holdings, Inc. | System and method for supplying and managing usage rights based on rules |
| US7206941B2 (en) | 2000-08-28 | 2007-04-17 | Contentguard Holdings, Inc. | Method and apparatus for validating security components through a request for content |
| US7222104B2 (en) | 2001-05-31 | 2007-05-22 | Contentguard Holdings, Inc. | Method and apparatus for transferring usage rights and digital work having transferrable usage rights |
| US7233948B1 (en) | 1998-03-16 | 2007-06-19 | Intertrust Technologies Corp. | Methods and apparatus for persistent control and protection of content |
| US7243236B1 (en) | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
| US7286665B1 (en) | 1999-04-06 | 2007-10-23 | Contentguard Holdings, Inc. | System and method for transferring the right to decode messages |
| US7343324B2 (en) | 2000-11-03 | 2008-03-11 | Contentguard Holdings Inc. | Method, system, and computer readable medium for automatically publishing content |
| US7356688B1 (en) | 1999-04-06 | 2008-04-08 | Contentguard Holdings, Inc. | System and method for document distribution |
| JP2010086410A (ja) * | 2008-10-01 | 2010-04-15 | Canon Inc | メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体 |
| US8434127B2 (en) | 2007-02-08 | 2013-04-30 | Nec Corporation | Access control system, access control method, electronic device and control program |
| US8892473B2 (en) | 2001-05-31 | 2014-11-18 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
| JP2020530615A (ja) * | 2017-08-07 | 2020-10-22 | 成都牽牛草信息技術有限公司Chengdu Qianniucao Information Technology Co., Ltd. | 統計列表の操作権限の承認方法 |
| CN117591542B (zh) * | 2024-01-18 | 2024-03-22 | 准检河北检测技术服务有限公司 | 一种数据库软件数据安全智能检测方法 |
-
1993
- 1993-12-28 JP JP5349335A patent/JPH07200317A/ja active Pending
Cited By (88)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7065505B2 (en) | 1994-11-23 | 2006-06-20 | Contentguard Holdings, Inc. | Method for metering and pricing of digital works |
| US9953328B2 (en) | 1994-11-23 | 2018-04-24 | Contentguard Holdings, Inc. | Method and system for conducting transactions between repositories |
| US6865551B1 (en) | 1994-11-23 | 2005-03-08 | Contentguard Holdings, Inc. | Removable content repositories |
| US7523072B2 (en) | 1994-11-23 | 2009-04-21 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works |
| US7389270B2 (en) | 1994-11-23 | 2008-06-17 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works |
| US7359881B2 (en) | 1994-11-23 | 2008-04-15 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works using secure components |
| US6895392B2 (en) | 1994-11-23 | 2005-05-17 | Contentguard Holdings, Inc. | Usage rights grammar and digital works having usage rights created with the grammar |
| US6910022B2 (en) | 1994-11-23 | 2005-06-21 | Contentguard Holdings, Inc. | Usage rights grammar and digital works having usage rights created with the grammar |
| US7269576B2 (en) | 1994-11-23 | 2007-09-11 | Contentguard Holdings, Inc. | Content rendering apparatus |
| US6920436B2 (en) | 1994-11-23 | 2005-07-19 | Contentguard Holdings, Inc. | Digital work structure |
| US6925448B2 (en) | 1994-11-23 | 2005-08-02 | Contentguard Holdings, Inc. | Usage rights grammar and digital works having usage rights created with the grammar |
| US6928419B2 (en) | 1994-11-23 | 2005-08-09 | Contentguard Holdings, Inc. | Method and apparatus for repackaging portions of digital works as new digital works |
| US7269577B2 (en) | 1994-11-23 | 2007-09-11 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works using digital tickets |
| US6934693B2 (en) | 1994-11-23 | 2005-08-23 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works |
| US7266529B2 (en) | 1994-11-23 | 2007-09-04 | Contentguard Holdings, Inc. | Method and apparatus for executing code in accordance with usage rights |
| US7260556B2 (en) | 1994-11-23 | 2007-08-21 | Contentguard Holdings, Inc. | Content rendering device with usage rights |
| US6944600B2 (en) | 1994-11-23 | 2005-09-13 | Contentguard Holdings, Inc. | System for controlling the distribution and use of digital works using digital tickets |
| US7225160B2 (en) | 1994-11-23 | 2007-05-29 | Contentguard Holdings, Inc. | Digital works having usage rights and method for creating the same |
| US6957193B2 (en) | 1994-11-23 | 2005-10-18 | Contentguard Holdings, Inc. | Repository with security class and method for use thereof |
| US6957194B2 (en) | 1994-11-23 | 2005-10-18 | Contentguard Holdings, Inc. | Method for printing digital works |
| US6963859B2 (en) | 1994-11-23 | 2005-11-08 | Contentguard Holdings, Inc. | Content rendering repository |
| US7209902B2 (en) | 1994-11-23 | 2007-04-24 | Contentguard Holdings, Inc. | Repository with security class and method for use thereof |
| US7024392B2 (en) | 1994-11-23 | 2006-04-04 | Contentguard Holdings, Inc. | Method for controlling use of database content |
| US7200574B2 (en) | 1994-11-23 | 2007-04-03 | Contentguard Holdings, Inc. | System for controlling the distribution and use digital works using digital tickets |
| US7139736B2 (en) | 1994-11-23 | 2006-11-21 | Contentguard Holdings, Inc. | Content rendering repository |
| US7043453B2 (en) | 1994-11-23 | 2006-05-09 | Contentguard Holdings, Inc. | Method and system for conducting transactions between repositories using a repository transaction protocol |
| US7117180B1 (en) | 1994-11-23 | 2006-10-03 | Contentguard Holdings, Inc. | System for controlling the use of digital works using removable content repositories |
| US7058606B2 (en) | 1994-11-23 | 2006-06-06 | Contentguard Holdings, Inc. | Method for loaning digital works |
| US7113912B2 (en) | 1994-11-23 | 2006-09-26 | Contentguard Holdings, Inc. | Composite digital works having usage rights and method for creating the same |
| US7281133B2 (en) | 1995-02-13 | 2007-10-09 | Intertrust Technologies Corp. | Trusted and secure techniques, systems and methods for item delivery and execution |
| US7133845B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System and methods for secure transaction management and electronic rights protection |
| US7069451B1 (en) | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7415617B2 (en) | 1995-02-13 | 2008-08-19 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management |
| US7076652B2 (en) | 1995-02-13 | 2006-07-11 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
| US7392395B2 (en) | 1995-02-13 | 2008-06-24 | Intertrust Technologies Corp. | Trusted and secure techniques, systems and methods for item delivery and execution |
| US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
| US7095854B1 (en) | 1995-02-13 | 2006-08-22 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7100199B2 (en) | 1995-02-13 | 2006-08-29 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7143290B1 (en) | 1995-02-13 | 2006-11-28 | Intertrust Technologies Corporation | Trusted and secure techniques, systems and methods for item delivery and execution |
| US7165174B1 (en) | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
| US7051212B2 (en) | 1995-02-13 | 2006-05-23 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
| US7120800B2 (en) | 1995-02-13 | 2006-10-10 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US7120802B2 (en) | 1996-08-12 | 2006-10-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure computing environments |
| US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
| US7031471B2 (en) | 1997-02-28 | 2006-04-18 | Contentguard Holdings, Inc. | System for controlling the distribution and use of rendered digital works through watermarking |
| US7110983B2 (en) | 1997-11-06 | 2006-09-19 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
| US7143066B2 (en) | 1997-11-06 | 2006-11-28 | Intertrust Technologies Corp. | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
| US6938021B2 (en) | 1997-11-06 | 2005-08-30 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
| US7092914B1 (en) | 1997-11-06 | 2006-08-15 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
| US7233948B1 (en) | 1998-03-16 | 2007-06-19 | Intertrust Technologies Corp. | Methods and apparatus for persistent control and protection of content |
| US7068787B1 (en) | 1998-10-23 | 2006-06-27 | Contentguard Holdings, Inc. | System and method for protection of digital works |
| JP2003518279A (ja) * | 1999-01-22 | 2003-06-03 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてグローバル・データ構造を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
| US6859533B1 (en) | 1999-04-06 | 2005-02-22 | Contentguard Holdings, Inc. | System and method for transferring the right to decode messages in a symmetric encoding scheme |
| US7356688B1 (en) | 1999-04-06 | 2008-04-08 | Contentguard Holdings, Inc. | System and method for document distribution |
| US7286665B1 (en) | 1999-04-06 | 2007-10-23 | Contentguard Holdings, Inc. | System and method for transferring the right to decode messages |
| US6937726B1 (en) | 1999-04-06 | 2005-08-30 | Contentguard Holdings, Inc. | System and method for protecting data files by periodically refreshing a decryption key |
| US7243236B1 (en) | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
| US6885748B1 (en) | 1999-10-23 | 2005-04-26 | Contentguard Holdings, Inc. | System and method for protection of digital works |
| US7237125B2 (en) | 2000-08-28 | 2007-06-26 | Contentguard Holdings, Inc. | Method and apparatus for automatically deploying security components in a content distribution system |
| US7603319B2 (en) | 2000-08-28 | 2009-10-13 | Contentguard Holdings, Inc. | Method and apparatus for preserving customer identity in on-line transactions |
| US6931545B1 (en) | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
| US7269735B2 (en) | 2000-08-28 | 2007-09-11 | Contentgaurd Holdings, Inc. | Instance specific digital watermarks |
| US7073199B1 (en) | 2000-08-28 | 2006-07-04 | Contentguard Holdings, Inc. | Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine |
| US7206941B2 (en) | 2000-08-28 | 2007-04-17 | Contentguard Holdings, Inc. | Method and apparatus for validating security components through a request for content |
| US7412605B2 (en) | 2000-08-28 | 2008-08-12 | Contentguard Holdings, Inc. | Method and apparatus for variable encryption of data |
| US7343324B2 (en) | 2000-11-03 | 2008-03-11 | Contentguard Holdings Inc. | Method, system, and computer readable medium for automatically publishing content |
| US7184571B2 (en) | 2000-12-29 | 2007-02-27 | Contentgaurd Holdings, Inc. | Multi-stage watermarking process and system |
| US7609848B2 (en) | 2000-12-29 | 2009-10-27 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
| US6912294B2 (en) | 2000-12-29 | 2005-06-28 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
| US7085741B2 (en) | 2001-01-17 | 2006-08-01 | Contentguard Holdings, Inc. | Method and apparatus for managing digital content usage rights |
| US7206765B2 (en) | 2001-01-17 | 2007-04-17 | Contentguard Holdings, Inc. | System and method for supplying and managing usage rights based on rules |
| US7028009B2 (en) | 2001-01-17 | 2006-04-11 | Contentguardiholdings, Inc. | Method and apparatus for distributing enforceable property rights |
| US8892473B2 (en) | 2001-05-31 | 2014-11-18 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
| US6895503B2 (en) | 2001-05-31 | 2005-05-17 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
| US6876984B2 (en) | 2001-05-31 | 2005-04-05 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
| US7222104B2 (en) | 2001-05-31 | 2007-05-22 | Contentguard Holdings, Inc. | Method and apparatus for transferring usage rights and digital work having transferrable usage rights |
| US7152046B2 (en) | 2001-05-31 | 2006-12-19 | Contentguard Holdings, Inc. | Method and apparatus for tracking status of resource in a system for managing use of the resources |
| US7162633B2 (en) | 2001-05-31 | 2007-01-09 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
| US6973445B2 (en) | 2001-05-31 | 2005-12-06 | Contentguard Holdings, Inc. | Demarcated digital content and method for creating and processing demarcated digital works |
| US8869293B2 (en) | 2001-05-31 | 2014-10-21 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
| US8862517B2 (en) | 2001-05-31 | 2014-10-14 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
| JP5263602B2 (ja) * | 2007-02-08 | 2013-08-14 | 日本電気株式会社 | アクセス制御システム、アクセス制御方法、電子装置、及び制御プログラム |
| US8434127B2 (en) | 2007-02-08 | 2013-04-30 | Nec Corporation | Access control system, access control method, electronic device and control program |
| JP2010086410A (ja) * | 2008-10-01 | 2010-04-15 | Canon Inc | メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体 |
| JP2020530615A (ja) * | 2017-08-07 | 2020-10-22 | 成都牽牛草信息技術有限公司Chengdu Qianniucao Information Technology Co., Ltd. | 統計列表の操作権限の承認方法 |
| CN117591542B (zh) * | 2024-01-18 | 2024-03-22 | 准检河北检测技术服务有限公司 | 一种数据库软件数据安全智能检测方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH07200317A (ja) | 操作権管理装置 | |
| CN109558211B (zh) | 保护可信应用与普通应用的交互完整性和保密性的方法 | |
| US5892944A (en) | Program execution and operation right management system suitable for single virtual memory scheme | |
| RU2313126C2 (ru) | Система и способ для защиты от недоверенного кода режима управления с системой с помощью переадресации прерывания режима управления системой и создания контейнера виртуальной машины | |
| CA2213312C (en) | Computer backup system operable with open files | |
| US6209088B1 (en) | Computer hibernation implemented by a computer operating system | |
| Walia | Operating system concepts | |
| US5717902A (en) | Method and system for selectively applying an appropriate object ownership model | |
| US5701493A (en) | Exception handling method and apparatus in data processing systems | |
| US7665143B2 (en) | Creating secure process objects | |
| JP3593241B2 (ja) | 計算機の再起動方法 | |
| EP3864555B1 (en) | Verifying a stack pointer | |
| JP2006252565A (ja) | 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法 | |
| JPH01233543A (ja) | 端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法 | |
| EP0871134B1 (en) | Accessing database information | |
| US7069445B2 (en) | System and method for migration of a version of a bootable program | |
| US8103591B2 (en) | Flexible management process for multiple activities executed on partitionable platforms of a multiple processor system | |
| WO2007040228A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
| US6591366B1 (en) | Method and configuration for loading data for basic system routines of a data processing system | |
| JP3585510B2 (ja) | プログラム実行管理装置及びプログラム実行管理方法 | |
| JP2002157132A (ja) | コンピュータ、その制御方法及びその制御方法を記録した記録媒体 | |
| Stallings | The windows operating system | |
| AU695339C (en) | Computer backup system operable with open files | |
| CN112580023A (zh) | 影子栈管理方法及装置、介质、设备 | |
| JPH05197629A (ja) | 記憶保護方式 |