JP2007265228A - Shared program and information apparatus - Google Patents
Shared program and information apparatus Download PDFInfo
- Publication number
- JP2007265228A JP2007265228A JP2006091758A JP2006091758A JP2007265228A JP 2007265228 A JP2007265228 A JP 2007265228A JP 2006091758 A JP2006091758 A JP 2006091758A JP 2006091758 A JP2006091758 A JP 2006091758A JP 2007265228 A JP2007265228 A JP 2007265228A
- Authority
- JP
- Japan
- Prior art keywords
- program
- library
- computer
- event
- shared
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、複数のアプリケーションプログラムによって呼び出される共有プログラムに関する。 The present invention relates to a shared program called by a plurality of application programs.
既存のLinux、Windows(登録商標)等の共有ライブラリでは、各プロセスにおいて共通のコードが実行される。このため、これらの共有ライブラリがソースコードに埋め込まれた場合に、その処理は、各プロセスで共通になってしまう。 In an existing shared library such as Linux and Windows (registered trademark), a common code is executed in each process. For this reason, when these shared libraries are embedded in the source code, the processing is common to each process.
例えば、タッチパネルイベントを配信する機能を有する共有ライブラリがソースコードに埋め込まれた場合、タッチパネルイベントは、すべての実行中のプロセスに配信され、個別のプロセスに適切にイベントを配信できないという問題が生じえる。このような問題を回避するため、例えば、プロセスごとにイベント配信先を区別したライブラリをそれぞれのプロセスに個別に用意をする必要があり、作成に手間が掛かる。 For example, if a shared library that has a function to distribute touch panel events is embedded in the source code, the touch panel events are distributed to all running processes, and there may be a problem that events cannot be appropriately distributed to individual processes. . In order to avoid such a problem, for example, it is necessary to prepare a library in which each event delivery destination is distinguished for each process, and it takes time to create the library.
図1は、プロセスごとにライブラリを用意したシステムの構成例を示している。この例では、ライブラリ1は、プロセス#1専用の処理を実行する(ライブラリ2,3についても同様)。したがって、ライブラリ1が、例えば、マウスイベントを検知した場合には、そのイベントは、プロセス#1にだけ通知され、プロセス#2、#3は、プロセス#1とは異なる処理を実現できる。しかしながら、このような方式では、プロセスごとにライブラリを用意する必要があり、共有ライブラリとすることができない。
FIG. 1 shows a configuration example of a system in which a library is prepared for each process. In this example, the
一方、共有ライブラリを提供する従来のマルチウィンドウシステムでは、最上位に位置するウィンドウに対応するプロセスを管理するウィンドウマネージャを備えるものがあった。図2に、ウィンドウマネージャによるプロセス管理の例を示している。ウィンドウマネージャは、タッチパネルイベントのようなハードウェアに対するイベントを検知すると、最上位のウィンドウ(プロセス)を選択し、そのプロセスにイベントを通知していた。 On the other hand, some conventional multi-window systems that provide a shared library include a window manager that manages a process corresponding to the uppermost window. FIG. 2 shows an example of process management by the window manager. When detecting an event for hardware such as a touch panel event, the window manager selects a top-level window (process) and notifies the event to the process.
しかし、ウィンドウマネージャを搭載したシステムでは、ウィンドウマネージャがコンピュータ上のすべてのグラフィカルユーザインターフェースのイベントを管理する方式であるため、その処理が複雑であった。すなわち、共有ライブラリを使用したシステムでは、従来、イベントの発生後、各プロセスの状態から、そのイベントに応じた適切なプロセスを識別し、プロセスごとに固有の処理を実行させる技術は、提案されていなかった。したがって、リソースの少ない小型の機器、あるいは、車載器等の移動体に搭載される機器においては、共有ライブラリを用いて、プロセス固有の処理を実現することが困難であった。
本発明の目的は、複数プログラムが共有ライブラリを呼び出す場合においても、その共有ライブラリが、個々のプログラムにおいて個別の処理を簡易に実現する技術を提供することである。 An object of the present invention is to provide a technique that allows a shared library to easily realize individual processing in each program even when a plurality of programs call the shared library.
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、複
数のアプリケーションプログラムによって呼び出される共有プログラムを実行する情報機器であって、前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知する手段と、前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供する手段と、を備える情報機器である。
The present invention employs the following means in order to solve the above problems. That is, the present invention is an information device that executes a shared program that is called by a plurality of application programs, the means for detecting an application program in a predetermined state among the plurality of application programs, and the predetermined state. Means for providing a predetermined function to an application program.
本発明によれば、前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知し、前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するので、複数のアプリケーションプログラムによって呼び出される共有プログラムを実行する場合でも、そのような特定の状態にあるアプリケーションプログラムに個別の処理を簡易に実現できる。 According to the present invention, an application program in a predetermined state among the plurality of application programs is detected and a predetermined function is provided to the application program in the predetermined state, so that the application program is called by the plurality of application programs. Even when a shared program to be executed is executed, individual processing can be easily realized for the application program in such a specific state.
本発明によれば、複数プログラムが共有ライブラリを呼び出す場合においても、その共有ライブラリが、個々のプログラムにおいて個別の処理を簡易に実現することができる。 According to the present invention, even when a plurality of programs call a shared library, the shared library can easily realize individual processing in each program.
以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には、限定されない。 An information processing apparatus according to the best mode for carrying out the present invention (hereinafter referred to as an embodiment) will be described below with reference to the drawings. The configuration of the following embodiment is an exemplification, and the present invention is not limited to the configuration of the embodiment.
図3に、本情報処理装置の機能概要を示す。この情報システムは、コンピュータ本体1と、コンピュータ本体1に接続される表示装置3と、コンピュータ本体1に接続され、表示装置3の画面上のオブジェクトを操作するポインティングデバイス2とを有している。コンピュータ本体1は、例えば、パーソナルコンピュータ、車載器、携帯情報端末、携帯電話、デジタルテレビ、デジタル放送受信用のセットトップボックス等である。
FIG. 3 shows an outline of functions of the information processing apparatus. This information system includes a computer
コンピュータ本体1は、CPU、メモリ、入出力インターフェース、入出力インターフェースに接続されるハードディスク駆動装置、入出力インターフェースに接続される着脱可能な記録媒体(DVD、CD、フラッシュメモリカード等)の駆動装置等を含む。
The computer
表示装置3は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。表示装置3には、コンピュータ本体1で実行されるプログラム(プロセス#1〜#3等)に対応する複数のウィンドウが表示される。
The
ポインティングデバイス2は、例えば、マウス、静電型のフラットスペース、ジョイスティック、画面上への押圧操作を検知するタッチパネル等である。図3の場合には、マウスを例にして、表示装置3の画面上にマウスポインタが表示されている。
The
図3に示すように、コンピュータ1上では、アプリケーションプログラムのプロセス#1〜#3が実行されている。各プロセスには、共通のライブラリ10のインターフェースプログラムが組み込まれており、共通のライブラリ10を呼び出すことが可能となっている。
As shown in FIG. 3, application
本情報処理装置の特徴は、ライブラリ10と各プロセスとの接続を管理するスイッチモジュール11が設けられている点にある。各プロセス#1〜#3からライブラリ10に処理の実行要求があった場合に、スイッチモジュール11は、当該ライブラリ10の処理に関して、現在有効なプロセスを判定する。そして、スイッチモジュール11は、有効なプロセスからの実行要求に対して、ライブラリ10の機能を提供する。一方、現在有効でないプロセスからの実行要求に対して、ライブラリ10の機能を提供しない。
The information processing apparatus is characterized in that a
現在有効なプロセスとは、例えば、ポインティングデバイス2を通じたウィンドウ操作では、最上位のウィンドウに対応するプロセスが有効なプロセスと判定される。また、例えば、ポインティングデバイス2によってフォーカスされた(例えば、マウスポインタが置かれた)ウィンドウに対応するプロセスが有効なプロセスと判定される。また、例えば、周期的に活性な状態と、不活性な状態とを繰り返す複数のプロセス群において、現在活性な状態のプロセスが有効なプロセスとされる。
With the currently effective process, for example, in the window operation through the
本実施形態では、有効なプロセスは、有効プロセステーブルに識別情報が記載される。ここで、識別情報は、例えば、コンピュータ1のOS(オペレーティングシステム)が管理するプロセスIDである。
In this embodiment, identification information of an effective process is described in the effective process table. Here, the identification information is, for example, a process ID managed by the OS (operating system) of the
図4に、OSが管理するプロセス管理テーブルの例を示す。このプロセス管理テーブルは、現在コンピュータ1で実行中のプロセスを構成する環境および現在のプロセスの状態を管理するテーブルである。図4で示される1つの行が1つのプロセスに対応する。
FIG. 4 shows an example of a process management table managed by the OS. This process management table is a table for managing the environment constituting the process currently being executed on the
本情報処理装置では、プロセス管理テーブルの各行は、プロセスID、起動日時、実行形式サイズ、プログラム名、ウィンドウ、ステータス、メモリサイズ、その他の情報を有している。起動日時は、そのプロセスが生成された日時(プログラムの実行開始日時)である。実行形式サイズは、起動されたプログラムの容量である。プログラム名は、実行されるプログラムの名称(パス名)である。ウィンドウは、そのプログラムで生成されたウィンドウのIDである。ステータスは、プログラムの実行状態であり、例えば、活性(アクティブ)、サスペンド等である。メモリサイズは、現在プロセスが占有中のデータ領域を含むメモリサイズである。その他の情報は、例えば、CPU時間、CPU占有率、入出力インターフェースアクセス回数等である。 In this information processing apparatus, each row of the process management table has a process ID, start date / time, execution format size, program name, window, status, memory size, and other information. The start date and time is the date and time when the process was generated (program execution start date and time). The execution format size is the capacity of the activated program. The program name is the name (path name) of the program to be executed. The window is an ID of a window generated by the program. The status is an execution state of the program, for example, active (active), suspend, or the like. The memory size is a memory size including a data area currently occupied by the process. Other information includes, for example, CPU time, CPU occupancy, input / output interface access count, and the like.
本実施形態では、このような各プロセスを識別するため、プロセスIDを用いる。しかし、プロセスIDに代えて、起動日時(タイムスタンプ)、実行形式サイズ等、それぞれのプロセスをユニークに識別可能な情報を用いてもよい。 In this embodiment, a process ID is used to identify each such process. However, instead of the process ID, information such as the start date / time (time stamp), the execution format size, or the like that can uniquely identify each process may be used.
図5に、有効プロセステーブルを管理する管理プログラムの処理を示す。この処理では、コンピュータ1は、ユーザ操作を監視している(S1)。そして、ユーザ操作が検知されると(S2でYESの場合)、コンピュータ1は、例えば、ウィンドウの階層順序を変更する(S3)。
FIG. 5 shows the processing of the management program that manages the effective process table. In this process, the
そして、コンピュータ1は、最上位のウィンドウのウィンドウのIDからそのウィンドウに対応するプロセスIDを求める。プロセスIDは、図4に示したプロセス管理テーブルから求めることができる。そして、コンピュータ1は、有効プロセステーブルに、そのプロセスのIDを格納する(S4)。この処理が、本発明の所定の状態にあるアプリケーションプログラムを検知するステップに相当する。その後、コンピュータ1は、制御をS1に戻す。
Then, the
図6に、スイッチモジュール11の処理を示す。この処理では、コンピュータ1は、アプリケーションプログラムのプロセスからイベント読み出し要求を受信する(S11)。
FIG. 6 shows processing of the
すると、コンピュータ1は、そのイベント読み出し要求から要求元のプロセスのプロセスIDを取得する(S12)。
Then, the
そして、コンピュータ1は、有効プロセステーブルを参照し、そのプロセスIDが現在有効プロセステーブルに格納されているか否かを判定する(S13)。
Then, the
そのプロセスIDが、有効プロセステーブルに格納されている場合、コンピュータ1は、コンピュータ1で発生しているイベントをそのプロセスに送信する(S14)。ここで、イベントは、例えば、デバイスドライバで検知され、スイッチモジュール11(例えば、所定のキュー等)に蓄積され、プロセスに未送信のイベントである。この処理が、本発明の所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するステップに相当する。
If the process ID is stored in the valid process table, the
イベントは、例えば、ウィンドウ上の所定のGUI部品がポインティングデバイス2で押下された等の情報である。ただし、単純に、ポインティングデバイス2が押下されたこと、およびその押下位置の画面上の座標をイベントとして送信するようにしても構わない。
The event is information such as that a predetermined GUI component on the window is pressed by the
以上述べたように、本実施形態の情報処理装置によれば、プロセスの状態(例えば、ウィンドウが最上位の階層にあるか、ウィンドウがフォーカスされているか等)により、有効プロセスIDを管理する。そして、スイッチモジュール11は、有効プロセスIDが登録されているプロセスに機能を提供する。このように、プロセスID等の各プロセスをユニークに識別する情報によって、プロセスを識別することにより、プロセスから呼び出される共通のライブラリ10がそれぞれのプロセスに対して固有の処理を実行するように制御できる。その場合に、それぞれのプロセスごとに異なるライブラリ10を用意する必要がなく、共有ライブラリとしてシステムで共通のライブラリを用意すればよい。
As described above, according to the information processing apparatus of the present embodiment, the effective process ID is managed according to the state of the process (for example, whether the window is in the highest hierarchy or the window is focused). The
図6の例では、アプリケーションのプロセスからのイベント読み出し要求に応答して、システム(例えば、所定のキュー)に蓄積されているイベントを送信する処理の例を示した。しかし、このような処理に代えて、イベントの発生をトリガとして、そのときに、有効プロセスIDに登録されているプロセスにイベントを送信するようにしても構わない。 In the example of FIG. 6, an example of processing for transmitting an event accumulated in a system (for example, a predetermined queue) in response to an event read request from an application process is shown. However, instead of such processing, an event may be triggered and an event may be transmitted to a process registered in the effective process ID at that time.
図7に、そのような処理の例を示す。この処理では、コンピュータ1は、イベントの発生を監視している(S21)。イベントが発生すると(S22でYESの場合)、コンピュータ1は、有効プロセステーブルから有効なアプリケーションのプロセスのIDを取得する(S23)。そして、コンピュータ1は、そのプロセスにイベントを送信する。このような処理によっても、共有ライブラリ10を用いて特定プロセスの固有の処理を実現できる。
FIG. 7 shows an example of such processing. In this process, the
なお、本発明は、以上のいずれかの処理をコンピュータに実行させるプログラムであってもよい。また、本発明は、そのようなプログラムを記録したコンピュータ読み取り可能な記録媒体、例えば、CD−ROM、DVD、フラッシュメモリカード等であってもよい。また、本発明は、コンピュータがそのような処理を実行する方法として実現してもよい。 The present invention may be a program for causing a computer to execute any one of the processes described above. The present invention may be a computer-readable recording medium in which such a program is recorded, for example, a CD-ROM, a DVD, a flash memory card, or the like. Further, the present invention may be realized as a method in which a computer executes such processing.
1 コンピュータ
2 ポインティングデバイス
3 表示装置
10 ライブラリ
11 スイッチモジュール
1
Claims (2)
前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知するステップと、
前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するステップと、をコンピュータに実行させる共有プログラム。 A shared program called by multiple application programs,
Detecting an application program in a predetermined state among the plurality of application programs;
A program for causing a computer to execute a step of providing a predetermined function to the application program in the predetermined state.
前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知する手段と、
前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供する手段と、を備える情報機器。 An information device that executes a shared program called by a plurality of application programs,
Means for detecting an application program in a predetermined state among the plurality of application programs;
Means for providing a predetermined function to the application program in the predetermined state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006091758A JP2007265228A (en) | 2006-03-29 | 2006-03-29 | Shared program and information apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006091758A JP2007265228A (en) | 2006-03-29 | 2006-03-29 | Shared program and information apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007265228A true JP2007265228A (en) | 2007-10-11 |
Family
ID=38638128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006091758A Withdrawn JP2007265228A (en) | 2006-03-29 | 2006-03-29 | Shared program and information apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007265228A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011516972A (en) * | 2008-04-02 | 2011-05-26 | クゥアルコム・インコーポレイテッド | Sharing multiple operating system subprocesses across multiple tasks |
-
2006
- 2006-03-29 JP JP2006091758A patent/JP2007265228A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011516972A (en) * | 2008-04-02 | 2011-05-26 | クゥアルコム・インコーポレイテッド | Sharing multiple operating system subprocesses across multiple tasks |
KR101284099B1 (en) | 2008-04-02 | 2013-07-10 | 퀄컴 인코포레이티드 | Sharing operating system sub-processes across tasks |
JP2013232215A (en) * | 2008-04-02 | 2013-11-14 | Qualcomm Inc | Sharing plural operating system sub-processes across plural tasks |
US9015727B2 (en) | 2008-04-02 | 2015-04-21 | Qualcomm Incorporated | Sharing operating system sub-processes across tasks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803451B2 (en) | Application exception recovery | |
US8984437B2 (en) | Controlling display of a plurality of windows | |
JP6333965B2 (en) | Technology to track wake clock usage | |
US8601105B2 (en) | Apparatus, method and computer program product for faciliating communication with virtual machine | |
WO2016090902A1 (en) | Hot-handover method and device for operating systems, and mobile terminal | |
CN102945149B (en) | A kind of method of display environment for configuring machine unit and system | |
KR20160045370A (en) | Method for screen sharing with devices and device thereof | |
CN111831410A (en) | Task processing method and device, storage medium and electronic equipment | |
JP2006330912A (en) | Information processor and program | |
JP2007249340A (en) | Software update method, update management program and information processor | |
US8904072B2 (en) | Storage device to extend functions dynamically and operating method thereof | |
TW201610848A (en) | Integrating operating systems | |
CN111831411A (en) | Task processing method and device, storage medium and electronic equipment | |
US20130232493A1 (en) | Virtual computer control apparatus, virtual computer control method, virtual computer control program, and integrated circuit | |
JP2010134557A (en) | Virtual machine operation management system, operation management method therefor and program | |
US20170300280A1 (en) | Image processing apparatus and image processing method | |
JP5834394B2 (en) | Notification information display processing apparatus, notification information display processing method, and program | |
EP2582149B1 (en) | Display apparatus and method for controlling the same | |
US20070211147A1 (en) | Image capture systems and methods | |
JP2007265228A (en) | Shared program and information apparatus | |
KR102230266B1 (en) | Method and electronic device for sharing applications among a plurality of electronic devices | |
WO2020145973A1 (en) | Event logs with firmware debug information | |
TW200912650A (en) | KVM switch identifying peripheral for computer and method thereof | |
CN111813574A (en) | Picture compression method and device, storage medium and electronic equipment | |
US10210111B2 (en) | Systems and methods for minimizing audio glitches when incurring system management interrupt latency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090602 |