JPH11265289A - 情報処理装置および情報処理装置の高速初期起動方法 - Google Patents

情報処理装置および情報処理装置の高速初期起動方法

Info

Publication number
JPH11265289A
JPH11265289A JP10065957A JP6595798A JPH11265289A JP H11265289 A JPH11265289 A JP H11265289A JP 10065957 A JP10065957 A JP 10065957A JP 6595798 A JP6595798 A JP 6595798A JP H11265289 A JPH11265289 A JP H11265289A
Authority
JP
Japan
Prior art keywords
module
mini
initialization
load
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10065957A
Other languages
English (en)
Inventor
Atsushi Setsutsu
敦 攝津
Yoshiyuki Baba
儀之 馬場
Naohito Sugai
尚人 菅井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP10065957A priority Critical patent/JPH11265289A/ja
Priority to US09/261,255 priority patent/US6374353B1/en
Publication of JPH11265289A publication Critical patent/JPH11265289A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

(57)【要約】 【課題】 ブートストラップコードがブートデバイスの
ファイルシステムにあるOSをメモリにロードし起動し
ていたため、OSが起動するまでに時間がかかるなどの
課題があった。 【解決手段】 OSをブート処理に必要なミニOSモジ
ュール7とそれ以外のOS本体モジュール8に分け、ミ
ニOSモジュール7をブートブロック4に配置し、OS
本体モジュール8をファイルシステム5に配置し、F/
Wコードモジュール6はミニOSモジュール7をメモリ
2にロードして実行し、ミニOSモジュール7はOS本
体モジュール8をメモリ2にロードして初期化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、電源投入後の起
動に要する時間を短縮することができる情報処理装置と
情報処理装置の高速初期起動方法に関するものである。
【0002】
【従来の技術】従来、情報処理装置の起動方式として
は、「UNIX 4.3BSDの設計と実装(中村明
ほか訳、平成3年6月30日 丸善株式会社出版)の1
3章「システムの立ち上げ」(p.413〜p.43
3)に記載されているように、プログラム可能読み出し
専用メモリ(ROM)に格納されているF/Wコードが
bootというブートストラップコードをロードする。
次に、そのbootプログラムがファイルシステムにあ
るOSをロードすることにより、そのOSが起動し、自
身の初期化を全て行った後、初期起動プロセス(ini
t)が動作し、その後、一般アプリケーションを動作す
るものであった。
【0003】
【発明が解決しようとする課題】従来の情報処理装置の
高速初期起動方法は以上のように構成されているので、
F/Wコードがブートデバイスのブートブロックにある
ブートストラップコードをメモリにロードして実行し、
次にブートストラップコードがブートデバイスのファイ
ルシステムにあるOSをメモリにロードし起動していた
ため、OSが起動するまでに時間がかかるなどの課題が
あった。
【0004】また、OSが自身の初期化を全て行った
後、アプリケーションを起動するようになっていたた
め、アプリケーションの起動時間が長くなるという問題
点もあった。
【0005】この発明は上記のような課題を解決するた
めになされたもので、電源投入後の起動時間を短縮する
ことができるとともに、アプリケーションの起動時間を
短縮することができる情報処理装置および情報処理装置
の高速初期起動方法を得ることを目的とする。
【0006】
【課題を解決するための手段】この発明に係る情報処理
装置は、ブートデバイスにおいてブートストラップ処理
に必要な機能を備えるミニOSモジュールと、ブートス
トラップ処理に関係しない機能を備えるOS本体モジュ
ールとに分割し、ブートストラップコードの代わりにミ
ニOSモジュールを初期起動し、このミニOSモジュー
ルがOS本体モジュールをブートデバイスからロードし
た後、このOS本体モジュールとミニOSモジュールと
を結合するようにしたものである。
【0007】この発明に係る情報処理装置の高速初期起
動方法は、OSをミニOSモジュールとOS本体部とに
分け、ミニOSモジュールにはブートストラップ処理で
最低限必要な機能を備え、OS本体部にはブートストラ
ップ処理に関係しない機能を備え、ミニOSモジュール
をブートストラップコードとして実行し、ミニOSモジ
ュールがOS本体部をファイルシステムからロードし、
ミニOSモジュールと結合して初期化し、ブートストラ
ップコードのロードと実行分の時間を削減するようにし
たものである。
【0008】この発明に係る情報処理装置の高速初期起
動方法は、ファイルシステムに配置されたOS本体部を
機能毎に分割して配置し、OS本体部のロードを行う処
理とOS本体部の初期化を行う処理を独立したスレッド
として動作させることにより、OS機能のロード処理で
のI/O処理待ちで発生するCPUの空き時間に、OS
機能の初期化を実行できるようにしたものである。
【0009】この発明に係る情報処理装置の高速初期起
動方法は、OS本体部のロードを処理するスレッドとO
Sの初期化を処理するスレッドをスレッド間通信を用い
て同期を取ることにより、スレッドの生成/終了処理に
伴う時間を短縮するようにしたものである。
【0010】この発明に係る情報処理装置の高速初期起
動方法は、OS本体部の機能毎に分かれた機能ファイル
をそれぞれ圧縮した形式でファイルシステム上に配置
し、OS本体部をロードするスレッドは、OS本体部の
ロード後に機能ファイルを復元し、その後にOSを初期
化するスレッドを起動することにより、I/O処理に掛
かる時間を削減するようにしたものである。
【0011】この発明に係る情報処理装置の高速初期起
動方法は、OS本体部をロードおよび復元を行うスレッ
ドを、機能ファイルを復元するスレッドとOS本体部を
ロードするスレッドに分け、それぞれを並行実行させる
ことにより、CPUの空き時間を削減するようにしたも
のである。
【0012】この発明に係る情報処理装置の高速初期起
動方法は、OS上で動作するアプリケーションに、その
アプリケーションが必要なOS機能を記述した機能定義
ファイルをあらかじめ組み込み、ミニOSモジュールは
残りのOS機能部をロードする前にアプリケーションを
メモリにロードし、機能定義ファイルよりアプリケーシ
ョンの起動に必要なOS機能のロードと初期化を行った
あと、アプリケーションの起動を実施し、アプリケーシ
ョンの起動に必要のないOS機能はアプリケーションの
実行と並行に処理するようにしたものである。
【0013】この発明に係る情報処理装置の高速初期起
動方法は、ミニOSモジュールをROMに配置し、F/
WがROM上にあるミニOSモジュールを直接実行し、
ミニOSモジュールは自身のデータ領域をメモリにロー
ドした後、ミニOSモジュールの初期化を行い、OS本
体部をブートデバイスからメモリにロードし、結合・初
期化することにより、ミニOSモジュールのコード部分
のロードを省くようにしたものである。
【0014】この発明に係る情報処理装置の高速初期起
動方法は、ミニOSモジュールにミニOSモジュールと
OS本体部の結合を間接的に行うアドレス解決テーブル
を持たせ、OSのロードおよび初期化が完了し、初期起
動プロセスが動作した後、ROMに配置されたミニOS
モジュールのコード部をメモリロードし、アドレス解決
テーブルにあるROM内のミニOSモジュールコードを
指す部分をメモリにロードされたミニOSモジュールコ
ードを指すように変更することで、以降の処理を高速ア
クセス可能なメモリ上で実行するようにしたものであ
る。
【0015】この発明に係る情報処理装置の高速初期起
動方法は、ミニOSモジュールのOSロード処理と初期
化処理をスレッドとして並行に実行できるようにし、O
S本体部には任意のブロックサイズ毎にロード目的フラ
グを設け、OS本体部内の機能モジュールが格納されて
いる最終ブロックのロード目印フラグにその機能モジュ
ールを表すビットが1になるように設定しておき、ミニ
OSモジュールはOS本体部をロードする際に、ブロッ
ク毎にロード目印フラグを参照し、該フラグのビットが
1になっていたときにOS初期化処理を並行に実行させ
るようにすることで、OS機能のロード処理内のI/O
処理待ちの間に発生するCPUの空き時間にOS機能の
初期化を実行できるようにしたものである。
【0016】この発明に係る情報処理装置の高速初期起
動方法は、ロード目印フラグはビットではなく対象機能
モジュールとミニOSモジュールを結合する結合処理関
数のアドレスと対象機能モジュールの初期化を行う初期
化処理関数のアドレスを格納するようにし、ミニOSモ
ジュールは、OS本体部をロードする際に、ブロック毎
にロード目印フラグを参照し、該領域が0でない場合
に、OS初期化処理を並行に実行させ、初期化処理では
該結合処理関数と該初期化関数を呼び出すことで、ビッ
トでの把握処理を省くようにしたものである。
【0017】この発明に係る情報処理装置の高速初期起
動方法は、ミニOSモジュールとOS本体モジュールの
作成時において、各々のオブジェクトファイルはリンカ
によって一旦1つのOSファイルとして結合され、それ
をOS分割手段を用いてミニOSモジュールとOS本体
モジュールを分割し、ミニOSモジュールをブートブロ
ックに、OS本体モジュールをファイルシステムに配置
するようにすることで、OS本体モジュールのロード時
のミニOSモジュールとOS本体モジュールの結合にお
けるアドレス解決処理に掛かる時間を省くようにしたも
のである。
【0018】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1による情
報処理装置を示す構成図であり、図において、1は情報
処理装置のROM、2は情報処理装置のメモリ、3は情
報処理装置のブートデバイスである。4はブートデバイ
ス3内のブートブロック、5はブートデバイス3内のフ
ァイルシステムを示す。6はROM1内に配置されたF
/Wコードモジュールであり、ROM1上で直接実行さ
れ、H/Wレジスタの設定および診断を行った後、ブー
トデバイス3内のブートブロック4にあるデータをメモ
リ2にロードし、ロードしたデータをコードとみなして
そのコードを実行する。7は通常のプログラムファイル
と同じようにコンパイル・リンクされブートブロック4
に配置されたミニOSモジュール、8はファイルシステ
ム5内に配置され、ミニOSモジュール7内にあるOS
機能以外のOS機能が格納されたOS本体モジュールで
あり、情報処理装置の電源が投入されると、情報処理装
置H/Wの初期化が実施され、ROM1内のF/Wコー
ドモジュール6に制御を移す。
【0019】図2はこの発明の実施の形態1による情報
処理装置においてブートブロック領域に格納されるミニ
OSモジュールを示す構成図であり、図において、ミニ
OSモジュール7はOSの基本部であるミニカーネルモ
ジュール9、ブートデバイスの入出力を行うブートデバ
イスドライバモジュール10およびブートデバイス3か
らOS本体モジュール8をメモリ2にロードし初期化す
るOSロード・初期化処理モジュール11とから構成さ
れる。ミニカーネルモジュール9はスレッドの並行実行
を実現するスレッド管理モジュール12、デバイスドラ
イバの管理およびI/O割り込みをサポートするI/O
管理モジュール13およびスレッド間の同期を実現する
スレッド間通信管理モジュール14とで構成される。ブ
ートデバイスドライバモジュール10は一般のOSと同
じドライバ構造を持ちミニカーネルモジュール9のI/
O管理モジュール13によって管理される。スレッドと
して起動されるOSロード・初期化処理モジュール11
はこのI/O管理モジュール13を介してブートデバイ
スドライバモジュール10にアクセスする。
【0020】図3はこの発明の実施の形態1による情報
処理装置においてOS本体モジュールを示す構成図であ
り、図において、OS本体モジュール8は、図2のミニ
カーネルモジュール9に格納されている機能以外のカー
ネル機能が組み込まれたカーネルモジュール15とブー
トデバイス以外のデバイスの入出力を行うデバイスドラ
イバモジュール16で構成される。カーネルモジュール
15には、ユーザプログラムとカーネルとのI/Fを処
理するシステムコール処理モジュール17、ユーザプロ
グラムのプロセスとしての動作を実現するプロセス管理
モジュール18、プロセス間で同一のメモリを参照可能
とする共有メモリ管理モジュール19、プロセス間での
メッセージ送受信を実現するメッセージ管理モジュール
20、プロセス間での非同期通知機能であるシグナルを
実現するシグナル管理モジュール21、スワップ機能を
実現する仮想記憶処理モジュール22などが含まれる。
このOS本体モジュール8は、ブートデバイス3のファ
イルシステム5内に配置され、ミニOSモジュール7に
よってメモリ2上にロードされ、初期化される。
【0021】次に動作について説明する。図4はこの発
明の実施の形態1による情報処理装置のミニOSモジュ
ールの動作手順を示すフローチャートである。まず、ミ
ニOSモジュール7はF/Wコードモジュール6によっ
てメモリ2にロードされ、制御を移されると、ミニカー
ネルモジュール9の初期化を実施する(ステップST1
01)。ここでは、スレッド管理モジュール12、I/
O管理モジュール13、およびスレッド間通信管理モジ
ュール14が初期化され、それぞれの機能が使用可能と
なる。次に、ミニOSモジュール7はブートデバイスド
ライバモジュール10の初期化を実施する(ステップS
T102)。ブートデバイスドライバモジュール10で
は、ブートデバイスのからの割り込みに対する処理をI
/O管理モジュール13を使用して割り込みに登録し、
ブートデバイス入出力操作処理をスレッド管理モジュー
ル12を使用してスレッドとして生成・起動する。ま
た、割り込みに対する処理とスレッドとして起動される
ブートデバイス入出力操作処理の同期は、スレッド間通
信管理モジュール14を利用して実施される。また、入
出力操作処理の他モジュールとのI/FはI/O管理モ
ジュール13に登録され、他モジュールはI/O管理モ
ジュール13を介してブートデバイスドライバモジュー
ル10へのアクセスが行われるようになる。
【0022】次に、ミニOSモジュール7はOSロード
・初期化処理モジュール11を動作させるためのスレッ
ドをスレッド管理モジュール12を使用して生成する
(ステップST103)。そして、そのスレッドをスレ
ッド管理モジュール12を使用して起動する(ステップ
ST104)。これによりOSロード・初期化処理モジ
ュール11がスレッドとして起動され、ミニOSモジュ
ール7からOSロード・初期化処理モジュール11へ制
御が移動する。
【0023】また、OSロード・初期化処理モジュール
11は、ブートデバイス3のファイルシステム5内に格
納されているOS本体モジュール8をブートデバイスド
ライバモジュール10を利用してメモリ2にロードする
(ステップST111)。次に、メモリ2にロードされ
たOS本体モジュール8とミニOSモジュール7を結合
する(ステップST112)。ここでは、OS本体モジ
ュール8で未定義になっているミニOSモジュール7内
のコード・データのアドレスを解決し、かつミニOSモ
ジュール7で未定義になっているOS本体モジュール8
のコード・データのアドレスを解決する。これにより、
OS本体モジュール8からミニOSモジュール7へおよ
びミニOSモジュール7からOS本体モジュール8への
アクセスが可能となる。
【0024】次に、OSロード・初期化処理モジュール
11はOS本体モジュール8の初期化を実施する(ステ
ップST113)。ここでは、カーネルモジュール15
内の各機能モジュール(システムコール処理モジュール
17、プロセス管理モジュール18、共有メモリ管理モ
ジュール19、メッセージ管理モジュール20、シグナ
ル管理モジュール21、仮想記憶処理モジュール22)
の初期化や、ブートデバイス以外のデバイスドライバモ
ジュール16の初期化が行われる。ここで、ミニOSモ
ジュール7のミニカーネルモジュール9内の各機能モジ
ュール(スレッド管理モジュール12、I/O管理モジ
ュール13、スレッド間通信管理モジュール14)はカ
ーネルモジュール15内の各機能モジュールの基本機能
部として動作する。すなわち、プロセス管理モジュール
18でのスレッドに関する処理は、スレッド管理モジュ
ール12が実施し、メッセージ管理モジュール20でス
レッド間の同期を取る処理部分はスレッド間通信管理モ
ジュール14が実施する。
【0025】また、I/O管理モジュール13は、OS
本体モジュール8のデバイスドライバモジュール16に
も適用され、デバイスドライバモジュール16での各デ
バイスに対する割り込み処理の登録や、入出力のI/F
はI/O管理モジュール13によって管理・動作され
る。ステップST113によってOS本体モジュール8
の初期化が完了すると、OSロード・初期化処理モジュ
ール11はステップST113によって、初期起動プロ
セス(init)をファイルシステム5上からメモリ2
にロードし、プロセスとして起動する(ステップST1
14)。これによりOSの起動処理が完了する。
【0026】以上のように、この実施の形態1によれ
ば、OSをブート処理に必要なミニOSモジュール7と
それ以外のOS本体モジュール8に分け、ミニOSモジ
ュール7をブートブロックに配置し、OS本体モジュー
ル8をファイルシステムに配置し、F/Wコードモジュ
ール6はミニOSモジュール7をメモリ2にロードして
実行し、ミニOSモジュール7はOS本体モジュール8
をメモリ2にロードして初期化することにより、情報処
理装置の起動時間を短縮することができるなどの効果が
得られる。
【0027】実施の形態2.図5はこの発明の実施の形
態2による情報処理装置を示す構成図である。図におい
て、実施の形態1と同一符号については同一または相当
部分を示すので説明を省略する。実施の形態2では、実
施の形態1のOS本体モジュール8をOSの各機能モジ
ュールであるシステムコール処理モジュール17、プロ
セス管理モジュール18、共有メモリ管理モジュール1
9、メッセージ管理モジュール20、シグナル管理モジ
ュール21、仮想記憶処理モジュール22、デバイスド
ライバモジュール16に分割し、各々独立したファイル
としてファイルシステム5内に格納される。
【0028】図6はこの発明の実施の形態2による情報
処理装置におけるミニOSモジュールを示す構成図であ
る。この実施の形態2では、実施の形態1のOSロード
・初期化処理モジュール11をOSロード処理モジュー
ル30とOS初期化モジュール31に分割したものであ
る。
【0029】次に動作について説明する。図7はこの発
明の実施の形態2による情報処理装置のミニOSモジュ
ールの動作手順を示すフローチャートである。まず、ミ
ニOSモジュール7はF/Wコードモジュール6によっ
てメモリ2にロードされ、制御を移されると、ミニカー
ネルモジュール9の初期化を実施し(ステップST12
1)、続いてブートデバイスドライバモジュール10の
初期化を実施する(ステップST122)。その後、O
Sロード処理モジュール30用スレッドを生成し(ステ
ップST123)、そのOSロード処理モジュール30
用スレッドを起動する(ステップST124)。これに
よりOSロード処理モジュール30に制御が移る。
【0030】次に、OSロード処理モジュール30およ
びOS初期化モジュール31の動作手順を説明する。図
8はこの発明の実施の形態2による情報処理装置のOS
ロード処理モジュールおよびOS初期化モジュールの動
作手順を示すフローチャートである。まず、ミニOSモ
ジュール7よりスレッドとして制御を移されたOSロー
ド処理モジュール30は、ファイルシステム5内に格納
されているOS本体部のロード、すなわち、システムコ
ール処理モジュール17、プロセス管理モジュール1
8、共有メモリ管理モジュール19、メッセージ管理モ
ジュール20、シグナル管理モジュール21、仮想記憶
処理モジュール22、デバイスドライバモジュール16
のロードを行う(ステップST131)。次に、OSロ
ード処理モジュール30は、最初にステップST131
を実行する時点では、OS本体部の各機能モジュール1
6〜22までのどれか1つのロードを実施し、OS初期
化モジュール31用スレッドの生成を実施する(ステッ
プST132)。そして、ステップST133でそのO
S初期化モジュール31用スレッドを起動する(ステッ
プST133)。以降、OSロード処理モジュール30
とOS初期化モジュール31は並行実行される。
【0031】次に、OSロード処理モジュール30は、
OS本体部の全ロードが完了したか、すなわち各機能モ
ジュール16〜22が全てメモリ2にロードされたか否
かをチェックする(ステップST134)。全てロード
されていない場合は、ステップST131まで戻り、残
りのOS機能モジュールのロード処理を続ける。一方、
ステップST134のチェックの結果、全てのロードが
完了していれば、初期起動プロセス(init)をファ
イルシステム5上からメモリ2にロードし、プロセスと
して起動する(ステップST135)。
【0032】また、OS初期化モジュール31では、ス
レッドとして起動されると、ロードされたOS機能モジ
ュール(システムコール処理モジュール17、プロセス
管理モジュール18、共有メモリ管理モジュール19、
メッセージ管理モジュール20、シグナル管理モジュー
ル21、仮想記憶処理モジュール22、デバイスドライ
バモジュール16のうちのいずれか1つ)に対し、ミニ
OSモジュール7との結合を実施する(ステップST1
41)。そして、該OS機能モジュールの初期化処理を
実施し(ステップST142)、処理を終了する。OS
初期化モジュール31は、OSロード処理モジュール3
0より、各機能モジュールのロード毎にステップST1
32およびステップST133にてスレッドとして生成
・起動される。
【0033】以上のように、この実施の形態2によれ
ば、OS本体部をOS機能毎に分けてファイルシステム
5に配置し、OSロード処理とOS初期化処理を並行に
実行できるようにすることにより、各処理内のイベント
待ちで発生するCPUの空き時間に別の処理を行うこと
ができ、情報処理装置の起動時間を短縮することができ
るなどの効果が得られる。
【0034】実施の形態3.図9はこの発明の実施の形
態3による情報処理装置のミニOSモジュールを示す構
成図であり、図において、実施の形態1および実施の形
態2と同一符号については同一または相当部分を示すの
で説明を省略する。実施の形態3では、実施の形態2の
ミニOSモジュール7にOSロード処理モジュール30
とOS初期化モジュール31とのスレッドとしての同期
を取るスレッド同期手段40が追加されたものである。
【0035】次に動作について説明する。図10はこの
発明の実施の形態3による情報処理装置のミニOSモジ
ュールの動作手順を示すフローチャートである。まず、
ミニOSモジュール7は、F/Wコードモジュール6に
よってメモリ2にロードされ、制御を移されると、ミニ
カーネルモジュール9の初期化を実施し(ステップST
151)、続いてブートデバイスドライバモジュール1
0の初期化を実施する(ステップST152)。その
後、OSロード処理モジュール30用スレッドを生成し
(ステップST153)、そのOSロード処理モジュー
ル30用スレッドを起動する(ステップST154)。
そして、OS初期化モジュール31用スレッドを生成し
(ステップST155)、そのスレッドを起動する(ス
テップST156)。この時点で、OSロード処理モジ
ュール30とOS初期化モジュール31は並行実行され
る。
【0036】次に、OSロード処理モジュール30とO
S初期化モジュール31の動作手順を説明する。図11
はこの発明の実施の形態3による情報処理装置のOSロ
ード処理モジュールとOS初期化モジュールの動作手順
を示すフローチャートである。まず、ミニOSモジュー
ル7よりスレッドとして起動されたOSロード処理モジ
ュール30は、ステップST131でファイルシステム
5内に格納されているOS各機能モジュール16〜22
のロードを実施する(ステップST161)。最初にス
テップST161を実行する時点では、各機能モジュー
ル16〜22のいずれか1つのロードを実施する。次
に、OSロード処理モジュール30は、スレッド同期手
段40を介してOS初期化モジュール31へ、初期化処
理の実施を通知する(ステップST162)。そして、
OSロード処理モジュール30は、OS本体部の全ロー
ドが完了したか否か、すなわち各機能モジュール16〜
22が全てメモリにロードされたか否かをチェックする
(ステップST163)。
【0037】そして、OS本体部の全ロードが完了して
いない場合は、ステップST161まで戻り、残りのO
S機能モジュールのロード処理を続ける。一方、全ての
ロードが完了していれば、初期化起動プロセス(ini
t)をファイルシステム5内からメモリ2にロードし、
プロセスとして起動する(ステップST164)。
【0038】また、OS初期化モジュール31は、ミニ
OSモジュール7よりスレッドとして起動されると、ま
ず、スレッド同期手段40を介してOSロード処理モジ
ュール30からの要求待ちを行う(ステップST17
1)。そして、OSロード処理モジュール30のステッ
プST162の操作により、スレッド同期手段40を介
して初期化処理要求が通知されると、OS初期化モジュ
ール31は、ロードされたOS機能モジュールとミニO
Sモジュール7との結合を実施する(ステップST17
2)。そして、該OS機能モジュールの初期化処理を実
施した後、再度ステップST171に戻り、スレッド同
期手段40を介した要求待ちになる(ステップST17
3)。
【0039】以上のように、この実施の形態3によれ
ば、OSのロードを行うOSロード処理モジュール30
用スレッドとOS初期化モジュール31用スレッドをス
レッド同期手段40を介して同期を取るようにすること
により、OSの初期化を行うOS初期化モジュール31
用スレッドの生成・終了を行う処理を省くことができ、
情報処理装置の起動時間を短縮することができるなどの
効果が得られる。
【0040】実施の形態4.図12はこの発明の実施の
形態4による情報処理装置を示す構成図であり、図にお
いて、実施の形態1から実施の形態3までと同一符号に
ついては同一または相当部分を示すので説明を省略す
る。この実施の形態4では、実施の形態2のOS本体部
の各機能モジュール(システムコール処理モジュール1
7、プロセス管理モジュール18、共有メモリ管理モジ
ュール19、メッセージ管理モジュール20、シグナル
管理モジュール21、仮想記憶処理モジュール22、デ
バイスドライバモジュール16)の個々のファイルが圧
縮された形でファイルシステム5内に格納されるもので
ある。
【0041】図13はこの発明の実施の形態4による情
報処理装置のミニOSモジュールを示す構成図である。
実施の形態3では、実施の形態2のOSロード処理モジ
ュール30に、ロードされた各OS機能モジュール16
〜22を復元する処理を追加したOSロード・復元処理
モジュール50に置き換えられる。
【0042】次に動作について説明する。図14はこの
発明の実施の形態4による情報処理装置のOSロード・
復元処理モジュールの動作手順を示すフローチャートで
ある。まず、ミニOSモジュール7よりスレッドとして
制御を移されたOSロード・復元処理モジュール50
は、ファイルシステム5内に格納されているOS本体部
のロード、すなわち、システムコール処理モジュール1
7、プロセス管理モジュール18、共有メモリ管理モジ
ュール19、メッセージ管理モジュール20、シグナル
管理モジュール21、仮想記憶処理モジュール22、デ
バイスドライバモジュール16のロードを行う(ステッ
プST181)。最初に、OSロード・復元処理モジュ
ール50は、最初にステップST181を実行する時点
では、OS本体部の各機能モジュール16〜22までの
いずれか1つのロードを実施する。次に、OSロード・
復元処理モジュール50は、ロードされた機能モジュー
ルの復元処理を行う(ステップST182)。ファイル
システム5内に格納されている各OS機能モジュール1
6〜22は、ファイル圧縮された形式で格納されてお
り、このメモリ2にロードされた時点では、データが圧
縮されている。そのためステップST182では、この
圧縮されたデータを復元し、実際に動作できるコード/
データに変換する。
【0043】次に、OSロード・復元処理モジュール5
0は、OS初期化モジュール31用スレッドを生成し
(ステップST183)、該スレッドを起動する(ステ
ップST184)。これにて、OS初期化モジュール3
1が動作し、ロード・復元されたOS機能モジュールの
初期化が実施される。続いてOSロード・復元処理モジ
ュール50は、OS本体部の全ロードが完了したか否
か、すなわち各機能モジュール16〜22までが全てメ
モリ2にロードされたか否かをチェックする(ステップ
ST185)。そして、まだ全てロードされていない場
合は、ステップST181まで戻り、残りのOS機能モ
ジュールのロード処理を続ける。一方、全てのロードが
完了していれば、初期起動プロセス(init)をファ
イルシステム5内からメモリ2にロードし、プロセスと
して起動する(ステップST186)。
【0044】以上のように、この実施の形態4によれ
ば、OS本体部の各OS機能モジュール16〜22を圧
縮した形式で格納し、OSロード・復元処理モジュール
50にてロードされたOS機能モジュール16〜22を
復元することによって、I/O処理時間を削減すること
ができ、情報処理装置の起動時間を短縮することができ
るなどの効果が得られる。
【0045】実施の形態5.図15はこの発明の実施の
形態5による情報処理装置のミニOSモジュールを示す
構成図であり、図において、実施の形態1から実施の形
態4までと同一符号については同一または相当部分を示
すので説明を省略する。実施の形態5では、実施の形態
4のOSロード・復元処理モジュール50をOSロード
処理モジュール60とOS復元処理モジュール61に分
割する。
【0046】次に動作について説明する。図16はこの
発明の実施の形態5による情報処理装置のOSロード処
理モジュールとOS復元処理モジュールの動作手順を示
すフローチャートである。まず、ミニOSモジュール7
よりスレッドとして制御を移されたOSロード処理モジ
ュール60は、ステップST131でファイルシステム
5内に格納されている各OS機能モジュール16〜22
のロードを行う(ステップST191)。次に、OSロ
ード処理モジュール60は、最初にステップST191
を実行する時点では、OS本体部の各OS機能モジュー
ル16〜22のいずれか1つのロードを実施する。次
に、OSロード処理モジュール60は、OS復元処理モ
ジュール61用のスレッドを生成し(ステップST19
2)、該スレッドを起動する(ステップST193)。
これにて、OS復元処理モジュール61が動作する。以
降、OSロード処理モジュール60とOS復元処理モジ
ュール61とは、並行実行される。
【0047】次に、OSロード処理モジュール60は、
OS本体部の全ロードが完了したか否か、すなわち各O
S機能モジュール16〜22までが全てメモリにロード
されたか否かチェックする(ステップST194)。そ
して、まだ全てロードされていない場合は、ステップS
T191まで戻り、残りのOS機能モジュールのロード
処理を続ける。一方、全てのロードが完了していれば、
初期起動プロセス(init)をファイルシステム5内
からメモリ2にロードし、プロセスとして起動する(ス
テップST195)。また、OS復元処理モジュール6
1は、スレッドとして起動されると、ロードされた機能
モジュール16〜22の復元を行う(ステップST20
1)。そして、OS初期化モジュール31用のスレッド
を生成・起動し(ステップST202,ST203)、
OS初期化処理を実施させる。
【0048】以上のように、この実施の形態5によれ
ば、OSのロード処理と復元処理を並行に実行できるよ
うにすることにより、各処理内のイベント待ちで発生す
るCPUの空き時間に別の処理を行うことができ、情報
処理装置の起動時間を短縮することができるなどの効果
が得られる。
【0049】実施の形態6.図17はこの発明の実施の
形態6による情報処理装置を示す構成図であり、図にお
いて、実施の形態1から実施の形態5までと同一符号に
ついては同一または相当部分を示すので説明を省略す
る。実施の形態6では、実施の形態2のファイルシステ
ム5にOS上で動作するアプリケーションモジュール7
0があり、そのアプリケーションモジュール70には、
アプリケーションモジュール70がOS上で動作するた
めに最低限必要なOS機能モジュール(システムコール
処理モジュール17、プロセス管理モジュール18、共
有メモリ管理モジュール19、メッセージ管理モジュー
ル20、シグナル管理モジュール21、仮想記憶処理モ
ジュール22、デバイスドライバモジュール16)が記
述された機能定義ファイル71を持つ。
【0050】図18はこの発明の実施の形態6による情
報処理装置のアプリケーションモジュールを示す構成図
である。アプリケーションモジュール70には、機能定
義ファイル71を有し、この機能定義ファイル71に
は、OS上でアプリケーションモジュール70が動作す
るために最低限必要なOS機能モジュール16〜22が
記述されている。本実施の形態6では、例としてシステ
ムコール処理モジュール17、プロセス管理モジュール
18、メッセージ管理モジュール20が記述されてい
る。
【0051】図19はこの発明の実施の形態6による情
報処理装置のミニOSモジュールを示す構成図である。
このミニOSモジュール7ではミニカーネルモジュール
9、ブートデバイスドライバモジュール10、AP実行
・OSロード処理モジュール72、OS初期化モジュー
ル31とで構成される。
【0052】次に動作について説明する。図20はこの
発明の実施の形態6による情報処理装置のAP実行・O
Sロード処理モジュールの動作手順を示すフローチャー
トである。まず、ミニOSモジュール7よりスレッドと
して制御を移されたAP実行・OSロード処理モジュー
ル72は、アプリケーションモジュール70をメモリ2
にロードする(ステップST211)。この時、同時に
機能定義ファイル71もロードされる。次に、AP実行
・OSロード処理モジュール72は、メモリ2にロード
された機能定義ファイル71に記述されているOS機能
モジュール(本実施の形態では、システムコール処理モ
ジュール17、プロセス管理モジュール18、メッセー
ジ管理モジュール20)を把握する(ステップST21
2)。
【0053】そして、機能定義ファイル71に記述され
たOS機能モジュールの1つをメモリ2にロードし(ス
テップST213)、OS初期化モジュール31を生成
し(ステップST214)、そのスレッドを起動する
(ステップST215)。これによりOS初期化モジュ
ール31が起動され、ロードされたOS機能モジュール
の初期化処理が実施される。続いて、AP実行・OSロ
ード処理モジュール72は、機能定義ファイル71に記
述されているOS機能モジュールが全てロードされたか
否かをチェックする(ステップST216)。もし、全
てのロードが完了していなければ、ステップST213
に戻り機能定義ファイル71に記述されている残りのO
S機能モジュールのロードを実施する。一方、機能定義
ファイル71に記述されている全てのOS機能モジュー
ルのロードが完了していれば、AP実行・OSロード処
理モジュール72は、ステップST211でロードした
アプリケーションモジュール70をプロセスとして起動
する(ステップST217)。この時点で、アプリケー
ションモジュール70は実行可能となる。
【0054】次に、AP実行・OSロード処理モジュー
ル72はステップST213でロードしていない、残り
のOS機能モジュール(本実施の形態では、共有メモリ
管理モジュール19、シグナル管理モジュール21、仮
想記憶処理モジュール22、デバイスドライバモジュー
ル16)のロードを実施する(ステップST218)。
その後、OS初期化モジュール31用スレッドを生成し
(ステップST219)、スレッドを起動する(ステッ
プST220)。これにより、OS初期化モジュール3
1が動作し、ロードされたOS機能モジュールの初期化
が実施される。
【0055】続いて、AP実行・OSロード処理モジュ
ール72は、OS本体部の全ロードが完了したか否か、
すなわち各OS機能モジュール16〜22までが全て、
メモリ2にロードされたか否かをチェックする(ステッ
プST221)。全てがロードされていない場合は、ス
テップST218まで戻り、残りのOS機能モジュール
のロード処理を続ける。一方、全てのロードが完了して
いれば、初期起動プロセス(init)をファイルシス
テム5内からメモリ2にロードし、プロセスとして起動
する(ステップST222)。
【0056】以上のように、この実施の形態6によれ
ば、アプリケーションに必要なOS機能モジュールのロ
ードおよび初期化を先に行い、アプリケーションを実行
に移してから、残りのOS機能モジュールのロードおよ
び初期化をすることにより、アプリケーションが実行さ
れるまでの時間を短くすることができ、情報処理装置の
起動時間を短縮することができるなどの効果が得られ
る。
【0057】実施の形態7.図21はこの発明の実施の
形態7による情報処理装置を示す構成図、図22はこの
発明の実施の形態7による情報処理装置のミニOSモジ
ュールを示す構成図であり、図において、実施の形態1
から実施の形態6までと同一符号については同一または
相当部分を示すので説明を省略する。この実施の形態7
では、実施の形態1のミニOSモジュール7をROM1
内に配置する。ミニOSモジュール7の各構成モジュー
ル(ミニカーネルモジュール9、ブートデバイスドライ
バモジュール10、OSロード・初期化処理モジュール
11)はコード部分とデータ部分に分かれており、コー
ド部はROM1上で直接実行され、データ部は一度メモ
リ2にロードされてから処理される。
【0058】次に動作について説明する。図23はこの
発明の実施の形態7による情報処理装置のミニOSモジ
ュールおよびOSロード・初期化処理モジュールの動作
手順を示すフローチャートである。まず、F/Wコード
モジュール6は処理を終了すると、ミニOSモジュール
7をROM1上で直接実行する。ミニOSモジュール7
はROM1内にあるミニOSモジュール7のデータ部
(ミニカーネルモジュール9、ブートデバイスドライバ
モジュール10、OSロード・初期化処理モジュール1
1のデータ部)をメモリ2にロードする(ステップST
231)。次に、ミニカーネルモジュール9の初期化を
行う(ステップST232)。このとき、ミニカーネル
モジュール9内で定義されているデータは、全てメモリ
2上にコピーされたものを使用する。以降の処理も同様
にメモリ2上にコピーされたデータを使用する。次に、
ミニOSモジュール7はブートデバイスドライバモジュ
ール10の初期化を行い(ステップST233)、OS
ロード・初期化処理モジュール11用のスレッドを生成
し(ステップST234)、起動する(ステップST2
35)。これによりOSロード・初期化処理モジュール
11に制御が移る。
【0059】また、OSロード・初期化処理モジュール
11では、OS本体モジュール8のロードを行い(ステ
ップST241)、OS本体モジュール8とミニOSモ
ジュール7の結合を行う(ステップST242)。この
時、OS本体モジュール8はROM1上にあるミニOS
モジュール7のコード部およびメモリ2上にあるミニO
Sモジュール7のデータ部との結合を行う。次に、OS
ロード・初期化処理モジュール11はOS本体モジュー
ル8の初期化を行う(ステップST243)。そして、
初期起動プロセス(init)をプロセスとして起動
し、処理を終える(ステップST244)。
【0060】以上のように、この実施の形態7によれ
ば、ミニOSモジュール7をROM1に配置し、ミニO
Sモジュール7のデータ部のみメモリ2にコピーし、コ
ード部を直接実行することにより、コード部のメモリコ
ピー分の処理の削減ができ、情報処理装置の起動時間を
短縮することができるなどの効果が得られる。
【0061】実施の形態8.図24はこの発明の実施の
形態8による情報処理装置のミニOSモジュールを示す
構成図であり、図において、実施の形態1から実施の形
態7までと同一符号については同一または相当部分を示
すので説明を省略する。実施の形態8では、実施の形態
7にアドレス解決テーブル80が追加される。このアド
レス解決テーブル80には、ミニカーネルモジュール
9、ブートデバイスドライバモジュール10、OSロー
ド・初期化処理モジュール11内で定義されたシンボル
およびOS本体モジュール8で必要なシンボルの一覧が
記述されており、ミニOSモジュール7とOS本体モジ
ュール8は、このアドレス解決テーブル80を介して、
それぞれの関数・データをアクセスすることができる。
【0062】次に動作について説明する。図25はこの
発明の実施の形態8による情報処理装置のOSロード・
初期化処理モジュールの動作手順を示すフローチャート
である。まず、スレッドとして起動されたOSロード・
初期化モジュール11はOS本体モジュール8のロード
を実施し、OS本体モジュール8をファイルシステム5
からメモリ2にロードする(ステップST231)。そ
して、OS本体モジュール8とミニOSモジュール7の
結合を行う(ステップST232)。この時、結合はア
ドレス解決テーブル80を介して行われる。つまり、O
S本体モジュール8で、ミニOSモジュール7内のコー
ドまたはデータを必要とするときは、アドレス解決テー
ブル80の該当する領域を参照し、関数コールまたはデ
ータアクセスを行う。同様にミニOSモジュール7で、
OS本体モジュール8内のコードまたはデータを必要と
するときは、アドレス解決テーブル80の該当する領域
を参照し、関数コールまたはデータアクセスを行う。
【0063】次に、OSロード・初期化処理モジュール
11は、OS本体モジュール8の初期化を行う(ステッ
プST233)。そして、初期起動プロセス(ini
t)の起動を行い(ステップST234)、アプリケー
ションの起動もここで可能となる。この処理が終わると
OSロード・初期化処理モジュール11は、ミニOSモ
ジュール7のコード部分をROM1からメモリ2にロー
ドする(ステップST235)。そして、アドレス解決
テーブル80の内容を変更する(ステップST23
6)。これは、アドレス解決テーブル80でミニOSモ
ジュール7のコード部に関する領域の内容(この時点で
はROM1上のアドレスになっている)をメモリ2にロ
ードされたコード部分のアドレスに変更する。こうする
ことにより、次に、OS本体モジュール8がミニOSモ
ジュール7のコードへのアクセスを行ったとき、ROM
1上ではなく、メモリ2上のコードにアクセスするよう
になる。
【0064】以上のように、この実施の形態8によれ
ば、初期起動プロセス(init)起動後に、ROM1
上にあったコードの内容をメモリ2にコピーし、アドレ
ス解決テーブル80の内容を変更することで、以降のミ
ニOSモジュール7の実行をメモリ2上のコードで行う
ことができ、アプリケーションまでの起動時間を短縮し
ながら、OSコードのROM1上での実行による遅延も
解消することができるなどの効果が得られる。
【0065】実施の形態9.図26はこの発明の実施の
形態9による情報処理装置におけるOS本体モジュール
8のファイル構成を示す構成図であり、図において、実
施の形態1から実施の形態8までと同一符号については
同一または相当部分を示すので説明を省略する。実施の
形態9では、実施の形態1においてカーネルモジュール
15やデバイスドライバモジュール16が組み込まれた
OS本体モジュール8の任意のブロック単位(4Kバイ
トや16Kバイト毎など)において、ブロックの最終部
分にロード目印フラグ91を設ける。このロード目印フ
ラグ91には、OS本体モジュール8の各機能モジュー
ル(システムコール処理モジュール17、プロセス管理
モジュール18、共有メモリ管理モジュール19、メッ
セージ管理モジュール20、シグナル管理モジュール2
1、仮想記憶処理モジュール22、デバイスドライバモ
ジュール16)に対応したビットが存在する。このビッ
トがON(1)の時、そのブロックのロードが完了する
と、そのビットに対応した機能モジュールのロードが完
了したことを表す。それ以外の場合は、OFF(0)に
なっている。
【0066】図27はこの発明の実施の形態9による情
報処理装置におけるミニOSモジュールを示す構成図で
ある。実施の形態9では、実施の形態2と同様にミニカ
ーネルモジュール9、ブートデバイスドライバモジュー
ル10、OSロード処理モジュール30、OS初期化モ
ジュール31でミニOSモジュール7は構成される。
【0067】次に動作について説明する。図28はこの
発明の実施の形態9による情報処理装置におけるミニO
Sモジュールの動作手順を示すフローチャートである。
まず、ミニOSモジュール7は、F/Wコードモジュー
ル6から制御を移されると、ミニカーネルモジュール9
の初期化を行う(ステップST241)。そして、ブー
トデバイスドライバモジュール10の初期化を行う(ス
テップST242)。次に、OSロード処理モジュール
30用スレッドを生成し(ステップST243)、その
スレッドを起動する(ステップST244)。これによ
りOSロード処理モジュール30が動作する。
【0068】次に、OSロード処理モジュール30の動
作を説明する。図29はこの発明の実施の形態9による
情報処理装置のOSロード処理モジュールの動作手順を
示すフローチャートである。まず、OSロード処理モジ
ュール30は、まずブートデバイス3のファイルシステ
ム5内にあるOS本体モジュール8を1ブロック分メモ
リ2にロードする(ステップST251)。そして、ロ
ード目印フラグ91を参照し特定のビットが1になって
いるか否かを調べる(ステップST252)。もし、何
らかのビットが立っていれば、OS初期化モジュール3
1用のスレッドを生成し(ステップST253)、その
スレッドを起動する。これによりOS初期化モジュール
31が起動され(ステップST254)、ロードされた
機能モジュールの初期化が実施される。この処理のあ
と、OSロード処理モジュール30は、ステップST2
52でロード目印フラグ91に何もビットが立っていな
い場合の処理に戻る。
【0069】次に、OSロード処理モジュール30は、
OS本体モジュール8の全てのブロックをロードしたか
否かをチェックする(ステップST255)。もし、全
てのロードが完了していない場合は、ステップST25
1に戻り、次のブロックをメモリ2にロードする。一
方、全てロードしていれば、初期起動プロセス(ini
t)を起動し処理を終了する(ステップST256)。
【0070】次に、OS初期化モジュール31の動作を
説明する。図30はこの発明の実施の形態9による情報
処理装置のOS初期化モジュールの動作手順を示すフロ
ーチャートである。まず、OS初期化モジュール31が
スレッドとして起動されると、ロードされたOS本体モ
ジュール8の1ブロックのロード目印フラグ91を参照
し、どのビットが立っているかを検出する。そして、そ
のビットが示す機能モジュール(システムコール処理モ
ジュール17、プロセス管理モジュール18、共有メモ
リ管理モジュール19、メッセージ管理モジュール2
0、シグナル管理モジュール21、仮想記憶処理モジュ
ール22、デバイスドライバモジュール16)を選択す
る(ステップST261)。次に、対応する機能モジュ
ールとミニOSモジュール7の結合を行い(ステップS
T262)、その機能モジュールの初期化を実施する
(ステップST263)。
【0071】以上のように、この実施の形態9によれ
ば、OS本体モジュール8の各ブロック毎にロード目印
フラグ91を設け、ある機能モジュールのロードが完了
したときに、その機能モジュールに対応したビットを1
にするようにロード目印フラグ91を設定することによ
り、OSロード処理とOS初期化処理を並行実行するこ
とができ、情報処理装置の起動時間を短縮することがで
きるなどの効果が得られる。
【0072】実施の形態10.図31はこの発明の実施
の形態10による情報処理装置のOS本体モジュールを
示す構成図であり、図において、実施の形態1から実施
の形態9までと同一符号については同一または相当部分
を示すので説明を省略する。実施の形態10では、実施
の形態9におけるロード目印フラグ91に、ある機能モ
ジュールのロードが完了した時、その機能モジュールに
対する結合処理関数のアドレスと、初期化処理関数のア
ドレスが格納される。機能モジュールのロードが完了し
ていないブロックのロード目印フラグ91は0になって
いる。
【0073】次に動作について説明する。図32はこの
発明の実施の形態10による情報処理装置のOSロード
処理モジュールの動作手順を示すフローチャートであ
る。まず、OSロード処理モジュール30はスレッドと
して起動されると、OS本体モジュール8の1ブロック
をメモリ2にロードする(ステップST271)。次
に、ロード目印フラグ91の内容が0であるか否かをチ
ェックする(ステップST272)。そして、ロード目
印フラグ91が0でない場合、OS初期化モジュール3
1用のスレッドを生成し(ステップST273)、その
スレッドを起動する。これによりOS初期化モジュール
31が起動され(ステップST274)、ステップST
275へ進む。一方、ステップST272のチェックで
ロード目印フラグ91が0であった場合、OS本体モジ
ュール8のロードが完了したか否かをチェックする(ス
テップST275)。そして、ロードが未完了の場合、
ステップST271に戻りOS本体モジュール8の次の
1ブロックをメモリ2にロードする。一方、OS本体モ
ジュール8のロードが完了していれば、初期起動プロセ
ス(init)を起動し(ステップST276)、処理
を終了する。
【0074】次に、OS初期化モジュール31の動作を
説明する。図33はこの発明の実施の形態10による情
報処理装置のOS初期化モジュールの動作手順を示すフ
ローチャートである。まず、OS初期化モジュール31
はOSロード処理モジュール30によってスレッドとし
て起動されると、ロード目印フラグ91にある結合処理
関数を呼び出す(ステップST281)。これにより、
OSロード処理モジュール30によってロードされた機
能モジュールのミニOSモジュール7との結合が実施さ
れる。次に、OS初期化モジュール31は、ロード目印
フラグ91内にある初期化処理関数を呼び出す(ステッ
プST282)。これにより機能モジュールの初期化が
実施される。
【0075】以上のように、この実施の形態10によれ
ば、ロード目印フラグ91にロードされた機能モジュー
ルとミニOSモジュール7の結合処理を行う関数のアド
レスと、機能モジュールの初期化を行う関数のアドレス
を組み込んでおくことにより、どの機能モジュールかを
判定する手間が省け、情報処理装置の起動時間を短縮す
ることができるなどの効果が得られる。
【0076】実施の形態11.図34はこの発明の実施
の形態11による情報処理装置においてプログラムのソ
ースファイルからOSプログラムファイルができる過程
を示す構成図であり、図において、実施の形態1から実
施の形態10までと同一符号については同一または相当
部分を示すので説明を省略する。ミニOSモジュール7
およびOS本体モジュール8を構成するためのソースは
C言語で作成したCファイル100およびアセンブラ言
語で作成したASMファイル101とで構成される。こ
れらソースファイルからコンパイラ102によって機械
語に変換されたオブジェクトファイル103ができ、リ
ンカ104によって各オブジェクトファイルの関数およ
びデータが全て静的に結合された1つのOSプログラム
ファイル105が作成される。
【0077】次に、OSプログラムファイル105の内
容について説明する。図35はこの発明の実施の形態1
1による情報処理装置においてOSプログラムファイル
を示す構成図である。リンカ104によって生成された
OSプログラムファイル105は、プログラムのコード
領域におけるメモリ2上の先頭アドレス、コード領域の
サイズ、OSプログラムファイル105上の先頭アドレ
ス、プログラムのデータ領域におけるメモリ2上の先頭
アドレス、データ領域のサイズ、OSプログラムファイ
ル105上の先頭アドレスおよびコード部・データ部に
含まれているシンボルに対するその値を持ったシンボル
情報領域111の先頭アドレスなどが格納されたヘッダ
106を先頭部分に持っている。
【0078】続いてプログラムのミニOSモジュールコ
ード部107およびOS本体モジュールコード部108
を持ったコード領域があり、その後にミニOSモジュー
ルデータ部109およびOS本体モジュールデータ部1
10を持ったデータ領域がある。最後に前述したシンボ
ル情報領域111が格納されている。OSブート時はヘ
ッダ106からプログラムのコード領域およびデータ領
域のOSプログラムファイル105上の位置を探し出
し、ヘッダ106より、メモリ2のどこにロードするか
およびそのサイズを判断する。
【0079】次に、OSプログラムファイル105をミ
ニOSモジュール7およびOS本体モジュール8に分割
する方法について説明する。図36はこの発明の実施の
形態11による情報処理装置においてOSプログラムフ
ァイルをミニOSモジュールおよびOS本体モジュール
に分割する過程を示す構成図である。リンカ104によ
って作成されたOSプログラムファイル105は、OS
分割手段112によってミニOSモジュール7およびO
S本体モジュール8に分割される。OS分割手段112
によって、OSプログラムファイル105よりミニOS
モジュールコード部107とミニOSモジュールデータ
部109が抽出されミニOSモジュール7に書き込まれ
る。
【0080】そして、ヘッダ113には、ミニOSモジ
ュールコード部107およびミニOSモジュールデータ
部109に関するデータが格納される。すなわちコード
部のアドレスはミニOSモジュールコード部107の先
頭アドレスに設定され、コード部のサイズはミニOSモ
ジュールコード部107のサイズに設定され、コード部
のファイル上のアドレスはミニOSモジュール7上のミ
ニOSモジュールコード部107の先頭アドレスに設定
される。ミニOSモジュールデータ部109に関するヘ
ッダ内の情報も同様に書き換えられる。シンボル情報領
域111に関してはブート時に必要としないので、ミニ
OSモジュール7に結合する必要はない。OS分割手段
112は同様にしてOS本体モジュール8の作成も行
う。
【0081】次に動作について説明する。図37はこの
発明の実施の形態11による情報処理装置のOS分割手
段の動作手順を示すフローチャートである。まず、OS
分割手段112が実行されると、OSプログラムファイ
ル105からミニOSモジュールコード部107を抽出
し(ステップST291)、ミニOSモジュール7へ抽
出したコードを書き込む。ミニOSモジュールコード部
107の位置はヘッダ106にあるコード領域の先頭ア
ドレスから判明する。ミニOSモジュールコード部10
7のサイズは、シンボル情報領域111からOS本体モ
ジュールコード部108の先頭にある関数のシンボルを
割り出し、その値(メモリ上のアドレスを示している)
からヘッダ106に格納されているコード領域のアドレ
ス(=ミニOSモジュールコード部107の先頭アドレ
ス)を引くことにより求めることができる。
【0082】次に、OS分割手段112は、ミニOSモ
ジュールデータ部109を抽出し(ステップST29
2)、ミニOSモジュール7へ抽出したデータを書き込
む。ミニOSモジュールデータ部109の位置はヘッダ
106にあるデータ領域の先頭アドレスから判明する。
ミニOSモジュールデータ部109のサイズは、シンボ
ル情報領域111からOS本体モジュールデータ部11
0の先頭にある変数のシンボルを割り出し、その値から
ヘッダ106に格納されているデータ領域のアドレスを
引くことにより求まる。次に、ミニOSモジュール7の
ヘッダ113を作成する(ステップST293)。ヘッ
ダ113内のコード部のアドレス格納領域には、OSプ
ログラムファイル105のヘッダ106にあるコード部
のアドレスがそのまま格納される。ヘッダ113内のコ
ード部のサイズ領域には、ステップST291で求めた
ミニOSモジュールコード部107のサイズが格納され
る。
【0083】ヘッダ113内のコード部のファイル上の
アドレス領域には、ミニOSモジュール7内のミニOS
モジュールコード部107の先頭アドレスが格納され
る。ヘッダ113内のデータ部のアドレス領域には、O
Sプログラムファイル105のヘッダ106にあるデー
タ部のアドレスがそのまま格納される。ヘッダ113内
のデータ部のサイズはステップST292にて求めたミ
ニOSモジュールデータ部109のサイズが格納され
る。ヘッダ113内のデータ部のファイル上のアドレス
領域には、ミニOSモジュール7内のミニOSモジュー
ルデータ部109の先頭アドレスが格納される。ヘッダ
113内のデータ部のシンボル情報領域111のアドレ
ス領域には、特に値は設定されない。
【0084】以上のデータがヘッダ113に設定され、
ミニOSモジュール7が完成する(ステップST29
3)。次に、OS分割手段112はOS本体モジュール
コード部108をOSプログラムファイル105より抽
出し(ステップST294)、OS本体モジュール8へ
書き込む。OS本体モジュールコード部108の位置
は、ヘッダ106にあるコード部のファイル上のアドレ
ス(=ミニOSモジュールコード部107のファイル上
のアドレス)にステップST291で求めたミニOSモ
ジュールコード部107のサイズを加算することにより
求まる。OS本体モジュールコード部108のサイズ
は、ヘッダ106のコード部のサイズからステップST
291で求めたミニOSモジュールコード部107のサ
イズを引くことにより求まる。
【0085】次にOS分割手段112は、OS本体モジ
ュールデータ部110をOSプログラムファイル105
から抽出し(ステップST295)、OS本体モジュー
ル8へ書き込む。OS本体モジュールデータ部110の
位置は、ヘッダ106にあるデータ部のファイル上のア
ドレス(=ミニOSモジュールデータ部109のファイ
ル上のアドレス)にステップST292で求めたミニO
Sモジュールデータ部109のサイズを加算することに
より求まる。OS本体モジュールデータ部110のサイ
ズは、ヘッダ106のデータ部のサイズからステップS
T292で求めたミニOSモジュールデータ部109の
サイズを引くことにより求まる。
【0086】次にOS分割手段112は、OS本体モジ
ュール8のヘッダ114を作成する(ステップST29
6)。ヘッダ114内のコード部のアドレス格納領域に
は、ステップST291にて割り出したOS本体モジュ
ールコード部108の先頭関数のアドレスが格納され
る。ヘッダ114内のコード部のサイズ領域にはステッ
プST294で求めたOS本体モジュールコード部10
8のサイズが格納される。ヘッダ114内のコード部の
ファイル上のアドレス領域には、OS本体モジュール8
内のOS本体モジュールコード部108の先頭アドレス
が格納される。ヘッダ114内のデータ部のアドレス領
域には、ステップST295にて割り出したOS本体モ
ジュールデータ部110の先頭にある変数のアドレスが
格納される。
【0087】ヘッダ114内のデータ部のサイズ領域に
はステップST295で求めたOS本体モジュールデー
タ部110のサイズが格納される。ヘッダ114内のデ
ータ部のファイル上のアドレス領域には、OS本体モジ
ュール8内のOS本体モジュールデータ部110の先頭
アドレスが格納される。ヘッダ114内のデータ部のシ
ンボル情報領域111のアドレス領域には特に値が設定
されない。以上のデータがヘッダ114に設定され、ス
テップST296にてOS本体モジュール8が完成され
る。この後、ミニOSモジュール7はブートブロック4
に、OS本体モジュール8はファイルシステム5にそれ
ぞれ格納される。
【0088】次に、図38はこの発明の実施の形態11
による情報処理装置においてミニOSモジュールがメモ
リにロードされたときの状態を示す構成図である。ミニ
OSモジュール7がF/Wコードモジュール6によって
ブートブロック4からメモリ2にロードされたときの状
態の図である。F/Wコードモジュール6は、ミニOS
モジュール7のヘッダ113からミニOSモジュールコ
ード部107のファイル上のアドレスおよびサイズを読
み取り、ミニOSモジュールコード部107を読み出
し、ヘッダ113にあるミニOSモジュールコード部1
07のメモリ上の先頭アドレス情報に従いメモリ2にロ
ードする。同様にミニOSモジュールデータ部109も
メモリ2にロードされ、ミニOSモジュールコード部1
07に実行が移る。
【0089】この時、ミニOSモジュールコード部10
7とミニOSモジュールデータ部109の間およびミニ
OSモジュールデータ部109の最後から数100Kバ
イトはOS本体モジュール8のロード領域として空けら
れているが、ミニOSモジュール7はそれを意識する必
要はない。なぜならば、ミニOSモジュール7はOSプ
ログラムファイル105から切り出されたので、ミニO
Sモジュール7そのものは、OS本体モジュール8を含
んだOSプログラムファイル105の延長上で動作して
いるので特に空けられた領域に対し特別な処理をする必
要はない。
【0090】次に、ミニOSモジュール7およびOSロ
ード・初期化処理モジュール11の動作を説明する。図
39はこの発明の実施の形態11による情報処理装置に
おいてミニOSモジュールおよびOSロード・初期化処
理モジュールの動作手順を示すフローチャートである。
ミニOSモジュール7に制御が移ると、ミニカーネルモ
ジュール9を初期化し(ステップST301)、ブート
デバイスドライバモジュール10の初期化を実施する
(ステップST302)。そして、ミニOSモジュール
7はOSロード・初期化処理モジュール11をスレッド
として生成・起動する(ステップST303,30
4)。
【0091】OSロード・初期化処理モジュール11で
は、OS本体モジュール8のロードを行う(ステップS
T311)。ここでは、OS本体モジュール8のヘッダ
114からOS本体モジュールコード部108のファイ
ル上のアドレスとサイズを読み取り、OS本体モジュー
ルコード部108を読み出し、ヘッダ114にあるOS
本体モジュールコード部108のメモリ上の先頭アドレ
ス情報に従いメモリ2にロードする。同様にOS本体モ
ジュールデータ部110もメモリ2にロードされる。O
S本体モジュールコード部108、OS本体モジュール
データ部110はOSプログラムファイル105から切
り出されているので、ロードされたときミニOSモジュ
ールコード部107、ミニOSモジュールデータ部10
9と重なることはない。また、ミニOSモジュール7お
よびOS本体モジュール8は静的に結合されたOSプロ
グラムファイル105から切り出されているので、未定
義シンボル等は存在しないため、ミニOSモジュール7
とOS本体モジュール8の結合処理は必要としない。
【0092】図40はこの発明の実施の形態11による
情報処理装置においてミニOSモジュールがメモリにロ
ードされたときの状態を示す構成図である。次にOSロ
ード・初期化処理モジュール11は、ステップST31
2にてOS本体モジュール8の初期化を行う。そして、
ステップST313にて初期起動プロセス(init)
を起動し、処理を終える。
【0093】以上のように、この実施の形態11によれ
ば、ミニOSモジュール7とOS本体モジュール8を一
度OSプログラムファイル105として静的に結合して
からOS分割手段112にてミニOSモジュール7とO
S本体モジュール8に分割し、ブートブロック4および
ファイルシステム5に配置するので、OS本体モジュー
ル8のロード時に発生するミニOSモジュール7との結
合処理が必要なくなり、情報処理装置の起動時間を短縮
することができるなどの効果が得られる。
【0094】
【発明の効果】以上のように、この発明によれば、ブー
トデバイスにおいてブートストラップ処理に必要な機能
を備えるミニOSモジュールと、ブートストラップ処理
に関係しない機能を備えるOS本体モジュールとに分割
し、ブートストラップコードの代わりにミニOSモジュ
ールを初期起動し、このミニOSモジュールがOS本体
モジュールをブートデバイスからロードした後、このO
S本体モジュールとミニOSモジュールとを結合するよ
うに構成したので、情報処理装置の起動時間を短縮する
ことができる効果がある。
【0095】この発明によれば、情報処理装置の起動に
対しブートストラップコードを介してOS本体をロード
するのではなく、OS本体をブートストラップ機能のみ
を果たすようなミニOSモジュールと残りの機能のOS
本体部に分け、ブートストラップコードの代わりにミニ
OSモジュールを起動し、ミニOSモジュールがOS本
体部をブートデバイスからロードし、ミニOSモジュー
ルとの結合・OS本体部の初期化を行うように構成した
ので、情報処理装置の起動時間を短縮することができる
効果がある。
【0096】この発明によれば、OS本体部を各機能毎
に別ファイルとしてファイルシステムに配置し、OSの
ロード処理と初期化処理を並行に実行できるようにし、
CPUの空き時間に別の処理を行うように構成したの
で、情報処理装置の起動時間を短縮することができる効
果がある。
【0097】この発明によれば、OSの初期化処理の起
動をスレッド生成ではなく、スレッド同期手段を使い並
行に実行できるように構成したので、情報処理装置の起
動時間を短縮することができる効果がある。
【0098】この発明によれば、機能毎に分かれたファ
イルを圧縮したファイルシステムに配置し、OSロード
処理に復元処理を加え、圧縮されたファイルを復元して
から初期化するようにし、I/Oに掛かる時間が短くな
るように構成したので、情報処理装置の起動時間を短縮
することができる効果がある。
【0099】この発明によれば、ロード処理と復元処理
を並行実行し、CPUの空き時間に別の処理を行うよう
に構成したので、情報処理装置の起動時間を短縮するこ
とができる効果がある。
【0100】この発明によれば、アプリケーションにそ
のアプリケーションが必要なOS機能モジュールを記述
した機能定義ファイルを持たせ、ミニOSモジュールは
OS本体部をロードする前にアプリケーションをロード
して機能定義ファイルを参照し、この中に記述されてい
るOS機能モジュールを先にロード・初期化し、アプリ
ケーションを起動した後に、残りのOS機能モジュール
のロード・初期化を行うように構成したので、情報処理
装置の起動時間を短縮することができる効果がある。
【0101】この発明によれば、ミニOSモジュールを
ROM上に配置し、F/Wが直接ROM上のミニOSモ
ジュールを実行するように構成したので、情報処理装置
の起動時間を短縮することができる効果がある。
【0102】この発明によれば、ミニOSモジュールに
ミニOSモジュールとOS本体部のコード/データを間
接的に結合するアドレス解決テーブルを持たせ、OS起
動後にROM上にあるミニOSモジュールをメモリにロ
ードし、アドレス解決テーブルにあるミニOSモジュー
ルのコード部分のアドレスデータをメモリ上にあるコー
ドのアドレスに変更するように構成したので、情報処理
装置の起動時間を短縮することができる効果がある。
【0103】この発明によれば、OS本体モジュールの
ブロック毎にどの機能モジュールがロード完了になった
かを示すロード目印フラグを設け、OSロード処理とO
S初期化処理を並行実行するように構成したので、情報
処理装置の起動時間を短縮することができる効果があ
る。
【0104】この発明によれば、ロード目印フラグを、
ロード完了になった機能モジュールの結合処理関数アド
レスと初期化処理関数アドレスを格納し、初期化処理で
は、各関数を呼び出すだけで済むように構成したので、
情報処理装置の起動時間を短縮することができる効果が
ある。
【0105】この発明によれば、ミニOSモジュールと
OS本体モジュールを一度OSプログラムファイルとし
て静的に結合してからOS分割手段にてミニOSモジュ
ールとOS本体モジュールに分割して、ブートブロック
およびファイルシステムに配置するように構成したの
で、OS本体モジュールのロード時に発生するミニOS
モジュールとの結合処理を行う必要がなく、情報処理装
置の起動時間を短縮することができる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による情報処理装置
を示す構成図である。
【図2】 この発明の実施の形態1による情報処理装置
においてブートブロック領域に格納されるミニOSモジ
ュールを示す構成図である。
【図3】 この発明の実施の形態1による情報処理装置
においてOS本体モジュールを示す構成図である。
【図4】 この発明の実施の形態1による情報処理装置
のミニOSモジュールの動作手順を示すフローチャート
である。
【図5】 この発明の実施の形態2による情報処理装置
を示す構成図である。
【図6】 この発明の実施の形態2による情報処理装置
におけるミニOSモジュールを示す構成図である。
【図7】 この発明の実施の形態2による情報処理装置
のミニOSモジュールの動作手順を示すフローチャート
である。
【図8】 この発明の実施の形態2による情報処理装置
のOSロード処理モジュールおよびOS初期化モジュー
ルの動作手順を示すフローチャートである。
【図9】 この発明の実施の形態3による情報処理装置
のミニOSモジュールを示す構成図である。
【図10】 この発明の実施の形態3による情報処理装
置のミニOSモジュールの動作手順を示すフローチャー
トである。
【図11】 この発明の実施の形態3による情報処理装
置のOSロード処理モジュールとOS初期化モジュール
の動作手順を示すフローチャートである。
【図12】 この発明の実施の形態4による情報処理装
置を示す構成図である。
【図13】 この発明の実施の形態4による情報処理装
置のミニOSモジュールを示す構成図である。
【図14】 この発明の実施の形態4による情報処理装
置のOSロード・復元処理モジュールの動作手順を示す
フローチャートである。
【図15】 この発明の実施の形態5による情報処理装
置のミニOSモジュールを示す構成図である。
【図16】 この発明の実施の形態5による情報処理装
置のOSロード処理モジュールとOS復元処理モジュー
ルの動作手順を示すフローチャートである。
【図17】 この発明の実施の形態6による情報処理装
置を示す構成図である。
【図18】 この発明の実施の形態6による情報処理装
置のアプリケーションモジュールを示す構成図である。
【図19】 この発明の実施の形態6による情報処理装
置のミニOSモジュールを示す構成図である。
【図20】 この発明の実施の形態6による情報処理装
置のAP実行・OSロード処理モジュールの動作手順を
示すフローチャートである。
【図21】 この発明の実施の形態7による情報処理装
置を示す構成図である。
【図22】 この発明の実施の形態7による情報処理装
置のミニOSモジュールを示す構成図である。
【図23】 この発明の実施の形態7による情報処理装
置のミニOSモジュールおよびOSロード・初期化処理
モジュールの動作手順を示すフローチャートである。
【図24】 この発明の実施の形態8による情報処理装
置のミニOSモジュールを示す構成図である。
【図25】 この発明の実施の形態8による情報処理装
置のOSロード・初期化処理モジュールの動作手順を示
すフローチャートである。
【図26】 この発明の実施の形態9による情報処理装
置におけるOS本体モジュールのファイル構成を示す構
成図である。
【図27】 この発明の実施の形態9による情報処理装
置におけるミニOSモジュールを示す構成図である。
【図28】 この発明の実施の形態9による情報処理装
置におけるミニOSモジュールの動作手順を示すフロー
チャートである。
【図29】 この発明の実施の形態9による情報処理装
置のOSロード処理モジュールの動作手順を示すフロー
チャートである。
【図30】 この発明の実施の形態9による情報処理装
置のOS初期化モジュールの動作手順を示すフローチャ
ートである。
【図31】 この発明の実施の形態10による情報処理
装置のOS本体モジュールを示す構成図である。
【図32】 この発明の実施の形態10による情報処理
装置のOSロード処理モジュールの動作手順を示すフロ
ーチャートである。
【図33】 この発明の実施の形態10による情報処理
装置のOS初期化モジュールの動作手順を示すフローチ
ャートである。
【図34】 この発明の実施の形態11による情報処理
装置においてプログラムのソースファイルからOSプロ
グラムファイルができる過程を示す構成図である。
【図35】 この発明の実施の形態11による情報処理
装置においてOSプログラムファイルを示す構成図であ
る。
【図36】 この発明の実施の形態11による情報処理
装置においてOSプログラムファイルをミニOSモジュ
ールおよびOS本体モジュールに分割する過程を示す構
成図である。
【図37】 この発明の実施の形態11による情報処理
装置のOS分割手段の動作手順を示すフローチャートで
ある。
【図38】 この発明の実施の形態11による情報処理
装置においてミニOSモジュールがメモリにロードされ
たときの状態を示す構成図である。
【図39】 この発明の実施の形態11による情報処理
装置においてミニOSモジュールおよびOSロード・初
期化処理モジュールの動作手順を示すフローチャートで
ある。
【図40】 この発明の実施の形態11による情報処理
装置においてミニOSモジュールがメモリにロードされ
たときの状態を示す構成図である。
【符号の説明】
1 ROM、2 メモリ、3 ブートデバイス、4 ブ
ートブロック、5 ファイルシステム、6 F/Wコー
ドモジュール、7 ミニOSモジュール、8OS本体モ
ジュール、9 ミニカーネルモジュール、10 ブート
デバイスドライバモジュール、11 OSロード・初期
化処理モジュール、15 カーネルモジュール、16
デバイスドライバモジュール、30,60 OSロード
処理モジュール、31 OS初期化モジュール、40
スレッド同期手段、50 OSロード・復元処理モジュ
ール、61 OS復元処理モジュール、70 アプリケ
ーションモジュール、71 機能定義ファイル、72
AP実行・OSロード処理モジュール、80 アドレス
解決テーブル、91 ロード目印フラグ、103オブジ
ェクトファイル、104 リンカ、112 OS分割手
段。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 OSファイルを有しているファイルシス
    テムとブートブロックとを有するブートデバイスを備え
    た情報処理装置において、 上記ブートデバイスは、ブートストラップ処理に必要な
    機能を備えるミニOSモジュールと、上記ブートストラ
    ップ処理に関係しない機能を備えるOS本体モジュール
    とに分割され、 ブートストラップコードの代わりに上記ミニOSモジュ
    ールを初期起動し、このミニOSモジュールが上記OS
    本体モジュールを上記ブートデバイスからロードした
    後、このOS本体モジュールと上記ミニOSモジュール
    とを結合することを特徴とする情報処理装置。
  2. 【請求項2】 OSファイルを有しているファイルシス
    テムとブートブロックとを有するブートデバイスを、ブ
    ートストラップ処理に必要な機能を備えるミニOSモジ
    ュールと、上記ブートストラップ処理に関係しない機能
    を備えるOS本体モジュールとに分割し、 上記ミニOSモジュールを上記ブートブロックに配置す
    るとともに、上記OS本体モジュールを上記ファイルシ
    ステムに配置し、 ROM内のF/Wコードモジュールが、上記ブートブロ
    ックにある上記ミニOSモジュールを上記メモリにロー
    ドし、 上記ミニOSモジュールが、上記ミニカーネルモジュー
    ルの初期化および上記ブートデバイスドライバモジュー
    ルの初期化を行った後、OSロード・初期化処理モジュ
    ールをスレッドとして生成・起動し、 上記OSロード・初期化処理モジュールが、上記ファイ
    ルシステム内にある上記OS本体モジュールをロードし
    初期化する情報処理装置の高速初期起動方法。
  3. 【請求項3】 OSロード・初期化処理モジュールをO
    Sロード処理モジュールとOS初期化モジュールに分割
    し、OS本体モジュールは個々のカーネルモジュールと
    デバイスドライバモジュールに分割して、独立のファイ
    ルとしてファイルシステムに配置し、 ミニOSモジュールがミニカーネルモジュールの初期化
    およびブートデバイスドライバモジュールの初期化を行
    った後、OSロード処理モジュールをスレッドとして生
    成・起動し、 上記OSロード処理モジュールがファイルシステム内に
    ある各機能モジュールをロードする毎に上記OS初期化
    モジュールをスレッドとして生成・起動し、 上記OS初期化モジュールがOSの初期化を実施するこ
    とを特徴する請求項2記載の情報処理装置の高速初期起
    動方法。
  4. 【請求項4】 ミニOSモジュールにミニカーネルモジ
    ュールのスレッド間通信管理モジュールを利用したスレ
    ッド同期手段を設け、 上記ミニOSモジュールは、上記ミニカーネルモジュー
    ルの初期化とブートデバイスドライバモジュールの初期
    化を実施した後、OSロード処理モジュールとOS初期
    化モジュールとそれぞれスレッドとして起動し、 上記OS初期化モジュールは、上記スレッド同期手段を
    使用して要求待ちになり、 上記OSロード処理モジュールは、OS本体部の各機能
    モジュールをロードする毎に上記OS初期化モジュール
    に上記スレッド同期手段を使用して要求通知を行い、 上記OS初期化モジュールは、要求通知がある毎に起動
    し、所定の上記機能モジュールの初期化を行い、再度要
    求待ちになることを特徴する請求項3記載の情報処理装
    置の高速初期起動方法。
  5. 【請求項5】 ファイルシステム内にあるOS本体部の
    各機能モジュールを圧縮した形式で格納し、ミニカーネ
    ルモジュール、ブートデバイスドライバモジュール、O
    Sロード・復元処理モジュールおよびOS初期化モジュ
    ールを備えたミニOSモジュールは、上記ミニカーネル
    モジュールの初期化とブートデバイスドライバモジュー
    ルの初期化を実施した後、上記OSロード・復元処理モ
    ジュールをスレッドとして起動し、 上記OSロード・復元処理モジュールは、OSのロード
    を実施した後、圧縮された上記機能モジュールの復元処
    理を行い、上記復元処理が終了した後、上記OS初期化
    モジュールをスレッドとして生成・起動し、 上記OS初期化モジュールは復元された上記機能モジュ
    ールを初期化することを特徴する請求項3記載の情報処
    理装置の高速初期起動方法。
  6. 【請求項6】 OSロード・復元処理モジュールをOS
    ロード処理モジュールとOS復元処理モジュールに分
    け、 ミニOSモジュールは、ミニカーネルモジュールの初期
    化およびブートデバイスドライバモジュールの初期化を
    行った後、上記OSロード処理モジュールをスレッドと
    して生成・起動し、 上記OSロード処理モジュールは、圧縮されたOS本体
    部の各機能モジュールをロードする毎に上記OS復元処
    理モジュールを生成・起動し、 上記OS復元処理モジュールは、ロードされた圧縮ファ
    イルを復元した後、上記OS初期化モジュールを生成・
    起動し、 上記OS初期化モジュールは、復元された上記機能モジ
    ュールを初期化することを特徴する請求項5記載の情報
    処理装置の高速初期起動方法。
  7. 【請求項7】 ミニOSモジュールにAP実行・OSロ
    ード処理モジュールを備え、 OS上で動作するアプリケーションモジュールは、該ア
    プリケーションモジュールが動作するために必要なOS
    機能モジュールを記述した機能定義ファイルを有し、 上記ミニOSモジュールは、ミニカーネルモジュールの
    初期化とデバイスドライバモジュールの初期化を実施し
    た後、上記AP実行・OSロード処理モジュールをスレ
    ッドとして起動し、 上記AP実行・OSロード処理モジュールは、ファイル
    システム上にある上記アプリケーションモジュールをメ
    モリにロードした後、該アプリケーションモジュール内
    にある機能定義ファイルに従ってアプリケーションモジ
    ュールに必要なOS機能モジュールをファイルシステム
    からメモリにロードした後、OS初期化モジュールを生
    成・起動し、 上記OS初期化モジュールは、上記OS機能モジュール
    を初期化し、 上記AP実行・OSロード処理モジュールは、上記アプ
    リケーションモジュールが必要な上記OS機能モジュー
    ルのロードが全て完了した後、アプリケーションをプロ
    セスとして起動しながら、残りの上記OS機能モジュー
    ルをロードし、上記OS初期化モジュールを使用して初
    期化することを特徴する請求項3記載の情報処理装置の
    高速初期起動方法。
  8. 【請求項8】 ミニOSモジュールをROMに配置し、 F/Wコードモジュールは、ROMにあるミニOSモジ
    ュールを直接実行し、 上記ミニOSモジュールは、ミニカーネルモジュール、
    ブートデバイスドライバモジュール、OSロード・初期
    化処理モジュールのデータ部をメモリにロードした後、
    上記ミニカーネルモジュールの初期化および上記ブート
    デバイスドライバモジュールの初期化を行い、 上記OSロード・初期化処理モジュールをスレッドとし
    て生成・起動することを特徴する請求項2記載の情報処
    理装置の高速初期起動方法。
  9. 【請求項9】 ミニOSモジュールにミニOSモジュー
    ルとOS本体モジュールの結合を間接的に行うアドレス
    解決テーブルを備え、 上記ミニOSモジュールは、OSロード・初期化処理モ
    ジュールをスレッドとして生成・起動すると、 上記OSロード・初期化処理モジュールは、上記OS本
    体モジュールをロード・初期化し、初期起動プロセスを
    ロードした後、ミニカーネルモジュールおよびブートデ
    バイスドライバモジュールのコード部をメモリにロード
    し、上記アドレス解決テーブルにメモリロードされた各
    コード部のアドレスを書き込むことを特徴する請求項8
    記載の情報処理装置の高速初期起動方法。
  10. 【請求項10】 ミニOSモジュールのOSロード・初
    期化処理モジュールをOSロード処理モジュールとOS
    初期化モジュールに分けるとともに、OS本体モジュー
    ルに任意のブロックサイズ毎にロード目印フラグを設
    け、機能モジュールの最終ブロックの上記ロード目印フ
    ラグにその機能モジュールを示すビットが1になるよう
    に設定しておき、 ミニOSモジュールは、ミニカーネルモジュールの初期
    化およびブートデバイスドライバモジュールの初期化を
    行った後、上記OSロード処理モジュールをスレッドと
    して起動し、 上記OSロード処理モジュールは、上記OS本体モジュ
    ールをロードし、ブロック毎に上記OS本体モジュール
    の上記ロード目印フラグを参照し、ビットが1になって
    いたときに、上記OS初期化モジュールをスレッドとし
    て起動し、 上記OS初期化モジュールは、対象のOS機能モジュー
    ルを初期化することを特徴する請求項2記載の情報処理
    装置の高速初期起動方法。
  11. 【請求項11】 ロード目印フラグには対象OS機能モ
    ジュールとミニOSモジュールの結合処理を行う結合処
    理関数のアドレスとOS機能モジュールの初期化を行う
    初期化処理関数のアドレスを格納し、 OSロード処理モジュールは、OS本体モジュールをロ
    ードし、ブロック毎に上記OS本体モジュールの上記ロ
    ード目印フラグを参照し、このロード目印フラグの内容
    が0でなければ、OS初期化モジュールを起動し、 上記OS初期化モジュールは、上記結合処理関数のアド
    レスおよび上記初期化処理関数を呼び出すことを特徴す
    る請求項10記載の情報処理装置の高速初期起動方法。
  12. 【請求項12】 ミニOSモジュールとOS本体モジュ
    ール作成時において、上記ミニOSモジュールのオブジ
    ェクトファイルと該OS本体モジュールのオブジェクト
    ファイルは、1つのOSファイルとしてリンカによって
    結合され、それをOS分割手段を用いて上記ミニOSモ
    ジュールと上記OS本体モジュールを分割し、上記ミニ
    OSモジュールをブートブロックに配置するとともに、
    上記OS本体モジュールをファイルシステムに配置する
    ことを特徴する請求項2記載の情報処理装置の高速初期
    起動方法。
JP10065957A 1998-03-16 1998-03-16 情報処理装置および情報処理装置の高速初期起動方法 Pending JPH11265289A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10065957A JPH11265289A (ja) 1998-03-16 1998-03-16 情報処理装置および情報処理装置の高速初期起動方法
US09/261,255 US6374353B1 (en) 1998-03-16 1999-03-03 Information processing apparatus method of booting information processing apparatus at a high speed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10065957A JPH11265289A (ja) 1998-03-16 1998-03-16 情報処理装置および情報処理装置の高速初期起動方法

Publications (1)

Publication Number Publication Date
JPH11265289A true JPH11265289A (ja) 1999-09-28

Family

ID=13301987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10065957A Pending JPH11265289A (ja) 1998-03-16 1998-03-16 情報処理装置および情報処理装置の高速初期起動方法

Country Status (2)

Country Link
US (1) US6374353B1 (ja)
JP (1) JPH11265289A (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004059476A1 (ja) * 2002-12-24 2004-07-15 Fujitsu Limited メモリ・イメージの生成
JP2006059116A (ja) * 2004-08-19 2006-03-02 Sony Ericsson Mobilecommunications Japan Inc 携帯端末
JP2006228153A (ja) * 2005-02-21 2006-08-31 Nec Corp 情報処理装置及びプログラム
JP2006259873A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体
JP2007148993A (ja) * 2005-11-30 2007-06-14 Mitsubishi Electric Corp オブジェクト編纂装置、動作プログラムの一体化オブジェクト、情報伝達装置、情報伝達装置に格納された動作プログラムの起動方法、および情報伝達装置に格納された動作プログラムの起動プログラム
JP2007213271A (ja) * 2006-02-09 2007-08-23 Hitachi Ltd サーバ情報収集方法
JP2008501174A (ja) * 2004-06-01 2008-01-17 ノキア コーポレイション デバイス管理システム及び方法
JP2009509265A (ja) * 2005-09-22 2009-03-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド パーソナルインターネットコミュニケータ用のハードドライブのためのブート性能最適化
JP2009251728A (ja) * 2008-04-02 2009-10-29 Canon Inc 情報処理装置及び情報処理方法
JP2010020794A (ja) * 2009-09-25 2010-01-28 Mitsubishi Electric Corp 動作プログラムの起動方法、動作プログラムの起動プログラム、及び情報伝達装置
JP2010079541A (ja) * 2008-09-25 2010-04-08 Yokogawa Electric Corp 半導体試験装置
WO2010058440A1 (ja) * 2008-11-19 2010-05-27 富士通株式会社 メモリ初期化方法、メモリ初期化プログラム
JP2010541072A (ja) * 2007-09-28 2010-12-24 マイクロソフト コーポレーション モバイル機器を介する多重osブートシステム及び方法
JP2012098972A (ja) * 2010-11-04 2012-05-24 Lenovo Singapore Pte Ltd コンピュータを短時間で起動する方法およびコンピュータ
WO2017037819A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037818A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037817A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
FI991167A (fi) * 1999-05-24 2000-11-25 Nokia Mobile Phones Ltd Menetelmä käyttöliittymäohjelmiston lataamiseksi
US7181608B2 (en) * 2000-02-03 2007-02-20 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
US6944865B1 (en) 2000-09-08 2005-09-13 Corel Corporation Method and apparatus for saving a definition for automated data processing
US7747673B1 (en) * 2000-09-08 2010-06-29 Corel Corporation Method and apparatus for communicating during automated data processing
US6938030B1 (en) 2000-09-08 2005-08-30 Corel Corporation Method and apparatus for facilitating accurate automated processing of data
US6850956B1 (en) 2000-09-08 2005-02-01 Corel Inc. Method and apparatus for obtaining and storing data during automated data processing
US7000223B1 (en) * 2000-09-08 2006-02-14 Corel Corporation Method and apparatus for preparing a definition to control automated data processing
US6868193B1 (en) 2000-09-08 2005-03-15 Corel Inc. Method and apparatus for varying automated data processing
US6961922B1 (en) * 2000-09-08 2005-11-01 Corel Corporation Method and apparatus for defining operations to be performed during automated data processing
US6925593B1 (en) 2000-09-08 2005-08-02 Corel Corporation Method and apparatus for transferring data during automated data processing
US7853833B1 (en) 2000-09-08 2010-12-14 Corel Corporation Method and apparatus for enhancing reliability of automated data processing
US7296238B1 (en) 2000-09-08 2007-11-13 Corel Corporation Method and apparatus for triggering automated processing of data
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6883091B2 (en) * 2001-05-30 2005-04-19 Hewlett-Packard Development Company, L.P. Reducing boot times via intrusion monitoring
US6928542B2 (en) * 2001-11-15 2005-08-09 Inventec Corporation Method and system for starting a multiple PDA operating system through a menu
US20030093659A1 (en) * 2001-11-15 2003-05-15 Say-Ling Wen Method and system for directly starting a PDA operating system on a portable PC using hardware devices
US7120786B2 (en) * 2002-06-17 2006-10-10 Microsoft Corporation Booting from a compressed image
JP4187151B2 (ja) * 2003-01-08 2008-11-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7162625B2 (en) * 2003-03-10 2007-01-09 Dell Products L.P. System and method for testing memory during boot operation idle periods
US7822962B2 (en) * 2003-05-05 2010-10-26 Peter Ar-Fu Lam Application software configured to work with two operating systems
US9678967B2 (en) 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
US7310724B2 (en) * 2003-06-30 2007-12-18 Intel Corporation Parallel execution of enhanced EFI based BIOS drivers on a multi-processor or hyper-threading enabled platform
US20050086667A1 (en) * 2003-09-30 2005-04-21 Feng Jin Symmetric Scheduling for parallel execution
US20060080522A1 (en) * 2004-10-13 2006-04-13 Button Russell E Method, apparatus, and system for facilitating secure computing
US7356744B2 (en) * 2005-05-12 2008-04-08 Pc-Doctor, Inc. Method and system for optimizing testing of memory stores
US7568090B2 (en) * 2005-06-23 2009-07-28 Hewlett-Packard Development Company, L.P. Speedy boot for computer systems
US20080209198A1 (en) * 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
US7870321B2 (en) * 2008-02-06 2011-01-11 Broadcom Corporation Extended computing unit with stand-alone application
US8452952B2 (en) * 2010-10-20 2013-05-28 Wyse Technology Inc. Methods and apparatus for building system images and split booting
CN102043652B (zh) * 2010-12-08 2014-04-30 苏州捷泰科信息技术有限公司 嵌入式设备根文件系统的处理系统和处理方法
US9904559B2 (en) * 2012-10-25 2018-02-27 Canon Kabushiki Kaisha Information processing apparatus and activation method therefor for processing data of a hibernation image
JP6011452B2 (ja) * 2013-05-14 2016-10-19 株式会社デンソー 表示制御装置、及び、プログラム
US9582513B2 (en) 2013-12-08 2017-02-28 Microsoft Technology Licensing, Llc Accessing data in a compressed container through dynamic redirection
KR20150098263A (ko) * 2014-02-19 2015-08-28 삼성전자주식회사 펌웨어를 갱신하기 위한 전자 장치 및 방법
CN105814541B (zh) * 2014-11-10 2019-08-02 华为技术有限公司 计算机设备及计算机设备内存启动的方法
KR101663114B1 (ko) * 2015-01-21 2016-10-07 현대자동차주식회사 차량용 멀티미디어 단말기 및 그의 데이터 처리 방법
US10055236B2 (en) * 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US10956174B1 (en) * 2015-10-05 2021-03-23 Veritas Technologies Llc Lazy bare metal restore
JP6686614B2 (ja) * 2016-03-28 2020-04-22 富士通株式会社 情報処理装置の制御プログラム、情報処理装置および情報処理装置の制御方法
US10929148B2 (en) 2016-06-08 2021-02-23 Hewlett Packard Enterprise Development Lp Executing services in containers

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307497A (en) 1990-06-25 1994-04-26 International Business Machines Corp. Disk operating system loadable from read only memory using installable file system interface
US5355498A (en) 1992-02-25 1994-10-11 Sun Microsystems, Inc. Method and apparatus for booting a computer system without loading a device driver into memory
US6052778A (en) * 1997-01-13 2000-04-18 International Business Machines Corporation Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
US5918048A (en) * 1997-03-17 1999-06-29 International Business Machines Corporation Booting an operating system using soft read-only storage (ROS) for firmware emulation
US5933631A (en) * 1997-03-17 1999-08-03 International Business Machines Corporation Dynamic boot filesystem selection

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004059476A1 (ja) * 2002-12-24 2004-07-15 Fujitsu Limited メモリ・イメージの生成
JP2008501174A (ja) * 2004-06-01 2008-01-17 ノキア コーポレイション デバイス管理システム及び方法
JP2006059116A (ja) * 2004-08-19 2006-03-02 Sony Ericsson Mobilecommunications Japan Inc 携帯端末
JP2006228153A (ja) * 2005-02-21 2006-08-31 Nec Corp 情報処理装置及びプログラム
JP2006259873A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体
JP2009509265A (ja) * 2005-09-22 2009-03-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド パーソナルインターネットコミュニケータ用のハードドライブのためのブート性能最適化
JP2007148993A (ja) * 2005-11-30 2007-06-14 Mitsubishi Electric Corp オブジェクト編纂装置、動作プログラムの一体化オブジェクト、情報伝達装置、情報伝達装置に格納された動作プログラムの起動方法、および情報伝達装置に格納された動作プログラムの起動プログラム
JP2007213271A (ja) * 2006-02-09 2007-08-23 Hitachi Ltd サーバ情報収集方法
JP2010541072A (ja) * 2007-09-28 2010-12-24 マイクロソフト コーポレーション モバイル機器を介する多重osブートシステム及び方法
US9003173B2 (en) 2007-09-28 2015-04-07 Microsoft Technology Licensing, Llc Multi-OS (operating system) boot via mobile device
JP2009251728A (ja) * 2008-04-02 2009-10-29 Canon Inc 情報処理装置及び情報処理方法
JP2010079541A (ja) * 2008-09-25 2010-04-08 Yokogawa Electric Corp 半導体試験装置
WO2010058440A1 (ja) * 2008-11-19 2010-05-27 富士通株式会社 メモリ初期化方法、メモリ初期化プログラム
JP5158206B2 (ja) * 2008-11-19 2013-03-06 富士通株式会社 メモリ初期化方法、メモリ初期化プログラム
US8423757B2 (en) 2008-11-19 2013-04-16 Fujitsu Limited Memory initialization by performing parallel execution of firmware and kernel by different CPUs
JP2010020794A (ja) * 2009-09-25 2010-01-28 Mitsubishi Electric Corp 動作プログラムの起動方法、動作プログラムの起動プログラム、及び情報伝達装置
JP2012098972A (ja) * 2010-11-04 2012-05-24 Lenovo Singapore Pte Ltd コンピュータを短時間で起動する方法およびコンピュータ
US8661236B2 (en) 2010-11-04 2014-02-25 Lenovo (Singapore) Pte Ltd Partial initialization of divided programs in response to pre-boot and post-boot activation events to rapidly boot a computer system
WO2017037819A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037818A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037817A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037819A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037818A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037817A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
CN107924316A (zh) * 2015-08-31 2018-04-17 三菱电机株式会社 应用程序执行装置以及应用程序执行方法
CN107924317A (zh) * 2015-08-31 2018-04-17 三菱电机株式会社 应用程序执行装置以及应用程序执行方法
CN107924317B (zh) * 2015-08-31 2020-12-22 三菱电机株式会社 应用程序执行装置以及应用程序执行方法

Also Published As

Publication number Publication date
US6374353B1 (en) 2002-04-16

Similar Documents

Publication Publication Date Title
JPH11265289A (ja) 情報処理装置および情報処理装置の高速初期起動方法
US6230259B1 (en) Transparent extended state save
US20050268301A1 (en) Method, software and apparatus for using application state history information when re-launching applications
JPH08278918A (ja) エンディアンタスクを実行するシステム及び方法
JPH08202563A (ja) コンピュータシステム
US7010725B2 (en) Method and apparatus for getting dump of a computer system
JPH08179941A (ja) マルチコンピュータシステムにおけるプログラムパッケージの変更方法、およびそのためのコンピュータ
JP2681929B2 (ja) プログラム起動方式
JP3570442B2 (ja) コンピュータ
JP2002132741A (ja) プロセッサ追加方法、計算機及び記録媒体
JP2513417B2 (ja) 情報処理装置
JPH09282169A (ja) 入出力データ管理方式
US7107407B2 (en) Arithmetic unit with reduced startup time and method of loading data
CN108829460A (zh) 车载终端快速启动的方法、装置及车载终端
JP2003044284A (ja) コンピュータ装置の起動方法および起動用プログラム
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
US6311289B1 (en) Explicit state copy in a fault tolerant system using a remote write operation
JP2008015725A (ja) 情報処理装置およびプログラム起動方法
JP2003330873A (ja) 情報処理装置及び入出力方法並びにプログラム
JP2001256055A (ja) プログラムダウンロード方式
JP2000231494A (ja) ソフトウェア実行システム及びソフトウェア実行方法
JPH09231069A (ja) 情報処理方法及び装置
US7877533B2 (en) Bus system, bus slave and bus control method
JP2002182931A (ja) 共通osシステムコール方法
JP2954006B2 (ja) エミュレーション装置およびエミュレーション方法