[go: up one dir, main page]

JP5335625B2 - Computer program that reduces boot time - Google Patents

Computer program that reduces boot time Download PDF

Info

Publication number
JP5335625B2
JP5335625B2 JP2009202140A JP2009202140A JP5335625B2 JP 5335625 B2 JP5335625 B2 JP 5335625B2 JP 2009202140 A JP2009202140 A JP 2009202140A JP 2009202140 A JP2009202140 A JP 2009202140A JP 5335625 B2 JP5335625 B2 JP 5335625B2
Authority
JP
Japan
Prior art keywords
boot
speed threshold
program
computer
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009202140A
Other languages
Japanese (ja)
Other versions
JP2011053908A (en
Inventor
浩 伊藤
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte 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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2009202140A priority Critical patent/JP5335625B2/en
Publication of JP2011053908A publication Critical patent/JP2011053908A/en
Application granted granted Critical
Publication of JP5335625B2 publication Critical patent/JP5335625B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンピュータのブート時間を短縮する技術に関し、特にブート時にブート媒体から大量のファイルを読み出すプログラムが存在する場合にブート時間を短縮する技術に関する。   The present invention relates to a technique for reducing the boot time of a computer, and more particularly to a technique for reducing the boot time when there is a program that reads a large number of files from a boot medium at the time of booting.

コンピュータは電源が投入されると、ブート・ディスクまたはブート媒体からブート・ファイルを読み出す起動プロセス(ブート・ストラップまたはブートともいう。)を開始する。最初にBIOS_ROMに格納されているBIOSのPOST(Power On Self Test)といわれる初期化プログラムがメイン・メモリに読み出されて実行される。初期化プログラムは、ブート・デバイスを診断したり初期化したりする。つぎにBIOSはブート・ファイルが格納されているブート・ディスクを探す。ブート・ファイルはオペレーティング・システム、デバイス・ドライバ、およびアプリケーション・プログラムなどを含む。ブート・ディスクとしては通常ハード・ディスク・ドライブ(HDD)が使用される。   When the computer is turned on, it starts a boot process (also called boot strap or boot) that reads a boot file from a boot disk or boot medium. First, an initialization program called POST (Power On Self Test) stored in the BIOS_ROM is read into the main memory and executed. The initialization program diagnoses and initializes the boot device. Next, the BIOS searches for a boot disk in which a boot file is stored. The boot file includes an operating system, device drivers, application programs, and the like. A hard disk drive (HDD) is usually used as the boot disk.

BIOSは、HDDの先頭セクタに格納されているMBR(Master Boot Record)をメイン・メモリにロードしてそれに制御を移す。MBRはディスクからブート可能なパーティションを探してその先頭セクタ(ブート・セクタ)にあるブート・ストラップ・ローダをメイン・メモリにロードしてそれに制御を移す。その後ブート・ストラップ・ローダにつづいてブート・ファイルが順番にメイン・メモリに読み出される。プリエンプティブなマルチタスキングを行うオペレーティング・システム(OS)は、ブート時もプリエンプティブなタスク・スイッチを行うようになっている。OSはブート時にHDDからブート・ファイルを読み出すために複数のプロセスやスレッドを生成する。   The BIOS loads an MBR (Master Boot Record) stored in the head sector of the HDD into the main memory and transfers control to it. The MBR searches the disk for a bootable partition, loads the bootstrap loader in the first sector (boot sector) into the main memory, and transfers control to it. After that, the boot file is sequentially read into the main memory following the boot strap loader. An operating system (OS) that performs preemptive multitasking performs preemptive task switching even at boot time. The OS generates a plurality of processes and threads to read a boot file from the HDD at the time of booting.

OSは、各プロセスを所定のアルゴリズムでプロセッサにディスパッチする。ディスパッチされたプロセスは、プロセッサにおいて所定のタイム・スライスの間だけ実行されたのちにプリエンプトされて後続のプロセスがディスパッチされる。ブートの後半になると同時に存在するプロセスの数が増大してHDDに多くのシーク時間が発生し、ブートの実行効率が低下してブート時間の遅延を招く。   The OS dispatches each process to the processor using a predetermined algorithm. The dispatched process is executed for a predetermined time slice in the processor and then preempted, and the subsequent process is dispatched. As the number of processes existing increases in the second half of booting, a lot of seek time occurs in the HDD, resulting in a decrease in boot execution efficiency and a delay in boot time.

余分なシークが発生しないようにHDDに単一のブート・イメージを格納して短時間でブートを完了する方法もあるが特殊なOSに限定されている。また、SSD(Solid State Drive)をブート・デバイスとして利用する方法もあるが、容量およびコストに限界がある。さらに、HDDに記憶されたブート・ファイルに対してデフラグを実行してシークが発生しにくいように並べ替える方法もある。Windows(登録商標)では、無駄なページ・フォルトやシークを省略して起動時間を短縮するためにプリフェッチという機能を導入している。   There is a method of completing a boot in a short time by storing a single boot image in the HDD so that an unnecessary seek does not occur, but it is limited to a special OS. Also, there is a method of using an SSD (Solid State Drive) as a boot device, but there is a limit in capacity and cost. Further, there is a method of rearranging the boot files stored in the HDD so that seeks are not likely to occur by performing defragmentation. Windows (registered trademark) introduces a function called prefetch in order to shorten use time by omitting useless page faults and seeks.

これは前回までのブート時に、ブート中のプログラムの動作をトレースして、HDDに対するファイルのアクセス状況を調べておき、その結果に基づいて次回以降のブート時に所定のファイルを先読みしておくという機能である。アクセス・ログはファイルごとに記録されて所定のディレクトリに格納される。各ファイルには、それぞれのプログラムごとのHDDに対するアクセス・パターンのデータが記録されており、ブート時にはこのアクセス・ログに基づいてファイルがメイン・メモリに先読みされる。   This is a function of tracing the operation of the program being booted at the time of the previous boot, checking the access status of the file to the HDD, and prefetching a predetermined file at the next boot based on the result It is. The access log is recorded for each file and stored in a predetermined directory. In each file, data of an access pattern for the HDD for each program is recorded, and the file is prefetched into the main memory based on the access log at the time of booting.

特許文献1は、特定のアプリケーションを起動するプロセスのプロセッサ資源、I/O資源またはメモリ資源などに対する優先順位を低くするために、スタートアップリケーションの数が増大することによる起動時間の遅延問題を解決する発明を開示する。特許文献2は、所定のプロセスが起動したことを検知してシステム全体のCPU使用率を測定し、CPU使用率に基づいて当該プロセスの停止と実行再開を制御することで、ファイルアクセスにおけるレスポンスの悪化を抑制する発明を開示する。   Patent Document 1 solves the problem of delay in startup time due to an increase in the number of startup applications in order to lower the priority order of a processor resource, an I / O resource, or a memory resource of a process that starts a specific application. The invention is disclosed. Patent Document 2 detects the start of a predetermined process, measures the CPU usage rate of the entire system, and controls the stop and restart of the process based on the CPU usage rate. An invention for suppressing deterioration is disclosed.

特開2009−517784号公報JP 2009-517784 A 特開2007−18282号公報JP 2007-18282 A

ブート時には、多くのブート・ファイルが単一のHDDからメイン・メモリにロードされるため、HDDへのアクセス頻度が非常に高くなる。ところで、コンピュータに特定のアンチウイルス・プログラム(以下、AVプログラムという。)を導入すると起動時間が遅延することを観測することができる。AVプログラムは、比較的早い段階でロードされて実行を開始すると、ブート期間中にブート・ファイルに対するウイルス・チェックをする。その際に、AVプログラムは、独自にブート・ファイルをHDDから読み出してウイルス・チェックをするので、HDDに対して、プログラムの実行のためにメイン・メモリの実行領域にロードするための本来のアクセスとは別に、AVプログラムがウイルス・チェックのためにメイン・メモリの専用領域にロードするためのアクセスが発生する。   At boot time, since many boot files are loaded from a single HDD into the main memory, the access frequency to the HDD becomes very high. By the way, when a specific anti-virus program (hereinafter referred to as AV program) is introduced into a computer, it can be observed that the startup time is delayed. When the AV program is loaded at a relatively early stage and starts executing, the AV program is checked for viruses during the boot period. At that time, since the AV program independently reads the boot file from the HDD and checks for viruses, the original access for loading the HDD into the execution area of the main memory for executing the program is performed. Apart from this, an access for loading the AV program into a dedicated area of the main memory for virus checking occurs.

このように、AVプログラムがブート期間中にHDDにアクセスするためのプロセスが多数発生し、他のブート・ファイルをロードするためのプロセスがHDDにアクセスする頻度が低下したり、単一のHDDに対するアクセスが競合したりしてブート時間の遅延をもたらしている。特許文献2の発明のようにCPU使用率に基づいてAVプログラムの停止と実行再会を制御する方法では、AVプログラムの中にはその実行が停止されるとコンピュータ・ウイルスにより実行が停止されたと判断して、ユーザに警告をしたりブートを停止させたりするものがあるので採用できない。さらに特許文献2の発明はCPU使用率を増加させないで専らHDDに対するアクセスを頻繁に行うAVプログラム以外のプログラムに対しても有効性が低い。   As described above, a number of processes for the AV program to access the HDD during the boot period occur, and the frequency with which the process for loading other boot files accesses the HDD decreases. Access conflicts cause boot time delays. In the method of controlling the stop and execution reunion of the AV program based on the CPU usage rate as in the invention of Patent Document 2, it is determined that the execution of the AV program is stopped by a computer virus when the execution is stopped. Then, there are things that warn the user and stop booting, so it can not be adopted. Furthermore, the invention of Patent Document 2 has low effectiveness for programs other than AV programs that frequently access the HDD exclusively without increasing the CPU usage rate.

特許文献1の発明は、あらかじめ遅延させる対象となるアプリケーションを選定して優先順位を設定しておく必要がある。したがって、当該アプリケーションはシステム開発者があらかじめ選定してOSとともにシステムとして組み込んでいたアプリケーションには有効であるが、その後にユーザが導入したようなアプリケーションに適用することは困難である。   In the invention of Patent Document 1, it is necessary to select an application to be delayed in advance and set a priority order. Therefore, the application is effective for an application selected in advance by a system developer and incorporated as a system together with the OS, but it is difficult to apply to an application introduced by a user after that.

そこで、本発明の目的は、ブート時に大量のブート・ファイルを読み出すプログラムが存在するコンピュータのブート時間を短縮するコンピュータ・プログラムを提供することにある。さらに本発明の目的は、ブート遅延の原因となるプログラムをあらかじめ特定しないでブート時間を短縮することができるコンピュータ・プログラムを提供することにある。さらに本発明の目的は、ブート遅延の原因となるプログラムの動作を停止しないでブート時間を短縮することができるコンピュータ・プログラムを提供することにある。さらに本発明の目的は、ブート時にアプリケーション・プログラムをできるだけ早く動作可能な状態にすることができるコンピュータ・プログラムを提供することにある。さらに本発明の目的は、そのようなコンピュータ・プログラムを実装するコンピュータを提供することにある。   Accordingly, an object of the present invention is to provide a computer program that shortens the boot time of a computer in which a program for reading a large amount of boot files at the time of booting exists. It is another object of the present invention to provide a computer program that can shorten the boot time without specifying a program that causes a boot delay in advance. A further object of the present invention is to provide a computer program that can shorten the boot time without stopping the operation of the program causing the boot delay. It is a further object of the present invention to provide a computer program that can make an application program operable as soon as possible at the time of booting. It is a further object of the present invention to provide a computer that implements such a computer program.

本発明にかかるコンピュータ・プログラムは、ブート時にOSと協働して動作することでブート媒体からブート・ファイルをロードする時間を短縮する。ブートが開始されるとブート媒体からメイン・メモリの実行領域にブート・ファイルのロードが開始される。制御対象プログラムは、ブート媒体からメイン・メモリの自らの専用領域に所定の作業のためにブート・ファイルの読み出しを開始する。実行領域は、プロセッサがブート・ファイルを実行するための記憶領域であり、制御対象プログラムがその作業のためにブート・ファイルを読み出す専用領域とは異なる。したがって、コンピュータでは、ブート・ファイルの本来のロードに加えて、制御対象プログラムによる読み出しのためにブート媒体に対するアクセスが発生しブート時間が長くなる。   The computer program according to the present invention shortens the time for loading a boot file from the boot medium by operating in cooperation with the OS at the time of booting. When booting is started, loading of the boot file from the boot medium to the execution area of the main memory is started. The control target program starts reading the boot file from the boot medium to the dedicated area of the main memory for a predetermined work. The execution area is a storage area for the processor to execute the boot file, and is different from a dedicated area from which the control target program reads the boot file for the work. Therefore, in the computer, in addition to the original loading of the boot file, access to the boot medium occurs for reading by the control target program, resulting in a longer boot time.

つづいて、制御対象プログラムがブート媒体からブート・ファイルを読み出す読み取り速度が測定される。そして測定した読み取り速度に基づいて、ブート期間中に制御対象プログラムがブート・ファイルの読み出しのために生成したプロセスのキューイングを実行または解除する。その結果、実行領域にブート・ファイルをロードするためのプロセスに対してブート媒体へのアクセスが制御対象プログラムの読み取り速度に応じてダイナミックに割り当てられ、制御対象プログラムのプロセスを停止することなくブート時間を短縮させることができる。制御対象プログラムは典型的には、ウイルス対策プログラムとすることができる。ウイルス対策プログラムは、ブート時に読み出しのプロセスが停止されると警告したりブートを停止したりする場合があるが、本発明ではブート中にウイルス対策プログラムのプロセスの実行を遅延させるだけで停止させないのでそのような問題はない。   Subsequently, the reading speed at which the control target program reads the boot file from the boot medium is measured. Based on the measured reading speed, queuing of the process generated by the control target program for reading the boot file is executed or canceled during the boot period. As a result, access to the boot medium is dynamically assigned to the process for loading the boot file into the execution area according to the read speed of the controlled program, and the boot time without stopping the controlled program process. Can be shortened. The control target program can typically be an antivirus program. The anti-virus program may warn or stop booting when the reading process is stopped at the time of booting, but in the present invention, the execution of the anti-virus program process is only delayed and not stopped during booting. There is no such problem.

プロセスのキューイングを制御するために、開始速度閾値と開始速度閾値よりも小さい解除速度閾値を設定することができる。そして、読み取り速度が開始速度閾値以上になったときにプロセスのキューイングを開始し、読み取り速度が解除速度閾値未満まで低下したときにキューイングを解除することができる。制御対象プログラムのプロセスをキューイングする時間を徐々に長くしていった場合に、ある限度を越えるとブート完了時間が変化しない状態になる。一方、制御対象プログラム自体もできるだけ早く実行を開始することが望ましい。したがって、開始速度閾値と解除速度閾値にはブート完了時間の短縮に有効で全体のキューイング時間が最低になる状態としての最適値が存在する。   To control process queuing, a start speed threshold and a release speed threshold smaller than the start speed threshold can be set. Then, queuing of the process can be started when the reading speed becomes equal to or higher than the start speed threshold, and the queuing can be released when the reading speed falls below the release speed threshold. When the time for queuing the process of the control target program is gradually increased, the boot completion time does not change when a certain limit is exceeded. On the other hand, it is desirable to start the control target program itself as soon as possible. Therefore, the start speed threshold value and the release speed threshold value have optimum values as a state that is effective in shortening the boot completion time and has the minimum overall queuing time.

最適な開始速度閾値は、ブートごとに次回のブートにおける開始速度閾値を変更しながらブート完了時間を測定して決定することができる。ブートごとに開始速度閾値を低下させていくと、次第にブート完了時間は短縮していく。そして、ブート完了時間がある程度まで短縮するとブート開始速度閾値をそれ以上低下させてもブート時間が短縮しない状態になる。このときの開始速度閾値を最適値とすることができる。最適値を決定する直前には、今回の開始速度閾値に対して次回の開始速度閾値を若干増加させて確認することが望ましい。さらに、制御対象プログラムがブート完了までに読み出したブート・ファイルの総量に対する平均読み取り速度を測定し、平均読み取り速度を含めて開始速度閾値の最適値を決定することができる。   The optimum start speed threshold can be determined by measuring the boot completion time while changing the start speed threshold in the next boot for each boot. As the start speed threshold is decreased for each boot, the boot completion time is gradually shortened. When the boot completion time is shortened to some extent, the boot time is not shortened even if the boot start speed threshold is further reduced. The starting speed threshold at this time can be set to an optimum value. Immediately before determining the optimum value, it is desirable to confirm by slightly increasing the next start speed threshold with respect to the current start speed threshold. Furthermore, the average reading speed with respect to the total amount of boot files read by the control target program before the completion of booting can be measured, and the optimum value of the start speed threshold value including the average reading speed can be determined.

このときの開始速度閾値の最適値は、ブート完了時間が変化しない範囲において平均読み取り速度が最大になったときの値とすることができる。また、ブートごとに解除速度閾値を変更してブート完了時間を測定し最適な解除速度閾値を決定することができる。最適な開始速度閾値を決定する際に、最初にブート・ファイルの中で専用領域に読み出したブート・ファイルの総量が所定値を越えるプログラムを選定すると、早期に制御対象プログラムを特定してキューイングの制御をすることができる。また、開始速度閾値が設定されていないプロセスをキューイングしない通常処理をすることで、あらかじめ制御対象プログラムを特定しなくても、開始速度閾値が設定されたプロセスを生成したプログラムだけを制御対象プログラムとして扱うことができる。   The optimum value of the start speed threshold at this time can be a value when the average reading speed becomes maximum in a range where the boot completion time does not change. Further, it is possible to determine the optimum release speed threshold by changing the release speed threshold for each boot and measuring the boot completion time. When determining the optimal start speed threshold, if a program in which the total amount of boot files read into the dedicated area first exceeds the specified value is selected in the boot file, the control target program is identified and queued at an early stage. Can be controlled. In addition, by performing normal processing that does not queue a process for which the start speed threshold is not set, only the program that generated the process for which the start speed threshold is set can be controlled without specifying the control target program in advance. Can be treated as

本発明により、ブート時に大量のブート・ファイルを読み出すプログラムが存在するコンピュータのブート時間を短縮するコンピュータ・プログラムを提供することができた。さらに本発明により、ブート遅延の原因となるプログラムをあらかじめ特定しないでブート時間を短縮することができるコンピュータ・プログラムを提供することができた。さらに本発明により、ブート遅延の原因となるプログラムの動作を停止しないでブート時間を短縮することができるコンピュータ・プログラムを提供することができた。さらに本発明により、ブート時にアプリケーション・プログラムをできるだけ早く動作可能な状態にすることができるコンピュータ・プログラムを提供することができた。さらに本発明により、そのようなコンピュータ・プログラムを実装するコンピュータを提供することができた。   According to the present invention, it is possible to provide a computer program that shortens the boot time of a computer in which a program that reads a large amount of boot files at the time of booting exists. Furthermore, according to the present invention, it is possible to provide a computer program capable of shortening the boot time without specifying a program causing a boot delay in advance. Furthermore, according to the present invention, it is possible to provide a computer program that can shorten the boot time without stopping the operation of the program causing the boot delay. Furthermore, according to the present invention, it is possible to provide a computer program that can make an application program operable as soon as possible at the time of booting. Further, according to the present invention, a computer that implements such a computer program can be provided.

本実施の形態にかかるコンピュータ・システムの主要なハードウエア構成を示す機能ブロック図であるIt is a functional block diagram which shows the main hardware constitutions of the computer system concerning this Embodiment 本実施の形態にかかる高速ブートを実現するためのプログラム・モジュールの構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program module for implement | achieving the high-speed boot concerning this Embodiment. ブートI/Oドライバの内部テーブル、ブートI/Oログ、およびブートI/Oデータ・ベースのデータ構造を示す図である。It is a figure which shows the data structure of the internal table of a boot I / O driver, a boot I / O log, and a boot I / O data base. ブートI/Oドライバが実行する制御対象プログラムに対する遅延処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the delay process with respect to the control object program which a boot I / O driver performs. I/Oコントロール・サービスが実行する制御対象プログラムに対する開始速度閾値QST、解除速度閾値QRTの最適値を決定する全体の処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the whole process which determines the optimal value of the starting speed threshold value QST with respect to the control object program which an I / O control service performs, and the cancellation | release speed threshold value QRT. I/Oコントロール・サービスが実行する制御対象プログラムに対する開始速度閾値QSTの最適値を決定する処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process which determines the optimal value of the starting speed threshold value QST with respect to the control object program which an I / O control service performs. I/Oコントロール・サービスが実行する制御対象プログラムに対する解除速度閾値QRTの最適値を決定する処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process which determines the optimal value of the cancellation | release speed threshold value QRT with respect to the control object program which an I / O control service performs. ブート完了チェック・プログラムによるブート完了信号の生成方法を示すフローチャートである。It is a flowchart which shows the production | generation method of the boot completion signal by a boot completion check program.

[コンピュータ・システムの構成]
図1は、本実施の形態にかかるコンピュータ・システム10の主要なハードウエア構成を示す機能ブロック図である。コンピュータ・システム10は、OSが導入されたサーバやクライアントなどである。コンピュータ・システム10は、それぞれバス23に接続されたCPU11、メイン・メモリ13、ネットワーク・カード15、HDD17、液晶表示装置(LCD)19、およびBIOS_ROM21などを含んでいる。HDD17は、ブート・ファイルを格納したブート・ディスクである。これらのハードウエア・デバイスの機能は、本実施の形態に関しては周知であるため説明は省略する。
[Computer system configuration]
FIG. 1 is a functional block diagram showing a main hardware configuration of a computer system 10 according to the present embodiment. The computer system 10 is a server or client in which an OS is installed. The computer system 10 includes a CPU 11, a main memory 13, a network card 15, an HDD 17, a liquid crystal display (LCD) 19, a BIOS_ROM 21, and the like connected to the bus 23. The HDD 17 is a boot disk that stores a boot file. Since the functions of these hardware devices are well known with respect to the present embodiment, description thereof will be omitted.

[ソフトウエアの構成]
図2は、本実施の形態にかかる高速ブートを実現するためのプログラム・モジュールの構成を示す機能ブロック図である。図2のブロック図では、オペレーティング・システム(OS)としてWindows(登録商標)を例示して、ブートに関連する主要なソフトウエアだけを示している。ただし、本発明はOSをWindowsに限定する必要はなく、本発明の思想の範囲内で他の周知のOSに適用することもできる。
[Software configuration]
FIG. 2 is a functional block diagram showing a configuration of a program module for realizing high-speed boot according to the present embodiment. In the block diagram of FIG. 2, Windows (registered trademark) is illustrated as an operating system (OS), and only main software related to booting is shown. However, the present invention does not need to limit the OS to Windows, and can be applied to other known OSs within the scope of the idea of the present invention.

図2では、I/Oコントロール・サービス101、ブートI/Oデータ・ベース103、ブートI/Oログ105、I/Oドライバ107およびブート完了チェック・プログラム109以外のプログラム・モジュール(以下、モジュールという。)は周知である。また、AVプログラム53、スキャン・リスト59、フィルタ・ドライバ65以外はOSのモジュールである。ライン102より上側に記載されたモジュールはプロセッサ11のユーザ・モードで動作し、下側に記載されたモジュールはカーネル・モードで動作する。   In FIG. 2, program modules other than the I / O control service 101, the boot I / O database 103, the boot I / O log 105, the I / O driver 107, and the boot completion check program 109 (hereinafter referred to as modules). .) Is well known. Other than the AV program 53, the scan list 59, and the filter driver 65 are OS modules. The modules described above the line 102 operate in the user mode of the processor 11, and the modules described below operate in the kernel mode.

ブート・システム・コード51はブート・ファイルをブート・ディスクであるHDD17から順番にメイン・メモリ13の実行領域にロードしていくプログラムである。AVプログラム53は、ブート時間の遅延の原因となる制御対象プログラムの一例で、本発明によりブート時に実行が遅延される。ブートが開始されてOSの主要なモジュールがロードされると、AVプログラム53は比較的早い段階でロードされて実行を開始する。実行を開始したAVプログラム53は、ブート・システム・コード51がHDD17からブート・ファイルをロードするためにAPI関数を呼び出すプロセスをフックして、自らが読み出すブート・ファイルのリストをスキャン・リスト59に生成する。   The boot system code 51 is a program that loads a boot file from the HDD 17 as a boot disk to the execution area of the main memory 13 in order. The AV program 53 is an example of a program to be controlled that causes a delay in boot time, and execution is delayed at the time of booting according to the present invention. When booting is started and main modules of the OS are loaded, the AV program 53 is loaded at a relatively early stage and starts executing. The AV program 53 that has started execution hooks a process in which the boot system code 51 calls an API function to load a boot file from the HDD 17, and a list of boot files read by itself is stored in the scan list 59. Generate.

ここに、ブート・ファイルとは、コンピュータ10に電源が投入されてからブートが完了するまでにメイン・メモリ13の実行領域にロードされるデータである。実行領域とは、ブート・ファイルを実行するためにメイン・メモリ13に割り当てられた記憶領域である。AVプログラム53は、スキャン・リスト59に登録されたブート・ファイルを読み取るためのAPI関数を呼び出すプロセスを生成する。プロセスとはプログラムの実行単位のことで、本発明においてはOSがCPU11に処理を割り当てる単位であるスレッドも同じ意味として扱うことができる。フィルタ・ドライバ65は、ブート・システム・コード51がブート・ファイルをHDD17からメイン・メモリ13の実行領域にロードするタイミングとは非同期で、スキャン・リスト59に登録されたブート・ファイルをHDD17からメイン・メモリ13の専用領域に読み出す。専用領域とは、AVプログラム53が作業するためのメイン・メモリ上の記憶領域である。   Here, the boot file is data loaded into the execution area of the main memory 13 from when the computer 10 is powered on until the boot is completed. The execution area is a storage area assigned to the main memory 13 in order to execute the boot file. The AV program 53 generates a process for calling an API function for reading a boot file registered in the scan list 59. A process is an execution unit of a program. In the present invention, a thread that is a unit in which the OS allocates processing to the CPU 11 can be treated as the same meaning. The filter driver 65 is asynchronous with the timing when the boot system code 51 loads the boot file from the HDD 17 to the execution area of the main memory 13, and loads the boot file registered in the scan list 59 from the HDD 17 to the main. Read to a dedicated area of the memory 13 The dedicated area is a storage area on the main memory for the AV program 53 to work.

