JP2015041186A - Information processing device, program, and start-up method - Google Patents

Information processing device, program, and start-up method Download PDF

Info

Publication number
JP2015041186A
JP2015041186A JP2013171162A JP2013171162A JP2015041186A JP 2015041186 A JP2015041186 A JP 2015041186A JP 2013171162 A JP2013171162 A JP 2013171162A JP 2013171162 A JP2013171162 A JP 2013171162A JP 2015041186 A JP2015041186 A JP 2015041186A
Authority
JP
Japan
Prior art keywords
program module
activation
information
program
number information
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.)
Pending
Application number
JP2013171162A
Other languages
Japanese (ja)
Inventor
滋也 千田
Shigeya Senda
滋也 千田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013171162A priority Critical patent/JP2015041186A/en
Publication of JP2015041186A publication Critical patent/JP2015041186A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device which prevents delay of start-up time due to simultaneous execution of a program at a start-up of the information processing device.SOLUTION: An information processing device equipped with a plurality of CPUs or a multicore CPU, comprises: start-up condition information in which start-up conditions of respective program modules are described; determination means which determines one or more second program modules required for starting a first program module, on the basis of the start-up condition described in the start-up condition information for the first program module; number information recording means which records number information of the CPUs or the cores executing respective program modules; and start-up means which, when the number information is less than a threshold, starts up the second program modules having satisfied start-up conditions, in such a manner that the number information does not exceed the threshold.

Description

本発明は、複数のCPU又はマルチコアのCPUを搭載した情報処理装置に関する。   The present invention relates to an information processing apparatus equipped with a plurality of CPUs or multi-core CPUs.

組み込みシステムにおいてもマルチコアCPUが搭載されることが多くなっている。また、組み込み以外の情報処理装置においては、マルチコアCPUが搭載されることがかなり多くなっている。したがって、マルチコアCPUが搭載されている情報処理装置では、マルチコアCPUが搭載されていることを有効利用してシステムを最適化することが好ましい。例えば、ユーザビリティの視点から、電源ONからユーザが使用可能になるまでの時間が短い方が好ましい。このため、マルチコアCPUが搭載されていることを有効利用して起動速度の向上を図ることが求められる。   In embedded systems, multicore CPUs are often mounted. Also, in information processing apparatuses other than built-in, a multi-core CPU is often mounted. Therefore, in an information processing apparatus equipped with a multicore CPU, it is preferable to optimize the system by effectively using the multicore CPU. For example, from the viewpoint of usability, it is preferable that the time from when the power is turned on until the user becomes usable is shorter. For this reason, it is required to improve the startup speed by effectively using the multi-core CPU.

従来、情報処理装置の起動の高速化についてはいくつかの技術が提案されている(例えば、特許文献1参照。)。特許文献1には、カーネルイメージを複数の区画に分割しておき、分割されたカーネルイメージを複数の区画毎にメモリにロードし、ロードされた区画から順次実行することで起動を高速化する起動方法が開示されている。しかしながら、特許文献1では、カーネル起動以前の処理を高速化するものであり、マルチコアCPUが搭載されていることを有効利用しているとまでは言えない。   Conventionally, several techniques have been proposed for speeding up startup of an information processing apparatus (see, for example, Patent Document 1). Patent Document 1 discloses that a kernel image is divided into a plurality of partitions, the divided kernel image is loaded into a memory for each of the plurality of partitions, and the startup is accelerated by sequentially executing the loaded partitions. A method is disclosed. However, Patent Document 1 speeds up the processing before kernel activation, and it cannot be said that the multi-core CPU is effectively used.

カーネルの起動後において、情報処理装置の起動を高速化することについては以下のような技術がある。まず、比較のため、高速化されていない場合の起動方法について説明する。一般的なUnix(登録商標)が搭載された情報処理装置では、initプロセスがシステムの初期化を行う。initプロセスのとしてSysVinitというプログラムが知られており、SysVinitは、/etc/inittabファイルのshellスクリプトの設定内容に従って、ラン・レベル(動作モード)の設定やコンソールの起動、起動用スクリプトの実行などの処理を行う。   There are the following techniques for speeding up the booting of the information processing apparatus after the booting of the kernel. First, for comparison, an activation method when the speed is not increased will be described. In an information processing apparatus equipped with a general Unix (registered trademark), the init process initializes the system. A program called SysVinit is known as an init process, and SysVinit performs run level (operation mode) settings, console startup, execution of startup scripts, etc. according to the shell script settings in the / etc / inittab file. Process.

このようにSysVinitは、単純に起動したいプロセスとしてshellスクリプトで羅列されたプログラムモジュールをランレベルに応じて管理できるだけのものであった。また、SysVinitによるプログラムモジュールの実行は逐次実行で、情報処理装置のリソース(資源)に関係なくプログラムモジュールが逐次立ち上げられるだけであった。   In this way, SysVinit can only manage the program modules listed in the shell script according to the run level as a process that is simply started. In addition, execution of program modules by SysVinit is sequential execution, and only the program modules are started up sequentially regardless of the resources of the information processing apparatus.

その後、情報処理装置のイベントを契機にして起動するUpstartと呼ばれるinitプロセスが使用されるようになった。Upstartは、USBメモリの装着やCD−ROMの挿入などのイベントを検知して、それぞれに対応するプログラムモジュールの初期設定を行うイベント駆動型のinitプロセスである。これにより、無駄なプログラムモジュールの起動に起因して長くなっていた起動完了までの時間を短縮したり、資源競合をさけることが可能になっている。なお、Apple社のOSXには、イベント駆動型のinitプロセスとしてLaunchdというinitプロセスが用意されている。   After that, an init process called Upstart, which starts when an information processing device event occurs, was used. Upstart is an event-driven init process that detects events such as insertion of a USB memory or insertion of a CD-ROM, and initializes program modules corresponding to the events. As a result, it is possible to shorten the time until completion of activation, which has become longer due to unnecessary activation of the program module, and to avoid resource competition. Apple's OSX has an init process called Launchd as an event-driven init process.

より詳細には、UpstartやLaunchdは、起動される各プログラムモジュールの依存関係を考慮して起動順を制御する。たとえば、USBデバイスが準備完了状態にならない状態でUSBに関連したプログラムモジュールを起動することは、起動時のメモリへのロードで資源を消費するばかりで、他のプログラムモジュールの起動を阻害してしまう。また、プログラムモジュールによっては、別のプロセスの起動を待ち合わせないと起動しても意味が無いものがある。Upstartでは、こういった依存関係を記載したスクリプト(起動手順書)を元にプロセスの起動順を制御する。そして、依存関係がなければマルチコアCPUにより資源競合を回避できるので起動時間を短縮できる。   More specifically, Upstart and Launchd control the startup order in consideration of the dependency of each program module to be started. For example, starting a USB-related program module in a state where the USB device is not in a ready state only consumes resources by loading the memory at the time of startup, and hinders startup of other program modules. . Some program modules do not make sense unless they wait for the activation of another process. In Upstart, the process startup order is controlled based on a script (startup procedure manual) that describes these dependencies. If there is no dependency, resource conflict can be avoided by the multi-core CPU, so that the startup time can be shortened.

図1は、SysVinit、Upstart、及び、Systemdという各initプロセスの起動処理を模式的に説明する図の一例である。SysVinitでは、各プログラムモジュール(Syslog、D-Bus、Avahi、Bluetooth(登録商標))が逐次立ち上げられている。これに対し、Upstartでは、AvahiとBluetoothの起動を同時並行に行うため、全体の起動時間を短縮できる。   FIG. 1 is an example of a diagram schematically illustrating start processing of each init process called SysVinit, Upstart, and Systemd. In SysVinit, each program module (Syslog, D-Bus, Avahi, Bluetooth (registered trademark)) is started up sequentially. In contrast, Upstart can start Avahi and Bluetooth at the same time, reducing the overall startup time.

さらに、linuxシステムではUpstart等の発展形としてSystemdというinitプロセスが開発されている。Systemdではプログラムモジュールの初期化を同時実行することで更に高速に起動することを実現している。図1では、Syslog、D-Bus、Avahi及びBluetoothの初期化が同時に実行されているため、Upstartよりもさらに起動時間を短縮できる。   Furthermore, an init process called Systemd has been developed as an advanced form of Upstart etc. in the linux system. In Systemd, program modules are initialized at the same time, enabling faster startup. In FIG. 1, since initialization of Syslog, D-Bus, Avahi, and Bluetooth is executed at the same time, the startup time can be further shortened than Upstart.

しかしながら、Systemdによるプログラムモジュールの起動処理の平行化は、デバイスやプログラムモジュール間の依存関係が満たされている限り無差別に行なわれており、同時にプロセスが起動されることにより却って資源の奪い合いが発生する可能性があるという問題がある。   However, parallelization of program module startup processing by Systemd is performed indiscriminately as long as the dependencies between devices and program modules are satisfied, and at the same time the process is started up, resulting in contention for resources. There is a problem that there is a possibility.

プログラムモジュールの起動は、プログラムモジュールをHDDなどの記憶装置からRAMなどのメモリにロードし、使用する作業メモリを確保し、CPUがプログラムモジュールを実行して必要な初期化処理を行うという一連の処理が含まれる。よって、起動処理は負荷がかかりやすい処理である。十分な容量のメモリが搭載されており、多くのコア(例えば4コア以上)を用いたCPUのマルチコア化が当たり前となりつつあるPCサーバでは、起動時間に大きな影響は生じにくい。   The program module is activated by a series of processes in which the program module is loaded from a storage device such as an HDD into a memory such as a RAM, a working memory to be used is secured, and the CPU executes the program module and performs necessary initialization processing. Is included. Therefore, the startup process is a process that is subject to a load. A PC server, which has a sufficient amount of memory and is becoming a multi-core CPU using a large number of cores (for example, four or more cores), is not likely to have a significant effect on startup time.

しかし、メモリ容量やCPUのコア数に制限がある組み込みシステムやコア数が少ないPCでは、プログラムモジュールの同時実行が、逆にメモリ確保・HDDからメモリへの転送などで資源競合による遅延を引き起こし、必ずしも起動時間を短縮化できないおそれがある。起動時間が長くなると、ユーザビリティが低下してしまう。   However, in embedded systems with limited memory capacity and the number of CPU cores and PCs with a small number of cores, concurrent execution of program modules causes a delay due to resource contention due to memory allocation and transfer from HDD to memory. The startup time may not necessarily be shortened. If the startup time is lengthened, usability decreases.

本発明は、上記課題に鑑み、情報処理装置の起動時にプログラムが同時実行されることによる起動時間の遅延を抑制する情報処理装置を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide an information processing apparatus that suppresses a delay in activation time due to simultaneous execution of programs when the information processing apparatus is activated.

本発明は、複数のCPU又はマルチコアのCPUを搭載した情報処理装置において、各プログラムモジュールの起動条件が記述された起動条件情報と、第1のプログラムモジュールの前記起動条件情報に記述されている起動条件に基づき、第1のプログラムモジュールの起動に必要な1つ以上の第2のプログラムモジュールを特定する特定手段と、プログラムモジュールを実行しているCPU又はコアの数情報を記録する数情報記録手段と、前記数情報が閾値未満の場合に、起動条件が満たされている前記第2のプログラムモジュールを、前記数情報が閾値を超えない範囲で起動する起動手段と、を有することを特徴とする。   The present invention provides an information processing apparatus equipped with a plurality of CPUs or multi-core CPUs. The activation condition information describing activation conditions of each program module and the activation conditions described in the activation condition information of the first program module Identification means for specifying one or more second program modules necessary for starting the first program module based on the conditions, and number information recording means for recording the number information of the CPU or core executing the program module And an activation unit that activates the second program module that satisfies an activation condition when the number information is less than a threshold value within a range in which the number information does not exceed the threshold value. .

情報処理装置の起動時にプログラムが同時実行されることによる起動時間の遅延を抑制する情報処理装置を提供することができる。   It is possible to provide an information processing apparatus that suppresses a delay in activation time due to simultaneous execution of programs when the information processing apparatus is activated.

SysVinit、Upstart、及び、Systemdのinitプロセスの起動処理を模式的に説明する図の一例である。FIG. 6 is an example of a diagram schematically illustrating start processing of SysVinit, Upstart, and Systemd init processes. 本実施形態の起動時のプロセス実行を模式的に示す図の一例である。It is an example of the figure which shows typically process execution at the time of starting of this embodiment. 画像形成装置のハードウェア構成図の一例である。1 is an example of a hardware configuration diagram of an image forming apparatus. コントローラのメイン制御システムに搭載されるソフトウエアブロックの構成図の一例である。It is an example of the block diagram of the software block mounted in the main control system of a controller. 起動処理モジュールの構成図の一例である。It is an example of a block diagram of a starting process module. somedaemonの起動スクリプトの一例を示す図である。It is a figure which shows an example of the startup script of somedaemon. ターゲットリストと一例を示す図である。It is a figure which shows a target list and an example. プログラムモジュール間の依存関係を説明する図の一例である。It is an example of the figure explaining the dependence relationship between program modules. APP1とAPP2の起動時のシーケンス図の一例である。It is an example of the sequence diagram at the time of starting of APP1 and APP2. 起動処理モジュールの動作手順を示すフローチャート図の一例である。It is an example of the flowchart figure which shows the operation | movement procedure of a starting process module. 起動処理モジュールが行う各プログラムの起動処理を説明するフローチャート図の一例である。It is an example of the flowchart figure explaining the starting process of each program which a starting process module performs.

以下、本発明を実施するための形態について図面を参照しながら説明する。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.

図2は、情報処理装置の起動時におけるプログラムモジュールの実行を模式的に示す図の一例である。本実施形態の情報処理装置は、無差別にプログラムモジュールを同時に実行するのではなく、利用可能な資源に応じて、起動するプログラムモジュール数を制限することで、資源競合による遅延を抑制する。これにより、単純にsystemdが起動処理を実行する場合よりも、起動時間を短縮できる。   FIG. 2 is an example of a diagram schematically illustrating execution of a program module when the information processing apparatus is activated. The information processing apparatus according to the present embodiment suppresses delay due to resource competition by limiting the number of program modules to be activated according to available resources, instead of simultaneously executing program modules indiscriminately. As a result, the startup time can be shortened compared to the case where systemd simply executes the startup process.

図2において、右向きの白矢印はプログラムモジュールが起動されていることを示す。また、黒い矢印線は、黒矢印の始点にある白矢印と黒矢印の終点にある白矢印の間に依存関係があることを示している。本実施形態のinitプロセスは、以下のように起動時のプログラムモジュールの実行を制御する。
・常に可能な限りプロセッサ数と同じ数のプログラムモジュールを実行させる。
・依存関係を監視しながらプログラムモジュールの起動を制御する。
In FIG. 2, a white arrow pointing to the right indicates that the program module is activated. The black arrow line indicates that there is a dependency between the white arrow at the start point of the black arrow and the white arrow at the end point of the black arrow. The init process of this embodiment controls the execution of the program module at startup as follows.
• Always run the same number of program modules as the number of processors whenever possible.
-Controls the startup of program modules while monitoring dependencies.

図2ではCPUの数又はCPUのコア数が3個であるとしている。このため、3つのプログラムモジュールを同時に実行できるが、プログラムモジュールCはプログラムモジュールBと依存関係があり、プログラムモジュールD,EはプログラムモジュールAと依存関係がある。このため、initプロセスはまず、プログラムモジュールA,Bのみを実行する。   In FIG. 2, it is assumed that the number of CPUs or the number of CPU cores is three. Therefore, three program modules can be executed simultaneously, but the program module C has a dependency relationship with the program module B, and the program modules D and E have a dependency relationship with the program module A. For this reason, the init process first executes only the program modules A and B.

プログラムモジュールAの起動が完了すると、initプロセスはプログラムモジュールAと依存関係があるため実行しなかったプログラムモジュールD,Eを実行する。また、プログラムモジュールBの起動が完了すると、initプロセスはプログラムモジュールBと依存関係があるため実行しなかったプログラムモジュールCを実行する。   When the activation of the program module A is completed, the init process executes the program modules D and E that have not been executed because of a dependency relationship with the program module A. When the activation of the program module B is completed, the init process executes the program module C that has not been executed because it has a dependency relationship with the program module B.

プログラムモジュールEが実行完了すると、initプロセスはプログラムモジュールFを実行する。この時、プログラムモジュールG又はHを実行してもよい。そして、initプロセスは、プログラムモジュールDの実行が完了するとプログラムモジュールGの実行を開始し、プログラムモジュールCの実行が完了するとプログラムモジュールHの実行を開始する。   When the execution of the program module E is completed, the init process executes the program module F. At this time, the program module G or H may be executed. The init process starts executing the program module G when the execution of the program module D is completed, and starts executing the program module H when the execution of the program module C is completed.

このように起動時に実行するプログラムモジュールの順番を制御することで、常時、CPUの数と同じ数以下のプログラムモジュールを実行するので、資源競合が生じにくく、依存関係の制約がなければCPUの数だけ同時実行できる。したがって、逐次実行したり、単純に同時実行したりするよりも起動時間を短縮できる。   By controlling the order of the program modules executed at startup in this way, program modules equal to or less than the number of CPUs are always executed, so that resource competition is unlikely to occur and the number of CPUs is not subject to dependency restrictions. Can only be executed simultaneously. Therefore, the startup time can be shortened compared to sequential execution or simple simultaneous execution.

