(57)【特許請求の範囲】
【請求項１】
複数のタスクと、１つ以上の前記タスクを実行するグループをタスクグループとして、１つ以上の前記タスクグループを管理するオペレーティングシステムとを記憶したメモリと、
タイマ割込みにより前記タスクグループを切り替えて処理を実行するプロセッサと、を備え、
前記プロセッサは、前記タスクグループごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記タスクグループと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記コントローラを立ち上げ時に使用する初期化処理用制限リストが記憶されており、
前記プロセッサは、前記コントローラを立ち上げる時に前記初期化処理用制限リストにアクセスし、前記コントローラが立ち上がった後は、前記制限リストにアクセスし、
前記プロセッサは、前記タスクグループを切り替える際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記タスクグループに関連付けられた制限リストに従い処理を実行する
ことを特徴とするコントローラ。
【請求項２】
複数のタスクと、１つ以上の前記タスクを実行する複数のオペレーティングシステムとを記憶したメモリと、
タイマ割込みにより前記オペレーティングシステムを切り替えて処理を実行するプロセッサと、を備え、
前記プロセッサは、前記オペレーティングシステムごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記オペレーティングシステムと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記コントローラを立ち上げ時に使用する初期化処理用制限リストが記憶されており、
前記プロセッサは、前記コントローラを立ち上げる時に前記初期化処理用制限リストにアクセスし、前記コントローラが立ち上がった後は、前記制限リストにアクセスし、
前記プロセッサは、前記オペレーティングシステムを切り替える際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記オペレーティングシステムに関連付けられた制限リストに従い処理を実行する
ことを特徴とするコントローラ。
【請求項３】
複数のタスクと、１つ以上の前記タスクを実行するグループをタスクグループとして、１つ以上の前記タスクグループを管理するオペレーティングシステムとを記憶したメモリと、
タイマ割込みにより前記タスクグループを切り替えて処理を実行するプロセッサと、を備え、
前記プロセッサは、前記タスクグループごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記タスクグループと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記タスクの間でデータを授受するためのメモリ領域と授受を行うためのプログラムが記憶されており、
前記データの授受を行うタスクは、該データを授受するためのメモリ領域へのアクセスを目的とした鍵の情報を有しており、
前記プロセッサは、前記タスクが該メモリ領域へアクセスする際に、該鍵を該授受のためのプログラムに渡し、該プログラムが該渡された鍵を確認して正統なものであった場合にのみ該メモリ領域へのアクセスを許可し、
前記プロセッサは、前記タスクグループを切り替える際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記タスクグループに関連付けられた制限リストに従い処理を実行する
ことを特徴とするコントローラ。
【請求項４】
複数のタスクと、１つ以上の前記タスクを実行する複数のオペレーティングシステムとを記憶したメモリと、
タイマ割込みにより前記オペレーティングシステムを切り替えて処理を実行するプロセッサと、を備え、
前記プロセッサは、前記オペレーティングシステムごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記オペレーティングシステムと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記タスクの間でデータを授受するためのメモリ領域と授受を行うためのプログラムが記憶されており、
前記データの授受を行うタスクは、該データを授受するためのメモリ領域へのアクセスを目的とした鍵の情報を有しており、
前記プロセッサは、前記タスクが該メモリ領域へアクセスする際に、該鍵を該授受のためのプログラムに渡し、該プログラムが該渡された鍵を確認して正統なものであった場合にのみ該メモリ領域へのアクセスを許可し、
前記プロセッサは、前記オペレーティングシステムを切り替える際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記オペレーティングシステムに関連付けられた制限リストに従い処理を実行する
ことを特徴とするコントローラ。
【請求項５】
前記実行を許可する処理を記録した制限リストは、実行を許可する処理が列挙されたリストであり、前記実行を禁止する処理を記録した制限リストは、実行を禁止する処理が列挙されたリストである
ことを特徴とする請求項１から請求項４のいずれか１項に記載のコントローラ。
【請求項６】
前記プロセッサが、セキュリティ性が要求されるＩＯ入出力を含むタスクを実行する際、アクセスする前記制限リストは、前記実行を許可する処理が列挙されたリストである
ことを特徴とする請求項５に記載のコントローラ。
【請求項７】
前記実行を許可する処理または前記実行を禁止する処理がシステムコールである
ことを特徴とする請求項１から請求項４のいずれか１項に記載のコントローラ。
【請求項８】
前記実行を許可する処理または前記実行を禁止する処理が前記タスクの起動である
ことを特徴とする請求項１から請求項４のいずれか１項に記載のコントローラ。
【請求項９】
複数のタスクと、１つ以上の前記タスクを実行する複数のオペレーティングシステムとを記憶したメモリと、前記複数のオペレーティングシステムのうちの１つを読み出して実行する複数のプロセッサと、を備え
前記複数のプロセッサは、前記オペレーティングシステムごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記オペレーティングシステムと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記コントローラを立ち上げ時に使用する初期化処理用制限リストが記憶されており、
前記プロセッサは、前記コントローラを立ち上げる時に前記初期化処理用制限リストにアクセスし、前記コントローラが立ち上がった後は、前記制限リストにアクセスし、
前記複数のプロセッサは、前記オペレーティングシステムを読み出して実行する際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記オペレーティングシステムに関連付けられた制限リストに従い処理を実行する  ことを特徴とするコントローラ。
【請求項１０】
複数のタスクと、１つ以上の前記タスクを実行する複数のオペレーティングシステムとを記憶したメモリと、前記複数のオペレーティングシステムのうちの１つを読み出して実行する複数のプロセッサと、を備え
前記複数のプロセッサは、前記オペレーティングシステムごとにメモリ領域を指定するメモリ保護手段を有し、
前記メモリには、前記メモリ保護手段で指定されたメモリ領域に、前記オペレーティングシステムと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リストが記憶されており、
さらに、前記メモリには、前記タスクの間でデータを授受するためのメモリ領域と授受を行うためのプログラムが記憶されており、
前記データの授受を行うタスクは、該データを授受するためのメモリ領域へのアクセスを目的とした鍵の情報を有しており、
前記プロセッサは、前記タスクが該メモリ領域へアクセスする際に、該鍵を該授受のためのプログラムに渡し、該プログラムが該渡された鍵を確認して正統なものであった場合にのみ該メモリ領域へのアクセスを許可し、
前記複数のプロセッサは、前記オペレーティングシステムを読み出して実行する際に、前記メモリ保護手段で指定されたメモリ領域にアクセスし、前記オペレーティングシステムに関連付けられた制限リストに従い処理を実行する
ことを特徴とするコントローラ。
【請求項１１】
請求項１から請求項１０のいずれか１項に記載のコントローラと、ネットワークを介して通信を行う計算機において、
前記計算機は、前記オペレーティングシステム毎に処理の一覧が記憶装置に記憶されており、
前記計算機は、前記制限リストを作成する要求があった際に、
前記作成する制限リストが前記実行を許可する処理または前記実行を禁止する処理を記録したリストであるか否かがユーザによって設定される設定欄と、前記記憶装置に記憶されている前記オペレーティングシステム毎に処理の一覧に基づいてユーザによって処理が選択される選択欄と、前記コントローラに送信するための設定ボタンとを有する表示画面を表示部に表示し、
前記設定ボタンが押下された場合、前記設定欄および前記選択欄の設定された内容に基づいて前記制限リストを作成して前記記憶装置に記憶し、前記コントローラに対して前記作成された制限リストを送信する
ことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発電所などの高い信頼性と高いセキュリティ性が要求されるところで使用されるコントローラおよび計算機に関する。
【背景技術】
【０００２】
プログラマブルコントローラ（以下、コントローラと称する場合がある。）は、発電所、製鉄所、上下水道施設、工場など各種の機器の制御に使用されている。コントローラは、タイマなどを用いて周期的に機器に備え付けられたセンサから各種のデータを取り込み、そのデータに基づいて計算を実行し、その計算結果をアクチュエータなどに向けて出力することにより制御を行う。
【０００３】
コントローラは、正確な制御を行うために高いリアルタイム性が求められる。また、コントローラが停止や誤動作すると、例えば、発電所の場合、発電設備の破壊、電力供給の停止など多大な被害や危険が発生する可能性があり、高い信頼性、可用性も要求される。
【０００４】
一方、近年、コントローラがネットワークに接続されることが一層多くなってきている。コントローラをネットワークに接続する目的はいろいろある。複数のコントローラを連携して動作させるためであったり、コントローラのデータをパーソナルコンピュータなどに収集して、そのディスプレイに表示させるためであったり、遠隔地からコントローラを有するシステムの管理、保守を行うためだったりする。いずれにせよ、コントローラのネットワークへの接続が進むことにより、セキュリティという新たな問題が重大化してきている。ネットワークを通して、コントローラに対して不正なアクセスが行われ、コントローラの停止、誤動作、データの改ざん、データの漏洩などに発展する可能性が出てきている。
【０００５】
一般的な計算機では古くからネットワーク接続が行われてきており、セキュリティへの対策技術も知られている。ウィルス対策ソフトウェアのように実行を禁止するべきプログラムの一覧を保持し、プログラムを実行する際にその一覧と照合し、一致するものがあればプログラムの実行を禁止することが行われている。
【０００６】
本発明はタスクグループやＯＳ（Operating System）を切り替えて実行する構成をとっているが、この構成自体に関しては特許文献１において、２つの仮想機械を切り替えて実行する通信端末として公開されている。また、特許文献２には複数のプロセッサを用い、それぞれでＯＳを実行する構成が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４８３３０７９号公報
【特許文献２】特開２００２−３５１８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１は、複数の仮想機械を切り替えて実行する構成が開示されているが、携帯電話用である。コントローラの制御方法との関連性に関しては記述されていない。これに対し、各種制御機器に用いられるコントローラに対し、さらなるセキュリティ向上が望まれていた。
【０００９】
本発明は、前記の課題を解決するための発明であって、不正アクセスなどの攻撃があった場合にも重要な制御に関しては高セキュリティ性を維持し、処理を続行することができるコントローラおよび計算機を提供することを目的とする。
【００１０】
また、高セキュリティ性を確保するためにネットワークへの接続性などの使い勝手を犠牲にすることなく、重要な制御の保護を実現する手段を提供する。
【課題を解決するための手段】
【００１１】
前記の目的を達成するため、本発明のコントローラでは、単一のコントローラの中にセキュリティを確保したい高セキュリティタスクのグループとセキュリティよりは利便性を優先したい通常タスクのグループを同居させる。両者のタスクグループはタイマによる切り替えで、時間的に分離して処理される。また、両者のタスクグループはお互いにメモリ保護手段（例えば、メモリ保護１２）によりメモリ空間的にも分離して処理される。この両者のタスクグループの管理のためにそれぞれ独立のＯＳを用い、それらをタイマにより切り替えて実行することも可能である。
【００１２】
セキュリティを確保するためには、不正アクセスの攻撃を許す可能性のある処理などを制限する必要があるため、実行を許可する処理、実行を禁止する処理を記録したリスト（例えば、制限リスト４５２１，４５２２）を複数設け、タイマ割込みにより該タスクのグループを切り替える時に、同時に切り替える手段を設ける。
【００１３】
また、タスクグループ間で通信を行う領域を設ける。該領域は通常時はメモリ保護によりアクセスを禁止されているが、通信要求のときにタスクが提供する鍵情報を照合し、適合している場合のみメモリ保護のアクセスを許可する。
【発明の効果】
【００１４】
本発明によれば、不正アクセスなどの攻撃があった場合にも重要な制御に関しては高セキュリティ性を維持し、処理を続行することができる。また、高セキュリティ性を確保するためにネットワークへの接続性などの使い勝手を犠牲にすることなく、重要な制御の保護をすることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態におけるプログラマブルコントローラの構成を示す図である。
【図２】プログラマブルコントローラのハードウェアの構成を示す図である。
【図３】メモリ保護のテーブルの一例を示す図である。
【図４】タイマ割込により起動されるＯＳ切り替えのアルゴリズムを示す図である。
【図５】実行制限システムコールリストの一例を示す図である。
【図６】実行制限タスクリストの一例を示す図である。
【図７】システムコール実行のアルゴリズムを示す図である。
【図８】タスク起動のアルゴリズムを示す図である。
【図９】ＯＳ間通信のアルゴリズムを示す図である。
【図１０】プログラマブルコントローラの立ち上げ処理のアルゴリズムを示す図である。
【図１１】ＯＳ立ち上げ処理のアルゴリズムを示す図である。
【図１２】システムコール制限設定画面の一例を示す図である。
【図１３】タスク起動制限設定画面の一例を示す図である。
【図１４】ＯＳ間通信鍵設定画面の一例を示す図である。
【図１５】設定ツールのディスクの構成の一例を示す図である。
【図１６】実行制限リスト受信のアルゴリズムを示す図である。
【図１７】プログラマブルコントローラの別の構成を示す図である。
【図１８】図１７のプログラマブルコントローラのハードウェアの構成を示す図である。
【図１９】プログラマブルコントローラのハードウェアの別の構成を示す図である。
【図２０】タスクのアルゴリズムの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図１は、本発明の実施形態におけるプログラマブルコントローラの構成を示す図である。図１において、主としてプログラマブルコントローラの制御処理に関する全体構成について説明する。プログラマブルコントローラ１００は、ハードウェア１を介して制御対象１１１，１１２，１１３を制御している。
【００１７】
ハードウェア１の構成の詳細に関しては図２を用いて後記するが、ハードウェア１は、ＩＯ（Input/Output）１１、メモリ保護１２、タイマ１３、通信部１４などを持っている。図中のメモリ保護５５は、図２で後記するメモリ保護１２の保護領域を示している。ＩＯ１１は、コントローラが制御する対象の機器やセンサである制御対象１１１，１１２，１１３につながっている。タイマ１３は、設定した時間毎に割込（割込み）を発生させる。通信部１４は、ネットワーク２１につながっており、ネットワーク２１にはコントローラの各種設定を行う設定ツール２２（計算機）などが接続されている。
【００１８】
コントローラは、ＯＳ切り替え層３のソフトウェアを有しており、複数のＯＳを切り替える処理を行う。ＯＳ切り替え層３の中には、ＯＳ切り替え（ＯＳ切替）プログラム３１とＯＳ間通信プログラム３２がある。ＯＳ切り替えプログラム３１のアルゴリズムは、図４を用いて後記するが、このプログラムはハードウェア１中のタイマ１３からの割込により起動され、実行中ＯＳ情報３１１（実行中ＯＳ）を保持している。ＯＳ間通信プログラム３２のアルゴリズムは、図９を用いて後記するが、鍵照合手段３２１とＯＳ間通信領域３２２を有している。
【００１９】
コントローラは、ＯＳのソフトウェアとして、ＯＳ４１１（ＯＳ１）、ＯＳ４１２（ＯＳ２）を有する。これらのＯＳ４１１およびＯＳ４１２は、ＯＳ切り替え層３により周期的に切り替えられて実行される。ＯＳ４１１上で実行されるタスクとして、例えば、タスク５１１、５１２があり、ＯＳ４１２上で実行されるタスクとして、例えば、タスク５１３，５１４がある。また、ＯＳ４１１，４１２はタスク５１１〜５１４からの要求に基づきＯＳ間通信プログラム３２を用いてお互いに通信を行うことができる。
【００２０】
ＯＳ４１１（ＯＳ１）は制限リスト４５２１を有している。ＯＳ４１２（ＯＳ２）は制限リスト４５２２を有している。これらの制限リスト４５２１，４５２２は、ＯＳがタスクからの要求に基づき行うシステムコールの実行やタスクの起動を制限するための情報である。なお、システムコールとは、ＯＳの持つ機能をプログラムで呼び出すことを意味し、ＯＳが持つ機能には、ファイルへのアクセスやメモリの割り当てなどがある。これらの機能が関数として利用できることから、システムコール関数とも呼ぶ。
【００２１】
制限リスト４５２１の中には、実行制限システムコールリスト４５２１１と実行制限タスクリスト４５２２１とがある。制限リスト４５２２の中には、実行制限システムコールリスト４５２１２と実行制限タスクリスト４５２２２とがある。実行制限システムコールリスト４５２１１，４５２１２の詳細は、図５を用いて後記するが、リストで指定されたものを許可する場合、実行許可システムコールリスト（実行許可ＳＣ）となり、リストで指定されたものを禁止する場合、実行禁止システムコールリスト（実行禁止ＳＣ）となる。同様に、実行制限タスクリスト４５２２１，４５２２２の詳細は、図６を用いて後記するが、リストで指定されたものを許可する場合、実行許可タスクリスト（実行許可タスク）となり、リストで指定されたものを禁止する場合、実行禁止タスクリスト（実行禁止タスク）となる。
【００２２】
ＯＳ４１１（ＯＳ１）は制限リスト管理のプログラム４４１を有しており、ＯＳ４１２（ＯＳ２）は制限リスト管理のプログラム４４２を有している。さらに、制限リスト管理のプログラム４４１にはリスト受信プログラム４３１が含まれ、制限リスト管理のプログラム４４２にはリスト受信プログラム４３２が含まれる。制限リスト管理のプログラム４４１，４４２の実行により、使用中の制限リスト情報４２１，４２２（実行中制限リスト）を保持したり、制限リスト４５２１，４５２２を設定ツール２２からネットワーク２１経由で受信したりする。ＯＳ４１１のように一つのＯＳが、複数の制限リスト４５１１と制限リスト４５２１とを持つことも可能である。これらは初期化処理用と通常時用というように使い分けることができ、制限リスト管理のプログラム４４１により切り替える。なお、リスト受信プログラム４３１，４３２については、図１６を用いて後記する。
【００２３】
図２は、プログラマブルコントローラのハードウェアの構成を示す図である。ハードウェア１は、プログラムを実行するためのＣＰＵ１５（プロセッサ）、前記したＩＯ１１、前記した通信部１４、メモリ１９を含んで構成されており、ＣＰＵ１５、ＩＯ１１、通信部１４、およびメモリ１９は、バス１８を介して接続されている。なお、ＣＰＵはCentral Processing Unit の略である。
【００２４】
ＣＰＵ１５には、図１中のメモリ保護１２、タイマ１３の他に、実行レベル１６を保持するレジスタ、実行ＯＳ情報１７を保持するレジスタがある。メモリ１９は、図１で説明した各種のソフトウェアとデータを保持しており、具体的には、前記したＯＳ４１１，４１２、ＯＳ切り替え層３、タスク５１１〜５１４がある。
【００２５】
図３は、メモリ保護のテーブルの一例を示す図である。図３を参照して、図１および図２中のメモリ保護１２が保持するメモリ保護のためのメモリ保護テーブル１２Ｔについて説明する。メモリ保護テーブル１２Ｔの各行（例えば、行１２２６）が一つのメモリ領域のエントリを表している。メモリ保護テーブル１２Ｔは、実行レベル１２１１、ＯＳＩＤ（Operating System IDentification）１２１２、タスクＩＤ１２１３、アドレス１２１４、サイズ１２１５、許可１２１６の列を含んでいる。アドレス１２１４はメモリ領域の開始アドレスであり、サイズ１２１５はメモリ領域のサイズである。
【００２６】
なお、メモリ保護テーブル１２Ｔは、例えば、ＣＰＵ１５内にあるメモリ領域属性のレジスタに格納されている。メモリ保護とは、例えば、ＣＰＵ１５が実行するアドレスと、メモリ保護テーブル１２Ｔで指定されているアドレス領域とを比較器によって比較し、アクセスが禁止されているメモリ領域にアクセスすることのないように領域を保護する機能のことである。
【００２７】
図２において、ＣＰＵ１５が持つ実行レベル１６は０〜２の値をとり、通常のタスクを実行するときには０、ＯＳを実行するときには１、ＯＳ切り替え層３のプログラムを実行するときには２に設定される。図３において、実行レベル１２１１は、どの実行レベルに対してそのメモリ領域のアクセスが許可されているかを表している。ＣＰＵ１５の実行レベル１６が１２１１の列の値以上のときにそのメモリへのアクセスが許可される。
【００２８】
ＯＳＩＤ１２１２は、アクセスが許可されるＯＳのＩＤの情報を保持する。値が０のときには実行中のＯＳの制限を受けない。タスクＩＤ１２１３は、アクセスが許可されるタスクのＩＤの情報を保持する。値が０のときには実行中のタスクの制限を受けない。
【００２９】
許可１２１６は、そのメモリ領域のアクセスが現在許可されているかどうかを表している。１のときには許可されており、０のときにはアクセスが禁止されている。
【００３０】
図３中の行１２２６〜１２３３で示す各メモリ領域を説明すると、行１２２６は図１中のＯＳ切り替えプログラム３１の領域を表しており、これは実行レベルが２のときのみアクセスが許される。行１２２７はＯＳ間通信領域３２２を表しているが、許可１２１６の値が０のため現在はアクセスが禁止されている。この領域へのアクセスはＯＳ間通信の要求があり、鍵照合に成功したときに許可される。
【００３１】
行１２２８、行１２２９はそれぞれＯＳ４１１とＯＳ４１２の領域であり、実行レベルが１であり、それぞれ自身のＯＳが実行中である場合にアクセスが許可される。例えば、ＣＰＵの実行レベルが２であり実行レベル１２１１の値の実行レベルよりも大きい場合には、ＯＳＩＤ１２１２やタスクＩＤ１２１３の値によらず、その領域にアクセス可能となる。行１２３０〜行１２３３は、それぞれタスク５１１〜５１４の領域であり、各タスクを実行中のときかまたは実行レベルが１以上のときにアクセス可能となる。メモリ保護１２のテーブルにないメモリ領域に関してはアクセスが禁止される。
【００３２】
図４は、タイマ割込により起動されるＯＳ切り替えのアルゴリズムを示す図である。図４を参照して、図１や図２中のＯＳ切り替えプログラム３１のアルゴリズムについて説明する。このプログラムは図１中のタイマ１３からの割込により周期的に起動される。ステップＳ７１１でＣＰＵ１５の実行レベルは最高の２に設定される。これによりＯＳ切り替え層の情報へのアクセスが許可される。ステップＳ７１２では今まで実行中であったＯＳのコンテキストをＯＳ切り替えプログラム３１内にある退避領域に退避する。コンテキストにはＣＰＵ１５のプログラムカウンタ、レジスタ、実行中レベルの値などが含まれる。ステップＳ７１３では、ＣＰＵ１５が持つ実行中ＯＳのレジスタに今まで実行していたＯＳとは別のＯＳのＩＤを設定する。ステップＳ７１４では新しく選択したＯＳの退避されていたコンテキストを回復する。これにより新しいＯＳに実行が切り替わる。実行レベルも退避されていた値に設定される。
【００３３】
図５は、実行制限システムコールリストの一例を示す図である。図５を参照して、図１中の実行制限システムコールリスト４５２１１を説明する。実行制限システムコールリスト４５２１１は、禁止／許可別欄４７１と、システムコールのリスト４７２とを含んで構成されている。禁止／許可別欄４７１は、このリストが実行を許可するシステムコールのリストを表しているのか、実行を禁止しているシステムコールのリストを表しているのかの情報を保持している。ここでは行４７１１が許可となっており、このリストが許可されているシステムコールのリストであることを表している。システムコールのリスト４７２は、システムコールのＩＤであるＳＣＩＤ４７２１、システムコール名であるＳＣ名４７２２を含んで構成されている。なお、行４７１１が禁止となっている場合は、実行制限システムコールリスト４５２１１は、実行禁止システムコールリストであることを意味する。例えば、図１の実行制限システムコールリスト４５２１２は、実行禁止システムコールリスト（実行禁止ＳＣリスト）である。
【００３４】
具体的には、行４７３１は、ＳＣＩＤが１であり、システムコール名がＩＯ入出力である。行４７３２は、ＳＣＩＤが２であり、システムコール名がＯＳ間通信である。行４７３３は、ＳＣＩＤが５であり、システムコール名がタイマである。行４７３４は、ＳＣＩＤが６であり、システムコール名がタスク間通信である。図５に示す実行許可システムコールリスト（図１の実行制限システムコールリスト４５２１１の実行許可ＳＣに対応）により、システムコール名が、ＩＯ入出力、ＯＳ間通信、タイマ、タスク間通信であるときに実行が許可されることを意味する。
【００３５】
図６は、実行制限タスクリストの一例を示す図である。図６を参照して、図１中の実行制限タスクリスト４５２２１を説明する。実行制限タスクリスト４５２２１には、禁止／許可別欄４６１と、タスクのリスト４６２とが含んで構成されている。禁止／許可別欄４６１は、このリストが起動を許可するタスクのリストを表しているのか、起動を禁止しているタスクのリストを表しているのかの情報を保持している。ここでは行４６１１が許可となっており、このリストが許可されているタスクのリストであることを表している。タスクのリスト４６２は、タスクＩＤ４６２１、タスク名４６２２を含んで構成されている。
【００３６】
前記したように、図１中でＯＳ４１１の実行制限システムコールリスト４５２１１や実行制限タスクリスト４５２２１のリストは、許可されているシステムコールやタスクのリストとなっており、ＯＳ４１２の実行制限システムコールリスト４５２１２や実行制限タスクリスト４５２２２のリストは、禁止されているシステムコールやタスクのリストとなっている。
【００３７】
これは、ＯＳ４１１側のタスクが制御にとって重要なタスクであり、高いセキュリティ性が要求され、ＯＳ４１２側がネットワークとの通信などの処理を受け持ち汎用的な処理を行うことを想定しているからである。許可されている処理を列挙する方が汎用性はないが、厳密に必要な処理のみを列記することが可能であり、セキュリティ性は高くなる。一方、禁止する処理を記述する方は、汎用性は高いが、新しいセキュリティ上の脅威を防ぐことが難しく、セキュリティ性はやや劣ることとなる。
【００３８】
図２０は、タスクのアルゴリズムの一例を示す図である。図２０を参照して、図１中のタスク５１１のタスク１の処理の一例を説明する。図２０に示すアルゴリズムは、タイマ１３で周期的に制御対象１１１からセンサ情報を入力し、制御のための計算を実行し、制御対象１１１に対して制御情報を出力する。
【００３９】
ＣＰＵ１５は、タスク１を実行すると、ステップＳ５８１でタイマ設定のシステムコールを呼び出し、ステップＳ５８２でタイマ待機のシステムコールを呼び出し、ステップＳ５８３で制御対象１１１からのセンサ情報入力のシステムコールを呼び出し、ステップＳ５８４で制御のための計算を実行し、ステップＳ５８５でタスク２起動のシステムコールを呼び出し、ステップＳ５８６で制御対象１１１へ制御情報出力のシステムコールを呼び出し、そして、ステップＳ５８２に戻り、処理を繰り返す。なお、ステップＳ５８５において、タスク１の処理の途中で別のタスク２を起動しているが、タスク２は、図６に示した実行許可タスクリストを参照すると、許可されているので起動が可能である。
【００４０】
図７は、システムコール実行のアルゴリズムを示す図である。システムコールは、図２０に示したように、タスクがＯＳに対して処理を要求するための呼び出しであり、タスク５１１〜５１４から呼び出される。ＣＰＵ１５は、ステップＳ５２１で今までのＣＰＵ１５の実行レベル１６を退避し、ステップＳ５２２でＣＰＵ１５の実行レベル１６にＯＳ実行中であることを表す１を設定する。
【００４１】
ＣＰＵ１５は、ステップＳ５２３で実行制限システムコールリスト４５２１１，４５２１２の禁止／許可別欄４７１が許可になっているか否かを判断している。ＣＰＵ１５は、許可の場合には（ステップＳ５２３，Ｙｅｓ）、ステップＳ５２４で実行すべきシステムコールのＩＤ（ＳＣＩＤ）が実行制限システムコールリストにあるか否かを検索する。ＣＰＵ１５は、ステップＳ５２５でＳＣＩＤがあったか否かを判断し、あった場合には（ステップＳ５２５，Ｙｅｓ）、ステップＳ５２９でそのシステムコールの処理を実行し、ステップＳ５３０に進み、ステップＳ５２５でＳＣＩＤがなかった場合には（ステップＳ５２５，Ｎｏ）、ステップＳ５２８でリターンコードに実行エラーに設定し、ステップＳ５３１に進む。
【００４２】
ＣＰＵ１５は、ステップＳ５２３で禁止／許可別欄４７１が禁止となっていた場合には（ステップＳ５２３，Ｎｏ）、ステップＳ５２６で実行制限システムコールリストを検索し、ステップＳ５２７で実行するシステムコールのＩＤ（ＳＣＩＤ）がリストにあったか否かを判断している。ＣＰＵ１５は、なかった場合には（ステップＳ５２７，Ｎｏ），ステップＳ５２９でシステムコールの処理を実行しステップＳ５３０に進み、あった場合には（ステップＳ５２７，Ｙｅｓ）、ステップＳ５２８で実行エラーを設定し、ステップＳ５３１に進む。ＣＰＵ１５は、ステップＳ５３０ではシステムコールの実行結果をリターンコードに設定し、ステップＳ５３１にて、ステップＳ５２１で退避した実行レベルを回復したあとに呼び出し元のタスクの処理に復帰する。
【００４３】
図８は、タスク起動のアルゴリズムを示す図である。タスク起動は、システムコールの一つであり、図７のシステムコールのアルゴリズム中のステップＳ５２９から呼び出される。
【００４４】
ＣＰＵ１５は、ステップＳ５４１で実行制限タスクリスト４５２２１，４５２２２の禁止／許可別欄４６１が許可になっているか否かを判断している。ＣＰＵ１５は、許可の場合には（ステップＳ５４１，Ｙｅｓ）、ステップＳ５４２で実行すべきタスクのＩＤ（タスクＩＤ）が実行制限タスクリストにあるか検索し、ステップＳ５４３でタスクＩＤがあったか否かを判断し、あった場合には（ステップＳ５４３，Ｙｅｓ）、ステップＳ５４７でそのタスクＩＤのタスクを実行し、ステップＳ５４８でリターンコードに成功を設定する。ＣＰＵ１５は、ステップＳ５４３でタスクＩＤがなかった場合には（ステップＳ５４３，Ｎｏ）、ステップＳ５４６でリターンコードに実行エラーを設定する。
【００４５】
ＣＰＵ１５は、ステップＳ５４１で禁止／許可別欄４６１が禁止となっていた場合には（ステップＳ５４１，Ｎｏ）、ステップＳ５４４で実行制限タスクリストを検索し、ステップＳ５４５で実行するタスクのＩＤ（タスクＩＤ）がリストにあったか否かを判断している。ＣＰＵ１５は、なかった場合には（ステップＳ５４５，Ｎｏ）、ステップＳ５４７でタスクＩＤのタスクを実行し、あった場合には（ステップＳ５４５，Ｙｅｓ）、ステップＳ５４６で実行エラーを設定する。
【００４６】
図９は、ＯＳ間通信のアルゴリズムを示す図である。図９を参照して、図１中のＯＳ間通信プログラム３２のアルゴリズムについて説明する。タスクからのＯＳ間通信の要求もシステムコールによってなされるので、このプログラムも図７中のステップＳ５２９から呼び出される。
【００４７】
ＣＰＵ１５は、ステップＳ５５１で今までのＣＰＵ１５の実行レベル１６を退避し、ステップＳ５５２で実行レベルを最高の２に設定している。ＣＰＵ１５は、ステップＳ５５３でシステムコールの引数としてタスクから提供された鍵の情報である鍵情報７１（図１参照）を鍵照合手段３２１（図１参照）自身が保持している正しい鍵の情報と照合する。ＣＰＵ１５は、ステップＳ５５４で鍵の情報が一致したか否かを判断し、一致しなかった場合には（ステップＳ５５４，Ｎｏ）、ステップＳ５６１でリターンコードに鍵エラーを設定し、ステップＳ５６２に進み、一致した場合には（ステップＳ５５４，Ｙｅｓ）、ステップＳ５５５でＯＳ間通信領域のメモリアクセスを許可する。これは、図３中のメモリ保護１２のテーブル中において、行１２２７の許可１２１６の許可情報を１にすることによりなされる。
【００４８】
ＣＰＵ１５は、ステップＳ５５６でＯＳ間通信が送信の要求か受信の要求かを判断しており、送信要求の場合には（ステップＳ５５６，Ｙｅｓ）、ステップＳ５５７でＯＳ間通信領域に送信データを書き込み、受信要求であった場合には（ステップＳ５５６，Ｎｏ）、ステップＳ５５８にてＯＳ間通信領域から受信データを読み込み、ステップＳ５５９に進む。ＣＰＵ１５は、ステップＳ５５９ではＯＳ間通信領域のメモリアクセスを再び禁止に設定し、ステップＳ５６０ではリターンコードに成功のコードを設定し、ステップＳ５６２ではステップＳ５５１で退避した実行レベルを回復し、そのあとリターンする。
【００４９】
図１０は、プログラマブルコントローラのコントローラの立ち上げ処理のアルゴリズムを示す図である。ＣＰＵ１５は、ステップＳ５７１で実行レベルを２に設定し、ステップＳ５７２でＯＳ切り替えプログラムを初期化し、ステップＳ５７３でＯＳ間通信プログラムを初期化する。ＣＰＵ１５は、ステップＳ５７４でＯＳ４１１（ＯＳ１）をロードし、ステップＳ５７５でＯ４１２（ＯＳ２）をロードする。
【００５０】
ＣＰＵ１５は、ステップＳ５７６で図１中のＯＳ１の初期化時に使用するための制限リスト４５１１（初期化処理用実行制限リスト）を設定し、ステップＳ５７７でＯＳ１の通常時用に使用する制限リスト４５２１（通常時用実行制限リスト）を設定し、ステップＳ５７８でＯＳ２の通常時用に使用する制限リスト４５２２（通常時用実行制限リスト）を設定し、ステップＳ５７９でＣＰＵ１５の実行レベルをＯＳ実行の実行レベルである１に設定して、ステップＳ５８０でＯＳ４１１（ＯＳ１）を起動し（図１１参照）、立ち上げ処理を終了する。
【００５１】
図１１は、ＯＳ立ち上げ処理のアルゴリズムを示す図である。このアルゴリズムは図１０のコントローラ立ち上げ処理のアルゴリズムの最後のステップＳ５８０から実行される。ＣＰＵ１５は、ステップＳ５９１でＯＳの情報の初期化を行い、ステップＳ５９２で図１中の使用中の制限リスト情報４２１を、初期化処理用の制限リスト４５１１に設定する。ＣＰＵ１５は、ステップＳ５９３で図１中のＩＯ１１を初期化し、ステップＳ５９４で通信部１４を初期化し、ステップＳ５９５でタスクをロードする。
【００５２】
ここまででＯＳの初期化の処理が終了するので、ＣＰＵ１５は、ステップＳ５９６で使用中の制限リスト情報４２１を通常時用の制限リスト４５２１に設定し、ステップＳ５９７ではタスクスケジューラを実行して次に実行すべきタスクを選択し、ステップＳ５９８で選択したタスクに処理をスイッチする。
【００５３】
本実施形態によれば、コントローラ（例えば、プログラマブルコントローラ１００）は、複数のタスク５１１〜５１４と、１つ以上のタスクを実行する複数のオペレーティングシステム（例えば、ＯＳ４１１，４１２）とを記憶したメモリ１９と、タイマ割込みによりオペレーティングシステムを切り替えて処理を実行するプロセッサ（例えば、ＣＰＵ１５）とを備える。プロセッサは、オペレーティングシステムごとにメモリ領域を指定するメモリ保護手段（例えば、メモリ保護１２）を有し、メモリには、メモリ保護手段で指定されたメモリ領域に、オペレーティングシステムと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リスト（例えば、制限リスト４５２１，４５２２）が記憶されている。プロセッサは、オペレーティングシステムを切り替える際に、メモリ保護手段で指定されたメモリ領域にアクセスし、オペレーティングシステムに関連付けられた制限リストに従い処理を実行することができる。
【００５４】
次に、図５および図６に示したテーブルの設定方法について説明する。
図１２は、システムコール制限設定画面の一例を示す図である。図１２を参照して、図１中の設定ツール２２の表示部に表示される画面のうち、システムコール制限設定画面について説明する。システムコール制限設定画面２３は、設定の対象となるＯＳを選択するメニュー２３１、システムコールの一覧２３２、禁止／許可別欄２３４、入力した情報をコントローラに送信して設定するためのボタン２３５、設定をキャンセルするボタン２３６を含んでいる。
【００５５】
ＯＳを選択するメニュー２３１の行２３１１で、図１中のＯＳ４１１であるところのＯＳ１が選択されている。禁止／許可別欄２３４は、制限リストが、許可されるシステムコールのリストであるかそれとも禁止されるシステムコールのリストであるかを選択するメニューであり、行２３４１でリストが許可されるシステムコールのリストであることが選択されている。
【００５６】
システムコールの一覧２３２は、システムコールのＩＤであるＳＣＩＤ２３２１、システムコール名であるＳＣ名２３２２、選択２３２３の欄を含んでいる。システムコールの一覧２３２には、予め登録されているシステムコールの一覧が表示され、選択２３２３の
ボタンをクリックすることによりそのシステムコールを選択することが可能である。
【００５７】
図１３は、タスク起動制限設定画面の一例を示す図である。図１３を参照して、図１中の設定ツール２２の表示部に表示される画面のうち、タスク起動制限設定画面について説明する。タスク起動制限設定画面２４は、設定の対象となるＯＳを選択するメニュー２４１、タスクの一覧２４２、禁止／許可別欄２４４、入力した情報をコントローラに送信して設定するためのボタン２３５、設定をキャンセルするボタン２３６を含んでいる。
【００５８】
ＯＳを選択するメニュー２４１の行２４１１で、図１中のＯＳ４１１であるところのＯＳ１が選択されている。禁止／許可別欄２４４は、制限リストが、許可されるタスクのリストであるかそれとも禁止されるタスクのリストであるかを選択するメニューであり、行２４４１でリストが許可されるタスクのリストであることが選択されている。
【００５９】
タスクの一覧２４２は、タスクのＩＤであるタスクＩＤ２４２１、タスク名２４２２、選択２４２３の欄を含んでいる。タスクの一覧２４２には、予め登録されているタスクの一覧が表示され、選択２４２３のボタンをクリックすることによりそのタスクを選択することが可能である。
【００６０】
図１４は、ＯＳ間通信鍵設定画面の一例を示す図である。図１４を参照して、図１中の設定ツール２２の表示部に表示される画面のうち、ＯＳ間通信用鍵設定画面について説明する。ＯＳ間通信用鍵設定画面２５は、設定の対象となるＯＳを選択するメニュー２５１、タスクの一覧２５２、ＯＳ間通信実施のための認証に用いる鍵の情報を設定する鍵情報設定欄２５４、入力した情報をコントローラに送信して設定するためのボタン２３５、設定をキャンセルするボタン２３６を含んでいる。
【００６１】
ＯＳを選択するメニュー２５１の行２５１１で、図１中のＯＳ４１２であるところのＯＳ２が選択されている。鍵情報設定欄２５４の行２５４１に入力されている値が鍵の値である。
【００６２】
タスクの一覧２５２は、タスクのＩＤであるタスクＩＤ２５２１、タスク名２５２２、鍵許可２５２３の欄を含んでいる。タスクの一覧２５２には、予め登録されているタスクの一覧が表示され、鍵許可２５２３のボタンをクリックすることにより、ＯＳ間通信の鍵を与える対象のタスクを選択することが可能である。
【００６３】
図１５は、設定ツールのディスクの構成の一例を示す図である。図１５を参照して、図１中の設定ツール２２に内蔵されるディスクの構成について説明する。設定ツール２２は、ネットワーク２１に接続されるＰＣ（Personal Computer）のような情報端末であればよく、ディスク２２１とはハードディスクやフロッピー（登録商標）ディスクなどの、円盤状の記憶媒体にデータの記録を行う記憶装置の総称であり、本実施形態では、ハードディスクの意味で使用する。ディスク２２１には、各種データが保持されている。
【００６４】
ディスク２２１は、図１中の各ＯＳの制限リスト４５２１，４５２２、図１２のシステムコール制限設定画面や図１３のタスク起動制限設定画面に入力した値を保持する。また、ディスク２２１は、ＯＳ間通信の鍵情報７１、ＯＳ間通信の鍵を許可するタスクのリスト７２を保持し、これらは図１４のＯＳ間通信用鍵設定画面に入力した値である。図１２、図１３、図１４の画面中の設定するためのボタン２３５をクリックすると対応した情報がネットワーク２１経由でコントローラに送信される。
【００６５】
図１６は、実行制限リスト受信のアルゴリズムを示す図である。図１６を参照して、図１中のリスト受信４３１，４３２のアルゴリズムについて説明する。実行制限リスト受信のアルゴリズムは、図１中の設定ツール２２に内蔵される図１５のディスク２２１内の制限リスト４５２１，４５２２の情報をこのプログラムによりネットワーク２１経由で受信するものである。
【００６６】
ＣＰＵ１５は、ステップＳ６１１では設定ツールから通信が行われるのを待っており、通信が開始されるとステップＳ６１２に進み、設定ツール２２から送信されてきた制限リストを受信する。ＣＰＵ１５は、ステップＳ６１３で受信した制限リストが実行制限タスクリストであるか否かを判断し、実行制限タスクリストであった場合（ステップＳ６１３，Ｙｅｓ）、ステップＳ６１４でＯＳの実行制限タスクリストに受信情報を設定し、そうでない場合（ステップＳ６１３，Ｎｏ）、ステップＳ６１５でＯＳに実行制限システムコールリストに受信情報を設定し、ステップＳ６１１に戻る。
【００６７】
図１７は、プログラマブルコントローラの別の構成を示す図である。図１７に示すプログラマブルコントローラ１００Ａは、図１のコントローラの別の構成例である。図１の構成では複数のＯＳ４１１，４１２をタイマ１３で切り替えて実行する構成であったが、図１７に示す構成ではＯＳ４１３の一つのみである。その代わりに複数のタスクの集合を表すタスクグループの管理手段を用いている。ＯＳ４１３には、タスクグループの管理情報４１４（タスクＧｒ１），４１５（タスクＧｒ２）があり、管理情報４１４の中に制限リスト４５１１，４５２１、管理情報４１５の中に制限リスト４５２２がある。また、ＯＳ４１３には、タスクグループ切り替えプログラム３３があり、このプログラムがタイマ１３の割込により起動され実行するタスクグループを切り替えるとともに実行を制限するタスクやシステムコールも切り替わる。さらに、ＯＳ４１３は、タスクグループ間通信プログラム３４も有しており、タスクグループ間通信プログラム３４には、鍵照合手段３４１、タスクグループ間通信領域３４２も含まれる。
【００６８】
図１８は、図１７のプログラマブルコントローラのハードウェアの構成を示す図である。ハードウェア１は、図２と同様に、ＣＰＵ１５、ＩＯ１１、通信部１４、メモリ１９を含んで構成されており、ＣＰＵ１５、ＩＯ１１、通信部１４、およびメモリ１９は、バス１８を介して接続されている。図１８のメモリ１９の構成が、図２のメモリと相違している。
【００６９】
メモリ１９は、図１７で説明した各種のソフトウェアとデータを保持しており、具体的には、前記したＯＳ４１３、タスク５１１〜５１４がある。ＯＳ４１３には、管理情報４１４（タスクＧｒ１）、管理情報４１５（タスクＧｒ２）、タスクグループ切り替えプログラム３３、タスクグループ間通信プログラム３４がある。
【００７０】
図１７および図１８の実施形態によれば、プログラマブルコントローラ１００Ａは、タスクをグループとして管理する手段を設け、該タスク間、あるいは、該タスクグループ間はＣＰＵ１５（プロセッサ）のメモリ保護手段（例えば、メモリ保護１２）によりメモリが保護されている。各タスクグループは、実行を許可する処理、実行を禁止する処理を記録した制限リスト４５２１，４５２２を保持している。プログラマブルコントローラ１００ＡのＣＰＵ１５がタイマ割込みによりタスクグループを切り替えて処理を実行する際に、実行を許可する処理、実行を禁止する処理を記録した制限リストも同時に切り替える。この切り替え処理により、重要な制御の処理を行うタスクグループを別のタスクグループとして分離し、実行可能な処理を制限することにより高いセキュリティ性を実現することができる。
【００７１】
本実施形態のコントローラ（例えば、プログラマブルコントローラ１００Ａ）は、複数のタスク５１１〜５１４と、１つ以上のタスクを実行するグループをタスクグループ（例えば、管理情報４１４，４１５）として、１つ以上のタスクグループを管理するオペレーティングシステム（例えば、ＯＳ４１３）とを記憶したメモリ１９と、タイマ割込みによりタスクグループを切り替えて処理を実行するプロセッサ（例えば、ＣＰＵ１５）とを備える。プロセッサは、タスクグループごとにメモリ領域を指定するメモリ保護手段（メモリ保護１２)を有し、メモリ１９には、メモリ保護手段で指定されたメモリ領域に、タスクグループと関連付けて、実行を許可する処理または実行を禁止する処理を記録した制限リスト（例えば、制限リスト４５２１，４５２２）が記憶されている。プロセッサは、タスクグループを切り替える際に、メモリ保護手段で指定されたメモリ領域にアクセスし、タスクグループに関連付けられた制限リストに従い処理を実行することができる。
【００７２】
図１９は、プログラマブルコントローラのハードウェアの別の構成を示す図である。図１９を参照して、図２のコントローラのハードウェアの別の構成例を説明する。図２ではＣＰＵ１５が一つであり、このＣＰＵ１５が複数のＯＳを切り替えて実行していた。本構成ではマルチコアで複数のＣＰＵ１５１，１５２を有している。本構成ではＣＰＵ１５１とＣＰＵ１５２のＣＰＵがそれぞれＯＳ４１１（ＯＳ１）とＯＳ４１２（ＯＳ２）のＯＳを同時に実行する。また、それぞれのＣＰＵは、それぞれのＯＳが持っている制限リストに従いタスク起動とシステムコール実行の制御を行うことができる。
【００７３】
本実施形態によれば、タイマにより周期的に処理が実行されるプログラマブルコントローラにおいて、高いセキュリティが必要な処理のための実行制限情報と、ネットワーク接続などの処理のための実行制限情報をタイマにより切り替えることにより、高いセキュリティと使い勝手を両立させることができる。また、高いセキュリティが必要な処理と使い勝手を優先する処理との間でセキュリティを確保した通信手段を有する。
【００７４】
本実施形態において、高いセキュリティが要求されるタスクグループに対してはきびしい制限が定義されたリストを用い、ネットワーク接続などを行う汎用的な処理のタスクグループに対しては緩い制限が定義されたリストを用いることにより、重要な処理に対しては高いセキュリティを確保しつつ、使い勝手を犠牲にしないコントローラを提供することができる。
【００７５】
また、本実施形態によれば、タスクグループがタイマで自動的に切り替えて実行される。また、タスクグループ間はメモリ保護が実施されている。そのため、万が一ネットワーク接続の処理を行うタスクグループが不正アクセスにより誤動作することがあっても、重要な処理を行うタスクグループの実行は保証される。
【符号の説明】
【００７６】
１    ハードウェア
３    ＯＳ切り替え層
１１    ＩＯ
１２    メモリ保護
１２Ｔ    メモリ保護テーブル
１３    タイマ
１４    通信部
１５    ＣＰＵ（プロセッサ）
１６    実行レベル
１８    バス
１９    メモリ
２１    ネットワーク
２２    設定ツール（計算機）
２３    システムコール制限設定画面
２４    タスク起動制限設定画面
２５    ＯＳ間通信用鍵設定画面
３１    ＯＳ切り替えプログラム
３２    ＯＳ間通信プログラム
３３    タスクグループ切り替えプログラム
３４    タスクグループ間通信プログラム
７１    鍵情報
１００，１００Ａ    プログラマブルコントローラ
１１１，１１２，１１３    制御対象
２２１    ディスク
３１１    実行中ＯＳ情報
３２１，３４１    鍵照合手段
３２２    ＯＳ間通信領域
３３１    実行中タスクグループ
３４２    タスクグループ間通信領域
４１１，４１２，４１３    ＯＳ
４１４，４１５    管理情報（タスクグループ）
４２１，４２２    使用中の制限リスト情報（使用中の制限リスト）
４３１，４３２    制限リスト受信
４４１，４４２    制限リスト管理のプログラム
４５１１，４５２１，４５２２    制限リスト
４５２１１    実行制限システムコールリスト（実行許可システムコールリスト）
４５２１２    実行制限システムコールリスト（実行禁止システムコールリスト）
４５２２１    実行制限タスクリスト（実行許可タスクリスト）
４５２２２    実行制限タスクリスト（実行禁止タスクリスト）
５１１〜５１４    タスク
【図１】
0005828791.tif 000002
【図２】
0005828791.tif 000003
【図３】
0005828791.tif 000004
【図４】
0005828791.tif 000005
【図５】
0005828791.tif 000006
【図６】
0005828791.tif 000007
【図７】
0005828791.tif 000008
【図８】
0005828791.tif 000009
【図９】
0005828791.tif 000010
【図１０】
0005828791.tif 000011
【図１１】
0005828791.tif 000012
【図１２】
0005828791.tif 000013
【図１３】
0005828791.tif 000014
【図１４】
0005828791.tif 000015
【図１５】
0005828791.tif 000016
【図１６】
0005828791.tif 000017
【図１７】
0005828791.tif 000018
【図１８】
0005828791.tif 000019
【図１９】
0005828791.tif 000020
【図２０】
0005828791.tif 000021