AVプログラム53は、専用領域に読み出されたブート・ファイルのウイルス・チェックを行う。したがって、AVプログラム53は、ブート・システム・コード51がブート・ファイルをメイン・メモリ13の実行領域にロードするのとは別に、ウイルス・チェックのためにHDD17にアクセスして同じブート・ファイルを順次読み出すためブート遅延の原因になっている。なお、本発明においては、ブート時に実行される制御対象プログラムは1つである必要はなく、HDD17に対して独立して大量の読み取り要求をする複数のプログラムが存在していてもよい。   The AV program 53 performs a virus check on the boot file read into the dedicated area. Therefore, the AV program 53 accesses the HDD 17 for virus checking and sequentially loads the same boot file separately from the boot system code 51 loading the boot file into the execution area of the main memory 13. This causes a boot delay to read. In the present invention, the number of control target programs executed at the time of booting is not necessarily one, and there may be a plurality of programs that make a large number of read requests to the HDD 17 independently.

Kernel32.dll55は、Windows(登録商標)のサブシステムDLL(Dynamic Link Library)の一部であり、公開されているWindowsAPI関数を非公開のカーネル・モード・システム・サービスへの呼び出しに変換する。たとえば、先にロードされたブート・ファイルがつぎのブート・ファイルをHDD17からメイン・メモリ13に読み出すために、ReadFile APIというアプリケーションに公開されている関数を呼び出すと、それに応じて非公開のNtoskrnl63に実装されているNtReadFileという内部関数が呼び出されてHDD17からデータがロードされる。   The Kernel32.dll 55 is a part of the Windows (registered trademark) subsystem DLL (Dynamic Link Library), and converts a public Windows API function into a call to a private kernel mode system service. For example, when a previously loaded boot file calls a function open to an application called ReadFile API in order to read the next boot file from the HDD 17 to the main memory 13, a non-public Ntoskrnl 63 responds accordingly. An internal function called NtReadFile is called to load data from the HDD 17.

Ntdll.dll57は、サブシステムDLLを使用するための関数を提供するサポート・ライブラリである。Ntdll.dll57は、ユーザ・モードから呼び出すことができるインターフェース機能(System Service Dispatch Stub)と、サブシステムDLLが使用するNtReadFile関数などの内部サポート関数で構成されている。Ntoskrnl63は、カーネル・モードで実行する内部関数、システム・サービス・ディスパッチャ、割り込みディスパッチ・テーブルなどを含む。ファイル・システム67は、HDD17に格納されているデータを管理するためにOSが提供するソフトウエアである。ファイル・システム67は、FAT(File Allocation Table)およびディレクトリを作成してHDD17に関するファイルの記録、読み取り、削除、または移動などを管理する。   Ntdll.dll 57 is a support library that provides a function for using the subsystem DLL. Ntdll.dll 57 includes an interface function (System Service Dispatch Stub) that can be called from the user mode, and an internal support function such as an NtReadFile function used by the subsystem DLL. The Ntoskrnl 63 includes an internal function executed in the kernel mode, a system service dispatcher, an interrupt dispatch table, and the like. The file system 67 is software provided by the OS for managing data stored in the HDD 17. The file system 67 creates a FAT (File Allocation Table) and a directory, and manages recording, reading, deleting, moving, and the like of files related to the HDD 17.

OSキャッシュ・マネージャ69はHDD17に対するアクセスのパフォーマンスを向上させるためにOSが提供するソフトウエアである。OSキャッシュ・マネージャ69は、HDD17に対して、ReadFile API関数やWriteFile API関数が呼び出されたときに毎回HDD17にアクセスしないでも処理できるように、OSキャッシュ領域にデータをプリフェッチしてフィルする。OSキャッシュ・マネージャ69は、コンピュータ10で実行されるすべてのソフトウエアからのHDD17に対するアクセスを対象にして、独自のアルゴリズムに基づいてOSキャッシュ領域に対するファイルのフィルおよびフラッシュを管理する。ディスク・ドライバ71は、HDD17の動作およびデータ転送を制御するためのソフトウエアである。OS Shell Startup61は、レジストリに登録されたプログラムをブート時に自動起動(AutoRun)するプログラムである。   The OS cache manager 69 is software provided by the OS in order to improve the performance of access to the HDD 17. The OS cache manager 69 prefetches and fills data in the OS cache area so that the HDD 17 can be processed without accessing the HDD 17 each time the ReadFile API function or the WriteFile API function is called. The OS cache manager 69 manages access to the HDD 17 from all software executed by the computer 10 and manages file filling and flushing to the OS cache area based on a unique algorithm. The disk driver 71 is software for controlling the operation and data transfer of the HDD 17. The OS Shell Startup 61 is a program for automatically starting (AutoRun) a program registered in the registry at the time of booting.

I/Oコントロール・サービス101は、ブートI/Oドライバ107に制御対象プログラムがHDD17に読み取り要求をするためのプロセスをキューイングするための閾値を設定したり、最適な閾値を決定したりするプログラムである。ブートI/Oデータ・ベース103は、ブート・ファイルの読み出しを行う制御対象プログラムのプロセスごとに、最適な閾値を登録するファイルである。図3(C)にブートI/Oデータ・ベース103のデータ構造を示す。ブートI/Oデータ・ベース103には、制御対象プログラムのプロセスごとにキューイングを開始する最適な閾値である開始速度閾値QSTとキューイングを解除する最適な閾値である解除速度閾値QRTと、それぞれが設定されたことを示す最適化完了フラグを登録することができる。図3(C)は一例として、プロセスAについては、最適な開始速度閾値QSTと最適な解除速度閾値QRTが登録され、プロセスBについては、最適な開始速度閾値QSTだけが登録され、プロセスCについてはいずれの閾値も登録されていないことを示している。   The I / O control service 101 sets a threshold for queuing a process for the control target program to make a read request to the HDD 17 in the boot I / O driver 107, and determines an optimum threshold. It is. The boot I / O data base 103 is a file for registering an optimum threshold value for each process of a control target program that reads a boot file. FIG. 3C shows the data structure of the boot I / O data base 103. The boot I / O data base 103 includes a start speed threshold QST that is an optimum threshold for starting queuing for each process of the control target program, and a release speed threshold QRT that is an optimum threshold for releasing queuing, respectively. An optimization completion flag indicating that is set can be registered. As an example, FIG. 3C shows that an optimum start speed threshold value QST and an optimum release speed threshold value QRT are registered for the process A, and only an optimum start speed threshold value QST is registered for the process B. Indicates that no threshold is registered.

ブートI/Oログ105はブートごとに、制御対象プログラムがブート・ファイルの読み出しを行うプロセスに対する最適な閾値をI/Oコントロール・サービス101が決定するまで、ブートI/Oドライバ107がキューイングをするための暫定的な開始速度閾値QST、解除時間閾値QRT、ブートが完了するまでのブート完了時間BCTおよびブート完了まで制御対象プログラムのプロセスが読み取ったブート・ファイルの総バイト数に対する平均読み取り速度AVRを記録するファイルである。図3(B)にブートI/Oログ105のデータ構造を示す。図3(B)には、一例としてプロセスAについてブート回数が7回行われたときに、ブート回数1〜4回までは開始速度閾値QSTが初期値としてのVから最適値としてのVまで変化し、解除速度閾値QRTは、開始速度閾値QSTから一定の値βを減算した値が記録されている。 The boot I / O log 105 is queued by the boot I / O driver 107 for each boot until the I / O control service 101 determines the optimum threshold for the process in which the control target program reads the boot file. Tentative start speed threshold value QST, release time threshold value QRT, boot completion time BCT until boot is completed, and average read speed AVR with respect to the total number of bytes of the boot file read by the process of the control target program until boot completion Is a file to record. FIG. 3B shows the data structure of the boot I / O log 105. In FIG. 3B, as an example, when the number of boots is 7 for process A, the start speed threshold value QST is changed from V 0 as the initial value to V n as the optimum value from 1 to 4 times. to change, release speed threshold QRT a value obtained by subtracting a constant value beta 0 from the start speed threshold QST is recorded.