〔構成例〕
図3は、画像形成装置のハードウェア構成図の一例を示す。画像形成装置100は組み込みシステムが搭載された情報処理装置の一例であるので、プロジェクタ、デジタルカメラ、テレビ会議端末、などの組み込みシステムなどでもよい。また、汎用的なPC(Personal Computer)や、サーバ、タブレット端末、スマートフォンなどの情報処理装置においても本実施形態の起動方法を適用できる。
[Configuration example]
FIG. 3 shows an example of a hardware configuration diagram of the image forming apparatus. Since the image forming apparatus 100 is an example of an information processing apparatus equipped with an embedded system, an embedded system such as a projector, a digital camera, or a video conference terminal may be used. The activation method of the present embodiment can also be applied to a general-purpose PC (Personal Computer), an information processing apparatus such as a server, a tablet terminal, or a smartphone.

画像形成装置100はプリンタ機能を有し、この他、スキャナ、ファクシミリ、コピーなどの機能の1つ以上を搭載している。複合的な機能が搭載されているため、MFP(Multifunction Peripheral/Printer/Product)と呼ばれる場合がある。   The image forming apparatus 100 has a printer function, and additionally has one or more functions such as a scanner, a facsimile, and a copy. Since multiple functions are installed, it is sometimes called MFP (Multifunction Peripheral / Printer / Product).

画像形成装置100は、エンジン11、拡張スロット用ボード12、コントローラ13、USB I/F14及びNIC15を有している。エンジン11は、プリンタエンジン、スキャナエンジン、FAXエンジンなどのエンジンである。   The image forming apparatus 100 includes an engine 11, an expansion slot board 12, a controller 13, a USB I / F 14, and a NIC 15. The engine 11 is an engine such as a printer engine, a scanner engine, or a FAX engine.

コントローラ13は、エンジン11を含む画像形成装置100の全体を制御する。拡張スロット用ボード12は、搭載されるスロット数を増大するためのボードであり、コントローラ13と接続されている。拡張ボードには2つのスロット4,5(符号は21,22)が搭載されている。   The controller 13 controls the entire image forming apparatus 100 including the engine 11. The expansion slot board 12 is a board for increasing the number of slots mounted, and is connected to the controller 13. Two slots 4 and 5 (reference numerals 21 and 22) are mounted on the expansion board.

コントローラ13は、CPU23、ASIC1(符号は24)、MEM25、HDD(Hard Disk Drive)26、SD(Secure Digital)27、LOGIC28、ROM0(符号は29),ROM1(符号は30)、NVRAM(Nonvolatile Random Access Memory)31、スロット1〜3(符号は32〜34)、ASIC2(符号は36)、及び、操作部35、を有している。CPU23は、HDD26に記憶されているOSやプログラムを実行して、ASIC1,2などを制御して画像形成等を行う。本実施形態のCPU23はコアを複数個搭載したマルチコアCPUであるが、複数のCPUを搭載していてもよい。   The controller 13 includes a CPU 23, ASIC 1 (reference numeral 24), MEM 25, HDD (Hard Disk Drive) 26, SD (Secure Digital) 27, LOGIC 28, ROM 0 (reference numeral 29), ROM 1 (reference numeral 30), NVRAM (Nonvolatile Random Access Memory 31, slots 1 to 3 (reference numeral 32 to 34), ASIC 2 (reference numeral 36), and operation unit 35. The CPU 23 executes the OS and programs stored in the HDD 26 and controls the ASICs 1 and 2 to perform image formation and the like. The CPU 23 of this embodiment is a multi-core CPU having a plurality of cores mounted thereon, but a plurality of CPUs may be mounted.

ASIC1は、CPU23の制御下でPCから受信した印刷データを画像データに変換したり、スキャナが読み取った画像データを印刷に適した画像データに変換するなどの画像処理を行う。MEM25は、主に画像データのラインメモリであり、プログラムのワークエリアとしても使用される。   The ASIC 1 performs image processing such as converting print data received from the PC under the control of the CPU 23 into image data, or converting image data read by the scanner into image data suitable for printing. The MEM 25 is mainly a line memory for image data, and is also used as a work area for programs.

HDD26は、画像データ、管理情報、フォントデータ、OS、プログラムなどを格納する記憶装置である。転送速度を上げるために2台並列で接続する場合がある。SD27は不揮発性のメモリであり、SD27にOSなどが記憶されていれば画像形成装置100をブートすることが可能である。また、SD27はプログラムの配布用に使用される場合がある。   The HDD 26 is a storage device that stores image data, management information, font data, an OS, a program, and the like. Two units may be connected in parallel to increase the transfer speed. The SD 27 is a nonvolatile memory, and the image forming apparatus 100 can be booted if an OS or the like is stored in the SD 27. Further, the SD 27 may be used for program distribution.

LOGIC28は、PCI(Peripheral Component Interconnect)信号からローカルバス信号を作り出すICである。ROM0、1はブート可能なRead Only Memoryで、電源オン時に実行されるプログラム(例えばBIOS)を格納する。NVRAM31は、画像形成装置の設定(画面設定、印刷時の制御用パラメータ、スキャン時の制御用パラメータ、印刷枚数)などを保存する。SLOT1〜5は、PCIスロットであり、機能を拡張するために使用される。   The LOGIC 28 is an IC that generates a local bus signal from a PCI (Peripheral Component Interconnect) signal. ROMs 0 and 1 are bootable read-only memories that store programs (eg, BIOS) that are executed when the power is turned on. The NVRAM 31 stores settings of the image forming apparatus (screen settings, control parameters for printing, control parameters for scanning, number of printed sheets) and the like. SLOT 1 to 5 are PCI slots and are used to expand functions.

ASIC2は、ASIC1とPCIで接続され電源制御などを行う。操作部35は、不図示のCPUを有し予め記憶しているプログラムを実行する独立したモジュールであり、画面表示とユーザ操作の受け付けを行うユーザインタフェースである。   The ASIC 2 is connected to the ASIC 1 via PCI and performs power supply control and the like. The operation unit 35 is an independent module that has a CPU (not shown) and executes a program stored in advance, and is a user interface that displays a screen and accepts a user operation.

USB I/F14は、外部の機器やUSBメモリと接続するための通信部である。NIC15は、ネットワーク・インタフェースカードであり、LANなどのネットワークに接続し、PC等と通信する。   The USB I / F 14 is a communication unit for connecting to an external device or a USB memory. The NIC 15 is a network interface card, is connected to a network such as a LAN, and communicates with a PC or the like.

画像形成装置100の起動時の動作について説明する。   An operation when the image forming apparatus 100 is started will be described.

電源がONされるとエンジン11は、CPU23により各機能が初期化され、コントローラ13の初期化が終わって、処理要求コマンドを受信するまで待機状態になる。この初期化の手順が、装置を通常の使用可能な状態とする際に行われる。   When the power is turned on, each function of the engine 11 is initialized by the CPU 23, and the controller 11 is in a standby state until the initialization of the controller 13 is completed and a processing request command is received. This initialization procedure is performed when the device is in a normal usable state.

コントローラ13の初期化は、次の手順により行われる。電源が投入されると、まず、ASIC2にリセット信号が入力される。リセット信号が入力されたASIC2は、いくつかに分割された電源系統に順番をつけて、電源が入るように電源ユニットに、信号を送信する。   The initialization of the controller 13 is performed according to the following procedure. When the power is turned on, first, a reset signal is input to the ASIC 2. The ASIC 2 to which the reset signal is input assigns an order to the power supply system divided into several parts, and transmits a signal to the power supply unit so that the power is turned on.

この結果、それぞれの電源系統から発生したリセット信号が必要なデバイスに分配される。CPU23では、リセット信号がアサートされた後ネゲートされると、リセットベクターの命令をフェッチするため、ASIC1にフェッチ信号を送る。ASIC1は、このフェッチ信号を受け取るとアドレスをデコードして、初期化プログラムの格納されているROM0のCS信号をアサートし、CPU23が要求したアドレスの内容(命令コード又はデータ)を読み出して、CPU23へ渡す。   As a result, the reset signal generated from each power supply system is distributed to the necessary devices. When the CPU 23 is negated after the reset signal is asserted, the CPU 23 sends a fetch signal to the ASIC 1 in order to fetch the instruction of the reset vector. When the ASIC 1 receives this fetch signal, the ASIC 1 decodes the address, asserts the CS signal of the ROM 0 in which the initialization program is stored, reads the content (instruction code or data) of the address requested by the CPU 23, and sends it to the CPU 23. hand over.

CPU23はASIC1に命令の読み出しを繰り返し要求し、ASIC1は、そのアドレスに応じてROM0の命令コード又はデータをCPU23へ渡す。このようにしてCPU23は、プログラムを実行することができる。ASIC1は、ROM0の代わりにSDから、直接コード/データを読み出すことができる。   The CPU 23 repeatedly requests the ASIC 1 to read out the instruction, and the ASIC 1 passes the instruction code or data in the ROM 0 to the CPU 23 according to the address. In this way, the CPU 23 can execute the program. The ASIC 1 can read the code / data directly from the SD instead of the ROM 0.

読み出された初期化プログラムによって、CPU23の初期化、ASIC1に接続されるMEM25とASIC2の初期化、ASIC1から出ている2種類のPCIバスの初期化、エンジン11の初期化、操作部35の初期化、HDD26の初期化、NIC15の初期化、また、必要に応じて、SLOT1〜5の初期化を行う。その後、画像形成装置100は汎用OSを起動して、次にアプリケーションを起動する。   According to the read initialization program, the CPU 23 is initialized, the MEM 25 and the ASIC 2 connected to the ASIC 1 are initialized, the two types of PCI buses from the ASIC 1 are initialized, the engine 11 is initialized, and the operation unit 35 is initialized. Initialization, initialization of the HDD 26, initialization of the NIC 15, and initialization of SLOT 1 to 5 are performed as necessary. Thereafter, the image forming apparatus 100 activates the general-purpose OS and then activates the application.

図4は、コントローラ13のメイン制御システムに搭載されるソフトウエアブロックの構成図の一例である。   FIG. 4 is an example of a configuration diagram of software blocks mounted on the main control system of the controller 13.

画像形成装置100は、アプリケーションとして、PRINT-APL(プリントアプリケーション)41、COPY-APL(コピーアプリケーション)42、FAX-APL(FAXアプリケーション)43、SCAN-APL(スキャナアプリケーション)44、及び、NETWORK-APL(ネットワークアプリケーション)45、を有している。各アプリケーションはジョブの実行条件を設定するためのUI画面を表示し、また、ユーザの設定を受け付ける。なお、アプリケーションとは、汎用OSに比べて比較的上位の階層のプログラムの呼称に過ぎず、アプリケーションも組み込みプログラムの一種である。   The image forming apparatus 100 includes, as applications, PRINT-APL (print application) 41, COPY-APL (copy application) 42, FAX-APL (FAX application) 43, SCAN-APL (scanner application) 44, and NETWORK-APL. (Network application) 45. Each application displays a UI screen for setting job execution conditions and accepts user settings. The application is merely a name of a program at a relatively higher level than the general-purpose OS, and the application is a kind of embedded program.

サービス-API46は、アプリケーションがサービス層のサービスを読み出すためのアプリケーションプログラミングインターフェースである。サービス層には、ECS(エンジンコントロールサービス)47、MCS(メモリコントロールサービス)48、OCS(オペレーションパネルコントロールサービス)49、FCS(FAXコントロールサービス)50、NCS(ネットワークコントロールサービス)51、SCS(システムコントロールサービス)52、及び、SRM(システムリソースマネジャー)53がある。   The service-API 46 is an application programming interface for an application to read a service layer service. The service layer includes ECS (engine control service) 47, MCS (memory control service) 48, OCS (operation panel control service) 49, FCS (FAX control service) 50, NCS (network control service) 51, and SCS (system control). Service) 52 and SRM (system resource manager) 53.

起動処理モジュール54は、initプロセスを実行するプログラムである。詳しくは後述する。汎用OS55は、例えばUNIX(登録商標)、LINUX(登録商標)などのOSである。エンジンコマンドI/F56は、汎用OS55がエンジン11と通信するためのプログラミングインターフェースである。エンジン11はエンジン本体である。ハードウェア57は、コントローラ13のハードウェアリソース(CPUやMEMなど)を意味している。   The activation processing module 54 is a program that executes an init process. Details will be described later. The general-purpose OS 55 is an OS such as UNIX (registered trademark) or LINUX (registered trademark). The engine command I / F 56 is a programming interface for the general-purpose OS 55 to communicate with the engine 11. The engine 11 is an engine body. The hardware 57 means a hardware resource (CPU, MEM, etc.) of the controller 13.

〔起動処理モジュール〕
図5は、起動処理モジュール54の構成図の一例を示す。
[Startup processing module]
FIG. 5 shows an example of a configuration diagram of the activation processing module 54.

起動スクリプト:起動すべきプログラムの詳細を記載したスクリプトである。起動スクリプト61はプログラムモジュール毎に予め用意されている。起動スクリプト61はHDDのファイルシステムに記憶されている。詳細は図6にて説明する。
ターゲットリスト:最終的に起動しなければならないプログラムモジュールのリストである。このプログラムモジュールは例えばアプリケーションである。ターゲットリストにおける記述順が、起動の優先順位となる。ターゲットリスト62はHDDのファイルシステムに記憶されている。詳細は図7にて説明する。
Start script: A script describing details of a program to be started. The startup script 61 is prepared in advance for each program module. The startup script 61 is stored in the HDD file system. Details will be described with reference to FIG.
Target list: A list of program modules that must eventually be launched. This program module is, for example, an application. The order of description in the target list is the priority of activation. The target list 62 is stored in the HDD file system. Details will be described with reference to FIG.

メイン:起動処理モジュール54のメインルーチンである。起動時にターゲットリスト62を読み出すことができる。メイン63は、以下のサブルーチンの処理結果に基づいて各プログラムモジュールの起動を行う。   Main: This is the main routine of the activation processing module 54. The target list 62 can be read at startup. The main 63 activates each program module based on the processing results of the following subroutines.

起動スクリプト解析部:ターゲットリスト62に記述されたアプリケーションの起動に必要な記述を起動スクリプト61から読み出し、各プログラムモジュールの依存関係を特定する。例えば、あるプログラムモジュールの起動には別のプログラムモジュールの起動が必要であること、USBI/FなどのデバイスがReady状態であることが必要であること、などを特定する。なお、デバイスやハードウェアは特許請求の範囲の周辺機器の一例である。   Activation script analysis unit: Reads a description necessary for activation of the application described in the target list 62 from the activation script 61, and identifies the dependency relationship of each program module. For example, it is specified that another program module needs to be started in order to start a certain program module, and that a device such as a USB I / F needs to be in a ready state. Devices and hardware are examples of peripheral devices in the claims.

なお、起動スクリプト解析部は、起動スクリプトに記述された依存関係において、監視すべきシステムリソースを決定する。CPU以外のシステムリソースとしては、起動スクリプトに例えばファイルが作成されることが記述されている場合、ファイルの実体が保持されるメモリ(MEM25)などが該当する。   Note that the startup script analysis unit determines a system resource to be monitored in the dependency relationship described in the startup script. As a system resource other than the CPU, for example, when the start script describes that a file is to be created, a memory (MEM25) in which the file entity is held corresponds.

プログラム状態監視部:ターゲットリスト62に記述されたアプリケーションにたどり着くまでに起動しなければならないプログラムモジュールが起動されたか否かを監視する。起動スクリプト解析部64が、例えば、アプリケーションの起動にプログラムモジュールaの起動が必要であり、プログラムモジュールaの起動にはプログラムモジュールbの起動が必要であると特定したとする。この場合、プログラム状態監視部65は、プログラムモジュールa,bの実行状態を監視する。   Program state monitoring unit: Monitors whether or not a program module that must be started before reaching the application described in the target list 62 is started. For example, it is assumed that the activation script analysis unit 64 specifies that the activation of the program module a is necessary for the activation of the application, and that the activation of the program module b is necessary for the activation of the program module a. In this case, the program status monitoring unit 65 monitors the execution status of the program modules a and b.

デバイス監視部:ターゲットリスト62に記述されたアプリケーションにたどり着くまでに起動していなければならないデバイスを監視する。起動スクリプト解析部64が、アプリケーションの起動に、HDD26がマウントされること、USBI/FがReady状態になること、が必要であると特定したとする。この場合、デバイス監視部66は、HDD26がマウントされたか否か,USBI/FがReady状態になったか否かを監視する。   Device monitoring unit: monitors a device that must be activated before reaching the application described in the target list 62. It is assumed that the activation script analysis unit 64 specifies that the HDD 26 must be mounted and the USB I / F must be in a ready state for application activation. In this case, the device monitoring unit 66 monitors whether the HDD 26 is mounted and whether the USB I / F is in a Ready state.

