JP2019185423A - Execution method for application - Google Patents

Execution method for application Download PDF

Info

Publication number
JP2019185423A
JP2019185423A JP2018076056A JP2018076056A JP2019185423A JP 2019185423 A JP2019185423 A JP 2019185423A JP 2018076056 A JP2018076056 A JP 2018076056A JP 2018076056 A JP2018076056 A JP 2018076056A JP 2019185423 A JP2019185423 A JP 2019185423A
Authority
JP
Japan
Prior art keywords
application
thread
execution
functionalized
executed
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.)
Granted
Application number
JP2018076056A
Other languages
Japanese (ja)
Other versions
JP7015203B2 (en
Inventor
成昊 金
Seiko Kin
成昊 金
祐策 大塚
Yusaku Otsuka
祐策 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018076056A priority Critical patent/JP7015203B2/en
Publication of JP2019185423A publication Critical patent/JP2019185423A/en
Application granted granted Critical
Publication of JP7015203B2 publication Critical patent/JP7015203B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide an application execution platform that realizes an execution environment that can reliably manage and monitor an execution state of an application at a middle or an application layer on an OS, and that does not depend on special hardware or OS functions to achieve high-reliability functions required by the application execution state, in a mission-critical application operation system that requires high system reliability.SOLUTION: An application execution platform generates a common library that functionalizes an application and stores it as a functionalized application; generates and pools threads that execute functionalized applications in advance; receives an application start request from a user; associates an execution target application for which a start request has been made with a free thread selected from among the pooled threads, and uses the associated free thread to execute the functionalized application on the common library corresponding to the application to be executed.SELECTED DRAWING: Figure 1

Description

本発明は、アプリの実行状態の管理及び監視を可能にするアプリの実行方法に関する。   The present invention relates to an application execution method that enables management and monitoring of an application execution state.

情報システム及び制御システムにおける高信頼性を保証するために、運用するアプリの確実な実行状態の管理が要求される。しかし、アプリの実行状態は、OS内部で管理されることが多いことから、OS上のミドルレイヤやアプリのレイヤでの監視は容易ではない。特に、情報システム及び制御システムとして、アプリの終了状態を明確に把握し、該当のアプリが確保したメモリ等の計算機資源を確実に解放してシステムの高信頼性を保証するためには、OS内部の情報を取得するための方法を考案する必要がある。   In order to guarantee high reliability in the information system and the control system, management of the execution state of the application to be operated is required. However, since the execution state of the application is often managed inside the OS, it is not easy to monitor the middle layer or the application layer on the OS. In particular, as an information system and a control system, in order to clearly grasp the end state of an app and to reliably release computer resources such as memory secured by the app and to guarantee high system reliability, It is necessary to devise a method for obtaining information.

また、ハードウェアやOSの世代交代によりアプリを移植するための開発投資を最小限に抑えるニーズが多いため、アプリ実行状態の管理がOS上のミドルレイヤやアプリレイヤで実現されることが望ましい。その一つの手法として、例えばLinuxの場合、OSとアプリ間での通信手段であるNetLink等のインタフェースを活用して、アプリの実行状態を監視することができる。ただし、その監視方法において、OSからのアプリ状態通知イベントを確実に受け取るためには、別のアプリが必要であり、さらにそのイベントを取りこぼさないためには、該当アプリを高優先度で実行する必要がある。   In addition, since there is a great need for minimizing development investment for porting applications by changing generations of hardware and OS, it is desirable that management of the application execution state is realized in the middle layer or application layer on the OS. As one of the techniques, for example, in the case of Linux, the execution state of an application can be monitored using an interface such as NetLink which is a communication means between the OS and the application. However, in the monitoring method, another application is required to reliably receive the application state notification event from the OS, and in order not to miss the event, the application is executed with high priority. There is a need.

一方、制御システムのような制御処理以外のアプリによって性能干渉が発生するようなアプリを運用ことは困難である。そのため、OS上のミドルレイヤまたはアプリレイヤで運用するアプリの実行状態を管理できる手法が必要である。例えば、非特許文献1に記載の「Java VM」は、ミドルレイヤにおいてJava言語で書かれたアプリを制御・管理できる技術であり、そのアプリの実行状態の監視は容易である。しかし、Java言語ではない言語で書かれたアプリの運用は困難であり、特に制御システムのようなリアルタイムの性能要件が厳しい環境では、C言語かアセンブラで書かれたアプリの運用が大半であり、その技術の適用には困難を伴う。   On the other hand, it is difficult to operate an application in which performance interference occurs due to an application other than control processing such as a control system. Therefore, there is a need for a technique capable of managing the execution state of an application operated on the middle layer or application layer on the OS. For example, “Java VM” described in Non-Patent Document 1 is a technology that can control and manage an application written in the Java language in the middle layer, and it is easy to monitor the execution state of the application. However, it is difficult to operate apps written in languages other than Java, especially in environments with strict real-time performance requirements such as control systems, most apps are written in C or assembler. There are difficulties in applying the technology.

また、特許文献1には、アプリのイベント情報を管理するイベント管理手段として複数のイベント通知スレッドを有し、このイベント管理手段を用いて複数のアプリの動作を制御する技術が示されている。
さらに、特許文献2には、スレッドのコンパイル時に、スレッドの内部情報を読み出すような別処理をリンクする手順に関する技術が示されている、
Japanese Patent Application Laid-Open No. 2004-151561 discloses a technique that has a plurality of event notification threads as event management means for managing event information of an application, and controls the operations of the plurality of applications using the event management means.
Furthermore, Patent Document 2 discloses a technique relating to a procedure for linking another process such as reading internal information of a thread at the time of thread compilation.

特開2003−280926号公報JP 2003-280926 A 特開2005−242879号公報JP 2005-242879 A

The Java Virtual Machine SpecificationThe Java Virtual Machine Specification

システムの高信頼化が必要なミッションクリティカルなアプリを運用するシステムにおいて、アプリの実行状態の管理及び監視が確実にできるアプリの実行環境をOS上のミドルレイヤまたはアプリレイヤで実現し、アプリの実行状態によって必要な高信頼性機能の実現を容易にしたいニーズがある。さらには、ハードウェアやOSの世代交代によってアプリを移植する必要が発生するが、そのための開発投資を最小限に抑えたいニーズがある。
それらに応えるために、本発明の目的は、特殊なハードウェアやOSの機能に依存しないアプリの実行基盤を実現提供することである。
In a system that operates mission-critical apps that require high system reliability, an app execution environment that can reliably manage and monitor the execution status of apps is realized in the middle layer or app layer on the OS, and app execution There is a need to facilitate the realization of the required high reliability function depending on the state. In addition, there is a need to minimize development investment for the purpose of porting apps due to generational changes in hardware and OS.
In order to meet these requirements, an object of the present invention is to realize and provide an application execution platform that does not depend on special hardware or OS functions.

本発明は、前記課題を解決するために、アプリを関数化して関数化アプリとして格納する共有ライブラリを生成し、関数化アプリを実行するスレッドを予め生成してプールし、ユーザからアプリの開始要求を受けて、当該開始要求があった実行対象のアプリとプールしたスレッドから選択した空きのスレッドとを関連付け、当該関連付けた空きのスレッドを使って実行対象のアプリに対応する共通ライブラリ上の関数化アプリを実行することを特徴とする。   In order to solve the above-mentioned problem, the present invention generates a shared library for functionalizing an application and storing it as a functionalized application, generating and pooling a thread for executing the functionalized application in advance, and requesting to start the application from the user In response, the execution target application for which the start request has been issued is associated with a free thread selected from the pooled threads, and the function is created on the common library corresponding to the execution target application using the related free thread. It is characterized by executing an application.

本発明によれば、処理性能要件が厳しい制御システムにおいて、特殊なハードウェエアやOSの機能に依存せずにアプリの実行状態を管理及び監視することが可能となる。また、アプリのソースレベルの修正を要求しないため、ミドルレイヤ及びアプリレイヤで、管理対象のアプリの実行状態を管理及び監視することが可能であり、特にアプリの終了状態をもって実現する計算機資源の開放等といった高信頼性を必要とする機能の実現が容易となる。   According to the present invention, an execution state of an application can be managed and monitored in a control system with strict processing performance requirements without depending on special hardware and OS functions. In addition, since the application source level is not required to be corrected, it is possible to manage and monitor the execution state of the application to be managed in the middle layer and the application layer, and in particular, release of computer resources realized by the application end state. Thus, it is easy to realize a function that requires high reliability.

本発明の実施例に係るハードウェア及びソフトウェアプログラムの構成の一例を示す図である。It is a figure which shows an example of a structure of the hardware which concerns on the Example of this invention, and a software program. アプリ(AP)管理テーブルの構成を示す図である。It is a figure which shows the structure of an application (AP) management table. スレッド管理テーブルの構成を示す図である。It is a figure which shows the structure of a thread management table. スレッドイベントテーブルの構成を示す図である。It is a figure which shows the structure of a thread event table. 共有ライブラリ化部処理が実行する処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow which a shared library part process performs. スレッドプール管理部が実行する処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow which a thread pool management part performs. アプリ開始処理の処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow of an application start process. スレッド処理部が実行する処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow which a thread process part performs. アプリ実行処理の処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow of an application execution process. スレッド監視部が実行する処理フローの詳細を示す図である。It is a figure which shows the detail of the processing flow which a thread monitoring part performs.

通常のOS上で実行されるアプリの処理ロジックのソースをコンパイルすると、OS上の1つのプロセスとして実行されるバイナリが生成される。本発明では、実行状態を管理対象のアプリをOS上の一つのプロセスではなく、1つの関数としてコンパイルし計算機のメモリ上にロード可能なアプリの共有ライブラリとして生成すると共に、この関数化したアプリを実行するスレッドを生成し運用する。   When a source of processing logic of an application executed on a normal OS is compiled, a binary executed as one process on the OS is generated. In the present invention, an application whose execution state is to be managed is generated as a shared library of applications that can be loaded into the memory of a computer after being compiled as a single function instead of a single process on the OS. Generate and operate threads to be executed.

また、本発明は、前記スレッドにおいては監視対象のアプリは一つの関数として扱うため、関数の終了をもって該当アプリの実行終了を確実に把握する。さらに、関数化されたアプリのエントリポイントやそのアプリに引き渡す引数は、外部テーブルを設けて指定または設定し、スレッドプールから1つのスレッドを選び、該スレッドがその外部テーブルから関数化されたアプリのバイナリの実行のためのパラメータを取得する。   Further, according to the present invention, since the monitoring target application is handled as one function in the thread, the execution end of the corresponding application is surely grasped at the end of the function. Furthermore, the entry point of the functionalized application and the argument to be passed to the application are specified or set by providing an external table, one thread is selected from the thread pool, and the thread is functionalized from the external table. Get the parameters for binary execution.

以下に、本発明を実施するための形態として、実施例について図面を用いて詳細に説明する。なお、図面においては、アプリ及びライブライの表記を「AP」及び「Lib」としている。   Hereinafter, embodiments will be described in detail with reference to the drawings as modes for carrying out the present invention. In the drawings, the notations of the application and the library are “AP” and “Lib”.

図1は、本発明の実施例に係るハードウェア及びソフトウェアプログラムの構成の一例を示す図である。
ハードウェア構成としては、OSを含むソフトウェアプログラムを実行する演算装置11、前記プログラム及びその実行に必要なデータを格納する記憶装置12を備える。ここで、記憶装置12は、例えばRAMやハードディスクなどである。また、演算装置11は、1つ以上のCPU11−Aを備える。
FIG. 1 is a diagram illustrating an example of the configuration of hardware and software programs according to an embodiment of the present invention.
The hardware configuration includes an arithmetic device 11 that executes a software program including an OS, and a storage device 12 that stores the program and data necessary for the execution. Here, the storage device 12 is, for example, a RAM or a hard disk. The arithmetic device 11 includes one or more CPUs 11-A.

ソフトウェアプログラムの構成について説明する。
OS21は、OSの上で動作するアプリをスケジュールする機能、演算装置11及び記憶装置12のような計算機資源の排他制御機能及びアプリ間の協調のための動作制御用として同期イベントの発生制御機能を有する。また、LinuxやWindowsのような汎用OSが備える機能も有する。
The configuration of the software program will be described.
The OS 21 has a function for scheduling an application that runs on the OS, an exclusive control function for computer resources such as the computing device 11 and the storage device 12, and a generation control function for a synchronous event for operation control for cooperation between applications. Have. In addition, it has a function provided in a general-purpose OS such as Linux or Windows.

アプリ51は、少なくとも1つ以上存在し、演算装置11が実行可能な命令コードからなるバイナリを生成するためのソースファイルである。また、アプリ51は、コンパイラによってアセンブルコードに変換され、演算装置11が実行可能なバイナリに変換される。バイナリに変換されたアプリ51は、OS21によって、OS21が管理するプロセス単位で実行される。   The application 51 is a source file for generating at least one binary that includes instruction codes that can be executed by the arithmetic device 11. The application 51 is converted into an assembly code by a compiler and converted into a binary executable by the arithmetic device 11. The application 51 converted into binary is executed by the OS 21 in units of processes managed by the OS 21.

共有ライブラリ(Lib)化部31は、コンパイラによって通常プロセス単位で実行されるバイナリに変換されるアプリ51を、共有ライブラリ53の1つの関数単位のバイナリに変換するための処理機能を有する。この機能により、1つ以上のアプリ51をそれぞれ関数単位でバイナリ変換した後、コンパイラ機能を利用し共有ライブラリ53を生成する。   The shared library (Lib) conversion unit 31 has a processing function for converting an application 51 that is converted into a binary that is normally executed in a process unit by a compiler into a binary in one function unit of the shared library 53. With this function, after one or more applications 51 are binary-converted in units of functions, a shared library 53 is generated using a compiler function.

スレッドプール管理部41は、共有ライブラリ53に含まれる関数化されたアプリ51のバイナリを実行する1つ以上のスレッド61を生成管理する。スレッド61は、OS21が管理するプロセスまたはスレッドであり、スレッドプール管理部41がOS21の機能を用いて生成する。   The thread pool management unit 41 generates and manages one or more threads 61 that execute the binaries of the functionalized application 51 included in the shared library 53. The thread 61 is a process or thread managed by the OS 21, and is generated by the thread pool management unit 41 using the function of the OS 21.

また、スレッドプール管理部41は、スレッド処理部42及びスレッド監視部43と、テーブルとして、アプリ(AP)管理テーブル44、スレッド管理テーブル45並びにスレッドイベントテーブル46とを備える。   The thread pool management unit 41 includes a thread processing unit 42 and a thread monitoring unit 43, and an application (AP) management table 44, a thread management table 45, and a thread event table 46 as tables.

スレッド処理部42は、スレッド61が実行する処理機能であり、スレッド監視部43は、監視スレッド62が実行する処理機能である。ここで、監視スレッド62は、スレッドプール管理部41により生成され、スレッド61の異常監視を行う。   The thread processing unit 42 is a processing function executed by the thread 61, and the thread monitoring unit 43 is a processing function executed by the monitoring thread 62. Here, the monitoring thread 62 is generated by the thread pool management unit 41 and monitors the abnormality of the thread 61.

各テーブル(アプリ管理テーブル44、スレッド管理テーブル45及びスレッドイベントテーブル46)について、図2〜4を用いて順に説明する。
図2は、アプリ管理テーブル44の構成を示す図である。アプリ管理テーブル44は、従来アプリ51が運用されている計算機環境上において、OSレイヤで管理運用されるテーブルである。アプリ管理テーブル44によって、アプリ51の実行状態が監視でき、システムに必要な高信頼機能が実現できる。例えば、該当アプリに割り当てられた計算機資源の解放などがある。本実施例では、共有ライブラリ化部31とスレッドプール管理部41とによって、OS21上のミドルレイヤで運用可能である。
Each table (application management table 44, thread management table 45, and thread event table 46) will be described in order with reference to FIGS.
FIG. 2 is a diagram illustrating the configuration of the application management table 44. The application management table 44 is a table managed and operated in the OS layer in the computer environment where the conventional application 51 is operated. With the application management table 44, the execution state of the application 51 can be monitored, and a highly reliable function necessary for the system can be realized. For example, there is a release of computer resources allocated to the corresponding application. In the present embodiment, the shared library unit 31 and the thread pool management unit 41 can be operated in the middle layer on the OS 21.

アプリ管理テーブル44は、アプリ(AP)51を識別するためのアプリ(AP)識別子44−A及びアプリ51の実行状態を格納するアプリ(AP)状態44−Bから構成される。アプリ51の実行状態としては、アプリ51を実行するためのスレッド61が割り当てられていることを示す‘D’、アプリ51のバイナリの実行開始を表す‘S’、アプリ51のバイナリ実行中を示す‘R’及びアプリ51の実行終了を表す‘E’の各値をもつ。ここで、‘S’及び‘E’の実行状態は、スレッド61で処理されるスレッド処理部42で設定される。その他の状態は、スレッドプール管理部41が、アプリ51のバイナリの処理内容によって設定する。   The application management table 44 includes an application (AP) identifier 44 -A for identifying the application (AP) 51 and an application (AP) state 44 -B for storing the execution state of the application 51. As the execution state of the application 51, 'D' indicating that the thread 61 for executing the application 51 is allocated, 'S' indicating the binary execution start of the application 51, and indicating that the application 51 is being executed in binary. Each of “R” and “E” indicating the end of execution of the application 51 is included. Here, the execution states of ‘S’ and ‘E’ are set by the thread processing unit 42 processed by the thread 61. The other states are set by the thread pool management unit 41 according to the binary processing content of the application 51.

図3は、スレッド管理テーブル45の構成を示す図である。スレッド管理テーブル45は、スレッドプール管理部41が生成するスレッド61の最大数の値を格納するスレッドMAX数45−A、監視スレッド62のスレッド監視部43における処理結果を格納する異常フラグ45−B、スレッド61を識別するためのスレッド識別子45−C及びスレッド61が実行するアプリ51の識別子を格納する45−Dから構成される。スレッドMAX数45−Aは、ユーザによって予め設定される。異常フラグ45−Bは、異常状態を表す‘1’及び正常状態を表す‘0’のいずれの値を格納する。   FIG. 3 is a diagram showing the configuration of the thread management table 45. The thread management table 45 includes a thread MAX number 45-A that stores the value of the maximum number of threads 61 generated by the thread pool management unit 41, and an abnormality flag 45-B that stores a processing result in the thread monitoring unit 43 of the monitoring thread 62. , The thread identifier 45-C for identifying the thread 61, and 45-D for storing the identifier of the application 51 executed by the thread 61. The thread MAX number 45-A is preset by the user. The abnormality flag 45-B stores either “1” indicating an abnormal state or “0” indicating a normal state.

図4は、スレッドイベントテーブル46の構成を示す図である。スレッドイベントテーブル46は、スレッドプール管理部41とスレッド61との間で引き渡されるパラメータを設定するもので、スレッド61の数分だけレコード行が存在する。各レコード行には、スレッドプール管理部41がイベントを引き渡したいスレッドを識別するためのスレッド識別子46−A及び引き渡すパラメータから構成される。   FIG. 4 is a diagram showing the configuration of the thread event table 46. The thread event table 46 sets parameters passed between the thread pool management unit 41 and the thread 61, and there are as many record rows as the number of threads 61. Each record line includes a thread identifier 46-A for identifying a thread to which the thread pool management unit 41 wants to deliver an event and a parameter to be delivered.

このパラメータとしては、スレッド管理用パラメータ46−B及びアプり(AP)実行用パラメータ46−Cを備える。さらに、スレッド管理用パラメータ46−Bとしては、スレッドの優先度46−B1と計算機資源のアクセスを制御するための資源アクセス権限46−B2とを有する。また、アプリ実行用パラメータ46−Cは、スレッド61が実行するアプリ51の関数化されたバイナリを実行するために用いられる。   These parameters include a thread management parameter 46-B and an application (AP) execution parameter 46-C. Further, the thread management parameter 46-B has a thread priority 46-B1 and a resource access authority 46-B2 for controlling access to computer resources. Further, the application execution parameter 46-C is used to execute a function-modified binary of the application 51 executed by the thread 61.

スレッド管理用パラメータ46−Bの中のスレッドの優先度46−B1は、従来アプリ51を一つのプロセスとして実行した計算機環境上のOSで備えられたスケジューラを、OS21上のミドルウェアレイヤのスレッドプール管理部41で実現するためのパラメータである。例えば、優先度ベースのリアルタイムスケジュールは、優先度46−B1で優先度を設定すればよい。設定した優先度は、従来アプリのバイナリを共有ライブラリ化部31によって、共有ライブラリ53上の関数化されたバイナリを実行するスレッド61の優先度としてOS21に反映される。これにより、従来アプリを運用したスケジューラを外付けで柔軟に実現することができる。   The thread priority 46-B1 in the thread management parameter 46-B is based on the scheduler provided by the OS on the computer environment in which the conventional application 51 is executed as one process, and the thread pool management of the middleware layer on the OS 21. This is a parameter to be realized by the unit 41. For example, in the priority-based real-time schedule, the priority may be set with the priority 46-B1. The set priority is reflected in the OS 21 as the priority of the thread 61 for executing the binarized function on the shared library 53 by the shared library forming unit 31 using the binary of the conventional application. Thereby, the scheduler which operated the conventional application can be flexibly realized by an external connection.

また、アプリ実行用パラメータ46−Cをスレッド61に渡すことができるため、従来アプリの処理が、関数化されたバイナリでも実現できる。例えば、webサーバのアプリを共有ライブラリ化部31によって関数化し、スレッド61によって実行することを可能とし、その処理の開始と終了とをOS21のミドルレイヤで確実に監視することを可能とする。なお、アプリ処理の開始及び終了の監視処理の詳細については、図9を用いて後述する。   In addition, since the application execution parameter 46-C can be passed to the thread 61, the processing of the conventional application can be realized by a functionalized binary. For example, the web server application can be functionalized by the shared library unit 31 and executed by the thread 61, and the start and end of the processing can be reliably monitored by the middle layer of the OS 21. Details of the monitoring process of the start and end of the application process will be described later with reference to FIG.

次に、共有ライブラリ化部31による処理フローについて説明する。図5は、共有ライブラリ化部31が実行する処理フローの詳細を示す図である。なお、以下の各ステップでは、共有ライブラリ化部31が処理の実行主体であるので、主体の記載を省略する。   Next, a processing flow by the shared library unit 31 will be described. FIG. 5 is a diagram illustrating details of a processing flow executed by the shared library unit 31. In each of the following steps, since the shared library unit 31 is an execution subject of processing, description of the subject is omitted.

<ステップ101>
ユーザから、関数化バイナリの作成対象であるアプリ51のアプリ識別子を受け取る。
<Step 101>
From the user, the application identifier of the application 51 for which the functionalized binary is created is received.

<ステップ102>
ユーザが予め指定した、アプリ51のソースファイルから関数化バイナリを作成するための中間ファイルを保存する場所を、その情報を格納する変換済アプリ(AP)格納場所記憶部32から読込む。
<Step 102>
The location where the intermediate file for creating the functionalized binary from the source file of the application 51 specified by the user is read from the converted application (AP) storage location storage unit 32 that stores the information.

<ステップ103>
アプリ(AP)ソースのアプリ51を、コンパイラでアセンブルコードAP52に書換えて、変換済アプリ格納場所記憶部32の指定場所へ格納する。ここで用いるコンパイラは、OS21で運用可能な汎用コンパイラでよい。例えば汎用Linxuの場合、コンパイラ「gcc(GNU Compiler Collection)」に相当するものである。
<Step 103>
The application 51 of the application (AP) source is rewritten to the assembly code AP52 by the compiler and stored in the designated location of the converted application storage location storage unit 32. The compiler used here may be a general-purpose compiler that can be operated by the OS 21. For example, in the case of general-purpose Linux, it corresponds to a compiler “gcc (GNU Compiler Collection)”.

<ステップ104>
アセンブルコードAP52を読込み、このアセンブルコードからentry_point処理の「_main」シンボルを探し、ステップ101から受け取ったアプリ識別子を先頭に付け、entry_pointのシンボルを変換する。例えば、アプリ識別子が「AP1」の場合、「_main」から「_AP1_main」に変換される。ただし、変換の形式には拘らず、アプリ51と結び付けられるものであればよい。
<Step 104>
The assembly code AP52 is read, the “_main” symbol of the entry_point process is searched from the assembly code, the application identifier received from step 101 is added to the head, and the entry_point symbol is converted. For example, when the application identifier is “AP1”, “_main” is converted to “_AP1_main”. However, what is necessary is just to be tied with the application 51 irrespective of the format of conversion.

<ステップ105>
アセンブルコードから終了処理の「_exit」シンボルを探し、このシンボルがあれば、関数からのリターン処理に置換える。例えば、スタックフレームの「pop」と「ret」のアセンブラに置き換える。
<Step 105>
The “_exit” symbol for end processing is searched from the assembly code, and if there is this symbol, it is replaced with return processing from the function. For example, the stack frame “pop” and “ret” assemblers are replaced.

<ステップ106>
コンパイラの共有ライブラリ生成オプションにより、変換済アプリ格納場所記憶部32に中間ファイルとして格納されている変換済の全アセンブルコードAP52をコンパイルし、共有ライブラリ53を生成する。例えば、先の「gcc」の場合、「−shared」のオプションを使う。
<Step 106>
According to the shared library generation option of the compiler, all converted assembly codes AP52 stored as intermediate files in the converted application storage location storage unit 32 are compiled to generate a shared library 53. For example, in the case of “gcc”, the option “−shared” is used.

<ステップ107>
共有ライブラリ53上の関数化されたアプリ51のバイナリを実行するスレッド61がアクセスできるように、記憶装置12のRAM上にロードする。例えば、POSIXのAPIを活用するか、標準Linuxの場合には「ldconfig」コマンドを活用することが可能である。
<Step 107>
It is loaded on the RAM of the storage device 12 so that the thread 61 that executes the binary of the functionalized application 51 on the shared library 53 can access. For example, the POSIX API can be used, or in the case of standard Linux, the “ldconfig” command can be used.

次に、スレッドプール管理部41による処理フローについて説明する。図6は、スレッドプール管理部41が実行する処理フローの詳細を示す図である。なお、以下の各ステップでは、スレッドプール管理部41が処理の実行主体であるので、主体の記載を省略する。   Next, a processing flow by the thread pool management unit 41 will be described. FIG. 6 is a diagram illustrating details of a processing flow executed by the thread pool management unit 41. In each of the following steps, since the thread pool management unit 41 is the execution subject of processing, the description of the subject is omitted.

<ステップ201>
スレッド監視テーブル45のスレッドMAX数45−Aを読取り、内部変数に格納する。なお、スレッドMAX数45−Aは、ユーザから設定されていることを前提とし、本実施例では「32」とする。
<Step 201>
The thread MAX number 45-A in the thread monitoring table 45 is read and stored in an internal variable. The thread MAX number 45-A is assumed to be set by the user, and is set to “32” in the present embodiment.

<ステップ202>
スレッド生成カウンタ(cnt)の内部変数を初期化する(cnt←0)。
<Step 202>
The internal variable of the thread generation counter (cnt) is initialized (cnt ← 0).

<ステップ203>
スレッド生成カウンタ(cnt)の値が、スレッドMAX数45−Aの値を超えたか否かを確認する。超えた場合には(Y)、ステップ204に進み、超えていない場合には(N)、ステップ211に進む。
<Step 203>
It is confirmed whether or not the value of the thread generation counter (cnt) exceeds the value of the thread MAX number 45-A. When it exceeds (Y), the process proceeds to step 204, and when it does not exceed (N), the process proceeds to step 211.

<ステップ204>
スレッド監視部43により処理される監視スレッド62を生成する。監視スレッド62は、OS21の機能を用いて生成する。
<Step 204>
A monitoring thread 62 to be processed by the thread monitoring unit 43 is generated. The monitoring thread 62 is generated using the function of the OS 21.

<ステップ205>
アプリ開始処理へ進む。アプリ開始処理については、図7を用いて後述する。
<Step 205>
Proceed to the application start process. The application start process will be described later with reference to FIG.

<ステップ211>
スレッド処理部42により処理されるスレッド61を生成し、OS21からの戻り値を内部変数TIDへ格納する。スレッド61は、OS21の機能を用いて生成する。
<Step 211>
A thread 61 to be processed by the thread processing unit 42 is generated, and a return value from the OS 21 is stored in the internal variable TID. The thread 61 is generated using the function of the OS 21.

<ステップ212>
スレッド生成カウンタ(cnt)を1増加し、このスレッド生成カウンタ番目に対するスレッド管理テーブル45のスレッド識別子45−Cに、内部変数TIDを格納する。
<Step 212>
The thread generation counter (cnt) is incremented by 1, and the internal variable TID is stored in the thread identifier 45-C of the thread management table 45 for this thread generation counter.

<ステップ213>
スレッドイベントテーブル46のスレッド生成カウンタ番目のスレッド識別子46−Aに内部変数TIDを格納し、同スレッド識別子46−Aの行を‘0’で初期化する。
<Step 213>
The internal variable TID is stored in the thread identifier 46-A of the thread generation counter in the thread event table 46, and the line of the thread identifier 46-A is initialized with “0”.

<ステップ214>
スレッド管理テーブル45のスレッド生成カウンタ番目の実行アプリ(AP)識別子45−Dを‘0’で初期化する。
<Step 214>
A thread generation counter-th execution application (AP) identifier 45-D of the thread management table 45 is initialized with “0”.

以上のように、ステップ211からステップ214まで、必要なスレッドを予め生成してプール化しておくことで、従来アプリ51がプロセスとして実行開始するときに必要なプロセス生成処理時間を省くことができる。また、本実施例は、リアルタイム性が必要なシステムのアプリ51の実行環境においても有効である。   As described above, by generating necessary threads in advance from step 211 to step 214 and creating a pool, the process generation processing time required when the conventional application 51 starts execution as a process can be saved. Further, this embodiment is also effective in the execution environment of the application 51 of the system that requires real-time performance.

続いて、先のステップ205のアプリ開始処理の処理フローについて説明する。図7は、アプリ開始処理の処理フローの詳細を示す図である。なお、以下の各ステップでは、スレッドプール管理部41が処理の実行主体であるので、主体の記載を省略する。
<ステップ301>
ユーザからのアプリ開始要求のイベント通知、またはスレッド監視部43からのイベント通知を受け取る。コンソールによるユーザからの要求イベントや後述するスレッド監視部43からのイベントは、OS21の機能を用いて実現する。例えば汎用Linuxの場合には、「select」APIの非同期イベント機能が利用できる。
Next, the process flow of the application start process in step 205 will be described. FIG. 7 is a diagram illustrating details of a process flow of the application start process. In each of the following steps, since the thread pool management unit 41 is the execution subject of processing, the description of the subject is omitted.
<Step 301>
The event notification of the application start request from the user or the event notification from the thread monitoring unit 43 is received. A request event from the user by the console and an event from the thread monitoring unit 43 described later are realized by using the function of the OS 21. For example, in the case of general-purpose Linux, the asynchronous event function of “select” API can be used.

<ステップ302>
受け取ったイベント通知が、アプリ開始要求のイベントか否かを確認する。アプリ開始要求のイベント通知である場合は(Y)、ステップ303に進む。アプリ開始要求のイベント通知でない場合は(N)、すなわちスレッド監視部43からのイベント通知である場合、ステップ311に進む。
<Step 302>
Check whether the received event notification is an application start request event or not. If the event notification is an application start request (Y), the process proceeds to step 303. If it is not an event notification of an application start request (N), that is, if it is an event notification from the thread monitoring unit 43, the process proceeds to step 311.

<ステップ303>
ユーザから、アプリ識別子44−A、スレッド管理用パラメータ46−B及びアプリ実行用パラメータ46−Cを受け取る。これらのパラメータは、先のステップ302におけるユーザからのA51開始要求のイベント通知が行われる際に、ユーザが設定するものである。
<Step 303>
An application identifier 44-A, a thread management parameter 46-B, and an application execution parameter 46-C are received from the user. These parameters are set by the user when the event notification of the A51 start request from the user in the previous step 302 is performed.

<ステップ304>
スレッド管理テーブル45の実行アプリ識別子45−Dの値が‘0’であるスレッド識別子45−Cを読み取る。
<Step 304>
The thread identifier 45-C in which the value of the execution application identifier 45-D in the thread management table 45 is “0” is read.

<ステップ305>
スレッドイベントテーブル46において、先のステップ304で読み取ったスレッド識別子45−Cの識別子名を持つスレッド識別子46−Aと同じ行のスレッド管理用パラメータ46−B及びアプリ実行用パラメータ46−Cに、先のステップ303で受け取ったパラメータを格納する。
<Step 305>
In the thread event table 46, the thread management parameter 46-B and the application execution parameter 46-C on the same line as the thread identifier 46-A having the identifier name of the thread identifier 45-C read in the previous step 304 are added to the previous one. The parameter received in step 303 is stored.

<ステップ306>
先のステップ304で読み取ったスレッド識別子45−Cの識別子名を持つスレッド61に対して、OS21の機能を用いてイベント通知を行う。
<Step 306>
The event notification is performed using the function of the OS 21 to the thread 61 having the identifier name of the thread identifier 45-C read in the previous step 304.

<ステップ311>
スレッド管理テーブル45の異常フラグ45−Bを読み取る。
<Step 311>
The abnormal flag 45-B of the thread management table 45 is read.

<ステップ312>
異常フラグ45−Bの値が、正常値‘0’か否かを確認する。正常値‘0’であれば(Y)、ステップ301に戻り、異常値‘1’であれば(N)、スレッドプール管理41の処理を終了する。この終了処理には、先のステップ211で生成したスレッド61を終了する処理などが含まれる。
<Step 312>
It is confirmed whether or not the value of the abnormality flag 45-B is a normal value “0”. If the normal value is “0” (Y), the process returns to step 301. If the abnormal value is “1” (N), the processing of the thread pool management 41 is terminated. This termination process includes a process for terminating the thread 61 generated in the previous step 211.

次に、スレッド処理部42による処理フローについて説明する。図8は、スレッド処理部42が実行する処理フローの詳細を示す図である。なお、以下の各ステップでは、スレッド処理部42が処理の実行主体であるので、主体の記載を省略する。   Next, a processing flow by the thread processing unit 42 will be described. FIG. 8 is a diagram illustrating details of a processing flow executed by the thread processing unit 42. In each of the following steps, since the thread processing unit 42 is the execution subject of the process, the description of the subject is omitted.

<ステップ401>
スレッドプール管理部41からのイベント通知を待つ状態で、先のステップ305でスレッドイベントテーブル46に必要なパラメータが設定された後に、スレッドプール管理部41から先のステップ306によりイベント通知されるので、このイベント通知を受け取る。
<Step 401>
In the state waiting for the event notification from the thread pool management unit 41, after the necessary parameters are set in the thread event table 46 in the previous step 305, the event notification is sent from the thread pool management unit 41 in the previous step 306. Receive this event notification.

<ステップ402>
スレッドイベントテーブル46のスレッド管理用パラメータ46−Bを読み取る。
<Step 402>
The thread management parameter 46 -B of the thread event table 46 is read.

<ステップ403>
スレッド管理用パラメータ46−Bの中から46−B1に格納されたスレッドの優先度及び46−B2に格納された資源アクセス権限を、OS21の機能を使って設定する。
<Step 403>
The thread priority stored in 46-B1 and the resource access authority stored in 46-B2 are set using the functions of the OS 21 among the thread management parameters 46-B.

<ステップ404>
スレッドイベントテーブル46のアプリ実行用パラメータ46−Cを読み取る。
<Step 404>
The application execution parameter 46-C in the thread event table 46 is read.

<ステップ405>
アプリ実行処理に進む。アプリ実行処理については、図9を用いて後述する。
<Step 405>
Proceed to the app execution process. The application execution process will be described later with reference to FIG.

<ステップ406>
先のステップ403で設定したスレッドの優先度及び資源アクセス権限を元に戻す。先のステップ211でスレッド61が生成された時には、OS21で設定されたdefaultのスレッドの優先度及び資源アクセス権限に戻す。
<Step 406>
The thread priority and resource access authority set in the previous step 403 are restored. When the thread 61 is generated in the previous step 211, the default thread priority and resource access authority set in the OS 21 are restored.

以上により、ステップ405の前後のステップ404とステップ406とによって、外付けで従来アプリ51が運用された計算機環境上のプロセスまたはスレッドのスケジュール方法が実現できる。例えば、優先度ベースのリアルタイムスケジュール方式は、本実施例により容易に実現可能である。   As described above, the process or thread scheduling method in the computer environment in which the conventional application 51 is operated externally can be realized by steps 404 and 406 before and after step 405. For example, a priority-based real-time schedule method can be easily realized by this embodiment.

次に、先のステップ405のアプリ実行処理について説明する。図9は、アプリ実行処理の処理フローの詳細を示す図である。なお、以下の各ステップでは、スレッド処理部42が処理の実行主体であるので、主体の記載を省略する。
<ステップ501>
スレッドイベントテーブル46のアプリ実行用パラメータ46−Cにおけるentry_point名46−C1からアプリ識別子を取り出し、スレッド管理テーブル45における自らのスレッド識別子45−Cと同行にある実行アプリ識別子45−Dに当該アプリ識別子を格納する。自らのスレッド識別子45−Cは、OS21の機能で取得可能であり、先のステップ211で格納したOS21の戻り値と一致する。
本ステップ501によって、実行対象のアプリ51のバイナリと実行するスレッド61との間の関連付けが行われる。
Next, the application execution process in the previous step 405 will be described. FIG. 9 is a diagram illustrating details of a process flow of the application execution process. In each of the following steps, since the thread processing unit 42 is the execution subject of the process, the description of the subject is omitted.
<Step 501>
The application identifier is extracted from the entry_point name 46-C1 in the application execution parameter 46-C of the thread event table 46, and the application identifier 45-D in the same row as the thread identifier 45-C of the thread management table 45 is associated with the application identifier. Is stored. The own thread identifier 45-C can be acquired by the function of the OS 21, and matches the return value of the OS 21 stored in the previous step 211.
By this step 501, association between the binary of the application 51 to be executed and the thread 61 to be executed is performed.

<ステップ502>
先のステップ501で取り出したアプリ識別子を、アプリ管理テーブル44のアプリ識別子44−Aに格納し、アプリ状態44−Bに開始状態を示す‘S’を格納する。
<Step 502>
The application identifier extracted in the previous step 501 is stored in the application identifier 44-A of the application management table 44, and 'S' indicating the start state is stored in the application state 44-B.

<ステップ503>
スレッドイベントテーブル46のアプリ実行用パラメータ46−Cにおけるentry_point名46−C1が示す関数を呼び出し、当該関数に引数46−C2を渡し、共有ライブラリ53上のアプリ51のバイナリ処理を実行する。
<Step 503>
The function indicated by the entry_point name 46-C1 in the application execution parameter 46-C of the thread event table 46 is called, the argument 46-C2 is passed to the function, and the binary processing of the application 51 on the shared library 53 is executed.

<ステップ504>
先のステップ503によるアプリ51のバイナリ処理からの戻り値を確認し、アプリ管理テーブル44のアプリ状態44−Bに終了状態を示す‘E’を格納する。先のステップ502と本ステップ504とによって、OS21のミドルレイヤでアプリ51の開始及び終了の実行状態が明確に管理できることになり、それを利用した高信頼機能の実現が容易となる。
<Step 504>
The return value from the binary processing of the application 51 in the previous step 503 is confirmed, and “E” indicating the end state is stored in the application state 44 -B of the application management table 44. By the previous step 502 and this step 504, the execution state of the start and end of the application 51 can be clearly managed in the middle layer of the OS 21, and it is easy to realize a highly reliable function using it.

<ステップ505>
スレッド管理テーブル45の実行アプリ識別子45−Dに‘0’を格納し、初期化状態にする。これによって、他のアプリ51からの実行開始要求の受付が可能となる。
<Step 505>
'0' is stored in the execution application identifier 45-D of the thread management table 45, and the thread management table 45 is initialized. As a result, an execution start request from another application 51 can be received.

最後に、スレッド監視部43による処理フローについて説明する。図10は、スレッド監視部43が実行する処理フローの詳細を示す図である。なお、以下の各ステップでは、スレッド監視部43が処理の実行主体であるので、主体の記載を省略する。   Finally, the processing flow by the thread monitoring unit 43 will be described. FIG. 10 is a diagram illustrating details of a processing flow executed by the thread monitoring unit 43. In each of the following steps, since the thread monitoring unit 43 is an execution subject of processing, description of the subject is omitted.

本処理フローは、監視スレッド62を使って処理される。スレッド61が実行するアプリ51のバイナリ処理が終了し、アプリ管理テーブル44のアプリ状態44−Bは‘E’状態である。この状態において、監視スレッド62は、スレッド管理テーブル45においてスレッド61の実行アプリ識別子45−Dがまだ‘0’でない状態をもつスレッド61を監視する。それによって、スレッド61の実行状態の監視が可能となり、ユーザからのアプリ51の開始要求を実行できるスレッド61が枯渇されることを防ぐ。もし、枯渇した場合にも、新しいスレッド61を立ち上げる等の処理を実施することも可能である。また、この監視処理を、一定周期で以て実施してもよいし、異常カウンタを設けて異常の再確認処理として行ってもよい。   This processing flow is processed using the monitoring thread 62. The binary processing of the application 51 executed by the thread 61 ends, and the application state 44-B of the application management table 44 is in the “E” state. In this state, the monitoring thread 62 monitors the thread 61 having a state where the execution application identifier 45 -D of the thread 61 is not yet “0” in the thread management table 45. Thereby, the execution state of the thread 61 can be monitored, and the thread 61 that can execute the start request of the application 51 from the user is prevented from being exhausted. Even if it is depleted, it is possible to execute processing such as starting a new thread 61. Further, this monitoring process may be performed at a constant cycle, or may be performed as an abnormality reconfirmation process by providing an abnormality counter.

<ステップ601>
スレッド管理テーブル45の異常フラグ45−Bに‘0’を格納し、初期化する。
<Step 601>
“0” is stored in the abnormality flag 45 -B of the thread management table 45 and is initialized.

<ステップ602>
アプリ管理テーブル44の先頭レコードのアプリ状態44−Bを読み取る。
<Step 602>
The application state 44-B of the first record in the application management table 44 is read.

<ステップ603>
読み取ったアプリ状態が終了を示す‘E’か否かを判断する。終了‘E’であれば(Y)、ステップ604に進み、終了‘E’でなければ(N)、ステップ611に進む。
<Step 603>
It is determined whether or not the read application state is “E” indicating the end. If it is the end “E” (Y), the process proceeds to step 604. If it is not the end “E” (N), the process proceeds to step 611.

<ステップ604>
アプリ管理テーブル44から読み取ったアプリ状態44−Bと同行にあるアプリ識別子44−Aを読み取る。
<Step 604>
The application identifier 44 -A that accompanies the application state 44 -B read from the application management table 44 is read.

<ステップ605>
読み取ったアプリ識別子44−Aが、スレッド管理テーブル45の実行アプリ識別子45−Dに存在するか否かを確認する。
<Step 605>
It is confirmed whether or not the read application identifier 44 -A exists in the execution application identifier 45 -D of the thread management table 45.

<ステップ606>
存在すれば(Y)、ステップ607に進み、存在しなければ(N)、ステップ611に進む。
<Step 606>
If it exists (Y), the process proceeds to step 607. If it does not exist (N), the process proceeds to step 611.

<ステップ607>
スレッド管理テーブル45の異常フラグ45−Bに異常を示す‘1’を格納する。
<Step 607>
“1” indicating an abnormality is stored in the abnormality flag 45 -B of the thread management table 45.

<ステップ608>
スレッドプール管理部41へ、OS21の機能によってイベント通知をする。また、このイベント通知によって、スレッドプール管理部41において先のステップ311の処理が実行される。
<Step 608>
An event notification is sent to the thread pool management unit 41 by the function of the OS 21. Further, in response to this event notification, the processing of the previous step 311 is executed in the thread pool management unit 41.

<ステップ611>
アプリ管理テーブル44の最後尾の行まで処理を行ったか否かを確認する。最後尾の行でなければ(Y)、ステップ612に進み、最後尾の行であれば(N)、ステップ602に進む。
<Step 611>
It is confirmed whether or not processing has been performed up to the last row of the application management table 44. If it is not the last line (Y), the process proceeds to step 612, and if it is the last line (N), the process proceeds to step 602.

<ステップ612>
アプリ管理テーブル44の次の行のアプリ状態44−Bを読み取り、ステップ603に戻る。
<Step 612>
The application state 44-B in the next row of the application management table 44 is read, and the process returns to step 603.

11…演算装置、11−A…CPU、12…記憶装置、21…OS、
31…共有ライブラリ(Lib)化部、32…変換済アプリ(AP)格納場所記憶部、
41…スレッドプール管理部、42…スレッド処理部、43…スレッド監視部、
44…アプリ(AP)管理テーブル、45…スレッド管理テーブル、
46…スレッドイベントテーブル、51…既存アプリ(AP)ソース、
52…書換えアセンブルコード、53…アプリ51を関数化した共有ライブラリ、
61…スレッド、62…監視スレッド
DESCRIPTION OF SYMBOLS 11 ... Arithmetic unit, 11-A ... CPU, 12 ... Storage device, 21 ... OS,
31 ... Shared library (Lib) conversion unit, 32 ... Converted application (AP) storage location storage unit,
41 ... Thread pool management unit, 42 ... Thread processing unit, 43 ... Thread monitoring unit,
44 ... Application (AP) management table, 45 ... Thread management table,
46 ... Thread event table, 51 ... Existing application (AP) source,
52 ... rewrite assembly code, 53 ... a shared library in which the application 51 is functionalized,
61 ... Thread, 62 ... Monitoring thread

Claims (5)

アプリを関数化して関数化アプリとして格納する共有ライブラリを生成し、前記関数化アプリを実行するスレッドを予め生成してプールし、ユーザから前記アプリの開始要求を受けて、当該開始要求があった実行対象のアプリとプールした前記スレッドから選択した空きのスレッドとを関連付け、当該関連付けた空きのスレッドを使って前記実行対象のアプリに対応する前記共通ライブラリ上の前記関数化アプリを実行する
ことを特徴とするアプリの実行方法。
A shared library for functionalizing an application and storing it as a functionalized application is generated, and a thread for executing the functionalized application is generated in advance and pooled. Associating an execution target application with a free thread selected from the pooled threads, and executing the functionalized application on the common library corresponding to the execution target application using the related free thread How to run the featured app.
請求項1に記載のアプリの実行方法であって、
前記スレッドをプールするに際し、設定数分の前記スレッドに対して当該スレッドの実行制御に係るパラメータを初期化する
ことを特徴とするアプリの実行方法。
An application execution method according to claim 1,
When pooling the thread, a parameter for execution control of the thread is initialized with respect to a set number of threads, and the application execution method is characterized in that:
請求項2に記載のアプリの実行方法であって、
前記関連付けた空きのスレッドに対して、前記開始要求があった実行対象のアプリに関係する前記パラメータを通知する
ことを特徴とするアプリの実行方法。
An application execution method according to claim 2,
A method for executing an application, comprising: notifying the associated empty thread of the parameter related to the execution target application for which the start request has been made.
請求項1から3のいずれか1項に記載のアプリの実行方法であって、
前記関連付けた空きのスレッドに対して、当該スレッドの優先度及び資源アクセス権限が設定される
ことを特徴とするアプリの実行方法。
It is the execution method of the application of any one of Claim 1 to 3,
A method for executing an application, wherein a priority and a resource access authority of the associated free thread are set.
請求項1から4のいずれか1項に記載のアプリの実行方法であって、
実行が終了した前記アプリに関連付けられた前記スレッドが実行済みで初期化状態に戻ったか否かを監視する
ことを特徴とするアプリの実行方法。
An application execution method according to any one of claims 1 to 4, wherein:
A method for executing an app, comprising: monitoring whether the thread associated with the app that has been executed has been executed and returned to an initialized state.
JP2018076056A 2018-04-11 2018-04-11 How to run the app Active JP7015203B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018076056A JP7015203B2 (en) 2018-04-11 2018-04-11 How to run the app

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018076056A JP7015203B2 (en) 2018-04-11 2018-04-11 How to run the app

Publications (2)

Publication Number Publication Date
JP2019185423A true JP2019185423A (en) 2019-10-24
JP7015203B2 JP7015203B2 (en) 2022-02-02

Family

ID=68341357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018076056A Active JP7015203B2 (en) 2018-04-11 2018-04-11 How to run the app

Country Status (1)

Country Link
JP (1) JP7015203B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022220143A1 (en) * 2021-04-16 2022-10-20 株式会社日立製作所 Arithmetic device, and method for operating program
WO2023053234A1 (en) * 2021-09-29 2023-04-06 三菱電機株式会社 Electronic apparatus and high-speed communication method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008140053A1 (en) * 2007-05-10 2008-11-20 International Business Machines Corporation Server device operating in response to received request
JP2010243717A (en) * 2009-04-03 2010-10-28 Kyocera Mita Corp Image processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008140053A1 (en) * 2007-05-10 2008-11-20 International Business Machines Corporation Server device operating in response to received request
JP2010243717A (en) * 2009-04-03 2010-10-28 Kyocera Mita Corp Image processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SPY: "「Java 9 集中講座 : 第5章 付属ツール大変化」", WEB+DB PRESS VOL.101, vol. 初版, JPN6021040070, 16 November 2017 (2017-11-16), pages 77 - 82, ISSN: 0004614702 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022220143A1 (en) * 2021-04-16 2022-10-20 株式会社日立製作所 Arithmetic device, and method for operating program
WO2023053234A1 (en) * 2021-09-29 2023-04-06 三菱電機株式会社 Electronic apparatus and high-speed communication method

Also Published As

Publication number Publication date
JP7015203B2 (en) 2022-02-02

Similar Documents

Publication Publication Date Title
JP4866864B2 (en) Method and program for managing access to shared resources in a multi-processor environment
US9582312B1 (en) Execution context trace for asynchronous tasks
US9075692B2 (en) Method, device and system for activating on-line patch
US7406699B2 (en) Enhanced runtime hosting
US8286152B2 (en) Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast application startup and maximal run-time performance
US7945911B1 (en) Barrier synchronization method and apparatus for work-stealing threads
EP2962192B1 (en) System and method thereof to optimize boot time of computers having multiple cpus
US9483391B2 (en) Efficient method data recording
US20130268938A1 (en) Transparent user mode scheduling on traditional threading systems
JP2013506179A (en) Execution management system combining instruction threads and management method
US20090319554A1 (en) Unified metadata for external components
US20180189093A1 (en) Systems and methods for executing software robot computer programs on virtual machines
US7818733B2 (en) Improving bundle control in computing environment
US10417011B2 (en) Thread-agile execution of dynamic programming language programs
US10067793B2 (en) Data processing method and apparatus for executing task code using reservation instruction and release instruction
US20150128147A1 (en) Modified jvm with multi-tenant application domains and memory management
US20220083364A1 (en) Reconciler sandboxes for secure kubernetes operators
US11645098B2 (en) Systems and methods to pre-provision sockets for serverless functions
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
JP7015203B2 (en) How to run the app
US7080374B2 (en) System and method for using native code interpretation to move threads to a safe state in a run-time environment
US8615760B2 (en) Facilitating memory analysis
US20120005460A1 (en) Instruction execution apparatus, instruction execution method, and instruction execution program
EP3401784A1 (en) Multicore processing system
Richardson et al. Providing temporal isolation in the OSGi framework

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211109

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: 20220111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220121