そして、4回目のブートのときに最適な開始速度閾値QSTがVとして決定されている。4〜7回までは、最適な開始速度閾値QSTに対して変数である減分βが減算された解除速度閾値QRTが記録され、7回目のブートで最適な解除速度閾値QRTがSnとして記録されている。ブートI/Oドライバ107は、ブート・ファイルの読み出しを行う制御対象プログラムのプロセスをキューイングして実行を遅延させるプログラムである。ブートI/Oドライバ107は、I/Oコントロール・サービス101により設定された暫定のまたは最適な開始速度閾値QSTおよび解除速度閾値QRTに基づいて当該プロセスをキューイングする。 An optimum start speed threshold value QST is determined as V n at the time of the fourth boot. Until 4-7 times, release velocity threshold QRT to decrement β is subtracted a variable for the optimal starting velocity threshold QST is recorded, recorded as the optimal release velocity threshold QRT is S n at 7 th boot Has been. The boot I / O driver 107 is a program that queues a process of a control target program that reads a boot file and delays execution. The boot I / O driver 107 queues the process based on the provisional or optimum start speed threshold value QST and release speed threshold value QRT set by the I / O control service 101.

ブートI/Oドライバ107は、内部テーブルを備えている。図3(A)は、内部テーブル121のデータ構造を示す。内部テーブルは、制御対象プログラムのプロセスごとのプロセス名、制御対象プログラムのプロセスが現在読み出しているブート・ファイルの読み取り速度CVR、キューイング実行中フラグ、キューイングを開始する開始速度閾値QST、キューイングを解除する解除速度閾値QRT、およびブートI/Oドライバ107が測定した平均読み取り速度AVRを記録する。現在の読み取り速度CVRは、一例として1秒間に読み出すブート・ファイルのバイト数とする。なお、内部テーブル121には、一時的に制御対象プログラム以外のプログラムのプロセス名および現在の読み取り速度CVRも記録する。   The boot I / O driver 107 has an internal table. FIG. 3A shows the data structure of the internal table 121. The internal table includes a process name for each process of the control target program, a boot file read speed CVR currently read by the process of the control target program, a queuing execution flag, a start speed threshold QST for starting queuing, and queuing The release speed threshold QRT for canceling and the average reading speed AVR measured by the boot I / O driver 107 are recorded. As an example, the current reading speed CVR is the number of bytes of the boot file read out per second. The internal table 121 also temporarily records the process name of the program other than the control target program and the current reading speed CVR.

ブート完了チェック・プログラム109はOS Shell Startup61のレジストリに登録されブート時に自動的に起動する。ブート完了チェック・プログラム109は、コンピュータ10のブート完了状態を検出してブート完了信号をI/Oコントロール・サービス101に送り、ブート完了時間を計測してブートI/Oログ105に記録するためのプログラムである。以上で説明した、図2のプログラム・モジュールの構成は一例であり、例示したモジュールを本発明の範囲で統合したり分割したりすることができる。また、図2に示したモジュールは、メイン・メモリ13にロードされてCPU11で実行されることにより、コンピュータ10に所定の機能を実現させる。   The boot completion check program 109 is registered in the registry of the OS Shell Startup 61 and is automatically started at boot time. The boot completion check program 109 detects the boot completion state of the computer 10, sends a boot completion signal to the I / O control service 101, measures the boot completion time, and records it in the boot I / O log 105. It is a program. The configuration of the program module in FIG. 2 described above is an example, and the illustrated module can be integrated or divided within the scope of the present invention. The module shown in FIG. 2 is loaded into the main memory 13 and executed by the CPU 11, thereby causing the computer 10 to realize a predetermined function.

[制御対象プログラムの遅延処理の手順]
図4は、ブートI/Oドライバ107が実行する制御対象プログラムに対する遅延処理の手順を示すフローチャートである。ブロック201では、図5〜図7の手順で説明するように、I/Oコントロール・サービス101がブートI/Oドライバ107のレジストリに制御対象プログラムのプロセスに対する最適な閾値を決定するまでの暫定的なまたは最適な開始速度閾値QSTおよび解除速度閾値QRTを設定している。なお、図6で説明するように、I/Oコントロール・サービス101が、読み取り要求をするプロセスに対して最適な開始速度閾値QSTを決定するまでは、当該プログラムは制御対象プログラムの候補として扱う。
[Procedure for delayed processing of controlled programs]
FIG. 4 is a flowchart showing the procedure of the delay process for the control target program executed by the boot I / O driver 107. In block 201, as described in the procedure of FIGS. 5 to 7, the I / O control service 101 tentatively determines the optimum threshold value for the process of the control target program in the registry of the boot I / O driver 107. A start speed threshold value QST and a release speed threshold value QRT are set. Note that, as will be described with reference to FIG. 6, until the I / O control service 101 determines the optimum start speed threshold value QST for the process that requests reading, the program is treated as a control target program candidate.

コンピュータ10に電源が投入されてBIOSからOSに制御が移り順番にブート・ファイルがロードされていく。ブート・システム・コード51が動作し始めると、OS Shell Startup61が、ブート完了チェック・プログラム109を自動的に起動する。ブート完了チェック・プログラム109は、電源の起動からつねにほぼ一定の時間が経過したときに起動する。ブート完了チェック・プログラム109は、コンピュータ全体のCPU使用率を測定してブートの完了状態を検出する。コンピュータ全体のCPU使用率Yは、アイドル・プロセスのユーザ・モード時間をUi、アイドル・プロセスのカーネル・モード時間をKi、経過時間をEtとしたときに次の式で計算することができる。
Y=(1−(Ui+Ki)/Et)×100%
When the computer 10 is powered on, control is transferred from the BIOS to the OS, and the boot file is loaded in order. When the boot system code 51 starts to operate, the OS Shell Startup 61 automatically starts the boot completion check program 109. The boot completion check program 109 is activated whenever a substantially constant time has elapsed since the activation of the power supply. The boot completion check program 109 detects the boot completion state by measuring the CPU usage rate of the entire computer. The CPU usage rate Y of the entire computer can be calculated by the following formula when the user mode time of the idle process is Ui, the kernel mode time of the idle process is Ki, and the elapsed time is Et.
Y = (1− (Ui + Ki) / Et) × 100%

ブロック203でブートI/Oドライバ107は、HDD17にアクセスするプログラムが生成したプロセスが読み取り要求をしているか否かを判断する。なお、判断する対象となるプロセスは制御対象プログラムに限定せずすべてのプログラムを対象にする。書き込み要求や停止要求などのように読み取り要求以外のためのプロセスであれば、ブートI/Oドライバ107はディスク・ドライバ71に処理させる。読み取り要求のプロセスの場合は、ブロック205に移行して、ブートI/Oドライバ107は当該プロセスについて内部テーブル121にプロセス名と、当該プロセスの現在の読み取り速度CVRを記録する。ブートI/Oドライバ107は、当該プロセスに開始速度閾値QSTおよび解除速度閾値QRTが設定されている場合は、その値を内部テーブル121に記録する。   In block 203, the boot I / O driver 107 determines whether or not a process generated by a program that accesses the HDD 17 makes a read request. It should be noted that the process to be determined is not limited to the control target program, but covers all programs. If it is a process other than a read request such as a write request or a stop request, the boot I / O driver 107 causes the disk driver 71 to process. In the case of a read request process, the process proceeds to block 205 where the boot I / O driver 107 records the process name and the current read speed CVR of the process in the internal table 121 for the process. When the start speed threshold value QST and the release speed threshold value QRT are set for the process, the boot I / O driver 107 records the values in the internal table 121.

ブロック207では、ブートI/Oドライバ107は内部テーブル121を参照して、キューイング実行中フラグがオンになっているか否かを検査する。キューイング実行中フラグは、ブロック208、209、211、213を経由すれば今回のブートでオンになる。キューイング実行中フラグがオフの場合は、ブロック208に移行してブートI/Oドライバ107は当該プロセスに暫定的な値であるか最適な値であるかにかかわらず開始速度閾値QSTおよび解除速度閾値QRTが設定されているか否かを判断する。I/Oコントロール・サービス101により閾値が設定されていない場合は、ブロック223に移行してキューイングをしない通常の処理をする。閾値が設定されている場合は、ブロック209に移行してブートI/Oドライバ107は、当該プロセスによりHDD17から読み出されたブート・ファイルの現在の読み取り速度CVRが、開始速度閾値QST以上であるか否かを検査する。   In block 207, the boot I / O driver 107 refers to the internal table 121 and checks whether or not the queuing execution flag is on. The queuing execution flag is turned on at this boot if it passes through blocks 208, 209, 211, and 213. If the queuing in progress flag is off, the process proceeds to block 208 where the boot I / O driver 107 determines the start speed threshold QST and the release speed regardless of whether the process is a provisional value or an optimum value. It is determined whether or not a threshold QRT is set. If the threshold value is not set by the I / O control service 101, the process proceeds to block 223 to perform normal processing without queuing. When the threshold value is set, the process proceeds to block 209, and the boot I / O driver 107 has the boot file current read speed CVR read from the HDD 17 by the process equal to or higher than the start speed threshold value QST. Inspect whether or not.

現在の読み取り速度CVRが開始速度閾値QST以上でない場合は今回のブートにおいてはキューイングをしないでブロック223で読み取り要求のプロセスをディスク・ドライバ71に渡して通常の処理をする。ブロック209で現在の読み取り速度CVRが開始速度閾値QST以上の場合は、ブートI/Oドライバ107はブロック211で、内部テーブル121にキューイング実行中フラグを設定し、ブロック213で当該プロセスの読み取り要求に対してキューイングを開始する。なお、キューイングされるプロセスは、制御対象プログラムまたは制御対象プログラムの候補が生成したプロセスであるが、これについては図5〜図7で説明する。プロセスがキューイングされている間は、制御対象プログラムの読み取り要求がディスク・ドライバ71に渡らないため、制御対象プログラムによりHDD17から読み出されるブート・ファイルの読み取り速度が遅くなる。   If the current read speed CVR is not equal to or higher than the start speed threshold QST, the process of the read request is passed to the disk driver 71 in block 223 without performing queuing in this boot, and normal processing is performed. If the current read speed CVR is equal to or higher than the start speed threshold QST in block 209, the boot I / O driver 107 sets a queuing execution flag in the internal table 121 in block 211, and a read request for the process in block 213. Start queuing for. The process to be queued is a process generated by a control target program or a control target program candidate, which will be described with reference to FIGS. While the process is being queued, the read request for the control target program does not pass to the disk driver 71, so that the boot file read speed read from the HDD 17 by the control target program is slow.

その後手順はブロック203に移行して、ブロック203での読み取り要求を確認後に、ブロック205に移行して、ブートI/Oドライバ107は、内部テーブル121の現在の読み取り速度CVRを更新する。ブロック207で内部テーブル121のキューイング実行中フラグがオンの場合は、ブロック215に移行して、ブートI/Oドライバ107は、内部テーブル121を参照して現在の読み取り速度CVRが、解除速度閾値QRT以下であるか否かを判断する。制御対象プログラムは、ブート・ファイルをHDD17から読み出すために複数のプロセスを生成する。キューイングが開始されたあとの制御対象プログラムのプロセスは、実行が遅延するため次第に現在の読み取り速度CVRが低下する。キューイングにより制御対象プログラムのプロセスがHDD17にアクセスする頻度が低下して、他のプログラムによるブート・ファイルのロードのためのHDD17に対するアクセスが円滑に進むことになる。   Thereafter, the procedure proceeds to block 203, and after confirming the read request in block 203, the procedure proceeds to block 205 where the boot I / O driver 107 updates the current read speed CVR in the internal table 121. If the queuing execution flag of the internal table 121 is ON in block 207, the process proceeds to block 215, and the boot I / O driver 107 refers to the internal table 121 to determine whether the current reading speed CVR is the release speed threshold value. It is determined whether it is below QRT. The control target program generates a plurality of processes in order to read the boot file from the HDD 17. Since the process of the control target program after the queuing is started is delayed, the current reading speed CVR gradually decreases. Due to the queuing, the frequency of the process of the control target program accessing the HDD 17 decreases, and the access to the HDD 17 for loading the boot file by another program proceeds smoothly.

ブロック215で現在の読み取り速度CVRが解除速度閾値QRT未満まで下がっていない場合は、キューイングされる以前のプロセスによりブート・ファイルが読み出されているために現在の読み取り速度CVRが十分に低下していないことになり、ブロック217でキューイングを継続しブロック203に移行する。ブロック215で現在の読み取り速度CVRが解除速度閾値QRT未満の場合は、ブロック219でキューイングしていた読み取り要求のプロセスをFIFO(First-In First-Out)方式でキューから取り出す。   If the current read speed CVR has not fallen below the release speed threshold QRT at block 215, the current read speed CVR is sufficiently reduced because the boot file has been read by the previous queued process. Therefore, queuing is continued in block 217 and the process proceeds to block 203. If the current read speed CVR is less than the release speed threshold QRT in block 215, the process of the read request queued in block 219 is taken out from the queue using a first-in first-out (FIFO) method.

そしてブロック223で、ブートI/Oドライバ107は、読み取り要求のプロセスをディスク・ドライバ71に渡してHDD17にアクセスさせる処理をする。ブロック225では、ブート完了チェック・プログラム109がCPU使用率に基づいてブートの完了状態を検知するとI/Oコントロール・サービス101にブート完了信号を送り、ブロック227でI/Oコントロール・サービス101はブートI/Oドライバ107の遅延処理を停止させて、それ以後の読み取り要求のプロセスを一切キューイングすることなくディスク・ドライバ71に渡す。また、ブート完了チェック・プログラム109は、ブート完了時間をブートI/Oログ105に記録する。さらに、ブートI/Oドライバ107は、内部テーブル121に平均読み取り速度AVRを記録し、キューイング実行中フラグが当該ブートの間に一度でもオンに設定されたことがあることを示す情報も記録する。   In block 223, the boot I / O driver 107 performs a process of passing the read request process to the disk driver 71 to access the HDD 17. In block 225, when the boot completion check program 109 detects a boot completion state based on the CPU usage rate, a boot completion signal is sent to the I / O control service 101. In block 227, the I / O control service 101 boots. The delay processing of the I / O driver 107 is stopped and the subsequent read request process is passed to the disk driver 71 without queuing at all. The boot completion check program 109 records the boot completion time in the boot I / O log 105. Furthermore, the boot I / O driver 107 records the average reading speed AVR in the internal table 121, and also records information indicating that the queuing execution flag has been set to ON even once during the boot. .

図4による制御対象プログラムの遅延処理によれば、ブート時に制御対象プログラムがブート・ファイルを専用領域に読み出す時間は長くなり、ブート・システム・コード51がブート・ファイルをロードするまでの時間は短くなる。ブート完了の状態はブート開始後にユーザが利用するアプリケーションを支障なく実行できる状態と定義することができる。そして、制御対象プログラムに対する遅延処理によりユーザが従来よりも早くアプリケーションを実行できる環境を実現することができる。制御対象プログラムがAVプログラム53の場合は、ウイルス・チェックを完了する時間はプロセスがキューイングされている時間だけ遅れるが、新たなファイルをHDD17に格納する時点でもウイルス・チェックが行われるので、ロードされたブート・ファイルに対するウイルス・チェックの時間がその分遅延しても通常は問題がない。またプロセスのキューイングはプロセスの停止とは異なり、AVプログラム53は応答速度の遅いHDDにアクセスしておりプロセスはシステムにより正常に処理されていると判断するので、警告したりブートを停止したりするようなことは行わない。   According to the delay processing of the control target program shown in FIG. 4, the time for the control target program to read the boot file into the dedicated area at the time of booting is long, and the time until the boot system code 51 loads the boot file is short. Become. The boot completion state can be defined as a state in which an application used by the user can be executed without any trouble after the boot starts. An environment in which the user can execute the application earlier than before can be realized by the delay processing for the control target program. When the program to be controlled is the AV program 53, the time for completing the virus check is delayed by the time that the process is queued, but the virus check is performed even when a new file is stored in the HDD 17, so the load is loaded. There is usually no problem if the virus check time for the boot file is delayed by that amount. In addition, the process queuing is different from the process stop, and the AV program 53 accesses the HDD with a slow response speed and determines that the process is normally processed by the system. Don't do that.

ここで、ブート完了チェック・プログラム109によるブート完了信号の生成方法を図8のフローチャートで説明する。本実施の形態におけるブート完了時間は、ブート時に自動起動するブート完了チェック・プログラム109の起動後、全体のCPU使用率が連続して所定時間以上所定値以下になったときまでの経過時間と定義する。本実施の形態では所定時間として10秒間を設定し、所定値として15%を設定する。   Here, a method for generating a boot completion signal by the boot completion check program 109 will be described with reference to the flowchart of FIG. The boot completion time in this embodiment is defined as the elapsed time from when the boot completion check program 109 that is automatically started at the time of booting until the overall CPU usage rate continuously falls below a predetermined value for a predetermined time or more. To do. In the present embodiment, 10 seconds is set as the predetermined time, and 15% is set as the predetermined value.

ブロック501でブート完了チェック・プログラムがブートの所定の段階で起動すると、ブロック503でOS Shell Startup61はブート完了チェック・プログラムがレジストリに登録されているか否かを判断する。登録されていない場合は、ブロック505でOS Shell Startup61に登録し、ブロック507で今回はブート完了信号の生成およびブート完了時間の計測をしないで終了する。ブロック503でブート完了チェック・プログラム109がOS Shell Startup61に登録されている場合は、ブロック509で変数COUNTDOWNを設定し、ブロック509、511、513、515、517により、CPU使用率が15%以下の状態が10秒間継続するか否かを判断する。   When the boot completion check program is started at a predetermined stage of boot in block 501, the OS Shell Startup 61 determines in block 503 whether the boot completion check program is registered in the registry. If it is not registered, it is registered in the OS Shell Startup 61 at block 505, and this time it ends without generating a boot completion signal and measuring the boot completion time at block 507. If the boot completion check program 109 is registered in the OS Shell Startup 61 in block 503, the variable COUNTDOWN is set in block 509, and the CPU usage rate is 15% or less by blocks 509, 511, 513, 515, and 517. It is determined whether or not the state continues for 10 seconds.

ブロック515で、CPU使用率と継続時間の条件が成立するとブート完了チェック・プログラム109は、ブロック519でブート完了信号をI/Oコントロール・サービス101に送り、ブート完了時間をブートI/Oログ105に記録してブロック521で終了する。上記の定義によるブート完了時間は、コンピュータ10の電源を投入してからアプリケーションが支障なく起動できる状態になるまでの時間ではない。アプリケーションはCPU使用率が15%以下になった時点で支障なく起動できるが、本実施の形態では、開始速度閾値QSTおよび解除速度閾値QRTの最適値を取得するために閾値を変更して実行したブートごとのブート完了時間の差が判明すればよいので、上記の定義を採用している。   When the CPU usage rate and duration conditions are satisfied at block 515, the boot completion check program 109 sends a boot completion signal to the I / O control service 101 at block 519 and sets the boot completion time to the boot I / O log 105. And block 521 ends. The boot completion time according to the above definition is not the time from when the computer 10 is turned on until the application can be started without any trouble. The application can be started without any trouble when the CPU usage rate becomes 15% or less, but in this embodiment, the threshold is changed and executed in order to obtain the optimum values of the start speed threshold QST and the release speed threshold QRT. The above definition is adopted because it is only necessary to know the difference in boot completion time for each boot.

[最適閾値の決定処理(全体)]
図5〜図7は、I/Oコントロール・サービス101が実行する制御対象プログラムに対する開始速度閾値QST、解除速度閾値QRTの最適値を決定する処理の手順を示すフローチャートである。図5は、全体の処理手順を示し、図6は最適な開始速度閾値QSTの決定処理の手順を示し、図7は最適な解除速度閾値QRTの決定処理の手順を示す。図5において、ブロック301では、ブートI/Oドライバ107が図4に示した手順を実行している。ブロック303で今回のブートが完了した時点では、ブートI/Oドライバ107の内部テーブル121には、前回のブートが終了したときの制御対象プログラムまたは制御対象プログラムの候補のプロセス名、開始速度閾値QST、解除速度QRTおよび平均読み取り速度AVRが記録され、ブートI/Oログ105にはブート完了時間BCTが記録されている。
[Optimum threshold determination process (overall)]
FIG. 5 to FIG. 7 are flowcharts showing processing procedures for determining the optimum values of the start speed threshold value QST and the release speed threshold value QRT for the control target program executed by the I / O control service 101. FIG. 5 shows the overall processing procedure, FIG. 6 shows the procedure for determining the optimum start speed threshold value QST, and FIG. 7 shows the procedure for determining the optimum release speed threshold value QRT. In FIG. 5, in block 301, the boot I / O driver 107 executes the procedure shown in FIG. When the current boot is completed in block 303, the internal table 121 of the boot I / O driver 107 includes the process name of the control target program or the candidate for the control target program at the end of the previous boot, the start speed threshold QST. The release speed QRT and the average reading speed AVR are recorded, and the boot completion time BCT is recorded in the boot I / O log 105.

ブロック305では、I/Oコントロール・サービス101が、ブートI/Oドライバ107に問い合わせて、内部テーブル121に記録された、今回のブート中にキューイング実行中フラグがオンになったことのある制御対象プログラムまたは制御対象プログラムの候補のプロセスに対する平均読み取り速度AVR、開始速度閾値QSTおよび解除速度QRTを取得してブートI/Oログ105に記録する。ブロック307では、開始速度閾値QSTの最適値の決定処理を行う。ブロック309では、I/Oコントロール・サービス101が今回のブートで開始速度閾値QSTの最適値を決定できたか否かを判断する。決定できないと判断した場合はブロック311に移行して最適値の決定を次回以降のブートに委ねる。ブロック309でI/Oコントロール・サービス101が開始速度閾値QSTの最適値を決定したと判断したときは、当該プロセスは制御対象プログラムにより生成されたものであると特定し、ブロック313に移行して解除速度閾値QRTの最適値の決定処理を行う。ブロック315では、I/Oコントロール・サービス101が今回のブートで解除速度閾値QRTの最適値を決定できたか否かを判断する。決定できないと判断した場合はブロック311に移行して最適値の決定を次回以降のブートに委ねる。ブロック315でI/Oコントロール・サービス101が解除速度閾値QRTの最適値を決定したと判断したときは、ブロック317で最適値の決定処理がすべて終了する。最適な閾値が決定されると、図4の手順でブートI/Oドライバ107により最適な閾値に基づくキューイングの制御が行われる。   In block 305, the I / O control service 101 makes an inquiry to the boot I / O driver 107, and the control in which the queuing execution flag is turned on during the current boot recorded in the internal table 121 is controlled. The average reading speed AVR, start speed threshold value QST, and release speed QRT for the target program or control target program candidate process are acquired and recorded in the boot I / O log 105. In block 307, the optimum value of the start speed threshold value QST is determined. In block 309, it is determined whether the I / O control service 101 has determined the optimum value of the start speed threshold value QST in this boot. If it is determined that it cannot be determined, the process proceeds to block 311 and the determination of the optimum value is left to the next boot. When the I / O control service 101 determines in block 309 that the optimum value of the start speed threshold value QST has been determined, the process is identified as being generated by the control target program, and the process proceeds to block 313. A process for determining the optimum value of the release speed threshold QRT is performed. In block 315, it is determined whether or not the I / O control service 101 has determined the optimum value of the release speed threshold QRT in the current boot. If it is determined that it cannot be determined, the process proceeds to block 311 and the determination of the optimum value is left to the next boot. When it is determined in block 315 that the I / O control service 101 has determined the optimum value of the release speed threshold QRT, in block 317 all the optimum value determination processing ends. When the optimum threshold value is determined, queuing control based on the optimum threshold value is performed by the boot I / O driver 107 in the procedure of FIG.

[最適閾値の決定処理(QST)]
つぎに図6に基づいて、開始速度閾値QSTの最適値を決定する処理を説明する。図6のブロック351、365は、それぞれ図5のブロック307、311に対応し、図6のブロック359からブロック371への移行は、図5のブロック309からブロック313への移行に対応する。本実施の形態では、ブートI/Oドライバ107は、制御対象プログラムをあらかじめ認識しないでも開始速度閾値QSTおよび解除速度閾値QRTが設定されたプロセスに対して現在の読み取り速度CVRに基づいたキューイングを開始する。I/Oコントロール・サービス101は、ブートごとにブート完了時間BCTおよび平均読み取り速度AVRを測定して制御対象プログラムを特定し最適な開始速度閾値QSTおよび解除速度閾値QRTを決定するために、各ブート・ファイルについて複数回のブートを繰り返す必要があり決定までに時間を費やす。
[Optimum threshold determination process (QST)]
Next, a process for determining the optimum value of the start speed threshold value QST will be described with reference to FIG. The blocks 351 and 365 in FIG. 6 correspond to the blocks 307 and 311 in FIG. 5 respectively, and the transition from the block 359 to the block 371 in FIG. 6 corresponds to the transition from the block 309 to the block 313 in FIG. In this embodiment, the boot I / O driver 107 performs queuing based on the current reading speed CVR for a process in which the start speed threshold value QST and the release speed threshold value QRT are set without recognizing the control target program in advance. Start. The I / O control service 101 measures the boot completion time BCT and the average reading speed AVR for each boot to identify the control target program and determine the optimum start speed threshold value QST and release speed threshold value QRT. -It takes time to make a decision because the file needs to be booted multiple times.

最適な閾値を決定して制御対象プログラムを早期に特定するために、ブロック353では、I/Oコントロール・サービス101が、ブートを数回実行して全ブート・ファイルの中で専用領域に読み出したブート・ファイルの総バイト数が所定値を越えるプログラムを制御対象プログラムの候補として設定する。読み出しの総バイト数は、ブートI/Oドライバ107が測定する。ブート時に読み出しのバイト数が大きなブート・ファイルは、他のブート・ファイルのロードを遅延させる原因となり易いので、最初に制御対象プログラムの候補として設定することで、I/Oコントロール・サービス101が制御対象プログラムを特定して最適な速度閾値を設定するまでの時間を短縮することができる。制御対象プログラムの候補はユーザが設定してもよい。   In order to determine the optimum threshold and identify the program to be controlled at an early stage, in block 353, the I / O control service 101 executes the boot several times and reads it to the dedicated area in all the boot files. A program in which the total number of bytes of the boot file exceeds a predetermined value is set as a control target program candidate. The boot I / O driver 107 measures the total number of bytes read. A boot file with a large number of bytes read at the time of booting is likely to cause delays in loading other boot files. Therefore, the I / O control service 101 controls the program by first setting it as a candidate for a control target program. It is possible to shorten the time required for specifying the target program and setting the optimum speed threshold. The user may set candidates for the control target program.

ブロック355で今回のブートが完了すると、I/Oコントロール・サービス101はブロック357でブートI/Oログ105を参照し、ブロック359で開始速度閾値QSTは最適値だったか否かを判断する。図3のブートI/Oログ105には、ブートごとに開始速度閾値QSTが初期値としてのVからV、V・・・と最適値であるVまで変化している様子を示している。初期値VはI/Oコントロール・サービス101が保有している。1回目から4回目までのブートでは、解除速度閾値QRTは開始速度閾値QSTから一定値であるβだけ小さい値として設定されている。そしてブートI/Oログ105には、各ブートが完了したときのブート完了時間BCTと平均読み取り速度AVRが記録されている。 When the current boot is completed in block 355, the I / O control service 101 refers to the boot I / O log 105 in block 357, and determines whether the start speed threshold value QST is an optimal value in block 359. The boot I / O log 105 in FIG. 3 shows how the start speed threshold value QST changes from V 0 as an initial value to V 1 , V 2 ... And an optimal value V n at every boot. ing. The initial value V 0 is held by the I / O control service 101. In the first to fourth boots, the release speed threshold QRT is set to a value that is smaller than the start speed threshold QST by a constant value β 0 . The boot I / O log 105 records a boot completion time BCT and an average reading speed AVR when each boot is completed.

ブートI/Oログ105には、I/Oコントロール・サービス101が、初回のブートでは開始速度閾値QSTを初期値である最大値Vに設定し、2回目のブートではV=V−αに設定し、さらに3回目のブートではV=V−αとして設定したことが記録されている。開始速度閾値QSTを低下させてブートを繰り返していくと、制御対象プログラムが読み取るブート・ファイルの平均読み取り速度AVRが低下しブート完了時間BCTが短縮していくが、開始速度閾値QSTを低下させてもHDD17のファイル転送速度に支配されてそれ以上はブート完了時間BCTが短縮方向に変化しない状態になる。 In the boot I / O log 105, the I / O control service 101 sets the start speed threshold value QST to the initial maximum value V 0 in the first boot, and V 1 = V 0 − in the second boot. It is recorded that α 0 is set and V 2 = V 1 −α 1 is set in the third boot. When booting is repeated while the start speed threshold QST is lowered, the average read speed AVR of the boot file read by the control target program is lowered and the boot completion time BCT is shortened, but the start speed threshold QST is lowered. However, the boot completion time BCT does not change in the shortening direction beyond that due to the file transfer speed of the HDD 17.

I/Oコントロール・サービス101は開始速度閾値QSTの最適値を、ブート完了時間BCTが変化しない範囲で平均読み取り速度AVRが最大になるときの値Vとして決定する。I/Oコントロール・サービス101は、開始速度閾値QSTの最適値を決定するために、ブートI/Oログ105を参照して最適化処理の当初は今回ブート時の開始速度閾値QSTから比較的大きな変化分αを減算した値を次回のブート時の開始速度閾値QSTに設定するが、ブート回数が多くなるにしたがって、ブート完了時間BCTの短縮の程度が小さくなるので減算する変化分αを小さくしていく。I/Oコントロール・サービス101は、変化分αを次第に小さくしながら、今回の開始速度閾値QSTに対して変化分αを加算したり減算したりして次回の開始速度閾値QSTを設定し、最終的に最適な開始速度閾値Vを決定する。 The I / O control service 101 determines the optimum value of the start speed threshold value QST as a value V n when the average reading speed AVR becomes maximum within a range where the boot completion time BCT does not change. The I / O control service 101 refers to the boot I / O log 105 in order to determine the optimum value of the start speed threshold value QST, and is initially relatively large from the start speed threshold value QST at the time of the current boot. The value obtained by subtracting the change α is set as the start speed threshold QST at the next boot. However, as the number of boots increases, the degree of shortening of the boot completion time BCT decreases, so the change α to be subtracted is reduced. To go. The I / O control service 101 sets the next start speed threshold QST by adding or subtracting the change α to the current start speed threshold QST while gradually reducing the change α. Optimal start speed threshold value V n is determined.

I/Oコントロール・サービス101が最適な開始速度閾値QSTを決定するまでの手順は、図6においてブロック357、359、361、363、365に示している。ブロック359では、I/Oコントロール・サービス101は、最適な開始速度閾値QSTを決定していないと判断するとブロック360に移行して、今回のブートで設定した開始速度閾値QSTを変化させて生成した次回のブートの開始速度閾値QSTが最低値以上であるか否かを判断する。I/Oコントロール・サービス101は、開始速度閾値QSTが最低値未満になってもブート完了時間が短縮しないようなプログラムはブロック364で制御対象プログラムから除外してブロック365に移行する。   The procedure until the I / O control service 101 determines the optimum start speed threshold value QST is shown in blocks 357, 359, 361, 363, and 365 in FIG. In block 359, if the I / O control service 101 determines that the optimum start speed threshold value QST has not been determined, the process proceeds to block 360, where the start speed threshold value QST set in the current boot is changed and generated. It is determined whether or not the next boot start speed threshold QST is equal to or higher than the minimum value. The I / O control service 101 excludes the program that does not shorten the boot completion time even if the start speed threshold value QST is less than the minimum value from the control target program in block 364, and moves to block 365.

ブロック360で次回のブートに対して設定する開始速度閾値QSTが最低値以上の場合は、ブロック361で変化させた開始速度閾値QSTをブートI/Oドライバ107のレジストリに設定し、ブロック363でブートI/Oドライバ107のレジストリにQRT=QST−βを設定する。ここに変化分βは、開始速度閾値QSTと解除速度閾値QRTの間にヒステリシスをもたせるための定数である。本実施の形態ではI/Oコントロール・サービス101は、開始速度閾値QSTを決定するまで変化分βを定数βに設定する。そして、ブロック365で次回のブートが行われる。 If the start speed threshold value QST set for the next boot in block 360 is greater than or equal to the minimum value, the start speed threshold value QST changed in block 361 is set in the registry of the boot I / O driver 107, and boot is executed in block 363. QRT = QST-β is set in the registry of the I / O driver 107. Here, the change amount β is a constant for providing a hysteresis between the start speed threshold value QST and the release speed threshold value QRT. In this embodiment, the I / O control service 101 sets the change amount β to a constant β 0 until the start speed threshold value QST is determined. Then, the next boot is performed at block 365.

ブロック363からブロック365を経由してブロック353に戻るときは、I/Oコントロール・サービス101は最適な開始速度閾値QSTを決定するまで当該プログラムを制御対象プログラムの候補として設定する。ブロック364からブロック365を経由してブロック353に戻るときは、I/Oコントロール・サービス101は、ブロック353で当該プログラムを除いた他のプログラムを制御対象プログラムの候補として設定する。   When returning from the block 363 to the block 353 via the block 365, the I / O control service 101 sets the program as a control target program candidate until the optimum start speed threshold value QST is determined. When returning from the block 364 to the block 353 via the block 365, the I / O control service 101 sets other programs excluding the program as candidates for the control target program in the block 353.

I/Oコントロール・サービス101は、ブロック359で最適な開始速度閾値QSTを決定したと判断すると当該プログラムを制御対象プログラムとして特定する。ブロック367で最適な開始速度閾値QSTをブートI/Oデータ・ベース103に登録し、かつ、最適化完了フラグをオンに設定する。I/Oデータ・ベースに最適化完了フラグが設定されている場合は、I/Oコントロール・サービス101は、当該プロセスに対してつねにブートI/Oドライバ107のレジストリに最適な開始速度閾値QSTを設定する。ブロック369でI/Oコントロール・サービス101は、最適な開始速度閾値QSTをブートI/Oドライバ107のレジストリに設定して、ブロック371で開始速度閾値QSTの決定処理を終了する。   If the I / O control service 101 determines that the optimum start speed threshold value QST has been determined in block 359, the I / O control service 101 identifies the program as a control target program. In block 367, the optimum start speed threshold value QST is registered in the boot I / O database 103, and the optimization completion flag is set to ON. When the optimization completion flag is set in the I / O database, the I / O control service 101 always sets the optimum start speed threshold value QST in the registry of the boot I / O driver 107 for the process. Set. In block 369, the I / O control service 101 sets the optimum start speed threshold value QST in the registry of the boot I / O driver 107, and in block 371, the process for determining the start speed threshold value QST is ended.

[最適閾値の決定処理(QRT)]
つぎに図7に基づいて、解除速度閾値QRTの最適値を決定する処理を説明する。図7のブロック401、413は、それぞれ図5のブロック313、311に対応し、図7のブロック407からブロック419への移行は、図5のブロック315からブロック317への移行に対応する。解除速度閾値QRTは、現在の読み取り速度CVRが一旦開始速度閾値QSTを越えてプロセスのキューイングが開始されその後、現在の読み取り速度CVRが低下したときにキューイングを解除するための閾値である。
[Optimum threshold determination processing (QRT)]
Next, a process for determining the optimum value of the release speed threshold QRT will be described with reference to FIG. The blocks 401 and 413 in FIG. 7 correspond to the blocks 313 and 311 in FIG. 5 respectively, and the transition from the block 407 to the block 419 in FIG. 7 corresponds to the transition from the block 315 to the block 317 in FIG. The release speed threshold value QRT is a threshold value for releasing queuing when the current reading speed CVR once exceeds the start speed threshold value QST and queuing of the process is started and then the current reading speed CVR decreases.

したがって、解除速度閾値QRTは、つねに開始速度閾値QSTよりも小さくなり、開始速度閾値QSTに対する差が大きくなるほどキューイングの時間は長くなる。解除速度閾値QRTの最適値も開始速度閾値QSTの最適値と同様に、ブート完了時間BCTが変化しない範囲で平均読み取り速度AVRを最大にするときの値Sとして決定する。ブロック403で最適な開始速度閾値QSTが設定されて行われた今回のブートが完了すると、I/Oコントロール・サービス101はブロック405でブートI/Oログ105を参照し、ブロック407で解除速度閾値QRTは最適値だったか否かを判断する。図3のブートI/Oログ105には、4回目のブートで開始速度閾値QSTが最適値Vに設定され、4回目のブートから7回目のブートまでブートごとに解除速度閾値QRTが初期値としてのSからS、S・・・と最適値であるSまで変化している様子を示している。また、ブートI/Oログ105には各ブートにおけるブート完了時間BCTと平均読み取り速度AVRが記録されている。解除速度閾値QRTは、開始速度閾値QSTから減分βを減算した値を設定する。 Therefore, the release speed threshold value QRT is always smaller than the start speed threshold value QST, and the queuing time becomes longer as the difference with respect to the start speed threshold value QST becomes larger. Optimal value of the release velocity threshold QRT likewise the optimum value of the start speed threshold QST, determined as the value S n of time to maximize the average read speed AVR scope boot completion time BCT does not change. Upon completion of the current boot performed with the optimal start speed threshold value QST set in block 403, the I / O control service 101 refers to the boot I / O log 105 in block 405, and the release speed threshold value in block 407. It is determined whether QRT is an optimal value. The boot I / O log 105 in FIG. 3, the start speed threshold QST at the fourth boot is set to the optimum value V n, the fourth boot from 7 th boot to the release velocity threshold QRT initial value for each boot shows a situation in which changing to S n are S 1, S 2 ··· and the optimum value from the S 0 as. The boot I / O log 105 records a boot completion time BCT and an average reading speed AVR for each boot. The release speed threshold QRT is set to a value obtained by subtracting the decrement β from the start speed threshold QST.

ブロック405ではI/Oコントロール・サービス101が、開始速度閾値QSTの最適値を取得した後の最初のブートでは最適な開始速度閾値QSTに対する減分βを比較的小さく設定し、次第に減分βを大きくしながら同時にブート完了時間BCTを観察する。そして、I/Oコントロール・サービス101はブート完了時間BCTがそれ以上は短縮しないと判断したときに、最適な解除速度閾値QRTを決定したと判断する。I/Oコントロール・サービス101が最適な解除速度閾値QRTを決定するまでの手順は、図7においてブロック407、409、411、413に示している。ブロック407でI/Oコントロール・サービス101は最適な解除速度閾値QRTを決定していないと判断すると、ブロック409で減少させた解除速度閾値QRTをブートI/Oドライバ107のレジストリに設定し、ブロック411でブートI/Oドライバ107のレジストリに最適な開始速度閾値QSTであるVを設定する。そして、ブロック413で次回のブートが行われる。 In block 405, the I / O control service 101 sets the decrement β to the optimum start speed threshold QST to be relatively small in the first boot after obtaining the optimum value of the start speed threshold QST, and gradually decreases the decrement β. While increasing, observe the boot completion time BCT. When the I / O control service 101 determines that the boot completion time BCT is not shortened any more, it determines that the optimum release speed threshold QRT has been determined. The procedure until the I / O control service 101 determines the optimum release speed threshold QRT is shown in blocks 407, 409, 411, and 413 in FIG. If the I / O control service 101 determines in block 407 that the optimum release speed threshold QRT has not been determined, the release speed threshold QRT decreased in block 409 is set in the registry of the boot I / O driver 107, and block In 411, V n that is the optimum start speed threshold value QST is set in the registry of the boot I / O driver 107. Then, the next boot is performed at block 413.

I/Oコントロール・サービス101は、ブロック407で最適な解除速度閾値QRTを決定したと判断すると、ブロック415で最適な解除速度閾値QRTをブートI/Oデータ・ベース103に登録し、かつ、最適化完了フラグをオンに設定する。I/Oコントロール・サービス101は、ブロック419で最適な開始速度閾値QRTをブートI/Oドライバ107のレジストリに設定して、ブロック419で解除速度閾値QRTの決定処理を終了する。   If the I / O control service 101 determines that the optimum release speed threshold QRT has been determined in block 407, the optimum release speed threshold QRT is registered in the boot I / O database 103 in block 415 and the optimum Set the initialization complete flag to on. The I / O control service 101 sets the optimum start speed threshold value QRT in the registry of the boot I / O driver 107 in block 419, and ends the determination process of the release speed threshold value QRT in block 419.

これまでブート・ディスクとして、HDDを例示して説明したが、ブート・ディスクは、フラッシュ・ドライブ(SSD)または、光学ディスク・ドライブ(ODD)であってもよい。また、ブート・ディスクはコンピュータ10の構成要素である必要はなく、ネットワークを通じて図2のモジュールが実装されたコンピュータと接続されるものであってもよい。   Although the HDD has been described as an example of the boot disk so far, the boot disk may be a flash drive (SSD) or an optical disk drive (ODD). Further, the boot disk does not have to be a component of the computer 10, and may be connected to a computer on which the module of FIG. 2 is mounted through a network.

図4〜図7では、ブートI/Oドライバ107が現在の読み取り速度CVRに基づいて、キューイングの実行および解除をしている。本発明は、キューイングの実行および解除の判断を現在の読み取り速度CVR以外のパラメータで行うこともできる。たとえば、ブート段階ではコンピュータ10が起動してから時間が経過して多くのプログラムがロードされるとそれらが他のファイルを読み出し始めるので、ロードするブート・ファイルの転送速度がより遅くなる。したがって、あるブートの初期の段階では、制御対象プログラムをキューイングしないでブート・ファイルをロードし、制御対象プログラムが読み出したブート・ファイルの総量が一定の量に到達した以降はブート完了まで制御対象プログラムのプロセスをキューイングすることもできる。この場合は、キューイングを開始する閾値に読み取ったブート・ファイルの総バイト数を設定して図4〜図6の手順と同様の手順で最適値を決定してキューイングすることもできる。なおこの場合のキューイングはブート完了信号で解除するので、キューイングを解除する閾値を設定する必要はない。   4 to 7, the boot I / O driver 107 executes and cancels queuing based on the current reading speed CVR. In the present invention, it is also possible to determine whether to execute or cancel queuing using parameters other than the current reading speed CVR. For example, in the boot stage, when a lot of programs are loaded after a lapse of time since the computer 10 is started, they start reading other files, so that the transfer speed of the boot file to be loaded becomes slower. Therefore, at the initial stage of a certain boot, the boot file is loaded without queuing the control target program, and after the total amount of boot files read by the control target program reaches a certain amount, You can also queue program processes. In this case, the total number of bytes of the read boot file can be set as the threshold value for starting queuing, and the optimum value can be determined and queued in the same procedure as that shown in FIGS. Since queuing in this case is canceled by a boot completion signal, it is not necessary to set a threshold for canceling queuing.

これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。   Although the present invention has been described with the specific embodiments shown in the drawings, the present invention is not limited to the embodiments shown in the drawings, and is known so far as long as the effects of the present invention are achieved. It goes without saying that any configuration can be adopted.

103…ブートI/Oデータ・ベース
105…ブートI/Oログ
121…ブートI/Oドライバ107の内部テーブル
103 ... Boot I / O database 105 ... Boot I / O log 121 ... Internal table of the boot I / O driver 107

Claims (17)

ブート・ファイルを格納したブート媒体を備えるコンピュータにオペレーティング・システムと協働して、
前記ブート媒体からメイン・メモリの実行領域に前記ブート・ファイルのロードを開始するステップと、
制御対象プログラムが前記ブート媒体から前記メイン・メモリの専用領域に前記ブート・ファイルの読み出しを開始するステップと、
前記制御対象プログラムが前記ブート・ファイルを読み出す読み取り速度を測定するステップと、
前記読み取り速度に基づいて、ブート期間中に前記制御対象プログラムが前記ブート・ファイルの読み出しのために生成したプロセスのキューイングを実行または解除するステップと
を有する処理を実行させるコンピュータ・プログラム。
In cooperation with the operating system on a computer with a boot medium storing a boot file,
Initiating loading of the boot file from the boot medium into an execution region of main memory;
A control target program starts reading the boot file from the boot medium to a dedicated area of the main memory; and
Measuring a reading speed at which the control target program reads the boot file;
A computer program for executing a process having a step of executing or canceling queuing of a process generated for reading of the boot file by the control target program during a boot period based on the reading speed.
前記制御対象プログラムがウイルス対策プログラムである請求項1に記載のコンピュータ・プログラム。   The computer program according to claim 1, wherein the control target program is an antivirus program. 前記プロセスのキューイングを制御する開始速度閾値と該開始速度閾値より小さい解除速度閾値を設定するステップと、
前記読み取り速度が前記開始速度閾値以上のときに前記プロセスをキューイングするステップと、
前記読み取り速度が前記解除速度閾値未満まで低下したときに前記キューイングを解除するステップと
を有する請求項1または請求項2にコンピュータ・プログラム。
Setting a start speed threshold that controls queuing of the process and a release speed threshold that is less than the start speed threshold;
Queuing the process when the read speed is greater than or equal to the start speed threshold;
The computer program according to claim 1, further comprising a step of releasing the queuing when the reading speed falls below the release speed threshold.
ブートごとに次回のブートにおける前記開始速度閾値を変更してブート完了時間を測定し最適な開始速度閾値を決定するステップを有する請求項3に記載のコンピュータ・プログラム。   The computer program according to claim 3, further comprising the step of changing the start speed threshold value at the next boot for each boot, measuring a boot completion time, and determining an optimum start speed threshold value. 前記最適な開始速度閾値を決定するステップが、前記制御対象プログラムがブート完了までに読み出した前記ブート・ファイルの総量に対する平均読み取り速度を測定するステップを含む請求項4に記載のコンピュータ・プログラム。   The computer program according to claim 4, wherein the step of determining the optimum start speed threshold includes a step of measuring an average read speed with respect to a total amount of the boot file read by the control target program until the boot is completed. 前記最適な開始速度閾値が、ブート完了時間が変化しない範囲において前記平均読み取り速度が最大になったときの値である請求項5に記載のコンピュータ・プログラム。 The computer program according to claim 5, wherein the optimum start speed threshold is a value when the average reading speed reaches a maximum in a range where the boot completion time does not change . 前記最適な開始速度閾値を決定するステップが、前記最適な開始速度閾値を決定するまで前記開始速度閾値をブートごとに減少させるステップを含む請求項4から請求項6のいずれかに記載のコンピュータ・プログラム。   The computer method according to any one of claims 4 to 6, wherein the step of determining the optimum start speed threshold includes decreasing the start speed threshold for each boot until the optimum start speed threshold is determined. program. ブートごとに次回のブートにおける前記解除速度閾値を変更してブート完了時間を測定し最適な解除速度閾値を決定するステップを有する請求項3から請求項7のいずれかに記載のコンピュータ・プログラム。   The computer program according to any one of claims 3 to 7, further comprising a step of determining an optimum release speed threshold value by measuring the boot completion time by changing the release speed threshold value at the next boot for each boot. 前記最適な開始速度閾値を決定するステップが、前記ブート・ファイルの中で前記専用領域に読み出したブート・ファイルの総量が所定値を越えるプログラムを選定するステップを含む請求項4から請求項8のいずれかに記載のコンピュータ・プログラム。 9. The step of determining the optimum start speed threshold includes selecting a program in which the total amount of boot files read into the dedicated area exceeds a predetermined value in the boot file. A computer program according to any one of the above. 前記開始速度閾値が設定されていないときに前記プロセスに対してキューイングしない通常の処理をする請求項3から請求項9のいずれかに記載のコンピュータ・プログラム。   The computer program according to any one of claims 3 to 9, wherein normal processing that does not queue the process when the start speed threshold is not set is performed. 制御対象プログラムを含むブート・ファイルを格納したブート媒体を備えるコンピュータにオペレーティング・システムと協働して、
前記ブート媒体からメイン・メモリの実行領域に前記ブート・ファイルのロードを開始するステップと、
前記制御対象プログラムが前記ブート媒体から前記メイン・メモリの専用領域に前記ブート・ファイルの読み出しを開始するステップと、
前記制御対象プログラムが前記ブート媒体から読み出した前記ブート・ファイルの総量を測定するステップと、
前記制御対象プログラムが前記ブート・ファイルの読み出しのために生成したプロセスのキューイングを制御する総量閾値を設定するステップと、
前記測定したブート・ファイルの総量が前記総量閾値以上のときに前記プロセスをキューイングするステップと
を有する処理を実行させるコンピュータ・プログラム。
In cooperation with an operating system on a computer having a boot medium storing a boot file containing a control target program,
Initiating loading of the boot file from the boot medium into an execution region of main memory;
The control target program starts reading the boot file from the boot medium to a dedicated area of the main memory; and
Measuring the total amount of the boot file read from the boot medium by the control target program;
Setting a total amount threshold value for controlling queuing of a process generated by the control target program for reading the boot file;
And queuing the process when the measured total amount of boot files is equal to or greater than the total amount threshold.
ブート・ファイルを格納したブート・ディスクからブートすることが可能なコンピュータであって、
実行領域と専用領域を備えるメイン・メモリと、
前記コンピュータに前記ブート・ディスクから前記実行領域に前記ブート・ファイルのロードを開始する機能を実現させるブート・システム・コードと、
制御対象プログラムが前記ブート・ディスクから前記専用領域に前記ブート・ファイルを読み出す読み取り速度を測定する速度測定手段と、
前記読み取り速度に基づいて、ブート期間中に前記制御対象プログラムが前記ブート・ファイルの読み出しのために生成したプロセスのキューイングを実行または解除する制御手段と
を有するコンピュータ。
A computer capable of booting from a boot disk containing a boot file,
Main memory with an execution area and a dedicated area;
Boot system code for causing the computer to implement a function to start loading the boot file from the boot disk to the execution region;
Speed measuring means for measuring a reading speed at which the control target program reads the boot file from the boot disk to the dedicated area;
A computer having control means for executing or canceling queuing of a process generated by the control target program for reading the boot file during a boot period based on the reading speed.
前記制御対象プログラムは前記コンピュータに、前記ブート・ファイルの読み出しのために生成したプロセスの実行が停止されると警告を出す機能を実現させる請求項12に記載のコンピュータ。 The computer according to claim 12, wherein the control target program causes the computer to realize a function of issuing a warning when execution of a process generated for reading the boot file is stopped. 前記コンピュータに、前記制御手段に対して前記キューイングの実行および解除に関する速度閾値を設定する機能を実現させるサービス・プログラムを有する請求項12または請求項13に記載のコンピュータ。   14. The computer according to claim 12, further comprising: a service program that realizes a function of setting a speed threshold for execution and cancellation of the queuing to the control unit. 前記サービス・プログラムは前記コンピュータに、ブートごとに測定したブート完了時間に基づいて決定した次回のブートにおける前記速度閾値を前記制御手段に設定して前記速度閾値の最適値を決定する機能を実現させる請求項14に記載のコンピュータ。 The service program the computer to realize the function of determining the optimum value of the speed threshold the speed threshold at next boot which is determined based on the boot completion time measured for each boot is set to the control means The computer according to claim 14. 前記サービス・プログラムはさらに前記コンピュータに、前記制御対象プログラムがブート完了までに読み出した前記ブート・ファイルの総量に対する平均読み取り速度に基づいて次回のブートにおける前記速度閾値を決定する機能を実現させる請求項15に記載のコンピュータ。 The service program is further said computer, according to claim to realize the function of the control target program determines the speed threshold at next boot based on the average read rate with respect to the total amount of the boot file read by the boot completion 15. The computer according to 15. ブート・ファイルを格納したブート・ディスクからブートすることが可能なコンピュータであって、
実行領域と専用領域を備えるメイン・メモリと、
前記コンピュータに前記ブート・ディスクから前記実行領域に前記ブート・ファイルのロードを開始する機能を実現させるブート・システム・コードと、
制御対象プログラムが前記ブート・ディスクから前記専用領域に読み出した前記ブート・ファイルの総量を測定する総量測定手段と、
前記測定したブート・ファイルの総量に基づいて、ブート期間中に前記制御対象プログラムが前記ブート・ファイルの読み出しのために生成したプロセスのキューイングを実行する制御手段と
を有するコンピュータ。
A computer capable of booting from a boot disk containing a boot file,
Main memory with an execution area and a dedicated area;
Boot system code for causing the computer to implement a function to start loading the boot file from the boot disk to the execution region;
A total amount measuring means for measuring a total amount of the boot file read by the control target program from the boot disk to the dedicated area;
A computer having control means for queuing a process generated by the control target program for reading the boot file during a boot period based on the measured total amount of the boot file;
JP2009202140A 2009-09-02 2009-09-02 Computer program that reduces boot time Active JP5335625B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009202140A JP5335625B2 (en) 2009-09-02 2009-09-02 Computer program that reduces boot time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009202140A JP5335625B2 (en) 2009-09-02 2009-09-02 Computer program that reduces boot time

Publications (2)

Publication Number Publication Date
JP2011053908A JP2011053908A (en) 2011-03-17
JP5335625B2 true JP5335625B2 (en) 2013-11-06

Family

ID=43942843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009202140A Active JP5335625B2 (en) 2009-09-02 2009-09-02 Computer program that reduces boot time

Country Status (1)

Country Link
JP (1) JP5335625B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003175B2 (en) 2011-04-29 2015-04-07 Lenovo (Singapore) Pte. Ltd. System and method for accelerated boot performance
JP6919399B2 (en) * 2017-08-07 2021-08-18 富士通株式会社 Judgment program, information processing device, and judgment method
US11392418B2 (en) * 2020-02-21 2022-07-19 International Business Machines Corporation Adaptive pacing setting for workload execution

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2303947A (en) * 1995-07-31 1997-03-05 Ibm Boot sector virus protection in computer systems
JP3293760B2 (en) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ Computer system with tamper detection function

Also Published As

Publication number Publication date
JP2011053908A (en) 2011-03-17

Similar Documents

Publication Publication Date Title
JP4795378B2 (en) Computer and boot method
JP5385347B2 (en) Method and computer for enlarging free memory in main memory
JP6646114B2 (en) Dynamic virtual machine sizing
JP7087029B2 (en) Improved functional callback mechanism between the central processing unit (CPU) and the auxiliary processor
CN103477324B (en) Processor and method for Logic Core to be dynamically remapped to physical core
US8499143B2 (en) Method for shortening the boot time of a computer system
JP5212360B2 (en) Control program, control system, and control method
US7882285B2 (en) Buffer cache management to prevent deadlocks
US20080209198A1 (en) Boot Acceleration For Computer Systems
CN103810009B (en) A kind of method and apparatus of computer operating system Acceleration of starting
EP2798489A1 (en) Scheduling virtual central processing units of virtual machines among physical processing units
WO2019212696A1 (en) Multithread framework for use in pre-boot environment of a system-on-chip
JP5345990B2 (en) Method and computer for processing a specific process in a short time
US20070118838A1 (en) Task execution controller, task execution control method, and program
US20160283250A1 (en) Boot controlling processing apparatus
CA2547078A1 (en) Memory management in a computer system using different swapping criteria
JP5335625B2 (en) Computer program that reduces boot time
CN103677900B (en) A kind of method and apparatus of computer equipment system Acceleration of starting
EP3572940A1 (en) Method and device for scheduling vcpu thread
CN1973265B (en) Method and device for selecting a virtualization algorithm in virtual machine environments
EP2869189A1 (en) Boot up of a multiprocessor computer
JP6645348B2 (en) Information processing apparatus, information processing program, and information processing method
KR20140018134A (en) Fast booting method of operating system from off state
JP5737087B2 (en) Virtual machine control device, virtual machine control program, and virtual machine control method
US7577814B1 (en) Firmware memory management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R150 Certificate of patent or registration of utility model

Ref document number: 5335625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250