リソース監視部:監視しなければならないシステムリソースを監視する。システムリソースは例えばCPUリソース、メモリ(メモリの空き容量やメモリにファイルが作成された否か)などである。   Resource monitoring unit: Monitors system resources that must be monitored. The system resource is, for example, a CPU resource, a memory (whether or not a file is created in a memory or a memory).

CPUリソースの監視には、例えばロードアベレージを使用する(ロードアベレージは特許請求の範囲の数情報の一例である)。ロードアベレージはUNIX系のOSが提供するCPU23に加わっている負荷の大きさを示す指標である。ロードアベレージは 1CPU で処理可能な処理量を1とした場合のCPUリソースの要求量を反映した値である。例えば、1プログラムが1CPU を専有し続けるとロードアベレージは次第に1に近付く。2つのプログラムが2つのCPUを占有し続けるとロードアベレージは2に近づく。1CPUしかないコンピュータで1つのプログラムが1CPUを専有し、もう1つのプログラムが実行待ちの場合、ロードアベレージは2になる。したがって、ロードアベレージが、画像形成装置100が有するCPU23の数よりも約1小さくなれば、CPUリソースに空きができたと判定できる。   For monitoring the CPU resource, for example, a load average is used (the load average is an example of the number information in the claims). The load average is an index indicating the magnitude of the load applied to the CPU 23 provided by the UNIX OS. The load average is a value reflecting the requested amount of CPU resources when the processing amount that can be processed by one CPU is 1. For example, if one program continues to occupy 1 CPU, the load average gradually approaches 1. If two programs continue to occupy two CPUs, the load average approaches 2. If a computer has only 1 CPU and one program occupies 1 CPU and the other program is waiting to be executed, the load average is 2. Therefore, if the load average is about 1 smaller than the number of CPUs 23 included in the image forming apparatus 100, it can be determined that the CPU resource is free.

この他、CPUリソースの監視に、CPU負荷率などを用いていてもよい。予めCPU負荷率と何個のコアを専有しているかを対応づけておけば、CPU負荷率から専有されているコア数を特定できる。   In addition, a CPU load factor or the like may be used for monitoring CPU resources. If the CPU load factor is associated with how many cores are occupied in advance, the number of dedicated cores can be specified from the CPU load factor.

メモリ負荷の監視には例えばメモリ使用量を使用する。OSはメモリ使用量をリアルタイムに提供するのでそれを利用する。メモリ使用量により、物理メモリ量、使用中のメモリの容量、物理メモリ使用率などを検出できる。   For example, memory usage is used for monitoring the memory load. Since the OS provides the memory usage in real time, it is used. The amount of physical memory, the capacity of the memory being used, the physical memory usage rate, etc. can be detected based on the memory usage.

〔起動スクリプト〕
図6は、somedaemonの起動スクリプト61の一例を示す図である。起動スクリプト61は、起動処理モジュール54が、プログラムモジュールの起動の動作を決定し、各プログラムモジュールを起動させるためのテキストになっている。図6では、一般的なセクションの記述例を示す。
「Unit」セクションの「Description="somedaemon description."」はプログラムモジュール名を指定している。なお、プログラムモジュールはダエモン(デーモンとも言う)と呼ばれる場合がある。
「Unit」セクションの「Requires="mounted /somedir"」は、このプログラムモジュールを起動するための事前条件を示す(特許請求の範囲の起動条件の一例である)。この例では/somedirがマウントされることを条件としている。何が事前条件となるかはプログラムモジュールにより様々であり、例えば、プログラムモジュールの起動が事前条件となる場合がある。
「Unit」セクションの「Effect="created /var/XXX"」は、この起動スクリプト61が実行されることで将来生じる情報処理装置のイベントを表す。これ例では、varというディレクトリに"XXX"というファイルが作成されることを意味している。Effectはプログラムモジュールの事後条件を規定する。他の起動スクリプト61でRequireされているEffectのイベントのみが、起動処理モジュール54にとって有効な記載となる。なお、事後条件は特許請求の範囲の事後起動周辺機器の一例である。
[Startup script]
FIG. 6 is a diagram illustrating an example of a startup script 61 of somedaemon. The start script 61 is text for the start processing module 54 to determine the start operation of the program module and start each program module. FIG. 6 shows a description example of a general section.
"Description =" somedaemon description. "" In the "Unit" section designates a program module name. The program module is sometimes called Daemon (also called a daemon).
“Requires =“ mounted / somedir ”” in the “Unit” section indicates a precondition for starting this program module (an example of a startup condition in the claims). This example is conditional on / somedir being mounted. What is a precondition varies depending on the program module. For example, activation of the program module may be a precondition.
“Effect =“ created / var / XXX ”” in the “Unit” section represents an event of the information processing apparatus that will occur in the future by executing this startup script 61. In this example, it means that a file called "XXX" is created in a directory called var. Effect specifies the post-condition of the program module. Only the Effect event required by the other start script 61 is a valid description for the start processing module 54. The post condition is an example of the post activation peripheral device in the claims.

例えば、Aというプログラムモジュールの起動スクリプト61のRequiresが、Bというプログラムモジュールの起動スクリプト61のEffectのイベントを事前条件とする場合、起動処理モジュール54にとってBというプログラムモジュールの起動スクリプト61のEffectの記述が有効になる。この場合、プログラムモジュールAは、プログラムモジュールBと依存関係にある。   For example, if the requirement of the startup script 61 of the program module A is preconditioned to an effect event of the startup script 61 of the program module B, the description of the effect of the startup script 61 of the program module B for the startup processing module 54 Becomes effective. In this case, the program module A is dependent on the program module B.

「Service」セクションの「ExecStart="/somedir/bin/somedaemon.sh"」は、起動するプログラムモジュールとその記憶場所(Path)とが記述されている。ここには、シェルスクリプトが記述される場合がある。   “ExecStart =“ / somedir / bin / somedaemon.sh ”” in the “Service” section describes the program module to be started and its storage location (Path). A shell script may be written here.

〔ターゲットリスト〕
図7は、ターゲットリスト62の一例を示す図である。ターゲットリスト62は、情報処理装置が起動したいと考えるプログラムモジュール(具体的にはアプリケーションであるが、アプリケーションもプログラムモジュールの一種である)のリストである。複数のプログラムモジュールがある場合は上位のプログラムモジュールの方が、優先度が高いと判定される。図7の例ではApp1がApp2よりも優先されて起動される。例えば、APP1を起動する場合、起動スクリプト解析部64は、APP1を起動するために事前に起動しなければならないプログラムモジュールやデバイスを起動スクリプト61により特定できる。
[Target list]
FIG. 7 is a diagram illustrating an example of the target list 62. The target list 62 is a list of program modules that the information processing apparatus wants to start (specifically, it is an application, but an application is also a kind of program module). When there are a plurality of program modules, it is determined that the higher-order program module has a higher priority. In the example of FIG. 7, App1 is activated with priority over App2. For example, when starting up APP 1, the start-up script analysis unit 64 can specify a program module or device that must be started up in advance to start up APP 1 by using the start-up script 61.

ターゲットリスト62には、アプリケーション以外のプログラムモジュールのリストが記載されていてもよいが、アプリケーションを起動するためにすでに起動されたプログラムモジュールは起動する必要がない。   The target list 62 may include a list of program modules other than the application, but it is not necessary to activate a program module that has already been activated in order to activate the application.

〔依存関係〕
図8は、プログラムモジュール間の依存関係を説明する図の一例である。矢印は起動の依存関係を示しており、矢印の終点のプログラムモジュールは矢印の始点のプログラムモジュールが起動することを起動の条件としている。また、矢印には、矢印の終点のプログラムモジュールにとって事前条件となるイベントが記載されている。この事前条件は、起動スクリプト61のRequires 又はRequiresとEffectで定まる、
例えば、KMMからSCSに向かう矢印には"Create /var/XXX"と記載されているが、これは、KMMが起動することで/var/に"XXX"ファイルが生成されることを示している。つまり、SCSは/var/に"XXX"ファイルが生成されることを起動の条件(つまり事前条件)としている。
[Dependency]
FIG. 8 is an example of a diagram illustrating the dependency relationship between program modules. The arrow indicates the dependency of activation, and the program module at the end point of the arrow has the condition that the program module at the start point of the arrow is activated. Further, an arrow describes an event that is a precondition for the program module at the end point of the arrow. This pre-condition is determined by Requirements or Requirements and Effect of the startup script 61.
For example, “Create / var / XXX” is described in the arrow from the KMM to the SCS. This indicates that the “XXX” file is generated in / var / when the KMM is started. . That is, the SCS sets the generation condition (that is, the precondition) that the “XXX” file is generated in / var /.

