JP6924786B2 - 産業用サーバのマイクロカーネルアーキテクチャの実現方法 - Google Patents
産業用サーバのマイクロカーネルアーキテクチャの実現方法 Download PDFInfo
- Publication number
- JP6924786B2 JP6924786B2 JP2019003424A JP2019003424A JP6924786B2 JP 6924786 B2 JP6924786 B2 JP 6924786B2 JP 2019003424 A JP2019003424 A JP 2019003424A JP 2019003424 A JP2019003424 A JP 2019003424A JP 6924786 B2 JP6924786 B2 JP 6924786B2
- Authority
- JP
- Japan
- Prior art keywords
- control program
- control
- scheduling
- program
- sub
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15053—Microcontroller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Description
システム起動の前に、OSカーネルは、それぞれの制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、それぞれの制御プログラムに対応するマイクロカーネルタスクの優先度及び/又はそれぞれの制御プログラムの動作時間の重み値に基づき、スケジューリング設定情報を生成することと、
前記OSカーネルは、前記スケジューリング設定情報に基づいて前記OSカーネルにおいて動作する制御プログラムを設定することと、
前記OSカーネルは、設定された制御プログラムを起動させることと、を含み、
前記スケジューリング設定情報に、各物理コアにおいて動作する制御プログラムの数と、各物理コアにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも1つが複数の物理コアにおいて動作することと、が含まれる産業用サーバのマイクロカーネルアーキテクチャの実現方法を提供する。
それぞれの制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、それぞれの制御プログラムに対応するマイクロカーネルタスクの優先度及び/又はそれぞれの制御プログラムの動作時間の重み値に基づき、制御プログラムの関連性を計算することと、
前記関連性に基づいて前記スケジューリング設定情報を生成することとが含まれる。
前記マイクロカーネルタスクのタイプ、マイクロカーネルタスクの優先度および制御プログラムの動作時間の重み値に基づき、関連性を計算すること、または、
前記マイクロカーネルタスクのタイプおよびマイクロカーネルタスクの優先度の重み値に基づき、関連性を計算すること、または、
前記マイクロカーネルタスクのタイプおよび制御プログラムの動作時間の重み値に基づき、関連性を計算することを含む。
仮想化マシンプログラムによってハードウェアに対して仮想化処理を行い、前記スケジューリング設定情報に基づいて少なくとも1つの物理コアに複数の制御プログラムを割り当てること、及び/又は、
前記スケジューリング設定情報に基づいて各物理コアにおいて動作する各制御プログラムのスケジューリングアルゴリズムを設定すること、及び/又は、
複数の物理コアを仮想化し、全ての制御プログラムのうちの少なくとも1つについて、前記スケジューリング設定情報に基づき、該制御プログラムを対応付けて複数の制御プログラムを取得し、取得した前記複数の制御プログラムを前記複数の物理コアに割り当てること、が含まれる。
粗粒度ロックによるスケジューリング方法を用いることにより、物理コアごとに1つのロックを対応させ、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムによって、単一の物理コアにおける複数の制御プログラムから1つの制御プログラムを特定し、特定した前記制御プログラムから前記単一の物理コアに対応するロックを取得し、前記単一の物理コアに対応するロックを取得した制御プログラムが単一の前記物理コアを独占してカーネルモード操作を実行し、それぞれの前記制御プログラムのマイクロカーネルタスクのタイプ、それぞれの前記制御プログラムのマイクロカーネルタスクの優先度及び/又はそれぞれの前記制御プログラムの動作時間に基づき、前記スケジューリング設定情報を生成すること、または、
細粒度ロックによるスケジューリング方法を用いることにより、物理コアごとに1つのロックを対応させ、全ての制御プログラムのうちの少なくとも1つについて、該制御プログラムの所要計算リソースに応じて制御プログラムを対応付けて複数の制御プログラムを取得し、前記複数の制御プログラム同士の関連性に基づいて前記複数の制御プログラムを異なる物理コアに割り当て、前記複数の制御プログラムのそれぞれが割り当てられた物理コアに対応するロックを取得し、ロックを取得した前記複数の制御プログラムのそれぞれが割り当てられた複数の物理コアにおいて同時にカーネルモード操作を実行して前記複数の制御プログラムの並行実行を実現し、それぞれの前記制御プログラムのマイクロカーネルタスクのタイプ、それぞれの前記制御プログラムのマイクロカーネルタスクの優先度及び/又はそれぞれの前記制御プログラムの動作時間に基づき、前記スケジューリング設定情報を生成すること、が含まれる。
第1タイマーの持続時間がメインフレーム時間であり、第2タイマーが前記メインフレーム時間内の各時間窓の順序に応じて次々に起動されるとともに、前記第2タイマーの持続時間が次々に各時間窓の持続時間と同じであるように、複数のタイマーを設定することと、
前記メインフレーム時間を周期とし、前記第1タイマーおよび前記第2タイマーを起動しながら、時刻表の設定に基づいて制御プログラムをスケジュールし、前記第2タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、前記第1タイマーのタイミングが到来すると、次の周期を開始することと、を含み、
前記時刻表は、前記各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む。
優先度メインインデックス番号ビットマップを走査して最高優先度に対応するメインインデックス番号を決定することと、
前記メインインデックス番号に対応する優先度サブインデックス番号ビットマップを走査して最高優先度に対応するサブインデックス番号を決定することと、
前記メインインデックス番号および前記サブインデックス番号に基づいて現在の最高優先度を計算し、前記最高優先度に対応する制御プログラムを決定することとを含む。
前記OSカーネルが、それぞれの制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、それぞれの制御プログラムに対応するマイクロカーネルタスクの優先度及び/またはそれぞれの制御プログラムの動作時間の重み値、及びそれぞれの制御プログラムのサービスニーズに基づき、スケジューリング設定情報を生成すること、が含まれる。
それぞれの制御プログラムについて、前記OSカーネルが、該制御プログラムのリソースニーズ及びマイクロカーネルによる計算リソースに基づいて該制御プログラムを複数のサブ制御プログラムに分割することと、
前記OSカーネルが、各サブ制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、各サブ制御プログラムに対応するマイクロカーネルタスクの優先度及び/または各サブ制御プログラムの動作時間の重み値、及び各サブ制御プログラムのサービスニーズに基づき、スケジューリング設定情報を生成することと、が更に含まれる。
それぞれの制御プログラムについて、前記OSカーネルが、該制御プログラムの計算量及び各物理コアにおけるマイクロカーネルによる計算能力の測量パラメータに基づいて該制御プログラムを複数のサブ制御プログラムを分割すること、或いは、
前記OSカーネルが、該制御プログラムのI/Oインターフェース数および各物理コアにおけるマイクロカーネルによるI/Oインターフェースの数に基づいて該制御プログラムを複数のサブ制御プログラムに分割すること、が含まれる。
前記OSカーネルが、それぞれの制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、それぞれの制御プログラムに対応するマイクロカーネルタスクの優先度及び/またはそれぞれの制御プログラムの動作時間の重み値、それぞれの制御プログラムのサービスニーズ、及びシステムによる基本プログラムブロックに基づき、スケジューリング設定情報を生成することが含まれ、前記スケジューリング設定情報は、各制御プログラムに含まれる各基本プログラムブロックと、各基本プログラムブロック同士の動作トリガー条件及び/またはサービスパラメータとを更に含む。
図1は、本発明の実施例に係る産業用サーバのマイクロカーネルアーキテクチャの実現方法のフローチャートであり、この方法は、産業用サーバに適用される。図2は、本発明の実施例に係る産業用サーバの構造模式図である。図2から分かるように、産業用サーバは、産業用サーバのハードウェアと、産業用サーバのハードウェアに基づいたOSカーネルと、OSカーネルがサポートする複数の物理コアと、を備え、各物理コアにおいて複数の仮想化マシンが動作可能となり、各仮想化マシンがいずれも1つのマイクロカーネルに対応し、制御プログラムがマイクロカーネルにおいて動作する。つまり、各物理コアにおいて複数の制御プログラムが動作可能となる。1つの物理コア上で複数の該制御プログラムを実行させるために、本発明の実施例は、仮想化技術によって、OSにおいて複数のマイクロカーネルを仮想化し、マイクロカーネル上で制御プログラムを実行させ、OSによって制御プログラムをスケジューリングする。例示的に、合計3つの物理コアa、bおよびcが存在し、物理コアaにおいて3つの制御プログラムa1、a2およびa3が動作し、物理コアbにおいて3つの制御プログラムb1、b2およびb3が動作し、物理コアcにおいて3つの制御プログラムc1、c2およびc3が動作している。
制御プログラムの所要カーネルサービスの計算リソースが大きいであれば、複数の物理コアにおいてこの制御プログラムのカーネルモード操作を同時に実行させてもよい。異なる制御プログラムの粒度で単一の制御プログラムについて分割して複数の制御プログラムを異なる物理コアに割り当てることにより、複数の物理コアが同時にカーネルモード操作を実行し、複数の制御プログラムを並列実行させることができる。マイクロカーネルは、プロセス間通信(IPC)、メモリ管理、タスクスケジューリングなどを含む複数のタイプに分けられる。本実施例において、二重カット処理アルゴリズムを用いて制御プログラムをカットして分類する。ここで、第1層のカット処理アルゴリズムは、制御プログラムスケジューリングのシステムオーバーヘッドを削減するために、動作時間ごとに複数の制御プログラムをなるべく小さなスケジュール可能な幾つかの周期の制御プログラムセットにカットする。第2層のカット処理アルゴリズムは、制御プログラムをより信頼性が高くてリアルタイム性が高い環境で動作させるために、第1層の制御プログラムのカット結果に基づき、いくつかの優先度レベルの異なる制御プログラムセットにカットする。最後、複数の制御プログラムの関連性を計算することにより、この計算手順は、マイクロカーネルタスクのタイプの重み値、マイクロカーネルタスクの優先度及び/又は制御プログラムの動作時間の重み値を組み合わせできる。関連性の高い制御プログラムを組合せて同一の物理コアに設定し、関連性の低い制御プログラムを異なる物理コアに設定することで、複数の物理コアが同時にカーネルモード操作を実行し、制御プログラムを完成する。
上述した技術態様に基づき、時刻表に基づいたスケジューリングアルゴリズムは、複数のタイマーを設定することと、メインフレーム時間を周期とし、第1タイマーおよび前記第2タイマーを起動しながら、時刻表の設定に基づいて制御プログラムをスケジュールし、第2タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、第1タイマーのタイミングが到来すると、次の周期を開始することとを含む。ここで、第1タイマーの持続時間がメインフレーム時間であり、第2タイマーがメインフレーム時間内の各時間窓の順序に応じて次々に起動するとともに、第2タイマーの持続時間が次々に各時間窓の持続時間と同じであり、時刻表は、各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む。
上述した技術態様に基づき、1つ又は複数の物理コアにおいて動作する制御プログラムの優先度を取得し、優先度を8ビットバイナリに示す。ここで、最初の3ビットがメインインデックス番号であり、最後の5ビットがサブインデックス番号でありる。メインインデックス番号に基づいて優先度メインインデックス番号ビットマップにおける対応ビットをマークし、サブインデックス番号に基づいて優先度サブインデックス番号ビットマップにおける対応ビットをマークする。
図7は、本発明の実施例4に係る産業用サーバのマイクロカーネルアーキテクチャの実現方法のフローチャートである。本実施例において、OSカーネルは、制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、制御プログラムに対応するマイクロカーネルタスクの優先度及び/または制御プログラムの動作時間の重み値、及び制御プログラムのサービスニーズに基づき、スケジューリング設定情報を生成する。図7に示すように、具体的には以下のステップを含む。
具体的な動作形態は、各サブ制御プログラムのサービスニーズにより決定される。
図11は、本発明の実施例に係る産業用サーバのマイクロカーネルアーキテクチャの実現装置の構造模式図である。この装置が図2に示した産業用サーバに設置され、この装置は、システム起動の前に、制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、マイクロカーネルタスクの優先度及び/又は動作時間の重み値に基づき、スケジューリング設定情報を生成するための生成モジュール11と、前記スケジューリング設定情報に基づいて前記OSカーネルにおいて動作する制御プログラムを設定するための設定モジュール12と、設定された制御プログラムを起動させる起動モジュール13と、を備える。前記スケジューリング設定情報に、各物理コアにおいて動作する制御プログラムの数と、各物理コアにおいて動作する制御プログラムのスケジューリングアルゴリズムと、各制御プログラムが複数の物理コアにおいて動作することとが含まれる。
図12は、本発明の実施例に係る産業用サーバの構造模式図である。図12に示すように、この産業用サーバは、プロセッサー20と、メモリー21と、入力装置22と、出力装置23とを備えてもよい。産業用サーバにおけるプロセッサー20の数は、1つ又は複数であってもよく、図12では1つのプロセッサー20を例とする。産業用サーバにおけるプロセッサー20、メモリー21、入力装置22及び出力装置23は、バスや他の形方式よって接続されてもよく、図12においてバスによって接続されることを例とする。
本発明の実施例は、プロセッサーにより実行される際に本発明のいずれかの実施例に係る産業用サーバのマイクロカーネルアーキテクチャの実現方法に関わる操作を実行することができる実行可能な命令を含む記憶媒体を更に提供する。
また、各機能ユニットの具体的な名称は、互いに区分しやすいためのものに過ぎず、本発明の実施例の保護範囲を制限するものではない。
Claims (10)
- 産業用サーバに適用され、前記産業用サーバにおいて産業用サーバのハードウェアに基づいたOSカーネルによって実現される産業用サーバのマイクロカーネルアーキテクチャの実現方法であって、
前記OSカーネルは、複数の物理コアをサポートし、各物理コアにおいて仮想化された複数のマイクロカーネルが動作し、前記マイクロカーネルのそれぞれにおいて一つずつのプログラムが実行され、これによって複数のプログラムが実行され、プロセス間通信、メモリ管理、タスクスケジューリングを提供し、
マイクロカーネル起動の前に、それぞれの制御プログラムに対応するマイクロカーネルタスクのタイプの重み値、それぞれの制御プログラムに対応するマイクロカーネルタスクの優先度及び/又はそれぞれの制御プログラムの動作時間の重み値に基づき、スケジューリング設定情報を生成する生成ステップと、
前記スケジューリング設定情報に基づいて前記制御プログラムを設定する設定ステップと、
設定された制御プログラムを起動させる起動ステップと、を含み、
前記スケジューリング設定情報に、各物理コアにおいて動作する制御プログラムの数と、各物理コアにおいて動作する制御プログラムのスケジューリングアルゴリズムと、全ての制御プログラムのうちの少なくとも1つが複数の物理コアにおいて動作することと、が含まれ、
前記制御プログラムに対応するマイクロカーネルタスクは、当該制御プログラムを実行させるタスクである、
ことを特徴とする産業用サーバのマイクロカーネルアーキテクチャの実現方法。 - 前記設定ステップに、
仮想化マシンプログラムによってハードウェアに対して仮想化処理を行い、前記スケジューリング設定情報に基づいて少なくとも1つの物理コアにおいて複数の制御プログラムを設定すること、及び/又は、
前記スケジューリング設定情報に基づいて各物理コアにおいて動作する各制御プログラムのスケジューリングアルゴリズムを設定すること、及び/又は、
複数の物理コアを仮想化し、全ての制御プログラムのうちの少なくとも1つについて、前記スケジューリング設定情報に基づき、該制御プログラムを対応付けて複数の制御プログラムを取得し、取得した前記複数の制御プログラムを前記複数の物理コアに割り当てること、が含まれ、
前記スケジューリングアルゴリズムは、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムを含む、ことを特徴とする請求項1に記載の方法。 - 前記生成ステップに、
制御プログラムの所要計算リソースが小さい場合、粗粒度ロックによるスケジューリング方法を用いることにより、物理コアごとに1つのロックを対応させ、時刻表に基づいたスケジューリングアルゴリズム又は優先度に基づいたスケジューリングアルゴリズムによって、単一の物理コアにおける複数の制御プログラムから1つの制御プログラムを特定し、特定した前記制御プログラムが前記単一の物理コアに対応するロックを取得して前記単一の物理コアを独占することで、カーネルモード操作を実行させることを含む前記スケジューリング設定情報を生成すること、または、
制御プログラムの所要計算リソースが大きい場合、細粒度ロックによるスケジューリング方法を用いることにより、物理コアごとに1つのロックを対応させ、全ての制御プログラムのうちの少なくとも1つについて、該制御プログラムの所要計算リソースに応じて該制御プログラムを対応付けて複数の制御プログラムを取得し、前記複数の制御プログラム同士の関連性に基づいて、前記複数の制御プログラムを、同じ物理コアに割り当てるか、それとも、異なる物理コアに割り当てるかを制御し、前記複数の制御プログラムのそれぞれが、割り当てられた物理コアに対応するロックを取得して割り当てられた複数の物理コアにおいて同時にカーネルモード操作を実行させて前記複数の制御プログラムの並行実行を実現させることを含む前記スケジューリング設定情報を生成すること、が含まれることを特徴とする請求項1に記載の方法。 - 前記時刻表に基づいたスケジューリングアルゴリズムは、
第1タイマーの持続時間がメインフレーム時間であり、第2タイマーが前記メインフレーム時間内の各時間窓の順序に応じて次々に起動されるとともに、それぞれの前記第2タイマーの持続時間が、対応する時間窓の持続時間と同じであるように、複数のタイマーを設定することと、
前記メインフレーム時間を周期とし、前記第1タイマーおよび前記第2タイマーを起動しながら、時刻表の設定に基づいて制御プログラムをスケジュールし、前記第2タイマーのタイミングが到来すると、次の制御プログラムをスケジュールし、かつ、前記第1タイマーのタイミングが到来すると、次の周期を開始することと、を含み、
前記時刻表は、前記各時間窓のスタート・ストップ時間と、各時間窓に対応する制御プログラムとを含む、ことを特徴とする請求項2に記載の方法。 - 前記生成ステップにおいて、
それぞれの制御プログラムのサービスニーズをさらに加味して、スケジューリング設定情報を生成することを特徴とする請求項1に記載の方法。 - 前記スケジューリング設定情報は、各制御プログラム同士の動作トリガー条件及び/又はサービスパラメータを更に含む、ことを特徴とする請求項5に記載の方法。
- 前記スケジューリング設定情報は、各制御プログラムについて、該制御プログラムに含まれる各サブ制御プログラムと、
該制御プログラムの各サブ制御プログラムが動作する物理コアと、
該制御プログラムの各サブ制御プログラム同士の動作トリガー条件及び/又はサービスパラメータと、を更に含み、
該制御プログラムの少なくとも1つのサブ制御プログラムが1つ又は複数の物理コアにおいて動作する、ことを特徴とする請求項5に記載の方法。 - それぞれの制御プログラムについて、該制御プログラムのリソースニーズ及び各マイクロカーネルによる計算リソースに基づいて該制御プログラムを複数のサブ制御プログラムに分割する分割ステップをさらに含み、
前記複数のサブ制御プログラムのそれぞれに対して前記生成ステップを実行することを特徴とする請求項7に記載の方法。 - 前記分割ステップに、
それぞれの制御プログラムについて、該制御プログラムの計算量と各物理コアにおけるマイクロカーネルによる計算能力の測量パラメータに基づいて該制御プログラムを複数のサブ制御プログラムに分割すること、または、
該制御プログラムのI/Oインターフェースの数および物理コアにおけるマイクロカーネルによるI/Oインターフェースの数に基づいて該制御プログラムを複数のサブ制御プログラムに分割することが含まれる、ことを特徴とする請求項8に記載の方法。 - 前記生成ステップにおいて、
システムによる基本プログラムブロックをさらに加味して、スケジューリング設定情報を生成し、
前記スケジューリング設定情報は、各制御プログラムに含まれる各基本プログラムブロックと、各基本プログラムブロック同士の動作トリガー条件及び/またはサービスパラメータとを更に含む、ことを特徴とする請求項5に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810745308.7 | 2018-07-09 | ||
CN201810745308 | 2018-07-09 | ||
CN201811296334.2 | 2018-11-01 | ||
CN201811296334.2A CN109445847B (zh) | 2018-07-09 | 2018-11-01 | 工业服务器微内核架构实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020009404A JP2020009404A (ja) | 2020-01-16 |
JP6924786B2 true JP6924786B2 (ja) | 2021-08-25 |
Family
ID=65549934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019003424A Active JP6924786B2 (ja) | 2018-07-09 | 2019-01-11 | 産業用サーバのマイクロカーネルアーキテクチャの実現方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10866833B2 (ja) |
EP (1) | EP3594812A1 (ja) |
JP (1) | JP6924786B2 (ja) |
CN (1) | CN109445847B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221645B (zh) * | 2019-11-14 | 2023-06-16 | 中国民航信息网络股份有限公司 | 一种航空作业处理方法和系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
US20030033345A1 (en) * | 2002-06-27 | 2003-02-13 | Keefer Christopher E. | Thread-based methods and systems for using the idle processing power of one or more networked computers to solve complex scientific problems |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
GB2412761C (en) * | 2004-04-02 | 2011-01-05 | Nokia Corp | Improvements in or relating to an operating system for a computing device |
US7765548B2 (en) * | 2005-02-17 | 2010-07-27 | Red Hat, Inc. | System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock |
CN101377745B (zh) * | 2007-08-28 | 2010-06-23 | 张玉昆 | 在各个域间实现数据共享的虚拟化计算机系统和方法 |
CN101226577A (zh) * | 2008-01-28 | 2008-07-23 | 南京大学 | 基于可信硬件与虚拟机的微内核操作系统完整性保护方法 |
US8776088B2 (en) * | 2009-03-30 | 2014-07-08 | Microsoft Corporation | Operating system distributed over heterogeneous platforms |
KR101658035B1 (ko) | 2010-03-12 | 2016-10-04 | 삼성전자주식회사 | 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 |
US8775781B2 (en) * | 2010-03-25 | 2014-07-08 | Microsoft Corporation | Intelligent boot device selection and recovery |
US9027022B2 (en) * | 2011-06-16 | 2015-05-05 | Argyle Data, Inc. | Software virtual machine for acceleration of transactional data processing |
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
US8973144B2 (en) * | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
CN105550040B (zh) * | 2015-12-29 | 2019-06-14 | 四川中电启明星信息技术有限公司 | 基于kvm平台的虚拟机cpu资源预留算法 |
CN107479943B (zh) | 2017-07-03 | 2020-02-21 | 北京东土科技股份有限公司 | 基于工业互联网操作系统的多操作系统运行方法及装置 |
CN108196501A (zh) * | 2017-12-22 | 2018-06-22 | 北京东土科技股份有限公司 | 一种基于plc的分布式控制系统的容灾方法、装置和系统 |
-
2018
- 2018-11-01 CN CN201811296334.2A patent/CN109445847B/zh active Active
-
2019
- 2019-01-09 US US16/243,414 patent/US10866833B2/en active Active
- 2019-01-10 EP EP19151212.8A patent/EP3594812A1/en not_active Ceased
- 2019-01-11 JP JP2019003424A patent/JP6924786B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2020009404A (ja) | 2020-01-16 |
US20200012519A1 (en) | 2020-01-09 |
CN109445847B (zh) | 2021-09-17 |
US10866833B2 (en) | 2020-12-15 |
CN109445847A (zh) | 2019-03-08 |
EP3594812A1 (en) | 2020-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7101127B2 (ja) | 産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバ | |
US10613883B2 (en) | Managing virtual machine migration | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN110383764B (zh) | 无服务器系统中使用历史数据处理事件的系统和方法 | |
Vinothina et al. | A survey on resource allocation strategies in cloud computing | |
US9135741B2 (en) | Interference-driven resource management for GPU-based heterogeneous clusters | |
CN113037538B (zh) | 分布式资源管理中低时延节点本地调度的系统和方法 | |
US9104456B2 (en) | Zone management of compute-centric object stores | |
US20170024251A1 (en) | Scheduling method and apparatus for distributed computing system | |
Sotiriadis et al. | The inter-cloud meta-scheduling (ICMS) framework | |
Compagnin et al. | Putting RUN into practice: implementation and evaluation | |
JP6924786B2 (ja) | 産業用サーバのマイクロカーネルアーキテクチャの実現方法 | |
Lettieri et al. | A study of I/O performance of virtual machines | |
JP2021518014A (ja) | メモリフットプリントを制限したオンデマンドコード実行 | |
Hsiao et al. | A usage-aware scheduler for improving MapReduce performance in heterogeneous environments | |
Gouasmi et al. | Cost-efficient distributed MapReduce job scheduling across cloud federation | |
Guo et al. | The improved job scheduling algorithm of Hadoop platform | |
JP6795536B2 (ja) | Vm性能保証システムおよびvm性能保証方法 | |
Kherbache et al. | Scheduling live-migrations for fast, adaptable and energy-efficient relocation operations | |
Tahir et al. | UDRF: Multi-resource fairness for complex jobs with placement constraints | |
Yu et al. | Taming non-local stragglers using efficient prefetching in MapReduce | |
Amoretti et al. | A modeling and simulation framework for mobile cloud computing | |
Becker et al. | On the QNX IPC: Assessing predictability for local and distributed real-time systems | |
Pop et al. | The Art of Scheduling for Big Data Science. | |
Compagnin et al. | Experimental evaluation of optimal schedulers based on partitioned proportionate fairness |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200603 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20201201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210401 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20210401 |
|
C11 | Written invitation by the commissioner to file amendments |
Free format text: JAPANESE INTERMEDIATE CODE: C11 Effective date: 20210413 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20210609 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20210615 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210802 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6924786 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |