JP7665495B2 - Process Schedule Method - Google Patents
Process Schedule Method Download PDFInfo
- Publication number
- JP7665495B2 JP7665495B2 JP2021183713A JP2021183713A JP7665495B2 JP 7665495 B2 JP7665495 B2 JP 7665495B2 JP 2021183713 A JP2021183713 A JP 2021183713A JP 2021183713 A JP2021183713 A JP 2021183713A JP 7665495 B2 JP7665495 B2 JP 7665495B2
- Authority
- JP
- Japan
- Prior art keywords
- extended schedule
- processing
- extended
- schedule
- event
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Description
本発明は、プロセススケジュール方法に係り、特に、リアルタイムOSにおいて、OS固有のプロセスのスケジューリングを拡張して、ユーザがプロセスの起動のトリガーとなるイベントと起動するプロセスの内容を定義しうるプロセススケジュール方法に関する。 The present invention relates to a process scheduling method, and in particular to a process scheduling method that extends OS-specific process scheduling in a real-time OS, allowing the user to define the events that will trigger the start of a process and the content of the process to be started.
従来、制御システムにおけるコントローラ上の制御アプリケーションソフトウェア(以下、アプリケーションソフトウェアを単に「アプリ」ともいう)のリアルタイム性を保証するためには、専用のRTOS(Real Time Operating System)を採用し、アプリのリアルタイム性を保証するのが一般的であった。しかしながら、RTOSは、リアルタイム性保証に特化した機能しか持たず、近年IoT(Internet of Things:モノのインターネット)時代に要求されている他機器との接続性やデータ処理のためのAI等の技術を実装・運用できない。そのため、Linux(登録商標)等の汎用OSの採用したコントローラが普及している。汎用OS上で従来の制御アプリを運用する場合、アプリの順序制御が汎用OSのスケジュールの特性に左右されてしまう。特に、アプリの異常が発生した場合、従来のRTOSではRTOS処理の延長で異常対策処理を行うケースが多い。それによって異常処理が優先的にかつ即時に処理されるため、システムの異常停止などの異常対策によってシステムの安全性を保つことができる。しかしながら、汎用OS上で同じ処理を実現するのは困難である。この解決策として汎用OSに対して、従来のRTOSのスケジューラ特性を実現する拡張したスケジューラを設ける方法がある。 Conventionally, in order to guarantee the real-time nature of control application software (hereinafter, application software is also simply referred to as "application") on a controller in a control system, it was common to adopt a dedicated RTOS (Real Time Operating System) to guarantee the real-time nature of the application. However, an RTOS only has functions specialized for guaranteeing real-time nature, and cannot implement and operate technologies such as AI for data processing and connectivity with other devices, which are required in the recent IoT (Internet of Things) era. For this reason, controllers that adopt general-purpose OS such as Linux (registered trademark) are becoming widespread. When operating conventional control applications on a general-purpose OS, the order control of the application is influenced by the schedule characteristics of the general-purpose OS. In particular, when an abnormality occurs in an application, in conventional RTOS, abnormality countermeasure processing is often performed as an extension of RTOS processing. As a result, abnormality processing is processed preferentially and immediately, and the safety of the system can be maintained by abnormality countermeasures such as abnormal system shutdown. However, it is difficult to realize the same processing on a general-purpose OS. One solution to this problem is to provide a general-purpose OS with an extended scheduler that realizes the scheduler characteristics of a conventional RTOS.
これに関連し、仮想計算機上で実行されるゲストOSのスケジュールに関しては、例えば、特許文献1がある。特許文献1では、仮想計算機のスケジュールのために、仮想計算機マネージャに、ゲストOSスケジューラを設け、計測されたゲストOSの動作周波数に基づいて、ゲストOSに対するCPUの割当を調整するように、ゲストOSをスケジュールする仮想計算機システムが開示されている。また、VoIPを実行するためのスレッド処理のスケジューリングに関する技術としては、例えば、特許文献2がある。特許文献2の呼処理装置は、呼処理イベントをキューイングする第1のスケジューラの外に、イベント処理スレッドを生成し、各イベントキュー管理オブジェクトから呼処理イベントを抽出して実行させる第2のスケジューラを設けている。
In relation to this, for example,
特許文献1は、仮想計算機マネージャ上に新たなスケジューラを設けて、ゲストOSのスケジューリングを行う技術であり、特許文献2に記載された呼処理装置では、第2のスケジューラを設けることにより、処理デッドライン内で実行するタスクの順序を再調整し、CPUの性能が低下しないようにしている。
しかしながら、これらの拡張されたスケジューラは、スケジューラを動作させるときと、そのスケジュール内容は、ユーザ側で変更することはできない。 However, with these enhanced schedulers, the time when the scheduler runs and the schedule contents cannot be changed by the user.
汎用OSにおけるアプリスケジュール方法に関して、スケジュールする時点とそのスケジュール内容をユーザが容易に変更可能にしたいと要請がある。それによって、従来、RTOS上で実行された制御アプリのスケジューラが汎用OS上でも実現可能となる。また、全アプリが動作する前に必要な処理をユーザ側で容易で変更できるため、多様なアプリのスケジュール方法が実現できる。 Regarding application scheduling methods in a general-purpose OS, there is a demand for the user to be able to easily change the scheduling time and schedule contents. This will make it possible to implement a scheduler for control applications that was previously executed on an RTOS on a general-purpose OS. In addition, because the user can easily change the processing required before all applications are run, a variety of application scheduling methods can be realized.
本発明の目的は、制御アプリのスケジューラを汎用OS上でも実現可能とし、スケジュールする時点とそのスケジュール内容をユーザが変更しうるプロセススケジュール方法を提供することにある。 The objective of the present invention is to provide a process scheduling method that enables a control application scheduler to be implemented on a general-purpose OS and allows the user to change the scheduling time and schedule contents.
本発明のプロセススケジュール方法は、汎用OS上で実行されるプロセスをスケジューリングする情報処理装置のプロセススケジュール方法であって、情報処理装置が、OSの特定されたOS内部処理関数の実行時に、OSとは別個にプロセスをスケジューリングする拡張スケジュールプロセス処理を起床するステップと、情報処理装置が、拡張スケジュールプロセス処理により、拡張スケジュール処理内容プログラムによるプロセスをスケジューリングするステップとを有するようしたものである。 The process scheduling method of the present invention is a process scheduling method for an information processing device that schedules a process executed on a general-purpose OS, and includes a step in which the information processing device wakes up an extended schedule process process that schedules a process separately from the OS when the OS executes a specified OS internal processing function, and a step in which the information processing device schedules a process according to an extended schedule process content program by the extended schedule process process.
本発明によれば、制御アプリのスケジューラを汎用OS上でも実現可能とし、スケジュールする時点とそのスケジュール内容をユーザが変更しうるプロセススケジュール方法を提供することができる。 The present invention makes it possible to implement a control application scheduler on a general-purpose OS, and provides a process scheduling method that allows the user to change the scheduling time and schedule contents.
以下、本発明に係る各実施形態を、図1ないし図18Bを用いて説明する。 Each embodiment of the present invention will be described below with reference to Figures 1 to 18B.
〔実施形態1〕
以下、本発明に係る実施形態1を、図1ないし図13を用いて説明する。
[Embodiment 1]
Hereinafter, a first embodiment of the present invention will be described with reference to FIGS. 1 to 13. FIG.
先ず、図1および図2を用いて実施形態1に係るプロセススケジュール方法が適用される情報処理装置の構成について説明する。 First, the configuration of an information processing device to which the process scheduling method according to the first embodiment is applied will be described with reference to Figures 1 and 2.
本発明のプロセススケジュール方法が適用される情報処理装置100は、図1に示されるように、機能構成として、拡張スケジュールイベント選定部101、拡張スケジュールイベントフック処理作成部110、拡張スケジュール処理内容プログラム登録部120、拡張スケジュール処理内容プログラム121、拡張スケジュールプロセス部130、アプリ140、OS(Operating System)150、記憶部160を備える。
As shown in FIG. 1, an
OS150は、コンピュータのオペレーション(操作・運用・運転)を司るハードウェアとソフトウェアの仲立ちとなるシステムソフトウェアであり、例えば、Linux(登録商標)やWindows(登録商標)のような汎用OSである。 OS 150 is system software that acts as an intermediary between the hardware and software that governs the operation (operation, management, and running) of the computer, and is, for example, a general-purpose OS such as Linux (registered trademark) or Windows (registered trademark).
本実施形態のOS150は、機能として、後に説明するスケジュール部151、拡張スケジュールイベントフック処理プログラム152、拡張スケジュールプロセス起床部153を備える。
The
ここで、拡張スケジュールとは、OS150本来のプロセススケジュールとは、別にユーザが新たにプロセスの実行順番や内容を定義して実行することを可能にするプロセスのスケジューリングである。
Here, the extended schedule is process scheduling that allows the user to define and execute new process order and contents separately from the original process schedule of
スケジュール部151は、OS固有のプロセスのスケジューリングを行う機能部である。
The
アプリ140は、生産的な役割や制御を行うOS150上で実行される応用ソフトウェアのプログラムである。アプリ140は、通常、複数存在し、OS150が管理するプロセス単位で実行される。
拡張スケジュールイベント選定部101は、後述する拡張スケジュールプロセス部130を起床(Wake Up)するために指定するOS150のカーネルのOS内部処理関数を選定する機能部である。
The extended schedule
拡張スケジュールイベントフック処理作成部110は、後述の拡張スケジュールイベントフック処理プログラム152を作成する機能部である。
The extended schedule event hook
拡張スケジュールイベントフック処理プログラム152は、後述の拡張スケジュールイベントフック処理テンプレート201に基づいて作成されるプログラムであり、後述の拡張スケジュールプロセス部130を起床するイベントとして選定された内部関数によるOSプロセスが、OS150上で実行されるときに、拡張スケジュールの実行のためのイベントのフック(取り掛かり)として実行されるプログラムである。拡張スケジュールイベントフック処理プログラム152は、OS150の内部処理として挿入され、その挿入の仕組みは、例えば、Linux(登録商標)の場合のFtraceのように、OS150が備えている機能を使用してもよい。OS150に挿入された拡張スケジュールイベントフック処理プログラム152は、後述する拡張スケジュールプロセス起床部153を呼び出し、拡張スケジュールプロセス部130の処理に必要なパラメータを、後述の拡張スケジュールイベント情報テーブル202に格納する。
The extended schedule event
拡張スケジュール処理内容プログラム登録部120は、後述の拡張スケジュール処理内容プログラム121を登録する機能部である。
The extended schedule processing content
拡張スケジュール処理内容プログラム121は、拡張スケジュールのプロセスの機能を実現するプログラムである。この拡張スケジュール処理内容プログラム121はユーザが作成したものであり、拡張スケジュールイベント選定部101で選定したOS150のカーネル内部処理関数の実行の延長で実行したい処理を実現するプログラムである。また、拡張スケジュール処理内容プログラム121は、通常、複数、存在してもよく、ユーザの設定に基づいて、拡張スケジュール処理内容プログラム登録部120により、後述の拡張スケジュール管理テーブル200に登録される。
The extended schedule
拡張スケジュールプロセス起床部153は、拡張スケジュールプロセス部130を起床させる機能部である。拡張スケジュールプロセス起床部153は、OS150の内部モジュールとして拡張スケジュールプロセス部130の初期化時にOS150にロードされる。拡張スケジュールプロセス起床部153のロードは、OS150が備えている機能を使用してもよい。
The extended schedule process wake-up
拡張スケジュールプロセス部130は、後述の拡張スケジュールイベント情報テーブル202で設定されたパラメータを使い、後述の拡張スケジュール管理テーブル200に登録されている拡張スケジュール処理内容プログラム121を実行する機能部である。
The extended
記憶部160は、プロセススケジュール方法を実現するためのデータを記憶する機能部である。
記憶部160には、拡張スケジュール管理テーブル200、拡張スケジュールイベントフック処理テンプレート201、拡張スケジュールイベント情報テーブル202が保持される。
The
The
なお、各テーブルの詳細は、後に説明する。 Details about each table will be explained later.
次に、図2を用いて、本発明のプロセススケジュール方法が適用される情報処理装置のハードウェア・ソフトウェア構成について説明する。
本発明のプロセススケジュール方法が適用される情報処理装置100は、図1に示されるように、ハードウェア構成は、例えば、図2に示されるパーソナルコンピュータのような一般的な情報処理装置で実現される。
Next, the hardware and software configuration of an information processing apparatus to which the process scheduling method of the present invention is applied will be described with reference to FIG.
An
情報処理装置100は、CPU(Central Processing Unit)302、主記憶装置304、ネットワークI/F(InterFace)306、表示I/F308、入出力I/F310、補助記憶I/F312が、バスにより結合された形態になっている。
The
CPU302は、情報処理装置100の各部を制御し、主記憶装置304に必要なプログラムをロードして実行する。
The
主記憶装置304は、通常、RAMなどの揮発メモリで構成され、CPU302が実行するプログラム、参照するデータが記憶される。
The
ネットワークI/F306は、ネットワーク5と接続するためのインタフェースである。
Network I/
表示I/F308は、LCD(Liquid Crystal Display)などの表示装置320を接続するためのインタフェースである。
The display I/
入出力I/F310は、入出力装置を接続するためのインタフェースである。図2の例では、キーボード330とポインティングデバイスのマウス332が接続されている。
The input/output I/
補助記憶I/F312は、HDD(Hard Disk Drive)350やSSD(Solid State Drive)などの補助記憶装置を接続するためのインタフェースである。
The auxiliary memory I/
HDD350は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。情報処理装置100には、拡張スケジュールイベント選定プログラム361、拡張スケジュールイベントフック処理作成プログラム362、拡張スケジュール処理内容プログラム登録プログラム363、拡張スケジュール処理内容プログラム121、拡張スケジュールプロセスプログラム364がインストールされている。
The
拡張スケジュールイベント選定プログラム361、拡張スケジュールイベントフック処理作成プログラム362、拡張スケジュール処理内容プログラム登録プログラム363、拡張スケジュールプロセスプログラム364は、それぞれ拡張スケジュールイベント選定部101、拡張スケジュールイベントフック処理作成部110、拡張スケジュール処理内容プログラム登録部120、拡張スケジュールプロセス部130の機能を実現するプログラムである。
The extended schedule
また、情報処理装置100には、一般的な応用プログラムとして、アプリ140と、基本ソフトウェアとしてのOS150がインストールされている。
In addition, the
また、OS150のプログラムとして、スケジュールプログラム、拡張スケジュールイベントフック処理プログラム152、拡張スケジュールプロセス起床プログラムを備えている(省略)。スケジュールプログラム、拡張スケジュールプロセス起床プログラムは、それぞれスケジュール部151、拡張スケジュールプロセス起床部153の機能を実現するプログラムである。拡張スケジュールイベントフック処理プログラム152は、既に説明したように、OS150のプログラムとして埋め込まれている。
Furthermore,
次に、図3ないし図5を用いて本発明のプロセススケジュール方法に用いられるデータ構造について説明する。 Next, the data structure used in the process scheduling method of the present invention will be explained using Figures 3 to 5.
拡張スケジュール管理テーブル200は、拡張スケジュールに関する情報を管理するテーブルであり、図3に示されるように、拡張スケジュールイベント識別子200a、イベントフック識別子200b、拡張スケジュール処理内容プログラム識別子200cの各フィールドを有する。
The extended schedule management table 200 is a table that manages information related to extended schedules, and as shown in FIG. 3, has fields for an extended
拡張スケジュールイベント識別子200aには、OSとは別個に定義する拡張スケジュールに関するイベント識別子を一意に特定するための識別子が格納される。拡張スケジュールイベント識別子は、例えば、拡張スケジュールイベント選定部101で選定されたOS150のカーネルのOS内部処理関数と対応付けて作成される。
The extended
イベントフック識別子200bには、拡張スケジュールイベントフック処理作成部110で作成される拡張スケジュールイベントフック処理プログラム152の識別子が格納される。
The
拡張スケジュール処理内容プログラム識別子200cには、OS150のスケジュール部22の延長としての拡張スケジュールに関するプロセスを実行するための拡張スケジュール処理内容プログラム121を一意に特定するための識別子が格納される。
The extended schedule processing
拡張スケジュールイベントフック処理テンプレート201は、拡張スケジュールイベントフック処理プログラム152のテンプレートであり、図4に示されるように、関数の形態で、パラメータ設定処理文201a、拡張スケジュールプロセス起床処理呼出文201bからなる。
The extended schedule event
パラメータ設定処理文201aは、OS150のカーネル内部処理関数で使用されるパラメータを設定する処理文である。図4に示される例では、OS150のカーネル内部処理関数で使用されるパラメータとして、拡張スケジュール管理テーブル200に格納されている拡張スケジュールイベント識別子を、PARM0に設定している。
The
拡張スケジュールプロセス起床処理呼出文201bは、拡張スケジュールプロセス起床部153の機能を実現するための拡張スケジュールプロセス起床関数をCALLする処理文である。拡張スケジュールプロセス起床関数には、パラメータとして、PARM0,PARM1,PARM2,…のようなパラメータが渡される。ここで、PARM0は、上記のパラメータ設定処理文201aで設定されたパラメータであり、PARM1,PARM2,…は、OS150のKernelから渡され、拡張スケジュールイベントで用いられパラメータである。
The extended schedule process wake-up
本テンプレートは、拡張スケジュールイベントフック処理作成部110で読み込まれ、これを利用して、拡張スケジュールイベントフック処理プログラム152が作成される。
This template is read by the extended schedule event hook
拡張スケジュールイベント情報テーブル202は、拡張スケジュールイベントのための情報が格納されるテーブルであり、図5に示されるように、拡張スケジュールイベント識別子202a、イベントフックパラメータ202bの各フィールドからなる。
The extended schedule event information table 202 is a table in which information for extended schedule events is stored, and as shown in FIG. 5, it consists of fields for an extended
拡張スケジュールイベント識別子202aは、拡張スケジュールイベントを一意に識別する識別子であり、図3の拡張スケジュール管理テーブル200の拡張スケジュールイベント識別子200aとリンクするものである。拡張スケジュールイベント識別子202aの値は、拡張スケジュールイベントフック処理プログラム152から渡される拡張スケジュールイベント識別子(図4のPARM0)を拡張スケジュールプロセス起床部153が設定する。
The extended
イベントフックパラメータ情報202bは、拡張スケジュールイベントフック処理プログラム152から渡され、拡張スケジュールイベントとして使用されるOS150のカーネル内部処理関数から渡されたパラメータ(図4のPARM1,PARM2,…)である。
The event
次に、図6を用いて本実施形態のプロセススケジュール方法の概要について説明する。
図6は、OSスケジュールと拡張スケジュールの関係の概要を示した図である。
先ず、OS150では、内部のスケジュール処理S01により、OSプロセス、アプリ実行によるユーザプロセスがスケジューリングされて、実行される(S01)。
Next, an outline of the process scheduling method of this embodiment will be described with reference to FIG.
FIG. 6 is a diagram showing an overview of the relationship between the OS schedule and the extended schedule.
First, in the
ユーザがOS内部処理関数に、拡張スケジュールイベントフック処理プログラム152を埋め込んでいるときに、該当するOSプロセスからスケジュールイベントフック処理プログラムによる拡張スケジュールイベントフック処理が実行される(S02)。
When a user embeds the extended schedule event
拡張スケジュールイベントフック処理では、拡張スケジュールプロセス起床処理が行われ、拡張スケジュールプロセス部により起床通知が行われる(S11)。 In the extended schedule event hook processing, the extended schedule process wake-up processing is performed, and a wake-up notification is sent by the extended schedule process unit (S11).
これを受けて、拡張スケジュールプロセス部による拡張スケジュール処理が行われ(S12)、拡張スケジュール処理内容プログラム実行によるプロセスがスケジューリングされて実行される。拡張スケジュールプロセス処理は、すべてのアプリ140によるプロセスより実行優先度を高く設定しておく。
In response to this, extended schedule processing is performed by the extended schedule processing unit (S12), and a process based on the execution of the extended schedule processing content program is scheduled and executed. The extended schedule process processing is set to have a higher execution priority than processes based on all of the
上記のように、OS固有のプロセススケジューリングの外に、ユーザがプロセスの内容と実行タイミングを定義可能な拡張スケジューリング機能を設けることより、特定のOS内部処理の延長ですべてのアプリ140によるプロセスが動作する前にユーザ側に処理したい処理をユーザが拡張スケジュール処理内容プログラム121を記述し、その実行プロセスを設定することが可能である。特定のOS内部処理時は、OSの保護モードの機能により、すべてのアプリ140によるプロセスが動作しないことが保証される。その処理の延長で実行される拡張スケジュールイベントフック処理プログラム152によるプロセスもOS内部で処理されるため、すべてのアプリ140によるプロセスが動作しないことが保証される。さらに、拡張スケジュールイベントフック処理プログラム152によるプロセスから呼び出される拡張スケジュールプロセス起床処理も同様にOS内部処理であるため、すべてのアプリ140によるプロセスが動作しないことが保証される。拡張スケジュールプロセス起床処理により、拡張スケジュールイベント情報テーブル202にパラメータが設定され、次に動作されるプロセスがOSのスケジュール処理によって選定される。拡張スケジュールプロセス処理は、すべてのアプリ140によるプロセスより実行優先度を高く設定しておく。そのため、拡張スケジュールプロセス部130が処理を終える前には、すべてのアプリ140によるプロセスが動作されないことが保証できる。そのため、特定の一つのアプリ140によるプロセスの異常が発生した場合、その異常対策処理としてユーザ定義の拡張スケジュール処理内容プログラム121を残りのアプリ140によるプロセスが動作する前に実行することが可能である。すなわち、OS150のスケジューリングの延長としての本発明の拡張スケジューリングユーザ設定の処理で実行することが可能となる。アプリによるプロセスに異常がある場合、Linux(登録商標)ではOS内部処理として例外処理関数が実行される。その例外処理関数を拡張スケジュールのイベントとして選定してその異常時に、システムのリブートや異常発生アプリ以外のアプリの実行をさせる内容を拡張スケジュール処理内容プログラムとしてユーザは柔軟に設定可能である。
As described above, by providing an extended scheduling function that allows the user to define the contents and execution timing of a process in addition to the process scheduling specific to the OS, the user can write the extended schedule
次に、図7ないし図12を用いて本実施形態のプロセススケジュール方法の処理について説明する。
これは、拡張スケジュールイベント選定部101により実行される処理である。
Next, the process schedule method of this embodiment will be described with reference to FIGS.
This is a process executed by the extended schedule
先ず、情報処理装置100の拡張スケジュールイベント選定部101のOS内部処理関数CallGraph管理部102は、OS内部処理関数CallGraph画面を表示する(S101)。OS内部処理関数CallGraph画面のユーザインタフェースは、後に詳説する。
First, the OS internal processing function
次に、ユーザは、OS内部処理関数CallGraph画面に表示されるOS内部処理関数を指定し、拡張スケジュールを実行するためのフックポイントを入力する(S102)。 Next, the user specifies the OS internal processing function to be displayed on the OS internal processing function CallGraph screen, and inputs the hook point for executing the extended schedule (S102).
次に、拡張スケジュールイベント選定部101は、拡張スケジュールを一意に識別するための拡張スケジュールイベント識別子を生成し、拡張スケジュール管理テーブル200に設定する(S103)。
Next, the extended schedule
次に、拡張スケジュールイベント選定部101は、入力されたフックポイントに対応するイベントフック識別子を生成し、拡張スケジュール管理テーブル200に設定する(S104)。
Next, the extended schedule
次に、図8を用いて拡張スケジュールイベントフック処理作成処理について説明する。
これは、図7に示した拡張スケジュールイベント選定処理の後に実行される処理であり、拡張スケジュールイベントフック処理作成部110により実行される処理である。
Next, the extended schedule event hook process creating process will be described with reference to FIG.
This is a process executed after the extended schedule event selection process shown in FIG.
先ず、情報処理装置100の拡張スケジュールイベントフック処理作成部110は、拡張スケジュールイベントフック処理テンプレート201を読み込む(S201)。
First, the extended schedule event hook
次に、拡張スケジュールイベントフック処理作成部110は、拡張スケジュールイベントフックプログラムのPARM0に、拡張スケジュール管理テーブル200から拡張スケジュールイベント識別子を読み込む(S202)。
Next, the extended schedule event hook
次に、拡張スケジュールイベントフック処理作成部110は、読み込んだ拡張スケジュールイベント識別子を代入するパラメータ設定処理文201aのコードを生成する(S203)。
Next, the extended schedule event hook
次に、拡張スケジュールイベントフック処理作成部110は、拡張スケジュールイベント識別子に関するイベントフック識別子と拡張スケジュールイベントフックプログラムを対応付け、入力されたフックポイントに対応するOS内部処理関数に、拡張スケジュールイベントフックプログラムを挿入する(S204)。
Next, the extended schedule event hook
イベントフック識別子と拡張スケジュールイベントフックプログラムを対応付けは、例えば、拡張スケジュールイベントフックプログラムの関数名をイベントフック識別子とすることにより行うことができる(図3、図4の例では、テンプレートのHOOKFUNC-♯から、イベントフック識別子として、HOOKFUNC-1~HOOKFUNC-nを生成している)。拡張スケジュールイベントフックプログラムを挿入するとは、例えば、Linux(登録商標)のFtraceユーティリティのように、OS150のカーネルのバイナリコードの対応する箇所にプログラムの実行コードを埋め込むことである。
The event hook identifier and the extended schedule event hook program can be associated with each other, for example, by using the function name of the extended schedule event hook program as the event hook identifier (in the example of Figures 3 and 4, HOOKFUNC-1 to HOOKFUNC-n are generated as event hook identifiers from the template HOOKFUNC-♯). Inserting an extended schedule event hook program means embedding the program's execution code in the corresponding location of the binary code of the kernel of
次に、図9を用いて拡張スケジュールイベントフック処理について説明する。
これは、図8に示した拡張スケジュールイベントフック処理作成処理の後に実行される処理であり、拡張スケジュールイベントフック処理内容プログラム152により実行される処理である。
Next, the extended schedule event hook process will be described with reference to FIG.
This is a process executed after the extended schedule event hook process creating process shown in FIG. 8, and is a process executed by the extended schedule event hook
先ず、拡張スケジュールイベントフック処理内容プログラム152は、PARM0に、拡張スケジュールイベント識別子を設定する(S301)。このためのパラメータ設定処理文201aのコードは、図8のS203で生成されている。
First, the extended schedule event hook
次に、拡張スケジュールイベントフック処理内容プログラム152は、呼び出されたOS内部処理関数のパラメータを、順に、PARM1,PARM2,…に設定する(S302)。
Next, the extended schedule event hook
次に、拡張スケジュールイベントフック処理内容プログラム152は、PARM0,PARM1,PARM2,…のパラメータを渡して、拡張スケジュールプロセス起床処理を呼び出す(S303)。
Next, the extended schedule event hook
次に、図10を用いて拡張スケジュール処理内容プログラム登録処理について説明する。
これは、拡張スケジュール処理内容プログラム登録部120によって実行される処理である。
Next, the extended schedule processing content program registration process will be described with reference to FIG.
This is a process executed by the extended schedule processing content
先ず、ユーザは、情報処理装置100に、拡張スケジュール処理内容プログラム121を指定し、かつ、拡張スケジュール処理内容プログラム121を実行する拡張スケジュールイベントを識別するための拡張スケジュールイベント識別子を入力する(S401)。
First, the user specifies the extended schedule
次に、情報処理装置100の拡張スケジュール処理内容プログラム登録部120は、入力された拡張スケジュールイベント識別子に対応し、拡張スケジュール処理内容プログラム121を一意に識別する拡張スケジュール処理内容プログラム識別子を、拡張スケジュール管理テーブル200の拡張スケジュール処理内容プログラム識別子200cに設定する(S402)。拡張スケジュール処理内容プログラム識別子は、例えば、実行ファイル名やFucntion pointerなどのプログラムを一意に識別できるものであればよい。
Next, the extended schedule processing content
次に、図11を用いて実施形態1に係る拡張スケジュール起床処理について説明する。
これは、拡張スケジュール起床処理部153によって実行されるプログラムであり、図8の拡張スケジュールイベントフック処理作成処理により、OS内部処理関数に挿入された拡張スケジュールイベントフックプログラムを実行することにより呼び出される処理である。
Next, the extended schedule wake-up process according to the first embodiment will be described with reference to FIG.
This is a program executed by the extended schedule wake-
先ず、情報処理装置100の拡張スケジュール起床処理部153は、呼びされたときのパラメータとして、PARM0,PARM1,PARM2,…を読み込む(図4参照)(S501)。
First, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、拡張スケジュールイベント情報テーブル202の拡張スケジュールイベント識別子202aにPARM0、イベントフックパラメータ202bに、PARM1,PARM2,…を代入する(S502)。PARM0は、拡張スケジュールイベントフックプログラムにより代入された拡張スケジュールイベント識別子であり、PARM1,PARM2,…は、OS内部処理関数より渡されたそれ以降のパラメータである。
Next, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、OS150のスケジューラ部151に、拡張スケジュールプロセス処理を、他のアプリ140によるプロセスより高い優先度に設定する(S503)。
Next, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、拡張スケジュールプロセス部130に、起動する拡張スケジュールイベント識別子を渡して、起床通知を行う(S504)。
Next, the extended schedule wake-
拡張スケジュール起床処理部153は、カーネル内部処理として動作するため、この処理が終了するまで、他アプリ140によるプロセスは動作しない。拡張スケジュールプロセス部130に起床通知は、OS内部処理関数から最初に拡張スケジュールプロセス処理を実行するために通知するものである。
The extended schedule wake-
さらに、拡張スケジュールプロセスは、他アプリよるプロセスより、高い優先度で動作することにし、他アプリによるプロセスの動作前に必ず拡張スケジュールプロセス処理を実行することを保証する。 Furthermore, the extended scheduled process is set to run with a higher priority than processes by other applications, ensuring that the extended scheduled process is always executed before processes by other applications run.
次に、図12を用いて実施形態1に係る拡張スケジュールプロセス処理について説明する。
これは、拡張スケジュールプロセス部130によって実行される処理であり、拡張スケジュール起床処理部153に起床通知されることを契機して実行される処理である。
Next, the extended schedule process according to the first embodiment will be described with reference to FIG.
This is processing executed by the extended
先ず、情報処理装置100の拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から起床通知があるか否かを判定し(S601)、起床通知があったときには(S601:YES)、S602に行き、起床通知がないときには(S601:NO)、waitする(S610)。
First, the extended
拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から起床通知があったときには、拡張スケジュールプロセス起床部153から渡された拡張イベント識別子をキーにして、拡張スケジュールイベント情報テーブル202を検索し、イベントフックパラメータを取得する(S602)。
When the extended schedule process wake-up
次に、拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から渡された拡張イベント識別子をキーにして、拡張スケジュール管理テーブル200を検索し、拡張スケジュール処理内容プログラム識別子を取得する(S603)。
Next, the extended
次に、拡張スケジュールプロセス部130は、S602で取得したイベントフックパラメータを渡して、拡張イベント識別子に該当する拡張スケジュール処理内容プログラム121によるプロセスを起動する(S604)。
Next, the extended
次に、図13を用いてOS内部処理関数CallGraph画面のユーザインタフェースについて説明する。
図13は、OS内部処理関数CallGraph画面のユーザインタフェースを説明する図である。
Next, the user interface of the OS internal processing function CallGraph screen will be described with reference to FIG.
FIG. 13 is a diagram for explaining the user interface of the OS internal processing function CallGraph screen.
OS内部処理関数CallGraph画面600は、図13に示されるように、OS150のカーネルで実行されるOS内部処理関数の処理の流れと関数呼び出し関係を表示する画面である。図中の黒丸601が関数Callを行う点である。黒丸601が交差する場所が二つ以上OS内部処理関数から同じ関数に対して、関数Callを行うことを示している。
The OS internal processing
OS150にフックポイントを埋め込み、拡張スケジューリングを行う際には、スケジュール用イベント多発を防ぐために、スケジュールイベントとして使いたいOSカーネル処理を厳選する必要がある。そのため、ユーザは、OS内部処理関数CallGraph画面600により、複数のカーネル処理から呼び出される共通部分が少ないOS内部処理関数を選択することが望ましい。
When embedding hook points in
ユーザは、そのCallGraphから拡張スケジュールイベントのフックポイントとして使いたいOS150のカーネルで実行されるOS内部処理関数を選定する。選定の際には、他のOS内部処理関数と重複しないOS内部処理関数を選定する。それによって拡張スケジュールプロセス処理が行われる回数を抑制することが可能である。
The user selects an OS internal processing function executed in the kernel of
このための図7のS102の拡張スケジュールを実行するためのフックポイントを入力する処理では、例えば、該当するOS内部処理関数表示602を指定し、マウスを右クリックし、コンテクストメニュー603を表示して、「フックポイント指定」のコマンドを入力する。
For this purpose, in the process of inputting a hook point for executing an extended schedule in S102 of FIG. 7, for example, the relevant OS internal
このとき、拡張スケジュールイベント識別子は、システムがOS内部処理関数名などより自動生成してもよいし、ダイアローグ(図示せず)などによりユーザに入力させるようにしてもよい。 At this time, the extended schedule event identifier may be automatically generated by the system from the OS internal processing function name, or may be input by the user via a dialogue (not shown), etc.
以上、本実施形態では、OSのカーネルで実行される内部処理関数に、フックポイントを設定して、起動のタイミングと処理内容を定義し、他のアプリより優先度の高い拡張スケジュールプロセスを起動することにより、OSのプロセスのスケジューリングとは別のあらたなプロセスの拡張スケジューリングを行うことができる。 As described above, in this embodiment, by setting a hook point in an internal processing function executed by the OS kernel, defining the startup timing and processing content, and starting an extended schedule process with a higher priority than other apps, it is possible to perform extended scheduling of a new process separate from the scheduling of the OS process.
したがって、これによれば、制御アプリのスケジューラが汎用OS上でも実現可能となり、そのスケジュールする時点とそのスケジュール内容をユーザが変更しうるプロセスのスケジューリングを行うことが可能になる。 This makes it possible for the control application's scheduler to be implemented on a general-purpose OS, enabling scheduling of processes whose scheduling time and schedule contents can be changed by the user.
例えば、特定の一つのアプリに異常が発生した場合、その異常対策処理をユーザ定義の拡張スケジュール処理内容として登録すれば、残りのアプリが動作する前にユーザ定義の処理を実行することが可能である。 For example, if an abnormality occurs in a specific app, the abnormality countermeasure process can be registered as a user-defined extended schedule process, and the user-defined process can be executed before the remaining apps are run.
〔実施形態2〕
以下、本発明に係る実施形態2を、図14ないし図18Bを用いて説明する。
[Embodiment 2]
A second embodiment of the present invention will be described below with reference to FIGS. 14 to 18B.
実施形態1では、OSのスケジュールの外に、起動タイミングと処理する内容を付け加えてユーザが定義可能な拡張スケジュールを行うことのできるプロセススケジュール方法について説明した。 In the first embodiment, we have described a process scheduling method that allows users to define extended schedules by adding startup timing and processing content in addition to the OS schedule.
本実施形態は、実施形態1と同様の思想のプロセススケジュール方法であるが、プロセッサとして、複数のCPUコアを有する情報処理装置を前提とすることが異なっている。 This embodiment is a process scheduling method based on the same concept as the first embodiment, but differs in that it is based on an information processing device having multiple CPU cores as the processor.
すなわち、実施形態1の情報処理装置100では、一つのCPU300がOS150とアプリ140を実行することとしていたが、本実施形態では、CPU300は、複数のCPUコアを有しており、それらの一つ一つについて、個別にプロセスを実行することが可能であるとする。そして、それらのCPUコアに対応して、それぞれの拡張スケジュールプロセス部を設けて、各々がOS150とは、別個の拡張スケジュールを実行することを可能とするものである。
In other words, in the
先ず、図14および図15を用いて実施形態2に係るプロセススケジュール方法が適用される情報処理装置の構成について説明する。 First, the configuration of an information processing device to which the process scheduling method according to the second embodiment is applied will be described with reference to Figures 14 and 15.
本発明のプロセススケジュール方法が適用される情報処理装置100は、機能構成として、図1に示した実施形態1とほぼ同様であるが、CPUコア301(後述)ごとに拡張スケジュールプロセス部130(図では、130a、130b、…と表記)が複数あることが異なっている。そして、実施形態1と同様に、各CPUコア301で実行されるアプリ140より高い優先度で拡張スケジュールプロセス部130の処理が実行される。
The
拡張スケジュールプロセス起床部22は、実施形態1と異なり、各CPUコア301で実行されるすべての拡張スケジュールプロセス部130を起床させる。
Unlike the first embodiment, the extended schedule process wake-up unit 22 wakes up all extended
また、記憶部160には、複数の拡張スケジュールプロセス部130のスケジューリングを調整するためのスケジュール排他フラグ210を有する。スケジュール排他フラグ210は、システムでただ一つ存在する。スケジュール排他フラグ210の設定の詳細は、後に説明する。
The
また、拡張スケジュールイベント情報テーブル202の形式が異なっている(詳細は、後述)。 In addition, the format of the extended schedule event information table 202 is different (details will be described later).
また、プロセススケジュール方法が適用される情報処理装置100は、ハードウェア構成として、図2に示した実施形態1とほぼ同様であるが、図15に示されるように、CPU300の中に、各々が個別にプロセスを実行可能な複数のCPUコア301(図では、301a、301b、…と表記)を有する。
The
次に、図16を用いて本発明のプロセススケジュール方法に用いられるデータ構造について説明する。
本実施形態で用いられるテーブルは、実施形態1と比較して拡張スケジュールイベント情報テーブル202のみ異なっている。
Next, a data structure used in the process scheduling method of the present invention will be described with reference to FIG.
The table used in this embodiment is different from that in the first embodiment only in the extended schedule event information table 202 .
本実施形態の拡張スケジュールイベント情報テーブル202は、図16に示されるように、拡張スケジュールイベント識別子202a、イベントフックパラメータ202b、実行CPUコア識別子202cの各フィールドからなり、図5に示した実施形態1の拡張スケジュールイベント情報テーブル202に実行CPUコア識別子202cが付け加わっていることのみ異なっている。
As shown in FIG. 16, the extended schedule event information table 202 of this embodiment is composed of fields for an extended
実行CPUコア識別子202cには、該当する拡張スケジュールイベント識別子に対応する拡張スケジュールのプロセスを実行するCPUコア301を一意に識別する識別子が格納される。これにより指定されたCPUコア301が、対応する拡張スケジュールプロセス部の処理と、拡張スケジュール処理内容プログラム121を走らせることによりスケジューリングされたプロセスを実行する。
The execution
次に、図17および図18A、図18Bを用いて本実施形態のプロセススケジュール方法の処理について説明する。
本実施形態では、実施形態1に示したプロセススケジュール方法と比較して、拡張スケジュール起床処理と拡張スケジュールプロセス処理のみ異なっている。
Next, the process schedule method of this embodiment will be described with reference to FIG. 17, FIG. 18A, and FIG. 18B.
In this embodiment, only the extended schedule wake-up processing and the extended schedule process processing are different from the process scheduling method shown in the first embodiment.
先ず、図17を用いて実施形態2に係る拡張スケジュール起床処理を説明する。
先ず、情報処理装置100の拡張スケジュール起床処理部153は、呼びされたときのパラメータとして、PARM0,PARM1,PARM2,…を読み込む(図4参照)(S701)。
First, the extended schedule wake-up process according to the second embodiment will be described with reference to FIG.
First, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、拡張スケジュールイベント情報テーブル202の拡張スケジュールイベント識別子202aにPARM0、イベントフックパラメータ202bに、PARM1,PARM2,…を代入する(S702)。PARM0は、拡張スケジュールイベントフックプログラムにより代入された拡張スケジュールイベント識別子であり、PARM1,PARM2,…は、OS内部処理関数より渡されたそれ以降のパラメータである。
Next, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、OS150のスケジューラ部151に、拡張スケジュールプロセス処理を、他のアプリによるプロセスより高い優先度に設定する(S703)。
Next, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、システムコールにより自分が実行されているCPUコアのCPUコア識別子を取得し、拡張スケジュールイベント情報テーブル202の実行CPUコア識別子202cに設定する(S704)。
Next, the extended schedule wake-
次に、拡張スケジュール起床処理部153は、全ての拡張スケジュールプロセス部130に、起動する拡張スケジュールイベント識別子を渡して、起床通知を行う(S705)。
Next, the extended schedule wake-
次に、図18A、図18Bを用いて実施形態2に係る拡張スケジュールプロセス処理について説明する。
先ず、情報処理装置100の拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から起床通知があるか否かを判定し(図18AのS801)、起床通知があったときには(S801:YES)、S802に行き、起床通知がないときには(S801:NO)、waitする(S820)。
Next, an extended schedule process according to the second embodiment will be described with reference to FIGS. 18A and 18B.
First, the extended
拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から起床通知があったときには、拡張スケジュールプロセス起床部153から渡された拡張イベント識別子をキーにして、拡張スケジュールイベント情報テーブル202より、実行CPUコア識別子を読み込む(S802)
次に、拡張スケジュールプロセス部130は、システムコールにより自分が実行されているCPUコアのCPUコア識別子を取得する(S803)。
When the extended
Next, the extended
そして、拡張スケジュールプロセス部130は、自分が実行されているCPUコアのCPUコア識別子と実行CPUコア識別子を比較し(S804)、一致するときには(S804:YES)、S805に行き、一致しないときには(S804:NO)、S801に戻る。
Then, the extended
自分が実行されているCPUコアのCPUコア識別子と実行CPUコア識別子が一致するときには、拡張スケジュール起床処理部153は、スケジュール排他フラグ210を参照し、ONかOFFかを判定する(S805)。
When the CPU core identifier of the CPU core on which it is being executed matches the execution CPU core identifier, the extended schedule wake-
スケジュール排他フラグ210がONのときには、他のCPUコアによりスケジューリングされており、そのスケジューリングによるプロセスが実行されていることを意味し、スケジュール排他フラグ210がOFFのときには、他のCPUコアによりスケジューリングがされておらず、新たにスケジューリングが可能であることを意味する。なお、スケジュール排他フラグ210は、システムの立ち上げ時には、OFFに初期化されることにする。
When the schedule
スケジュール排他フラグ210がONのときには(S805:ON)、OFFになるまで、waitする(S830)。
When the schedule
スケジュール排他フラグ210がOFFのときには(S805:OFF)、図18BのS806に行く。
When the schedule
スケジュール排他フラグ210がOFFのときには、拡張スケジュールプロセス部130は、スケジュール排他フラグ210をONに設定する(S806)。
When the schedule
次に、拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から渡された拡張イベント識別子をキーにして、拡張スケジュールイベント情報テーブル202を検索し、イベントフックパラメータを取得する(S807)。
Next, the extended
次に、拡張スケジュールプロセス部130は、拡張スケジュールプロセス起床部153から渡された拡張イベント識別子をキーにして、拡張スケジュール管理テーブル200を検索し、拡張スケジュール処理内容プログラム識別子を取得する(S808)。
Next, the extended
次に、拡張スケジュールプロセス部130は、S802で取得したイベントフックパラメータを渡して、拡張イベント識別子に該当する拡張スケジュール処理内容プログラムによるプロセスを起動する(S809)。
Next, the extended
次に、拡張スケジュールプロセス部130は、スケジュール排他フラグ210をOFFに設定する(S810)。
Next, the extended
本実施形態によれば、マルチコアシステムにおいて、各々のCPUごとに、起動のタイミングと処理内容を定義して、各々がOS150とは、別個の拡張スケジュールを実行することができる。
According to this embodiment, in a multi-core system, the startup timing and processing content can be defined for each CPU, and each can execute an extended schedule separate from the
100…情報処理装置、101…拡張スケジュールイベント選定部、102…OS内部処理関数CallGraph管理部、110…拡張スケジュールイベントフック処理作成部、120…拡張スケジュール処理内容プログラム登録部、121…拡張スケジュール処理内容プログラム、130…拡張スケジュールプロセス部、140…アプリ、150…OS(Operating System)、151…スケジュール部、152…拡張スケジュールイベントフック処理プログラム、153…拡張スケジュールプロセス起床部、160…記憶部、200…拡張スケジュール管理テーブル、201…拡張スケジュールイベントフック処理テンプレート、202…拡張スケジュールイベント情報テーブル、210…スケジュール排他フラグ 100...information processing device, 101...extended schedule event selection unit, 102...OS internal processing function CallGraph management unit, 110...extended schedule event hook processing creation unit, 120...extended schedule processing content program registration unit, 121...extended schedule processing content program, 130...extended schedule process unit, 140...application, 150...OS (operating system), 151...schedule unit, 152...extended schedule event hook processing program, 153...extended schedule process wake-up unit, 160...storage unit, 200...extended schedule management table, 201...extended schedule event hook processing template, 202...extended schedule event information table, 210...schedule exclusive flag
Claims (5)
前記情報処理装置が、前記OSの特定されたOS内部処理関数の実行時に、前記OSとは別個にプロセスをスケジューリングする拡張スケジュールプロセス処理を起床するステップと、
前記情報処理装置が、前記拡張スケジュールプロセス処理により、拡張スケジュール処理内容プログラムによるプロセスをスケジューリングするステップとを有することを特徴とし、
さらに、
前記情報処理装置が、ユーザから入力されたOS内部処理関数の情報にしたがって、拡張スケジュールプロセス処理を起床するOS内部処理関数を選定するステップを有することを特徴とするプロセススケジュール方法。 1. A process scheduling method for an information processing device for scheduling a process executed on a general-purpose OS, comprising:
a step of waking up an extended schedule process that schedules a process separately from the OS when the OS executes a specified internal OS processing function by the information processing device;
the information processing device includes a step of scheduling a process according to an extended schedule processing content program by the extended schedule process processing,
moreover,
11. A process scheduling method comprising the step of: selecting an OS internal processing function that initiates an extended schedule process in accordance with information on an OS internal processing function input by a user, said information processing device selecting an OS internal processing function that initiates an extended schedule process in accordance with information on an OS internal processing function input by a user.
前記情報処理装置が、前記OSの特定されたOS内部処理関数の実行時に、前記OSとは別個にプロセスをスケジューリングする拡張スケジュールプロセス処理を起床するステップと、
前記情報処理装置が、前記拡張スケジュールプロセス処理により、拡張スケジュール処理内容プログラムによるプロセスをスケジューリングするステップとを有することを特徴とし、
さらに、
前記情報処理装置が、ユーザから入力された拡張スケジュール処理内容プログラムの情報にしたがって、前記拡張スケジュールプロセス処理により起動される拡張スケジュール処理内容プログラムを登録するステップを有することを特徴とするプロセススケジュール方法。 1. A process scheduling method for an information processing device for scheduling a process executed on a general-purpose OS, comprising:
a step of waking up an extended schedule process that schedules a process separately from the OS when the OS executes a specified internal OS processing function by the information processing device;
the information processing device includes a step of scheduling a process according to an extended schedule processing content program by the extended schedule process processing,
moreover,
11. A process scheduling method comprising the step of: registering, by the information processing device, an extended schedule processing content program to be started by the extended schedule process processing, in accordance with information on the extended schedule processing content program input by a user.
前記情報処理装置が、前記OSの特定されたOS内部処理関数の実行時に、前記OSとは別個にプロセスをスケジューリングする拡張スケジュールプロセス処理を起床するステップと、
前記情報処理装置が、前記拡張スケジュールプロセス処理により、拡張スケジュール処理内容プログラムによるプロセスをスケジューリングするステップとを有することを特徴とし、
前記OS内部処理関数のコードとして、拡張スケジュールイベントフック処理プログラムが埋め込まれ、前記拡張スケジュールイベントフック処理プログラムにより、拡張スケジュールプロセス処理を起床する処理が行われることを特徴とするプロセススケジュール方法。 1. A process scheduling method for an information processing device for scheduling a process executed on a general-purpose OS, comprising:
a step of waking up an extended schedule process that schedules a process separately from the OS when the OS executes a specified internal OS processing function by the information processing device;
the information processing device includes a step of scheduling a process according to an extended schedule processing content program by the extended schedule process processing,
A process scheduling method, comprising the steps of: embedding an extended schedule event hook processing program as code for the OS internal processing function; and waking up an extended schedule process processing by the extended schedule event hook processing program.
前記情報処理装置が、前記OSの特定されたOS内部処理関数の実行時に、前記OSとは別個にプロセスをスケジューリングする拡張スケジュールプロセス処理を起床するステップと、
前記情報処理装置が、前記拡張スケジュールプロセス処理により、拡張スケジュール処理内容プログラムによるプロセスをスケジューリングするステップとを有することを特徴とし、
前記情報処理装置は、各々がプロセスを実行する複数のCPUコアを有し、
前記CPUコアごとに、排他的に前記拡張スケジュールプロセス処理を行うことを特徴とするプロセススケジュール方法。 1. A process scheduling method for an information processing device for scheduling a process executed on a general-purpose OS, comprising:
a step of waking up an extended schedule process that schedules a process separately from the OS when the OS executes a specified internal OS processing function by the information processing device;
the information processing device includes a step of scheduling a process according to an extended schedule processing content program by the extended schedule process processing,
The information processing device has a plurality of CPU cores each of which executes a process;
a process scheduling method for performing the extended schedule process processing exclusively for each of the CPU cores;
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021183713A JP7665495B2 (en) | 2021-11-10 | 2021-11-10 | Process Schedule Method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021183713A JP7665495B2 (en) | 2021-11-10 | 2021-11-10 | Process Schedule Method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023071103A JP2023071103A (en) | 2023-05-22 |
| JP7665495B2 true JP7665495B2 (en) | 2025-04-21 |
Family
ID=86395441
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021183713A Active JP7665495B2 (en) | 2021-11-10 | 2021-11-10 | Process Schedule Method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7665495B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001043091A (en) | 1999-07-30 | 2001-02-16 | Toshiba Corp | Priority conversion system, priority conversion method, and priority conversion device |
-
2021
- 2021-11-10 JP JP2021183713A patent/JP7665495B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001043091A (en) | 1999-07-30 | 2001-02-16 | Toshiba Corp | Priority conversion system, priority conversion method, and priority conversion device |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023071103A (en) | 2023-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107704314B (en) | Method and apparatus for migrating virtual machines | |
| US8321656B2 (en) | Timer use in extensible firmware interface compliant systems | |
| CN102866903B (en) | Decouple background work from foreground work | |
| JP5026494B2 (en) | Computer that starts at high speed | |
| CN106293880B (en) | Method and device for running Android application on Windows system | |
| US20110321034A1 (en) | Method for Improving the Performance of Computers | |
| US8312256B2 (en) | Display of a basic input/output system (BIOS) productivity display | |
| US8695001B2 (en) | Loading services based on a request and setting permission level to enable execution of commands or services exposed based on a role of requester | |
| US20250013494A1 (en) | Thread management methods and apparatuses | |
| JP7665495B2 (en) | Process Schedule Method | |
| US11726811B2 (en) | Parallel context switching for interrupt handling | |
| RU2636110C2 (en) | Device for information processing, method of information processing and program | |
| US20120144390A1 (en) | Customized computer image preparation and deployment including virtual machine mode | |
| JP4883492B2 (en) | Virtual machine management system, computer, and program | |
| CN119336497A (en) | Method, apparatus, device and storage medium for task stack memory management | |
| WO2023144939A1 (en) | Computer, control method, and control program | |
| CN114153502A (en) | Control method of startup items, storage medium and terminal equipment | |
| US12346745B2 (en) | Safe critical section operations for virtual machines with virtual central processing unit overcommit | |
| CN117950646B (en) | Software development method, device, computer equipment, storage medium and program product | |
| JP5982903B2 (en) | Information processing device | |
| CN120104196A (en) | A restart method and device for Android system | |
| Sinkkonen | Asymmetric multiprocessing of Linux and hard real-time systems | |
| CN114489824A (en) | Control method and device for quick start and electronic equipment | |
| CN118093234A (en) | Abnormality processing method and device for application program, computer equipment and storage medium | |
| CN121070572A (en) | Interrupt source switching method, device, electronic equipment and computer readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240222 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241211 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241224 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250207 |
|
| 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: 20250401 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250409 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7665495 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |