JP5029076B2 - カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム - Google Patents
カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム Download PDFInfo
- Publication number
- JP5029076B2 JP5029076B2 JP2007061279A JP2007061279A JP5029076B2 JP 5029076 B2 JP5029076 B2 JP 5029076B2 JP 2007061279 A JP2007061279 A JP 2007061279A JP 2007061279 A JP2007061279 A JP 2007061279A JP 5029076 B2 JP5029076 B2 JP 5029076B2
- Authority
- JP
- Japan
- Prior art keywords
- kernel
- code
- activation
- partitioning
- initialization
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
そこで、本発明の目的は、デバイス起動待ち時間を考慮した順番で各デバイスを起動することにより、CPUが何も実行しない無駄な時間を極力少なくし、カーネル初期化処理に要する時間を短縮させることにある。
複数のデバイスと、該複数のデバイス毎のデバイスドライバとを有するコンピュータにおけるカーネル起動方法であって、
前記コンピュータが、前記複数のデバイスをデバイス起動待ち時間が長いものから順に起動するデバイス起動ステップと、
前記コンピュータが、起動が完了したデバイスに対応するデバイスドライバから順に初期化するデバイスドライバ初期化ステップとを含むことを特徴とする。
複数のデバイスと、該複数のデバイス毎のデバイスドライバとを有するコンピュータにおけるカーネル起動方法であって、
前記コンピュータが前記複数のデバイスをデバイス起動待ち時間が長いものから順に起動するデバイス起動ステップと、
前記コンピュータが前記デバイス起動ステップの次に実行するステップであって、デバイスに非依存なモジュールを初期化するデバイス非依存初期化ステップと、
前記コンピュータが前記デバイス非依存初期化ステップの次に実行するステップであって、前記複数のデバイスの全てで起動が完了しているか否かを判定する起動完了判定ステップと、
前記コンピュータが前記起動完了判定ステップにおいて全てのデバイスの起動が完了したと判定した後に実行するステップであって、前記複数のデバイスドライバを初期化するデバイスドライバ初期化ステップと、
前記コンピュータが前記デバイスドライバ初期化ステップの次に実行するステップであって、デバイスに依存するモジュールを初期化するデバイス依存初期化ステップとを含むことを特徴とする。
前記デバイス起動ステップでは、前記複数のデバイスの内の、カーネル起動処理の完了直後に使用するデバイスのみを起動し、
前記デバイスドライバ初期化ステップでは、前記複数のデバイスドライバの内の、カーネル起動処理の完了直後に使用するデバイスドライバのみを初期化し、且つ、
前記コンピュータがカーネル起動処理の完了後に、前記複数のデバイスの内の、起動していないデバイスを起動し、その後、前記複数のデバイスドライバの内の、初期化していないデバイスドライバを初期化することを特徴とする。
複数のデバイスと、該複数のデバイス毎のデバイスドライバと、複数のCPUとを有するコンピュータにおけるカーネル起動方法であって、
前記複数のCPUが、自CPUに割り当てられているデバイスをデバイス起動待ち時間が長いものから順に起動するデバイス起動ステップと、
前記複数のCPUが前記デバイス起動ステップの次に実行するステップであって、自CPUに割り当てられているモジュールの内の、デバイスに非依存なモジュールを初期化するデバイス非依存初期化ステップと、
前記複数のCPUが前記デバイス非依存初期化ステップの次に実行するステップであって、自CPUに割り当てられているデバイスの全てで起動が完了しているか否かを判定する起動完了判定ステップと、
前記複数のCPUが前記起動完了ステップにおいて自CPUに割り当てられている全てのデバイスの起動が完了したと判定した後に実行するステップであって、自CPUに割り当てられているデバイスに対応するデバイスドライバを初期化するデバイスドライバ初期化ステップと、
前記複数のCPUが前記デバイスドライバ初期化ステップの次に実行するステップであって、自CPUに割り当てられているモジュールの内の、デバイスに依存するモジュールを初期化するデバイス依存初期化ステップとを含むことを特徴とする。
複数のデバイスと、該複数のデバイス毎のデバイスドライバとを有するコンピュータにおけるカーネル起動方法であって、
前記コンピュータが、ブートローダの実行時に前記複数のデバイスをデバイス起動待ち時間が長いものから順に起動し、全てのデバイスの起動が完了した後、カーネル起動処理を開始させるデバイス起動ステップと、
前記コンピュータが前記デバイス起動ステップの次に行うステップであって、前記デバイスドライバを初期化するデバイスドライバ初期化ステップとを含むことを特徴とする。
複数のデバイスと、該複数のデバイス毎のデバイスドライバと、カーネルソースコードが格納されたカーネルソースコード記憶部と、前記複数のデバイス毎のデバイス起動待ち時間が格納された起動待ち時間記憶部と、区画化コード記憶部と、最適化コード記憶部とを備えたコンピュータによって前記カーネルソースコードを最適化するカーネルソースコード最適化方法であって、
前記コンピュータが、前記カーネルソースコード記憶部から前記カーネルソースコードを入力し、該入力したカーネルソースコードを、デバイスに対する起動処理を行うデバイス毎の区画化コードと、デバイスドライバに対する初期化処理を行うデバイスドライバ毎の区画化コードと、他の処理を行う区画化コードとに区画化して前記区画化コード記憶部に格納する区画化分析ステップと、
前記コンピュータが、前記区画化コード記憶部から各区画化コードを入力し、該入力した区画化コードの内のデバイスに対する起動処理を行う区画化コードをデバイス起動待ち時間が長い順に配置し、その後ろに、前記複数のデバイス毎に起動が完了したか否かを判定し、起動が完了したと判定したデバイスに対応するデバイスドライバの初期化処理を開始させるコードを配置し、その後ろに、前記入力した区画化コードの内のデバイスドライバに対する初期化を行う区画化コードを配置した最適化コードを生成し、該生成した最適化コードを前記最適化コード記憶部に格納する再配置ステップとを含むことを特徴とする。
前記区画化分析ステップでは、前記カーネルソースコード記憶部から入力したカーネルソースコードを関数呼び出し単位で区画化することにより、区画化コードを生成することを特徴とする。
前記コンピュータが、前記複数のデバイスそれぞれのデバイス起動待ち時間を測定し、測定したデバイス起動待ち時間を前記起動待ち時間記憶部に格納する情報採取ステップを含むことを特徴とする。
複数のデバイスと、
該複数のデバイス毎のデバイスドライバと、
カーネルソースコードが格納されたカーネルソースコード記憶部と、
前記複数のデバイス毎のデバイス起動待ち時間が格納された起動待ち時間記憶部と、
区画化コード記憶部と、
最適化コード記憶部と、
前記カーネルソースコード記憶部から前記カーネルソースコードを入力し、該入力したカーネルソースコードを、デバイスに対する起動処理を行うデバイス毎の区画化コードと、デバイスドライバに対する初期化処理を行うデバイスドライバ毎の区画化コードと、他の処理を行う区画化コードとに区画化して前記区画化コード記憶部に格納する区画化分析手段と、
前記区画化コード記憶部から各区画化コードを入力し、該入力した区画化コードの内のデバイスに対する起動処理を行う区画化コードをデバイス起動待ち時間が長い順に配置し、その後ろに、前記複数のデバイス毎に起動が完了したか否かを判定し、起動が完了したと判定したデバイスに対応するデバイスドライバの初期化処理を開始させるコードを配置し、その後ろに、前記入力した区画化コードの内のデバイスドライバに対する初期化を行う区画化コードを配置した最適化コードを生成し、生成した最適化コードを前記最適化コード記憶部に格納する再配置手段とを備えたことを特徴とする。
前記区画化分析手段が、前記カーネルソースコード記憶部から入力したカーネルソースコードを関数呼び出し単位で区画化することにより、区画化コードを生成することを特徴とする。
前記複数のデバイスそれぞれのデバイス起動待ち時間を測定し、測定したデバイス起動待ち時間を前記起動待ち時間記憶部に格納する情報採取手段を備えたことを特徴とする。
複数のデバイスと、該複数のデバイス毎のデバイスドライバと、カーネルソースコードが格納されたカーネルソースコード記憶部と、前記複数のデバイス毎のデバイス起動待ち時間が格納された起動待ち時間記憶部と、区画化コード記憶部と、最適化コード記憶部とを備えたコンピュータを、
前記カーネルソースコード記憶部から前記カーネルソースコードを入力し、該入力したカーネルソースコードを、デバイスに対する起動処理を行うデバイス毎の区画化コードと、デバイスドライバに対する初期化処理を行うデバイスドライバ毎の区画化コードと、他の処理を行う区画化コードとに区画化して前記区画化コード記憶部に格納する区画化分析手段、
前記区画化コード記憶部から各区画化コードを入力し、該入力した区画化コードの内のデバイスに対する起動処理を行う区画化コードをデバイス起動待ち時間が長い順に配置し、その後ろに、前記複数のデバイス毎に起動が完了したか否かを判定し、起動が完了したと判定したデバイスに対応するデバイスドライバの初期化処理を開始させるコードを配置し、その後ろに、前記入力した区画化コードの内のデバイスドライバに対する初期化を行う区画化コードを配置した最適化コードを生成し、生成した最適化コードを前記最適化コード記憶部に格納する再配置手段として機能させる。
カーネル起動処理において、コンピュータは、先ず、複数のデバイスをデバイス起動待ち時間が長いものから順に起動し、その後、起動が完了したデバイスに対応するデバイスドライバから順に初期化する。
本実施の形態は、カーネル初期化処理が高速化されるように、カーネルソースコードを最適化するものである。図1を参照すると、本実施の形態を適用したコンピュータ1は、カーネル10と、区画化分析手段20と、再配置手段30と、記憶装置40と、複数のデバイス50とを備えている。
・第2フェーズ(フェーズ2)…ドライバ構造体作成処理などのデバイスドライバ初期化処理を行うフェーズである。
・第3フェーズ(フェーズ3)…デバイス起動処理、デバイスドライバ初期化処理以外の初期化処理を行うフェーズである。
次に、本実施の形態の動作について詳細に説明する。
次に、図11を参照して、最適化コード400を利用したカーネル起動処理100について説明する。なお、カーネル起動処理100は、CPU(図示せず)が、最適化コード400をコンパイルしたオブジェクトコードを実行することにより行われるものであり、上記オブジェクトコードは、オブジェクトコード記憶部47に格納されている。
本実施の形態によれば、カーネル起動処理においてCPUが何も実行しない無駄な時間を極力少なくすることができ、その結果、カーネル起動処理に要する時間を短縮化することが可能になる。その理由は、コンピュータ1がカーネル起動処理100を行う際、先ず、複数のデバイスをデバイス起動待ち時間が長いものから順に起動し、その後、起動が完了したデバイスに対応するデバイスドライバから順に初期化するようにしているからである。
次に、本発明の第2の実施の形態について説明する。図15は本実施の形態にかかるカーネル起動方法を説明するための図であり、本実施の形態のカーネル起動処理100においては、第1フェーズ201、デバイスに非依存な初期化処理202、第1フェーズ完了判定処理203a、第2フェーズ204、デバイスに依存する初期化処理206が順次実行される。
本実施の形態によれば、カーネル起動処理においてCPUが何も実行しない無駄な時間を極めて少なくすることができ、その結果、カーネル起動処理に要する時間を短縮化することが可能になる。その理由は、各デバイス50をデバイス起動待ち時間が長いものから順に起動する第1フェーズ201の次に、デバイスに非依存な初期化処理202を行うようにしているからである。
本実施の形態は、カーネル起動処理において初期化の必要性が無いデバイスに関しては、カーネル起動処理の完了後に初期化を実施することにより、カーネル起動処理に要する時間を短縮化したことを特徴とする。
本実施の形態によれば、カーネル起動完了直後に使用しないデバイス、デバイスドライバに対する起動処理102−5、初期化処理102−6は、カーネル起動処理100の完了後に行うようにしているので、カーネル起動処理100に要する時間を短くすることができる。
本実施の形態は、CPUを複数有するコンピュータにおいて、各CPUが処理を並行して行うことにより、カーネル起動処理に要する時間を短縮化させることを特徴とする。
本実施の形態によれば、複数のCPUが並行してカーネル起動処理100を行うので、カーネル起動処理100に要する時間を短縮化することができる。
次に、本発明の第5の実施の形態について説明する。本実施の形態は、コンピュータが、ブートローダの実行時に、デバイスに対するデバイス起動処理を行うことにより、カーネル起動処理に要する時間を短縮化したことを特徴とする。
本実施の形態によれば、コンピュータがブートローダの実行時に、デバイスに対するデバイス起動処理102−1〜102−3を行うようにしているので、カーネル起動処理100に要する時間を短くすることができる。
10…カーネル
11…情報採取モジュール
12…デバイスドライバ
20…区画化分析手段
21…区画化手段
22…分析手段
30…再配置手段
40…記憶装置
41…カーネルソースコード記憶部
42…区画化コード記憶部
43…起動待ち時間記憶部
44…分類情報記憶部
45…分析結果記憶部
46…最適化コード記憶部
47…オブジェクトコード記憶部
Claims (3)
- 複数のデバイスと、該複数のデバイス毎のデバイスドライバとを有するコンピュータにおけるカーネル起動方法であって、
前記コンピュータが前記複数のデバイスをデバイス起動待ち時間が長いものから順に起動するデバイス起動ステップと、
前記コンピュータが前記デバイス起動ステップの次に実行するステップであって、前記複数のデバイスの状態によらず実行可能な初期化処理を実行するデバイス非依存初期化ステップと、
前記コンピュータが前記デバイス非依存初期化ステップの次に実行するステップであって、前記複数のデバイスの全てで起動が完了しているか否かを判定する起動完了判定ステップと、
前記コンピュータが前記起動完了判定ステップにおいて全てのデバイスの起動が完了したと判定した後に実行するステップであって、前記複数のデバイスドライバを初期化するデバイスドライバ初期化ステップと、
前記コンピュータが前記デバイスドライバ初期化ステップの次に実行するステップであって、前記複数のデバイスドライバの初期化完了後でなければ実行することができない初期化処理を実行するデバイス依存初期化ステップとを含むことを特徴とするカーネル起動方法。 - 請求項1記載のカーネル起動方法において、
前記デバイス起動ステップでは、前記複数のデバイスの内の、カーネル起動処理の完了直後に使用するデバイスのみを起動し、
前記デバイスドライバ初期化ステップでは、前記複数のデバイスドライバの内の、カーネル起動処理の完了直後に使用するデバイスドライバのみを初期化し、且つ、
前記コンピュータがカーネル起動処理の完了後に、前記複数のデバイスの内の、起動していないデバイスを起動し、その後、前記複数のデバイスドライバの内の、初期化していないデバイスドライバを初期化することを特徴とするカーネル起動方法。 - 複数のデバイスと、該複数のデバイス毎のデバイスドライバと、複数のCPUとを有するコンピュータにおけるカーネル起動方法であって、
前記複数のCPUが、自CPUに割り当てられているデバイスをデバイス起動待ち時間が長いものから順に起動するデバイス起動ステップと、
前記複数のCPUが前記デバイス起動ステップの次に実行するステップであって、自CPUに割り当てられているデバイスの状態によらず実行可能な初期化処理を実行するデバイス非依存初期化ステップと、
前記複数のCPUが前記デバイス非依存初期化ステップの次に実行するステップであって、自CPUに割り当てられているデバイスの全てで起動が完了しているか否かを判定する起動完了判定ステップと、
前記複数のCPUが前記起動完了ステップにおいて自CPUに割り当てられている全てのデバイスの起動が完了したと判定した後に実行するステップであって、自CPUに割り当てられているデバイスに対応するデバイスドライバを初期化するデバイスドライバ初期化ステップと、
前記複数のCPUが前記デバイスドライバ初期化ステップの次に実行するステップであって、自CPUに割り当てられているデバイスに対応するデバイスドライバの初期化処理完了後でなければ実行することができない初期化処理を実行するデバイス依存初期化ステップとを含むことを特徴とするカーネル起動方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007061279A JP5029076B2 (ja) | 2007-03-12 | 2007-03-12 | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007061279A JP5029076B2 (ja) | 2007-03-12 | 2007-03-12 | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011243400A Division JP5195997B2 (ja) | 2011-11-07 | 2011-11-07 | カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008225717A JP2008225717A (ja) | 2008-09-25 |
JP5029076B2 true JP5029076B2 (ja) | 2012-09-19 |
Family
ID=39844283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007061279A Expired - Fee Related JP5029076B2 (ja) | 2007-03-12 | 2007-03-12 | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5029076B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750346B (zh) * | 2019-10-17 | 2022-11-15 | Oppo(重庆)智能科技有限公司 | 任务运行优化方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10171557A (ja) * | 1996-12-09 | 1998-06-26 | Nec Gumma Ltd | 情報処理装置 |
JPH10283084A (ja) * | 1997-04-10 | 1998-10-23 | Canon Inc | 情報処理装置及びその制御方法及び記憶媒体 |
JPH10307649A (ja) * | 1997-05-07 | 1998-11-17 | Toshiba Corp | コンピュータシステムおよびその初期化方法 |
JP4530699B2 (ja) * | 2004-03-29 | 2010-08-25 | 京セラミタ株式会社 | 画像形成装置 |
JP2006109332A (ja) * | 2004-10-08 | 2006-04-20 | Canon Inc | 撮像装置及びその制御方法及び記憶媒体 |
US7461247B2 (en) * | 2005-06-03 | 2008-12-02 | Qnx Software Systems Gmbh & Co. Kg | Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization |
-
2007
- 2007-03-12 JP JP2007061279A patent/JP5029076B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008225717A (ja) | 2008-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338956B2 (en) | Application profiling job management system, program, and method | |
CN101421700B (zh) | 支持处理系统的分区中的独立操作系统的方法和设备 | |
JP5015665B2 (ja) | カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム | |
US6772419B1 (en) | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS | |
US8046692B2 (en) | User interface mapping modules to deployment targets | |
CN105814541B (zh) | 计算机设备及计算机设备内存启动的方法 | |
US20050246478A1 (en) | Information processing apparatus and a method and a program of loading a device driver | |
US20120227040A1 (en) | Hybrid Operating System | |
US8271707B2 (en) | Method and system for PCI hybrid function | |
CN106445576A (zh) | 主机板及其计算机实现方法及非暂态计算机可读储存装置 | |
WO2014014532A1 (en) | Pattern matching process scheduler with upstream optimization | |
JP2008033933A (ja) | 同時物理プロセッサ再割り当て方法、システム、およびプログラム | |
WO2013165459A1 (en) | Control flow graph operating system configuration | |
JP2017117450A (ja) | 様々なケーパビリティを有するコアに関するスレッド及び/又は仮想マシンのスケジューリング | |
CN101650660A (zh) | 从中央存储装置引导计算机系统 | |
US20130231912A1 (en) | Method, system, and scheduler for simulating multiple processors in parallel | |
CN101364178A (zh) | Bios在电脑装置开机时的执行方法与管理方法 | |
US20190303172A1 (en) | Information processing apparatus, device assignment method, and computer readable medium | |
CN112965895B (zh) | 桌面应用程序自动化测试方法、装置、设备及存储介质 | |
JP5029076B2 (ja) | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム | |
CN101373434A (zh) | 在多处理器系统中快速加载和运行程序映像的方法和系统 | |
US12067380B2 (en) | System and method of offloading and migrating management controller functionalities using containerized services and application thereof | |
JP5195997B2 (ja) | カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム | |
CN115840617A (zh) | 一种调试方法、系统及相关装置 | |
CN115509692A (zh) | 虚拟机及其配置方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090717 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111107 |
|
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: 20120529 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120611 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5029076 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |