(57)【要約】      （修正有）【課題】産業用サーバ技術に関し、特に産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバを提供する。【解決手段】産業用制御ミドルウェアとリアルタイムＯＳとを備えるマイクロカーネル及び仮想化マシンモニタのアーキテクチャに基づき、システム起動の前に、スケジューリング設定情報を独自に定義して設定し、産業用サーバのマイクロカーネルの産業現場層でのリアルタイム制御および自由な組み合わせを実現し、ハードウェアデバイスを簡素化にし、構築およびメンテナンスのコストを低下させ、ソフトウェアによって産業用プロセスを定義することを実現する。【選択図】図１
2020009403.tif 000002
【特許請求の範囲】
【請求項１】
産業用サーバにおいて産業用サーバのハードウェアに基づいたＯＳカーネルが複数の物理カーネルをサポートする産業用サーバのマイクロカーネルアーキテクチャの制御システムであって、
前記システムは、マイクロカーネルと、仮想化マシンモニタとを備え、
各物理カーネルにおいて複数のマイクロカーネルが動作し、各マイクロカーネルは、いずれも産業用制御ミドルウェアと、リアルタイムＯＳとを備え、
前記産業用制御ミドルウェアは、産業用制御アプリケーションを動作させるように、産業用制御アプリケーションのニーズを解析することに用いられ、
前記リアルタイムＯＳは、前記仮想化マシンモニタによって産業用制御アプリケーションの動作中の制御プログラムをスケジューリング・制御することに用いられ、
前記仮想化マシンモニタは、システム起動の前に、それぞれの制御プログラムに対応するマイクロカーネルタスクタイプの重み及びそれぞれの制御プログラムに対応するマイクロカーネルタスク優先度及び／又はそれぞれの制御プログラムの動作時間の重みに基づき、スケジューリング設定情報を生成し、前記スケジューリング設定情報に基づき、前記ＯＳカーネルにおいて動作する制御プログラムを設定し、設定された制御プログラムを起動させることに用いられ、
前記スケジューリング設定情報に、各物理カーネルにおいて動作する制御プログラムの数と、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも１つが複数の物理カーネルにおいて動作することと、が含まれる、ことを特徴とする産業用サーバのマイクロカーネルアーキテクチャの制御システム。
【請求項２】
前記マイクロカーネルは、前記産業用制御アプリケーションが動作している間に、前記リアルタイムＯＳにおける通信ドライバ及び前記産業用制御ミドルウェアにおける通信プロトコルに基づき、前記産業用サーバにより制御される端末と通信するためのＩＯ通信モジュールを、更に備える、ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記仮想化マシンモニタは、具体的に、
制御プログラムに対応するマイクロカーネルタスクタイプの重み及び制御プログラムに対応するマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みに基づき、制御プログラムの関連性を計算し、
前記関連性に基づき、前記スケジューリング設定情報を生成することに用いられる、ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記仮想化マシンモニタは、具体的に、
前記マイクロカーネルタスクタイプ、マイクロカーネルタスク優先度および制御プログラムの動作時間の重みに基づき、前記関連性を計算すること、または、
前記マイクロカーネルタスクタイプおよびマイクロカーネルタスク優先度の重みに基づき、前記関連性を計算すること、または、
前記マイクロカーネルタスクタイプおよび制御プログラムの動作時間の重みに基づき、前記関連性を計算することに用いられる、ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記仮想化マシンモニタは、具体的に、
仮想化マシンプログラムによってハードウェアに対して仮想化処理を行い、前記スケジューリング設定情報に基づき、少なくとも１つの物理カーネルに複数の制御プログラムを割り当てること、及び／又は、
前記スケジューリング設定情報に基づき、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムを設定すること、及び／又は、
複数の物理カーネルを仮想化し、全ての制御プログラムのうちの少なくとも１つについて、前記スケジューリング設定情報に基づき、該制御プログラムを対応付けて複数の制御プログラムを取得し、取得した前記複数の制御プログラムを前記複数の物理カーネルに割り当てることに用いられ、
前記スケジューリングアルゴリズムは、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムを含む、ことを特徴とする請求項１に記載のシステム。
【請求項６】
前記仮想化マシンモニタは、具体的に、
粗粒度ロックによるスケジューリング方法を用いることにより、物理カーネルごとに１つのロックを対応させ、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムによって、単一の物理カーネルにおける複数の制御プログラムから１つの制御プログラムを特定し、特定した前記制御プログラムから前記物理カーネルに対応するロックを取得し、前記物理カーネルに対応するロックを取得した制御プログラムが前記物理カーネルを独占してカーネルモード操作を実行し、前記制御プログラムのカーネルタスクタイプ、優先度及び／又は動作時間に基づき、前記スケジューリング設定情報を生成すること、または、
細粒度ロックによるスケジューリング方法を用いることにより、物理カーネルごとに１つのロックを対応させ、全ての制御プログラムのうちの少なくとも１つについて、該制御プログラムの所要計算リソースに応じて該制御プログラムを対応付けて複数の制御プログラムを取得し、前記複数の制御プログラム同士の関連性に基づき、前記複数の制御プログラムを異なる物理カーネルに割り当て、前記複数の制御プログラムがそれぞれ所属する物理カーネルに対応するロックを取得し、ロックを取得した前記複数の制御プログラムのそれぞれが割り当てられた複数の物理カーネルにおいて同時にカーネルモード操作を実行しての前記複数の制御プログラムの並行実行を実現し、前記制御プログラムのカーネルタスクタイプ、優先度及び／又は動作時間に基づき、前記スケジューリング設定情報を生成することに用いられる、ことを特徴とする請求項１に記載のシステム。
【請求項７】
前記時刻表に基づいたスケジューリングアルゴリズムは、
第１タイマーの持続時間がメインフレーム時間であり、第２タイマーが前記メインフレーム時間内の各時間窓の順序に応じて次々に起動されるとともに、前記第２タイマーの持続時間が次々に各時間窓の持続時間と同じであるように、複数のタイマーを設定することと、
前記メインフレーム時間を周期とし、前記第１タイマーおよび前記第２タイマーを起動させながら、時刻表の設定に基づいて制御プログラムをスケジュールし、前記第２タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、前記第１タイマーのタイミングが到来すると、次の周期を開始することと、を含み、
前記時刻表は、前記各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む、ことを特徴とする請求項５に記載のシステム。
【請求項８】
前記優先度に基づいたスケジューリングアルゴリズムは、
優先度メインインデックス番号ビットマップを走査して最高優先度に対応するメインインデックス番号を確認することと、
前記メインインデックス番号に対応する優先度サブインデックス番号ビットマップを走査して最高優先度に対応するサブインデックス番号を確認することと、
前記メインインデックス番号および前記サブインデックス番号に基づき、現在の最高優先度を計算し、前記最高優先度に対応する制御プログラムを確認することとを含む、ことを特徴とする請求項５に記載のシステム。
【請求項９】
少なくとも１つの物理カーネルにおいて動作する制御プログラムは、動作周期が同じまたは異なる制御プログラムを含む、ことを特徴とする請求項１から８のいずれか１項に記載のシステム。
【請求項１０】
産業用サーバのハードウェアと、前記産業用サーバのハードウェアに基づいたＯＳカーネルとを備え、前記ＯＳカーネルが複数の物理カーネルをサポートする産業用サーバであって、
前記産業用サーバは、請求項１から９のいずれか１項に記載の産業用サーバのマイクロカーネルアーキテクチャの制御システムを更に備える、ことを特徴とする産業用サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、産業用サーバ技術に関し、特に産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバに関する。
【背景技術】
【０００２】
産業用サーバのハードウェアに基づいた仮想ＯＳ（ｖｉｒｔｕａｌ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）は、ｉ７を例として、４つの物理カーネルをサポート可能となり、各カーネルにおいて１つの仮想化マシンであるマイクロ制御カーネルが動作し、マイクロ制御カーネルにＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ、プログラマブルロジックコントローラ）が含まれる。
【０００３】
しかしながら、１つのカーネルにおいて１つのみのＰＬＣが動作し得、リソースを無駄遣いし、実行可能な機能も制限されている。また、マルチコアＰＬＣのスケジューリング方法は、リアルタイム性の高いビジネスシナリオに適用される優先順位スケジューリングアルゴリズムと、リアルタイム性の高くないビジネスシナリオに適用される時刻表スケジューリングアルゴリズムとを含み、何れかのスケジューリングアルゴリズムは、ビジネスニーズの複雑なシナリオで、ユーザのビジネスニーズを満たしにくいため、ＣＰＵリソースの使用率が低いという問題が生じてしまう。従来の工業現場では、１つのハードウェアプラットフォームにおいて１セットのみのＰＬＣ制御システムが動作しているため、機能が一定で変更不可になり、複数セットの制御システム（ＰＬＣ／ＤＣＳ／Ｍｏｔｉｏｎ／ＣＮＣ）に関わる場合、管理・メンテナンスの難度が大きく、効率が低いという問題が生じてしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施例は、産業用サーバのマイクロカーネルが産業現場でのリアルタイム制御および自由な組み合わせを実現し、ハードウェアデバイスを簡素化にし、構築およびメンテナンスのコストを低下させ、ソフトウェアによって産業用プロセスを定義することを実現するための産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバを提供する。
【課題を解決するための手段】
【０００５】
第１の態様によれば、本発明の実施例は、産業用サーバにおいて産業用サーバのハードウェアに基づいたＯＳカーネルが複数の物理カーネルをサポートする産業用サーバのマイクロカーネルアーキテクチャの制御システムであって、
前記システムは、マイクロカーネルと、仮想化マシンモニタとを備え、
各物理カーネルにおいて複数のマイクロカーネルが動作し、各マイクロカーネルは、いずれも産業用制御ミドルウェアと、リアルタイムＯＳとを備え、
前記産業用制御ミドルウェアは、産業用制御アプリケーションを動作させるように、産業用制御アプリケーションのニーズを解析することに用いられ、
前記リアルタイムＯＳは、前記仮想化マシンモニタによって産業用制御アプリケーションの動作中の制御プログラムをスケジューリング・制御することに用いられ、
前記仮想化マシンモニタは、システム起動の前に、それぞれの制御プログラムに対応するカーネルタスクタイプの重み及びそれぞれの制御プログラムに対応するカーネルタスク優先度及び／又はそれぞれの制御プログラムの動作時間の重みに基づき、スケジューリング設定情報を生成し、前記スケジューリング設定情報に基づき、前記ＯＳカーネルにおいて動作する制御プログラムを設定し、設定された制御プログラムを起動させることに用いられ、
前記スケジューリング設定情報に、各物理カーネルにおいて動作する制御プログラムの数と、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも１つが複数の物理カーネルにおいて動作することと、が含まれる産業用サーバのマイクロカーネルアーキテクチャの制御システムを提供する。
【０００６】
オプションとして、前記マイクロカーネルは、前記産業用制御アプリケーションが動作している間に、前記リアルタイムＯＳにおける通信ドライバ及び前記産業用制御ミドルウェアにおける通信プロトコルに基づき、前記産業用サーバにより制御される端末と通信するためのＩＯ通信モジュールを、更に備える。
【０００７】
オプションとして、前記仮想化マシンモニタは、具体的に、
制御プログラムに対応するマイクロカーネルタスクタイプの重み及び制御プログラムに対応するマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みに基づき、制御プログラムの関連性を計算し、
前記関連性に基づき、前記スケジューリング設定情報を生成することに用いられる。
【０００８】
オプションとして、前記仮想化マシンモニタは、具体的に、
前記マイクロカーネルタスクタイプ、マイクロカーネルタスク優先度および制御プログラムの動作時間の重みに基づき、前記関連性を計算すること、または、
前記マイクロカーネルタスクタイプおよびマイクロカーネルタスク優先度の重みに基づき、前記関連性を計算すること、または、
前記マイクロカーネルタスクタイプおよび制御プログラムの動作時間の重みに基づき、前記関連性を計算することに用いられる。
【０００９】
オプションとして、前記仮想化マシンモニタは、具体的に、
仮想化マシンプログラムによってハードウェアに対して仮想化処理を行い、前記スケジューリング設定情報に基づき、少なくとも１つの物理カーネルに複数の制御プログラムを割り当てること、及び／又は、
前記スケジューリング設定情報に基づき、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムを設定すること、及び／又は、
複数の物理カーネルを仮想化し、全ての制御プログラムのうちの少なくとも１つについて、前記スケジューリング設定情報に基づき、該制御プログラムを対応付けて複数の制御プログラムを取得し、取得した前記複数の制御プログラムを前記複数の物理カーネルに割り当てることに用いられる。
ここで、前記スケジューリングアルゴリズムは、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムを含む。
【００１０】
オプションとして、前記仮想化マシンモニタは、具体的に、
粗粒度ロックによるスケジューリング方法を用いることにより、物理カーネルごとに１つのロックを対応させ、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムによって、単一の物理カーネルにおける複数の制御プログラムから１つの制御プログラムを特定し、特定した前記制御プログラムから前記物理カーネルに対応するロックを取得し、前記物理カーネルに対応するロックを取得した制御プログラムが前記物理カーネルを独占してカーネルモード操作を実行し、前記制御プログラムのカーネルタスクタイプ、優先度及び／又は動作時間に基づき、前記スケジューリング設定情報を生成すること、または、
細粒度ロックによるスケジューリング方法を用いることにより、物理カーネルごとに１つのロックを対応させ、全ての制御プログラムのうちの少なくとも１つについて、該制御プログラムの所要計算リソースに応じて該制御プログラムを対応付けて複数の制御プログラムを取得し、前記複数の制御プログラム同士の関連性に基づき、前記複数の制御プログラムを異なる物理カーネルに割り当て、前記複数の制御プログラムがそれぞれ所属する物理カーネルに対応するロックを取得し、ロックを取得した前記複数の制御プログラムのそれぞれが割り当てられた複数の物理カーネルにおいて同時にカーネルモード操作を実行しての前記複数の制御プログラムの並行実行を実現し、前記制御プログラムのカーネルタスクタイプ、優先度及び／又は動作時間に基づき、前記スケジューリング設定情報を生成することに用いられる。
【００１１】
オプションとして、前記時刻表に基づいたスケジューリングアルゴリズムは、
複数のタイマーを設定することと、
メインフレーム時間を周期とし、第１タイマーおよび第２タイマーを起動させながら、時刻表の設定に基づいて制御プログラムをスケジュールし、前記第２タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、前記第１タイマーのタイミングが到来すると、次の周期を開始することと、を含む。
ここで、前記第１タイマーの持続時間が前記メインフレーム時間であり、前記第２タイマーが前記メインフレーム時間内の各時間窓の順序に応じて次々に起動されるとともに、前記第２タイマーの持続時間が次々に各時間窓の持続時間と同じであり、前記時刻表は、前記各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む。
【００１２】
オプションとして、前記優先度に基づいたスケジューリングアルゴリズムは、
優先度メインインデックス番号ビットマップを走査して最高優先度に対応するメインインデックス番号を確認することと、
前記メインインデックス番号に対応する優先度サブインデックス番号ビットマップを走査して最高優先度に対応するサブインデックス番号を確認することと、
前記メインインデックス番号および前記サブインデックス番号に基づき、現在の最高優先度を計算し、前記最高優先度に対応する制御プログラムを確認することとを含む。
【００１３】
オプションとして、少なくとも１つの物理カーネルにおいて動作する制御プログラムは、動作周期が同じまたは異なる制御プログラムを含む。
【００１４】
第２の態様によれば、本発明の実施例は、産業用サーバのハードウェアと、前記産業用サーバのハードウェアに基づいたＯＳカーネルとを備え、前記ＯＳカーネルが複数の物理カーネルをサポートする産業用サーバであって、前記産業用サーバは、本発明のいずれかの実施例に係る産業用サーバのマイクロカーネルアーキテクチャの制御システムを更に備える産業用サーバを提供する。
【発明の効果】
【００１５】
本発明の実施例は、従来の工業現場では１つのハードウェアプラットフォームにおいて１セットのみのＰＬＣ制御システムが動作しているため、機能が一定で変更不可になり、複数セットの制御システム（ＰＬＣ／ＤＣＳ／Ｍｏｔｉｏｎ／ＣＮＣ）に関わる場合、管理・メンテナンスの難度が大きく、効率が低いという問題が生じることを解決するために、産業用制御ミドルウェアおよびリアルタイムＯＳとを備えるマイクロカーネル及び仮想化マシンモニタからなるアーキテクチャに基づき、仮想化マシンモニタによって、システム起動の前に、各物理カーネルにおいて動作する制御プログラムの数、スケジューリングアルゴリズム、及び各制御プログラムが複数の物理カーネルにおいて動作することを独自に定義し、カスタム設定の方式は、単一の物理カーネルによって複数のマイクロカーネルのタイムスライスを制御すること、および単一のマイクロカーネルが計算リソースを占有してクロス物理カーネルスのケジューリングを行うことに限らない。これによって、産業用サーバのマイクロカーネルの産業現場でのリアルタイム制御および自由な組み合わせを実現し、ハードウェアデバイスを簡素化にし、構築およびメンテナンスのコストを低下させ、ソフトウェアによって産業用プロセスを定義することを実現する。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１に係る産業用サーバのマイクロカーネルアーキテクチャの制御システムの構造模式図である。
【図２】本発明の実施例１に係る産業用サーバの構造模式図である。
【図３】本発明の実施例１に係る産業用サーバの別の構造模式図である。
【図４】本発明の実施例１に係る粗粒度ロックによるスケジューリングの模式図である。
【図５】本発明の実施例１に係る細粒度ロックによるスケジューリングの模式図である。
【図６】本発明の実施例１に係る産業用サーバのマイクロカーネルアーキテクチャの制御システムの別の構造模式図である。
【図７】本発明の実施例２に係る時刻表の模式図である。
【図８】本発明の実施例３に係る優先度インデックス番号ビットマップの模式図である。
【発明を実施するための形態】
【００１７】
以下、図面および実施例に基づき、本発明の実施例について更に詳細に説明する。ここで説明する具体的な実施例は、本発明の実施例を解釈するためのものに過ぎず、本発明の実施例を制限するものではないと理解すべきである。なお、便宜上、図面において、全部の構成ではなく、本発明の実施例に関する部分のみを示した。
【００１８】
従来の工業現場では、１つのハードウェアプラットフォームにおいて１セットのみのＰＬＣ制御システムが動作しているため、機能が一定で変更不可になり、複数セットの制御システム（ＰＬＣ／ＤＣＳ／Ｍｏｔｉｏｎ／ＣＮＣ）に関わる場合、管理・メンテナンスの難度が大きく、効率が低いという問題について、本発明の実施例は、産業用制御ミドルウェアおよびリアルタイムＯＳとを備えるマイクロカーネル及び仮想化マシンモニタのアーキテクチャに基づき、システム起動の前に、スケジューリング設定情報を独自に定義して設定し、産業用サーバのマイクロカーネルの産業現場でのリアルタイム制御および自由な組み合わせを実現し、ハードウェアデバイスを簡素化にし、構築およびメンテナンスのコストを低下させ、ソフトウェアによって産業用プロセスを定義することを実現する。
【００１９】
実施例１
図１は、本発明の実施例１に係る産業用サーバのマイクロカーネルアーキテクチャの制御システムの構造模式図である。このシステムは、産業用サーバに設置される。図２は、本発明の実施例１に係る産業用サーバの構造模式図である。産業用サーバは、産業用サーバのハードウェアと、産業用サーバのハードウェアに基づいたＯＳカーネルと、ＯＳカーネルがサポートする複数の物理カーネルと、を備え、各物理カーネルにおいて複数の仮想化マシンが動作可能となり、各仮想化マシンがいずれも１つのマイクロカーネルに対応し、制御プログラムがマイクロカーネルにおいて動作する。つまり、各物理カーネルにおいて複数の制御プログラムが動作可能となる。１つの物理カーネル上で複数の該制御プログラムを実行させるために、本発明の実施例は、仮想化技術によって、ＯＳにおいて複数のマイクロカーネルを仮想化し、マイクロカーネル上で制御プログラムを実行させ、ＯＳによって制御プログラムをスケジューリングする。例示的に、合計３つの物理カーネルａ、ｂおよびｃが存在し、物理カーネルａにおいて３つの制御プログラムａ１、ａ２およびａ３が動作し、物理カーネルｂにおいて３つの制御プログラムｂ１、ｂ２およびｂ３が動作し、物理カーネルｃにおいて３つの制御プログラムｃ１、ｃ２およびｃ３が動作している。
【００２０】
本実施例において、カーネルのサービスに係る部分をカーネル外に移し、マイクロカーネル（Ｍｉｃｒｏ  Ｋｅｒｎｅｌ）を形成する。マイクロカーネルのＯＳは、カーネルにおいて最も基本的かつ不可欠なサービス、例えばプロセス間通信（ＩＰＣ）、メモリ管理、タスクスケジューリングしか提供しない。これ以外、ドライブ、ファイルシステム、ネットワークのようなサービスは、いずれもユーザモードで実現される。各サービス要素は、アドレス空間を共有せず、それぞれ独立したアドレス空間において動作する。マイクロカーネルＯＳは、ほとんどサービスモジュール間のメッセージ伝送によって要求を処理する。たとえば、一つのモジュールからより多くのメモリが必要とするという要求が送信された場合、該要求は、カーネルで要求を処理するサービスに送信される。処理が完了すると、結果をカーネルで返信する。
【００２１】
図１に示すように、産業用サーバのマイクロカーネルアーキテクチャの制御システムは、マイクロカーネル１００および仮想化マシンモニタ２００とを備える。各物理カーネルにおいて複数のマイクロカーネル１００が動作可能となり、各マイクロカーネル１００は、いずれも産業用制御ミドルウェア１０１およびリアルタイムＯＳ１０２とを備える。仮想化マシンモニタ２００はＯＳカーネルにおいて動作する。
【００２２】
産業用制御ミドルウェア１０１は、産業用制御アプリケーションを動作させるように、産業用制御アプリケーションのニーズを解析することに用いられる。ここで、産業用制御ミドルウェアは、マイクロカーネルのＯＳと産業用制御アプリケーションとの間に位置し、上位にあるアプリケーションソフトウェアのために動作と開発の環境を提供する。具体的に、産業用制御ミドルウェアは、産業用制御アプリケーションプログラムを解析することにより、産業用制御アプリケーションを動作させることができる。産業用サーバは、産業用制御アプリケーションを動作させることによって、該当する端末を制御することができる。
【００２３】
リアルタイムＯＳ１０２は、仮想化マシンモニタ２００を介して産業用制御アプリケーションの動作中の制御プログラムをスケジューリング・制御することに用いられる。マイクロカーネルのリアルタイムＯＳ１０２は、マイクロカーネルにおいて最も基本的かつ不可欠なサービス、例えばプロセス間通信（ＩＰＣ）、メモリ管理、タスクスケジューリングしか提供しない。
【００２４】
仮想化マシンモニタ２００は、システム起動の前に、制御プログラムに対応するマイクロカーネルタスクタイプの重み及びマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みに基づき、スケジューリング設定情報を生成し、前記スケジューリング設定情報に基づき、前記ＯＳカーネルにおいて動作する制御プログラムを設定し、設定された制御プログラムを起動させることに用いられる。ここで、前記スケジューリング設定情報に、各物理カーネルにおいて動作する制御プログラムの数と、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも１つが複数の物理カーネルにおいて動作することと、が含まれる。ここで、制御プログラムに対応するマイクロカーネルタスクタイプは、該制御プログラムを実行させるマイクロカーネルのタスクである。制御プログラムの動作時間は、それぞれの制御プログラムに割当てられるタイムスライスである。
【００２５】
本実施例において、各物理カーネルにおいて、動作周期が同じまたは異なる制御プログラムを含む複数の制御プログラムが動作可能となる。例示的に、図３に示すように、物理カーネルａ、ｂおよびｃにおいてそれぞれ３つの制御プログラムが動作し、物理カーネルａにおいて３つの制御プログラムａ１、ａ２およびａ３が動作し、物理カーネルｂにおいて３つの制御プログラムｂ１、ｂ２およびｂ３が動作し、物理カーネルｃにおいて３つの制御プログラムｃ１、ｃ２およびｃ３が動作している。ここで、ａ１、ａ２およびａ３は、同じ動作周期を有する制御プログラムであってもよく、ｂ１、ｂ２およびｂ３は、異なる動作周期を有する制御プログラムであってもよく、ｃ１およびｃ２の動作周期が同じであるがｃ３との動作周期と異っている。各物理カーネルにおいて動作する制御プログラムは、設定されたスケジューリングアルゴリズムによってスケジュールされてもよい。このスケジューリングアルゴリズムは、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムを含み、異なる物理カーネルにおいて異なるスケジューリングアルゴリズムが設定されてもよい。１つの制御プログラムは、１つ又は複数の物理カーネルにおいて動作してもよい。これから分かるように、１つの物理カーネルにおいて複数の制御プログラムが動作可能となり、この複数の制御プログラムは、全機能を持つ制御プログラムであってもよく、１つの制御プログラムの一部の機能を持つ制御プログラムであってもよく、１つの制御プログラムが複数の物理カーネルに割り当てられて動作すると、各物理カーネルにおいて独立して動作し、つまり所在する物理カーネルのスケジューリングに参与する。異なる物理カーネルに異なるスケジューリングアルゴリズムが設定されてもよく、互いに影響しない。
【００２６】
仮想化マシンモニタは、制御プログラムに対応するマイクロカーネルタスクタイプの重み及びマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みに基づき、制御プログラムの関連性を計算し、関連性に基づき、スケジューリング設定情報を生成する。ここで、関連性の計算は、マイクロカーネルタスクタイプ、マイクロカーネルタスク優先度および制御プログラムの動作時間の重みに基づき、関連性を計算すること、または、マイクロカーネルタスクタイプおよびマイクロカーネルタスク優先度の重みに基づき、関連性を計算すること、または、マイクロカーネルタスクタイおよび制御プログラムの動作時間の重みによって関連性を計算することを含む。
【００２７】
上記の通り、各物理カーネルにおいて、動作周期が同じまたは異なる制御プログラムを含む複数の制御プログラムが動作可能となる。つまり、複数の制御プログラムが１つの物理カーネルを共有し、ある制御プログラムがカーネルモード操作を実行しようとすると、物理カーネルが当該制御プログラムをサービスする。物理カーネルを排他的に使用するために、いずれかのカーネルモード操作を実行する必要がある制御プログラムは、１つのロック（ｌｏｃｋ）の取得を申請する必要があり、ロックを取得した制御プログラムしか物理カーネルを用いてカーネルモード操作を実行することができない。制御プログラムの所要計算リソースの粒度のサイズに応じて、粗粒度ロックによるスケジューリング方法と細粒度ロックによるスケジューリング方法に分けられる。
【００２８】
図４は、本発明の実施例１に係る粗粒度ロックによるスケジューリングの模式図である。粗粒度ロックによるスケジューリングとは、物理カーネルごとに１つのロックを対応させ、ロックを取得した制御プログラムは物理カーネル全体を独占することができる。そのため、同一時間内に、１つの制御プログラムしか物理カーネルを用いてカーネルモード操作を実行できず、他のカーネルモード操作を実行する必要のある制御プログラムは、スケジュールされたるまでロックを取得するできない。粗粒度ロックによるスケジューリング方法を用いることにより、単一の物理カーネルにおける複数の制御プログラムのスケジューリングアルゴリズムは、時刻表に基づいたスケジューリングアルゴリズムまたは優先度に基づいたスケジューリングアルゴリズムを含む。例示的に、図３に示すように、合計３つの物理カーネルａ、ｂおよびｃが存在し、物理カーネルごとに１つのロックを対応さる。粗粒度は、物理カーネル内のスケジューリングが１つの完全な制御プログラムを単位として行われる。物理カーネルａにおいて３つの制御プログラムａ１、ａ２およびａ３が動作し、同一時間内に、１つの制御プログラムしか物理カーネルを用いてカーネルモード操作を実行できない。ここで、時刻表によるスケジューリングアルゴリズム又は優先度によるスケジューリングアルゴリズムに基づき、、制御プログラムａ１、ａ２およびａ３の間にスケジュールし、どの制御プログラムが物理カーネルａのロックを取得したかを確認することができる。同様に、物理カーネルｂにおいて動作する３つの制御プログラムｂ１、ｂ２およびｂ３、物理カーネルｃにおいて動作する３つの制御プログラムｃ１、ｃ２およびｃ３は、いずれも上述した方法でスケジューリングし、所在する物理カーネルに対応するロックの使用権を取得し、更に物理カーネルを用いてカーネルモード操作を実行することができる。
【００２９】
図５は、本発明の実施例１に係る細粒度ロックによるスケジューリングの模式図である。制御プログラムの所要カーネルサービスの計算リソースが大きいであれば、複数の物理カーネルにおいてこの制御プログラムのカーネルモード操作を同時に実行させてもよい。単一の制御プログラムの異なる制御プログラムの粒度を分割して複数の制御プログラムを異なる物理カーネルに割り当てることにより、複数の物理カーネルが同時にカーネルモード操作を実行し、複数の制御プログラムを並列実行させることができる。マイクロカーネルタスクタイプは、プロセス間通信（ＩＰＣ）、メモリ管理、タスクスケジューリングなどを含む複数のタイプに分けられる。本実施例において、二重カット処理アルゴリズムを用いて制御プログラムをカットして分類する。ここで、第１層のカット処理アルゴリズムは、制御プログラムスケジューリングのシステムオーバーヘッドを削減するために、動作時間ごとに複数の制御プログラムをなるべく小さなスケジュール可能な幾つかの周期制御プログラムセットにカットする。第２層のカット処理アルゴリズムは、制御プログラムをより信頼性が高くてリアルタイム性が高い環境で動作させるために、第１層の制御プログラムのカット結果に基づき、いくつかの優先度レベルの異なる制御プログラムセットにカットする。最後、複数の制御プログラムの関連性を計算することにより、この計算手順は、カーネルタスクタイプの重み及びタスク優先度及び／又は動作時間の重みを組み合わせできる。関連性の高い制御プログラムを組合せて同一の物理カーネルに設定し、関連性の低い制御プログラムを異なる物理カーネルに設定することで、複数の物理カーネルが同時にカーネルモード操作を実行し、制御プログラムを完成する。
【００３０】
本実施例に係るカット処理アルゴリズムは、二重カット処理アルゴリズムに限られず、以下のようなアルゴリズムを更に含む。制御プログラムをより信頼性が高くてリアルタイム性が高い環境で動作させるために、制御プログラムに対応する複数の制御プログラムを取得し、これをいくつかの優先度レベルの異なる制御プログラムにカットする。最後、複数の制御プログラムの関連性を計算することにより、この計算手順は、マイクロカーネルタスクタイプの重み及びマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みを組み合わせできる。関連性の高い制御プログラムを組合せて同一の物理カーネルに設定し、関連性の低い制御プログラムを異なる物理カーネルに設定することで、複数の物理カーネルが同時にカーネルモード操作を実行し、制御プログラムを完成する。
【００３１】
例示的に、図３に示すように、合計３つの物理カーネルａ、ｂおよびｃが存在し、物理カーネルごとに１つのロックを対応させる。細粒度は、１つの完全な制御プログラムに対応して複数の制御プログラムを取得することを表す。そして、制御プログラム間の関連性に基づき、複数の制御プログラムを異なる物理カーネルに割り当て、各物理カーネルは制御プログラムを他の制御プログラムと共にスケジュールする。物理カーネルｂにおいてｂ１、ｂ２およびｂ３が動作し、物理カーネルｃにおいてｃ１、ｃ２およびｃ３が動作する。ここで、ｂ１、ｂ２およびｃ１、ｃ２は同一の制御プログラムからのものである。上記の通り、この制御プログラムは、二重カット処理アルゴリズム又は他のアルゴリズムを用いてクロップするとともに、関連性に基づき、制御プログラムの所在する物理カーネルを割り当ててもよい。つまり、ｂ１、ｂ２の関連性が高いため、同一の物理カーネルｂに割り当てられ、ｃ１、ｃ２の関連性が高いため、同一の物理カーネルｃに割り当てられる。このように、制御プログラムの粒度に基づいて割り当てられた後、同一の制御プログラムが２つの物理カーネルに割り当てられる。各物理カーネル内において、時刻表によるスケジューリングアルゴリズム又は優先度によるスケジューリングアルゴリズムで、制御プログラムをスケジュールしてもよく、ロックの使用権を取得した制御プログラムが物理カーネルを用いてカーネルモード操作を実行する。
【００３２】
オプションとして、制御プログラムをより信頼性が高くてリアルタイム性が高い環境で動作させるために、制御プログラムに対応する複数の制御プログラムをいくつかの動作時間の異なる制御プログラムにカットすることができる。最後、複数の制御プログラムの関連性を計算することにより、この計算手順は、マイクロカーネルタスクタイプの重み及びマイクロカーネルタスク優先度及び／又は制御プログラムの動作時間の重みを組み合わせできる。関連性の高い制御プログラムを組合せて同一の物理カーネルに設定し、関連性の低い制御プログラムを異なる物理カーネルに設定することで、複数の物理カーネルが共同でカーネルモード操作を実行し、制御プログラムを完成する。
【００３３】
一般的には、産業現場に係る制御プログラムは、温度検出、湿度検出及びプロセス制御などを含むが、これらに限定されない。本発明に説明した関連性とは、上記制御プログラムがマイクロカーネルにおいて実現される際に、マイクロカーネルに基づき、前記制御プログラムに対応する複数の制御プログラムを完成することを確認することができることを意味している。実際に、予め設定したアルゴリズムによって取得したマイクロ制御プロセスは、産業現場に適合する産業制御プロセスであってもよく、ユーザ定義の産業用制御プロセスであってもよい。
【００３４】
いわゆる予め設定したアルゴリズムとは、例えば、マイクロカーネルタスクタイプ、制御プログラムの動作時間、マイクロカーネルタス優先度についてそれぞれ異なる重みを付与し、重みの加算値が固定範囲にあるものを同一の制御プログラムに対応するものとみなす。予め設定したアルゴリズムによって関連性を計算し、関連性の高い制御プログラムを組合せ、各物理カーネルにおいて動作する制御プログラムの数、及び各制御プログラムが複数の物理カーネルにおいて動作することを確認する。
【００３５】
スケジューリング設定情報は、各物理カーネルにおいて動作する制御プログラムの数と、各物理カーネルにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも１つが複数の物理カーネルにおいて動作することと、を含む。本実施例において、上述した方法に基づき、どの制御プログラムをどの物理カーネルに割り当てることを確認すると、スケジューリング設定情報を生成する。例示的に、図３に示すように、物理カーネルａ、ｂおよびｃにおいてそれぞれ３つの制御プログラムが動作し、物理カーネルａにおいて３つの制御プログラムａ１、ａ２およびａ３が動作し、物理カーネルｂにおいて３つの制御プログラムｂ１、ｂ２およびｂ３が動作し、物理カーネルｃにおいて３つの制御プログラムｃ１、ｃ２およびｃ３が動作している。物理カーネルａは、時刻表に基づいたスケジューリングアルゴリズムを採用し、３つの制御プログラムａ１、ａ２およびａ３から、現在カーネルモード操作を実行するものを決定し、物理カーネルｂは、優先度に基づいたスケジューリングアルゴリズムを採用して、３つの制御プログラムｂ１、ｂ２およびｂ３から、現在カーネルモード操作を実行するものを決定し、物理カーネルｃは、優先度に基づいたスケジューリングアルゴリズムを採用して、３つの制御プログラムｃ１、ｃ２およびｃ３から、現在カーネルモード操作を実行するものを決定する。１つの制御プログラムに対応付けて取得された制御プログラムｂ１、ｂ２、ｃ１、ｃ２は、２つの物理カーネルｂおよびｃにおいて動作する。
【００３６】
仮想化マシンモニタ２００は、スケジューリング設定情報に基づき、ＯＳカーネルにおいて動作する制御プログラムを設定する。具体的に、仮想化マシンモニタは、仮想化マシンプログラムによってハードウェアに対して仮想化処理を行い、スケジューリング設定情報に基づき、１つの物理カーネルに複数の制御プログラムを割り当て、及び／又は、スケジューリング設定情報に基づき、各物理カーネルにおいて動作する制御プログラムの、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムを含むスケジューリングアルゴリズムを設定し、及び／又は、複数の物理カーネルを仮想化し、スケジューリング設定情報に基づき、１つの制御プログラムを対応して得られた複数の制御プログラムをそれぞれ複数の物理カーネルに割り当ててもよい。
【００３７】
仮想化マシンモニタは、スケジューリング設定情報に基づき、ＯＳカーネルにおいて動作する制御プログラムを実際に設定することができる。例示的に、図３に示すように、物理カーネルａ、ｂおよびｃにおいてはそれぞれ３つの制御プログラムが動作し、物理カーネルａにおいて３つの制御プログラムａ１、ａ２およびａ３が動作し、物理カーネルｂにおいて３つの制御プログラムｂ１、ｂ２およびｂ３が動作し、物理カーネルｃにおいて３つの制御プログラムｃ１、ｃ２およびｃ３が動作している。物理カーネルａは、時刻表に基づいたスケジューリングアルゴリズムを採用し、３つの制御プログラムａ１、ａ２およびａ３から、現在カーネルモード操作を実行するものを決定し、物理カーネルｂは、優先度に基づいたスケジューリングアルゴリズムを採用し、３つの制御プログラムｂ１、ｂ２およびｂ３から、現在カーネルモード操作を実行するものを決定し、物理カーネルｃは、優先度に基づいたスケジューリングアルゴリズムを採用し、３つの制御プログラムｃ１、ｃ２およびｃ３から、現在カーネルモード操作を実行するものを決定する。１つの制御プログラムにより対応付けて取得された制御プログラムｂ１、ｂ２、ｃ１、ｃ２は、２つの物理カーネルｂおよびｃにおいて動作している。
【００３８】
上記設定によって、仮想化マシンモニタは、設定された制御プログラムを起動し、例示的に、図３に示すように、９つの制御プログラムが３つの物理カーネルに割当てられ、且つ該当するスケジューリングアルゴリズムに応じてスケジュールされる。
【００３９】
上述した技術態様に基づき、図６に示すように、マイクロカーネル１００は、前記産業用アプリケーションが動作している間に、リアルタイムＯＳ１０２における通信ドライバ及び産業用制御ミドルウェア１０１における通信プロトコルに基づき、前記産業用サーバによって制御される端末と通信することに用いられるＩＯ通信モジュール１０３を更に備えてもよい。リアルタイムＯＳ１０２における通信ドライバを、産業用制御ミドルウェア１０１における通信プロトコルとともに使用することによって、マイクロカーネルに基づき、産業用サーバと端末との通信を実現することができる。
【００４０】
本実施例において、１つの物理カーネルにおいて複数の制御プログラムを動作させることができ、物理カーネルリソースの使用率を向上させ、周期の異なる制御プログラムを同一の物理カーネルにおいて動作させることができ、マルチカーネルでの制御プログラムの自由な組み合わせを実現し、マルチビジネスソフトウェアにより定義される自由スケジューリングを実現し、異なる物理カーネルは異なる制御プログラムスケジューリングアルゴリズムを自由に設定することができ、制御プログラムスケジューリングの適応性と多様性を向上させる。
【００４１】
本実施例の技術態様において、産業用ミドルウェアと、リアルタイムＯＳとを備えるマイクロカーネル及び仮想化マシンモニタのアーキテクチャに基づき、仮想化マシンモニタは、システム起動の前に、制御プログラムに対応するカーネルタスクタイプの重み及びタスク優先度及び／又は動作時間の重みに基づき、スケジューリング設定情報を生成し、スケジューリング設定情報に基づき、各物理カーネルにおいて動作する制御プログラムの数、スケジューリングアルゴリズム、及び各制御プログラムが複数の物理カーネルにおいて動作することを設定し、カスタム設定の方式は、単一の物理カーネルによって複数のマイクロカーネルのタイムスライスを制御すること、および単一のマイクロカーネルが計算リソースを占有してクロス物理カーネルスのケジューリングを行うことに限らない。これによって、産業用サーバのマイクロカーネルが産業現場でのリアルタイム制御および自由な組み合わせを実現し、ハードウェアデバイスを簡素化にし、構築およびメンテナンスのコストを低下させ、ソフトウェアによって産業用プロセスを定義することを実現する。
【００４２】
実施例２
上述した技術態様に基づき、本実施例は、時刻表に基づき、スケジューリングアルゴリズムについて説明する。この時刻表に基づいたスケジューリングアルゴリズムは、複数のタイマーを設定することと、メインフレーム時間を周期とし、第１タイマーおよび第２タイマーを起動しながら、時刻表の設定に基づいて制御プログラムをスケジュールし、第２タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、第１タイマーのタイミングが到来すると、次の周期を開始することとを含む。ここで、第１タイマーの持続時間がメインフレーム時間であり、第２タイマーがメインフレーム時間内の各時間窓の順序に応じて次々に起動するとともに、第２タイマーの持続時間が次々に各時間窓の持続時間と同じであり、時刻表は、各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む。
【００４３】
本実施例において、１つの物理カーネルにおいて動作する制御プログラムは、設定された時刻表に基づき、スケジューリングを行い、時刻表はニーズに応じて予め設定されてもよく、スケジューリング時に、メインフレーム時間を周期とし、メインフレーム時間内に複数の時間窓がある。時刻表は、各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含み、時間窓は非アイドル時間窓とアイドル時間窓に分けられる。ここで、各非アイドル時間窓がいずれも１つの制御プログラムの動作時間に対応し、アイドル時間窓において制御プログラムが動作しない。制御プログラムをスケジュールする場合、メインフレーム時間を繰り返し実行する。つまり、時刻表を１回実行するごとに、改めて時刻表における１番目の時間窓に移行して引き続き実行する。図７は、本発明の実施例２に係る時刻表の模式図である。この時刻表において、１番目の非アイドル時間窓は制御プログラム１の動作時間であり、２番目の非アイドル時間窓は制御プログラム２の動作時間であり、３番目の非アイドル時間窓は制御プログラム３の動作時間であり、４番目の非アイドル時間窓も制御プログラム１の動作時間である。メインフレーム時間は、図中の６つの時間窓の総計持続時間である。ユーザは、実際のニーズに応じて各時間窓の持続時間及び各時間窓において動作する制御プログラムを設定することができ、各時間窓の持続時間が同じであるように設定されてもよく、異なるように設定されてもよい。
【００４４】
しかし、時刻表に基づいたスケジューリングアルゴリズムがシステムクロックを用い、小さい時間間隔ごとに１回中断することが発生しうることを考えると、頻繁に中断すれば、時刻表の時間窓に遅延が生じる可能性がある。例えば、時刻表のメインフレーム時間が５００ｍｓであり、制御プログラム１に対応する非アイドル時間窓が１００ｍｓであり、且つ、中断処理時間が１ｍｓであると想定すると、制御プログラム１の動作中に中断が１０回発生すれば、１０ｍｓの遅延が生じる。つまり、制御プログラム２に切り替えられる前に、制御プログラム１が１１０ｍｓ動作していた。したがって、メインフレーム時間が５００ｍｓに到達する場合、実際に、依然として時刻表の最後の時間窓にあり、５１０ｍｓに到達する次第に改めて時刻表の１番目の時間窓に切り替えられるため、メインフレームの切り替えに１０ｍｓの遅延が生じてしまう。制御プログラムの切り替えおよびメインフレームの切り替えの遅延を回避するために、本実施例において、複数のタイマーが設定されており、メインフレーム時間の切り替えを制御するために第１タイマーによってメインフレーム時間をカウントし、時間窓の切り替えを制御するために第２タイマーによって時間窓をカウントする。図７に示すように、１つのメインフレームの開始と同時に第１タイマーおよび第２タイマーを起動させ、スケジューリング時刻表の１番目の時間窓に対応する制御プログラム１をスケジュールする。この際、第２タイマーの持続時間が１番目の時間窓の持続時間と同じである。第２タイマーのタイミングが到来すると、時刻表の１番目の時間窓を隣接の２番目の時間窓に切り替え、２番目の時間窓に対応する制御プログラム２をスケジュールする。この際、第２タイマーの持続時間が２番目の時間窓の持続時間と同じであり、これによって類推する。第１タイマーのタイミングが到来すると、次のメインフレーム周期を開始する。つまり、時刻表の１番目の時間窓に対応する制御プログラム１を改めてスケジュールし、この際、現在どの窓口にあるかにもかかわらず、時刻表の１番目の時間窓に切り替えて、最初からカウントすることで、メインフレーム時間の同期を実現する。
【００４５】
実施例３
上述した技術態様に基づき、本実施例は、優先度に基づいたスケジューリングアルゴリズムについて説明する。本実施例において、１つ又は複数の物理カーネルにおいて動作する制御プログラムの優先度を取得し、優先度を８ビットバイナリに示す。ここで、最初の３ビットがメインインデックス番号であり、最後の５ビットがサブインデックス番号である。メインインデックス番号に基づき、優先度メインインデックス番号ビットマップにおける対応ビットをマークし、サブインデックス番号に基づき、優先度サブインデックス番号ビットマップにおける対応ビットをマークする。
【００４６】
本実施例において、各制御プログラムに優先度を付与し、優先度の範囲を０−２５５としてもよい。ここで、０が最高レベルに対応し、２５５が最低レベルに対応する。各制御プログラムの状態は、準備完了、スタンバイ、スタンバイ・ウエイティング、一時中断または休眠であってもよく、準備完了の状態にある制御プログラムだけがスケジュール可能となり、他の状態にある制御プログラムがスケジューリング対象に属しない。各優先度が８ビットバイナリに示される。ここで、最初の３ビットがメインインデックス番号であり、最後の５ビットがサブインデックス番号である。例えば、優先度が４２である制御プログラムは、準備完了状態にあり、バイナリに示すと００１０１０１０であり、最初の３ビットが００１（１）で、最後の５ビットが０１０１０（１０）である。したがって、４２に対応するメインインデックス番号が１であり、サブインデックス番号が１０である。図８は、本発明の実施例３に係る優先度インデックス番号ビットマップの模式図である。ここで、優先度メインインデックス番号ビットマップは１＊８の一次元ビットマップであり、番号が０−７であり、優先度サブインデックス番号ビットマップは８＊３２の二次元ビットマップであり、縦方向の番号が０−７であり、横方向の番号が０−３１である。４２に対応するメインインデックス番号１およびサブインデックス番号１０に基づき、、それぞれ優先度メインインデックス番号ビットマップの番号１、および優先度サブインデックス番号ビットマップの縦方向番号１、横方向番号１０をマークする(１とマークする)。
【００４７】
上述した技術態様に基づき、優先度に基づいたスケジューリングアルゴリズムは、優先度メインインデックス番号ビットマップを走査して最高優先度に対応するメインインデックス番号を確認することと、メインインデックス番号に対応する優先度サブインデックス番号ビットマップを走査して最高優先度に対応するサブインデックス番号を確認することと、メインインデックス番号および前記サブインデックス番号に基づき、現在の最高優先度を計算し、最高優先度に対応する制御プログラムを確認することとを含む。
【００４８】
図８に示すように、まず、０−７の順番で優先度メインインデックス番号ビットマップを走査し、１番目の１とマックされたビットを見つけ、１と番号付ける。そして、優先度サブインデックス番号ビットマップにおいて０−３１の順番で縦方向番号が１である横方向ビットマップを走査し、１番目の１とマックされたビットが１０であることを発見した。優先度の構成方式に基づき、計算し、この際の優先度が最高である４２レベルの制御プログラムを取得する。
【００４９】
なお、上述した装置実施例に含まれた各ユニットとモジュールは、機能論理に応じて区分されるものであるが、上述した区分に制限されず、該当する機能を実現できれば良い。また、各機能ユニットの具体的な名称は、互いに区分しやすいためのものに過ぎず、本発明の実施例の保護範囲を制限するものではない。
【００５０】
なお、上記内容は、本発明の実施例の好ましい実施例及び使用される技術原理に過ぎない。当業者は、本発明の実施例がここで記載された特定の実施例に限らず、当業者にとって本発明の実施例の保護範囲を逸脱せずに様々な明らかな変更、調整と置換を行うことができるため、上記実施例によって本発明の実施例を詳細に説明したが、本発明の実施例は上記実施例に限定されず、本発明の実施例の構想を逸脱せずに、より多くの他の同等実施例を含んでもよく、本発明の実施例の範囲が添付される特許請求の範囲により確認されると理解すべきである。
【図１】
2020009403.tif 000003
【図２】
2020009403.tif 000004
【図３】
2020009403.tif 000005
【図４】
2020009403.tif 000006
【図５】
2020009403.tif 000007
【図６】
2020009403.tif 000008
【図７】
2020009403.tif 000009
【図８】
2020009403.tif 000010