同様に、usbdが起動してid="XXX"が"attached"されることが、OCSと指紋認証モジュールが起動することの条件となっている。"attached"は、usbdの起動に伴ってUSBデバイスが接続されたこと(OS上のデバイスドライバが有効になったこと)を意味する。また、"id"はポートIDを意味していて、何番目のUSBポートにUSBデバイスがつながっているかを示す。   Similarly, it is a condition that the OCS and the fingerprint authentication module are activated that usbd is activated and id = “XXX” is “attached”. “attached” means that the USB device is connected with the activation of usbd (the device driver on the OS is enabled). Further, “id” means a port ID, and indicates what number USB port the USB device is connected to.

usbdはUSBデバイスが接続されたことを検知してデバイス監視部に通知する(または、デバイス監視部がusbdの状態を監視している)。   The usbd detects that the USB device is connected and notifies the device monitoring unit (or the device monitoring unit monitors the usbd state).

したがって、USB I/F14に操作部デバイスのモジュールが接続され、usbdが使用可能であるというイベントをデバイス監視部が検出して、起動処理モジュールがOCS(操作部を管理する)を起動している。   Therefore, the module of the operation unit device is connected to the USB I / F 14, the device monitoring unit detects an event that the usbd is usable, and the activation processing module activates the OCS (manages the operation unit). .

指紋認証モジュールに関しても同様で、USB I/F14に指紋認証用のデバイスが装着されて指紋認証デバイスが利用可能になったことを、デバイス監視部が検知する。指紋認証モジュールの起動条件が満たされたら、起動処理モジュールが指紋認証モジュールを起動する。   The same applies to the fingerprint authentication module, and the device monitoring unit detects that the fingerprint authentication device is available after the fingerprint authentication device is attached to the USB I / F 14. When the activation condition of the fingerprint authentication module is satisfied, the activation processing module activates the fingerprint authentication module.

図8の例では、APP1を起動するために、SCS、NCS、OCSの起動が必要であり、SCSを起動するためにKMMを起動することが必要であること、OCSを起動するためにusbdを起動することが必要であること、usbdを起動するためにUSB I/F14がReady状態であること、が必要である。   In the example of FIG. 8, it is necessary to start up SCS, NCS, and OCS in order to start up APP1, it is necessary to start up KMM in order to start up SCS, and usbd is used to start up OCS. It is necessary to start up, and the USB I / F 14 is in a ready state in order to start up usbd.

起動処理モジュール54は、ターゲットリスト62から優先順位順にアプリケーション名を読み出し、該アプリケーションの起動スクリプト61を読み出して、事前条件を確認する。事前条件があれば、その事前条件を満たすために起動が必要なプログラムモジュールを、起動スクリプト61に基づき特定する。また、事前条件が要求するイベントを事後条件とするプログラムモジュールを起動スクリプト61から検索する。このように、事前条件と事後条件を辿ることでAPP1の起動に必要なプログラムモジュールをすべて特定できる。   The activation processing module 54 reads application names from the target list 62 in order of priority, reads the activation script 61 of the application, and confirms the precondition. If there is a precondition, the program module that needs to be activated to satisfy the precondition is specified based on the activation script 61. In addition, a search is made for a program module having a post-condition as an event requested by the precondition from the startup script 61. In this way, all the program modules necessary for starting up APP1 can be specified by following the precondition and the postcondition.

〔シーケンス〕
図9は、APP1とAPP2の起動時のシーケンス図の一例を示す。図9のシーケンスは、図8の依存関係に基づいている。また、CPU23の数又はCPU23のコア数は2つであるとする。
〔sequence〕
FIG. 9 shows an example of a sequence diagram when starting up APP1 and APP2. The sequence of FIG. 9 is based on the dependency relationship of FIG. Further, it is assumed that the number of CPUs 23 or the number of cores of CPU 23 is two.

横向きの矢印は、各プロセスによりCPU23が専有され起動中であることを示しており、矢印の終端がプログラムモジュールの終了ではない。また、実際のプログラムモジュールは動作によっては間欠的にCPU23を専有する可能性があるがそれは表現されていない。   The horizontal arrow indicates that the CPU 23 is exclusively used by each process and is being activated, and the end of the arrow is not the end of the program module. Further, although an actual program module may occupy the CPU 23 intermittently depending on the operation, it is not expressed.

図8の依存関係によれば、APP1を起動するために、起動処理モジュール54は、最初にKMMとNCSを起動し、USB I/F14がReady状態であることが必要であると判断する。
t1:CPU23が2個なのでメイン63は、KMMとNCSの起動を開始する。CPUが空いていることはリソース監視部が監視している。
t2:デバイス監視部66は、usbdの起動に必要なデバイスとして監視していた、USB I/F14がReadyになったことを検出する。
t3:プログラム状態監視部65はKMMの起動の完了を検出する。また、リソース監視部67は、ロードアベレージが1近くに低下したこと(少なくとも2未満になったこと)を検出する。これにより、メイン63は、usbdの起動を開始する。ロードアベレージは再度、約2に近い値となる。
t4:プログラム状態監視部65はNCSの起動の完了を検出する。また、リソース監視部67は、ロードアベレージが1近くに低下したこと(少なくとも2未満になったこと)を検出する。これにより、メイン63は、SCSの起動を開始する。ロードアベレージは再度、約2に近い値となる。
t5:プログラム状態監視部65はusbdの起動の完了を検出する。また、リソース監視部67は、ロードアベレージが1近くに低下したこと(少なくとも2未満になったこと)を検出する。これにより、メイン63は、OCSの起動を開始する。ロードアベレージは再度、約2に近い値となる。
t6:デバイス監視部66は、APP2の起動に必要なデバイスとして監視していた、HDD26がReadyになったことを検出する。しかし、APP1の起動が完了していないので、メイン63はAPP2の起動を開始しない。
t7:プログラム状態監視部65はSCSとOCSの起動の完了を検出する。これにより、プログラム状態監視部65は、APP1の起動に必要なプログラムモジュールの起動が完了したと判定する。よって、メイン63は、APP1の起動を開始する。
t8:プログラム状態監視部65は、APP1の起動が完了したことを検出する。すでにHDD26がReadyになっているので、メイン63はAPP2の起動を開始する。
According to the dependency relationship of FIG. 8, in order to activate APP1, the activation processing module 54 first activates KMM and NCS, and determines that the USB I / F 14 needs to be in the Ready state.
t1: Since there are two CPUs 23, the main 63 starts activation of KMM and NCS. The resource monitoring unit monitors that the CPU is free.
t2: The device monitoring unit 66 detects that the USB I / F 14 that has been monitored as a device necessary for the activation of usbd has become Ready.
t3: The program state monitoring unit 65 detects completion of activation of the KMM. Further, the resource monitoring unit 67 detects that the load average has decreased to near 1 (at least less than 2). Thereby, the main 63 starts activation of usbd. The load average is again close to about 2.
t4: The program state monitoring unit 65 detects completion of activation of the NCS. Further, the resource monitoring unit 67 detects that the load average has decreased to near 1 (at least less than 2). Thereby, the main 63 starts activation of the SCS. The load average is again close to about 2.
t5: The program state monitoring unit 65 detects the completion of the activation of usbd. Further, the resource monitoring unit 67 detects that the load average has decreased to near 1 (at least less than 2). Thereby, the main 63 starts activation of the OCS. The load average is again close to about 2.
t6: The device monitoring unit 66 detects that the HDD 26, which has been monitored as a device necessary for starting up the APP2, becomes Ready. However, since activation of APP1 is not completed, the main 63 does not start activation of APP2.
t7: The program state monitoring unit 65 detects completion of activation of the SCS and OCS. Thereby, the program state monitoring unit 65 determines that the activation of the program module necessary for the activation of APP1 has been completed. Therefore, the main 63 starts the activation of APP1.
t8: The program state monitoring unit 65 detects that the activation of APP1 is completed. Since the HDD 26 is already ready, the main 63 starts to activate APP2.

以上により、ターゲットリスト62にある2つ目のターゲット(アプリケーション)まで全ての起動が完了する。   As described above, all the activations up to the second target (application) in the target list 62 are completed.

〔動作手順〕
図10は、起動処理モジュール54の動作手順を示すフローチャート図の一例を示す。図10の手順は汎用OS55がinitプロセスを開始することでスタートする。なお、起動スクリプト61とターゲットリスト62は例えばHDD26のファイルシステム上にファイルとして存在しているものとする。
[Operation procedure]
FIG. 10 shows an example of a flowchart showing the operation procedure of the activation processing module 54. The procedure of FIG. 10 starts when the general-purpose OS 55 starts the init process. It is assumed that the startup script 61 and the target list 62 exist as files on the file system of the HDD 26, for example.

まず、メイン63は、ファイルシステムから起動スクリプト61とターゲットリスト62を読み出す(S10)。MEMなどのメモリ上に、起動スクリプト内部データとターゲットリスト62が配置される。   First, the main 63 reads the activation script 61 and the target list 62 from the file system (S10). The startup script internal data and the target list 62 are arranged on a memory such as MEM.

起動スクリプト解析部64は、監視すべきデバイスを抽出し、起動の完了の有無を登録するためのテーブルなどに登録する(S20)。具体的には、ターゲットリスト62の優先順位順にアプリケーション名を読み出し、該アプリケーションの起動スクリプト61を読み出す。この起動スクリプト61により、プログラムモジュール間の依存関係を特定し、アプリケーションの起動に必要なプログラムモジュールが必要とするデバイスを特定する。   The startup script analysis unit 64 extracts devices to be monitored and registers them in a table for registering whether or not startup is completed (S20). Specifically, the application names are read in the order of priority in the target list 62, and the activation script 61 of the application is read. The activation script 61 identifies dependencies between program modules, and identifies devices required by the program modules necessary for application activation.

次に、リソース監視部67は、監視リソースを抽出し、監視リソース(資源)の状態を登録するためのテーブルなどに登録する(S30)。資源は、例えばCPUリソース、メモリ(空き容量、ファイルが生成されたか否か)などであるが、本実施形態では主にCPU23を資源として説明する。   Next, the resource monitoring unit 67 extracts the monitoring resource and registers it in a table or the like for registering the state of the monitoring resource (resource) (S30). The resource is, for example, a CPU resource, memory (free capacity, whether or not a file has been generated), and the like. In this embodiment, the CPU 23 is mainly described as a resource.

次に、起動処理モジュール54は、図11に示す起動処理を実行する(S40)。   Next, the activation process module 54 executes the activation process shown in FIG. 11 (S40).

図11は、起動処理モジュール54が行う各プログラムの起動処理を説明するフローチャート図の一例である。起動処理では、メモリ上のターゲットリスト62のアプリケーションを全て起動させる。   FIG. 11 is an example of a flowchart for explaining the activation process of each program performed by the activation process module 54. In the activation process, all applications in the target list 62 on the memory are activated.

メイン63は、ターゲットリスト62から優先順位にしたがって1つアプリケーション名を取り出す(S41)。   The main 63 extracts one application name from the target list 62 according to the priority order (S41).

次に、メイン63は起動スクリプト解析部64により、アプリケーションの起動スクリプト61を読み出し、アプリケーションの起動に必要なすべての起動候補のプログラムモジュールを特定する(S42)。   Next, the main 63 uses the start script analysis unit 64 to read the start script 61 of the application, and identifies all start candidate program modules necessary for starting the application (S42).

メイン63は、リソース監視部67が監視するCPUリソースであるロードアベレージがCPU数又はコア数よりも十分に小さいか否かを判定する(S43)。十分に小さい値は、CPU数又はコア数が2個の場合は、例えば1〜1.5などである。また、ステップS43では一定時間、ロードアベレージがCPU数又はコア数よりも十分に小さいか否かを判定してもよい。これにより、ロードアベレージが短時間に増減した場合にCPUリソースの状態を正確に判定しやすくなる。   The main 63 determines whether or not the load average, which is the CPU resource monitored by the resource monitoring unit 67, is sufficiently smaller than the number of CPUs or the number of cores (S43). A sufficiently small value is, for example, 1 to 1.5 when the number of CPUs or the number of cores is two. In step S43, it may be determined whether the load average is sufficiently smaller than the number of CPUs or the number of cores for a certain period of time. This makes it easy to accurately determine the state of the CPU resource when the load average increases or decreases in a short time.

ロードアベレージがCPU数よりも十分に小さくない場合(S43のNo)、起動処理モジュール54はロードアベレージが低下するまでスリープする(S44)。例えば、スケジューラにより実行待ち状態にされる。   If the load average is not sufficiently smaller than the number of CPUs (No in S43), the activation processing module 54 sleeps until the load average decreases (S44). For example, the execution wait state is set by the scheduler.

ロードアベレージがCPU数よりも十分に小さい場合(S43のYes)、メイン63は、起動候補のプログラムモジュールのうち、事前条件を満たし、かつ、プログラム状態監視部65に実行状態又は起動済みで登録されていない起動候補を実行する。事前条件には、デバイスの起動も含まれる。   When the load average is sufficiently smaller than the number of CPUs (Yes in S43), the main 63 satisfies the pre-condition among the activation candidate program modules and is registered in the program state monitoring unit 65 in the execution state or already activated. Run startup candidates that have not. The precondition includes activation of the device.

また、プログラム状態監視部65は、実行した起動候補のプログラムモジュールを実行済みとしてテーブルに登録する。事前条件を満たしていない起動候補については事前条件を満たすまで待機する。   Further, the program state monitoring unit 65 registers the executed activation candidate program module in the table as being executed. For activation candidates that do not satisfy the precondition, the system waits until the precondition is satisfied.

メイン63は、起動候補が空になったか否かを判定する(S46)。   The main 63 determines whether or not the activation candidate is empty (S46).

起動候補が空になっていない場合(S46のNo)、メイン63はステップS42以降の処理を繰り返す。   When the activation candidate is not empty (No in S46), the main 63 repeats the processes after Step S42.

起動候補が空になった場合(S46のYes)、メイン63はターゲットリスト62が空になったか否かを判定する(S47)。   When the activation candidate becomes empty (Yes in S46), the main 63 determines whether or not the target list 62 is empty (S47).

ターゲットリスト62が空でない場合(S47のYes)、メイン63はステップS41以降の処理を繰り返す。   When the target list 62 is not empty (Yes in S47), the main 63 repeats the processes after Step S41.

ターゲットリスト62が空である場合(S47のNo)、メイン63は起動処理を終了する。以上により、ターゲットリスト62に記述されているアプリケーションを優先順位にしたがって起動できる。また、起動の際、依存関係を満たしたプログラムモジュールをCPU23の数だけ同時実行できる。したがって、資源競合が生じにくく、逐次実行したり、単純に同時実行したりするよりも起動時間を短縮できる。   When the target list 62 is empty (No in S47), the main 63 ends the activation process. As described above, the applications described in the target list 62 can be activated according to the priority order. Further, at the time of activation, the number of program modules satisfying the dependency can be simultaneously executed by the number of CPUs 23. Therefore, resource competition is unlikely to occur, and the startup time can be shortened compared to sequential execution or simple simultaneous execution.

11 エンジン
13 コントローラ
14 USB I/F
15 NIC
23 CPU
26 HDD
54 起動処理モジュール
55 汎用OS
61 起動スクリプト
62 ターゲットリスト
63 メイン
64 起動スクリプト解析部
65 プログラム状態監視部
66 デバイス監視部
67 リソース監視部
100 画像形成装置
11 Engine 13 Controller 14 USB I / F
15 NIC
23 CPU
26 HDD
54 Startup processing module 55 General-purpose OS
61 Startup Script 62 Target List 63 Main 64 Startup Script Analysis Unit 65 Program Status Monitoring Unit 66 Device Monitoring Unit 67 Resource Monitoring Unit 100 Image Forming Apparatus

特開2009−104443号公報JP 2009-104443 A

Claims (8)

複数のCPU又はマルチコアのCPUを搭載した情報処理装置において、
各プログラムモジュールの起動条件が記述された起動条件情報と、
第1のプログラムモジュールの前記起動条件情報に記述されている起動条件に基づき、第1のプログラムモジュールの起動に必要な1つ以上の第2のプログラムモジュールを特定する特定手段と、
プログラムモジュールを実行しているCPU又はコアの数情報を記録する数情報記録手段と、
前記数情報が閾値未満の場合に、起動条件が満たされている前記第2のプログラムモジュールを、前記数情報が前記閾値を超えない範囲で起動する起動手段と、
を有することを特徴とする情報処理装置。
In an information processing apparatus equipped with a plurality of CPUs or multi-core CPUs,
Start condition information describing the start condition of each program module,
Specifying means for specifying one or more second program modules necessary for starting the first program module based on the start condition described in the start condition information of the first program module;
Number information recording means for recording the number information of the CPU or core executing the program module;
An activation unit that activates the second program module that satisfies an activation condition when the number information is less than a threshold value, within a range in which the number information does not exceed the threshold value;
An information processing apparatus comprising:
前記起動手段は、前記数情報が当該情報処理装置に搭載されたCPU又はコアの数よりも小さい値になった場合、起動条件が満たされている前記第2のプログラムモジュールを、前記数情報がCPU又はコアの数を超えない範囲で起動する、
ことを特徴とする請求項1記載の情報処理装置。
When the number information has a value smaller than the number of CPUs or cores mounted on the information processing apparatus, the activation unit determines the second program module that satisfies the activation condition as the number information. Start up in a range not exceeding the number of CPUs or cores,
The information processing apparatus according to claim 1.
前記起動条件情報に前記第2のプログラムモジュールの起動条件として、他のプログラムモジュールが起動していることが記述されている場合、
前記特定手段は、前記他のプログラムモジュールを、前記第1のプログラムモジュールの起動に必要な前記第2のプログラムモジュールであると特定し、
前記起動手段は、前記第2のプログラムモジュールであると特定された前記他のプログラムモジュールの起動が完了した場合に、前記第2のプログラムモジュールを前記数情報が閾値を超えない範囲で起動する、
ことを特徴とする請求項1又は2記載の情報処理装置。
When it is described in the activation condition information that the other program module is activated as the activation condition of the second program module,
The specifying means specifies the other program module as the second program module necessary for starting the first program module;
The activation means activates the second program module within a range in which the number information does not exceed a threshold when the activation of the other program module identified as the second program module is completed.
The information processing apparatus according to claim 1 or 2.
前記起動条件情報には、周辺機器が起動することがプログラムモジュールの起動条件として記述されており、
周辺機器が起動したことを検出する周辺機器起動検出手段を有し、
前記周辺機器起動検出手段が、前記第2のプログラムモジュールの前記起動条件情報に記述されている周辺機器が起動したことを検出した場合、前記起動手段は、周辺機器の起動を起動条件とする前記第2のプログラムモジュールを前記数情報が閾値を超えない範囲で起動する、
ことを特徴とする請求項1〜3いずれか1項記載の情報処理装置。
In the start condition information, it is described that the peripheral device is started as a start condition of the program module,
Peripheral device activation detection means for detecting that the peripheral device has activated,
When the peripheral device activation detection unit detects that the peripheral device described in the activation condition information of the second program module is activated, the activation unit uses the activation of the peripheral device as an activation condition. Activating a second program module in a range in which the number information does not exceed a threshold;
The information processing apparatus according to any one of claims 1 to 3.
前記起動条件情報には、プログラムモジュールの起動後に起動される事後起動周辺機器が記述されており、
前記第2のプログラムモジュールの前記起動条件情報に記述された周辺機器が、他のプログラムモジュールの前記起動条件情報に前記事後起動周辺機器として記述されている場合、
前記特定手段は、前記他のプログラムモジュールを、前記第1のプログラムモジュールの起動に必要な前記第2のプログラムモジュールであると特定し、
前記起動手段は、前記第2のプログラムモジュールであると特定された前記他のプログラムモジュールの起動が完了した場合に、前記第2のプログラムモジュールを前記数情報が閾値を超えない範囲で起動する、
ことを特徴とする請求項4記載の情報処理装置。
In the start condition information, a post-start peripheral device that is started after the program module is started is described.
When the peripheral device described in the start condition information of the second program module is described as the post-start peripheral device in the start condition information of another program module,
The specifying means specifies the other program module as the second program module necessary for starting the first program module;
The activation means activates the second program module within a range in which the number information does not exceed a threshold when the activation of the other program module identified as the second program module is completed.
The information processing apparatus according to claim 4.
前記数情報記録手段が記録する前記数情報はロードアベレージである、
ことを特徴とする請求項1〜4いずれか1項記載の情報処理装置。
The number information recorded by the number information recording means is a load average.
The information processing apparatus according to claim 1, wherein the information processing apparatus is an information processing apparatus.
複数のCPU又はマルチコアのCPUを搭載した情報処理装置に、
第1のプログラムモジュールの起動条件情報に記述されている起動条件に基づき、第1のプログラムモジュールの起動に必要な1つ以上の第2のプログラムモジュールを特定する特定ステップと、
プログラムモジュールを実行しているCPU又はコアの数情報を記録する数情報記録ステップと、
前記数情報が閾値未満の場合に、起動条件が満たされている前記第2のプログラムモジュールを、前記数情報が閾値を超えない範囲で起動する起動ステップと、
を実行させるプログラム。
In an information processing apparatus equipped with a plurality of CPUs or multi-core CPUs,
A specifying step for specifying one or more second program modules necessary for starting the first program module based on the start condition described in the start condition information of the first program module;
A number information recording step for recording number information of the CPU or core executing the program module;
An activation step of activating the second program module satisfying an activation condition when the number information is less than a threshold within a range in which the number information does not exceed the threshold;
A program that executes
複数のCPU又はマルチコアのCPUを搭載した情報処理装置の起動方法において、
各プログラムモジュールの起動条件が記述された起動条件情報と、
特定手段が、第1のプログラムモジュールの起動条件情報に記述されている起動条件に基づき、第1のプログラムモジュールの起動に必要な1つ以上の第2のプログラムモジュールを特定するステップと、
数情報記録手段が、プログラムモジュールを実行しているCPU又はコアの数情報を記録するステップと、
起動手段が、前記数情報が閾値未満の場合に、起動条件が満たされている前記第2のプログラムモジュールを、前記数情報が閾値を超えない範囲で起動するステップと、
を有することを特徴とする起動方法。
In a method for starting an information processing apparatus equipped with a plurality of CPUs or multi-core CPUs,
Start condition information describing the start condition of each program module,
A step of specifying one or more second program modules necessary for starting the first program module based on a start condition described in the start condition information of the first program module;
A number information recording means for recording the number information of the CPU or core executing the program module;
Starting means, when the number information is less than a threshold, starting the second program module that satisfies a start condition in a range in which the number information does not exceed the threshold;
A starting method characterized by comprising:
JP2013171162A 2013-08-21 2013-08-21 Information processing device, program, and start-up method Pending JP2015041186A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013171162A JP2015041186A (en) 2013-08-21 2013-08-21 Information processing device, program, and start-up method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013171162A JP2015041186A (en) 2013-08-21 2013-08-21 Information processing device, program, and start-up method

Publications (1)

Publication Number Publication Date
JP2015041186A true JP2015041186A (en) 2015-03-02

Family

ID=52695327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013171162A Pending JP2015041186A (en) 2013-08-21 2013-08-21 Information processing device, program, and start-up method

Country Status (1)

Country Link
JP (1) JP2015041186A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106066804A (en) * 2016-05-27 2016-11-02 广东小天才科技有限公司 The application program access control method of a kind of mobile terminal and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106066804A (en) * 2016-05-27 2016-11-02 广东小天才科技有限公司 The application program access control method of a kind of mobile terminal and device
CN106066804B (en) * 2016-05-27 2019-12-31 广东小天才科技有限公司 Application program access control method and device of mobile terminal

Similar Documents

Publication Publication Date Title
US7765413B2 (en) Image processing device and method of controlling the image processing device which estimates a state-transition sequence for a USB driver
US6591358B2 (en) Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
US9081694B2 (en) Systems and methods for asymmetric multiprocessing
EP2765525B1 (en) Apparatus, non-transitory computer readable information recording medium and information recording method
JP6263981B2 (en) Information processing apparatus, information processing apparatus activation method, and program
WO2017059721A1 (en) Information storage method, device and server
US8499143B2 (en) Method for shortening the boot time of a computer system
JP6399916B2 (en) Information processing apparatus and control method thereof
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US9310877B2 (en) Apparatus and power-saving method for controlling a return to a normal power mode
US20090219569A1 (en) Information processing apparatus, information processing system, and information processing method
US8775785B2 (en) Program management method for performing start-up process for programs during start-up of device based on the previous start-up status to prevent occurrence of an out of memory condition
JP7195796B2 (en) Information processing device, control method for information processing device, and program
US10356267B2 (en) Information processing apparatus, control method, and storage medium
US10324667B2 (en) Program processing apparatus and method, and image forming apparatus
US10922039B2 (en) Image processing apparatus, information processing method, and storage medium
JP2015041186A (en) Information processing device, program, and start-up method
US20220129212A1 (en) Image forming apparatus capable of preventing phenomenon that printing by schedule setting will not be started due to display of confirmation screen, control method for image forming apparatus, and storage medium
KR20140018134A (en) Fast booting method of operating system from off state
US11977801B2 (en) Image processing apparatus, control method, and storage medium
US11704143B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP5628084B2 (en) Image processing apparatus and method
JP5998669B2 (en) Information processing apparatus, information processing method, and program
US20190356805A1 (en) Information processing apparatus, control method of information processing apparatus, and recording medium
JP5876126B2 (en) Image processing apparatus and method