JP2008217611A - 情報処理装置、その起動方法及び起動プログラム - Google Patents

情報処理装置、その起動方法及び起動プログラム Download PDF

Info

Publication number
JP2008217611A
JP2008217611A JP2007056297A JP2007056297A JP2008217611A JP 2008217611 A JP2008217611 A JP 2008217611A JP 2007056297 A JP2007056297 A JP 2007056297A JP 2007056297 A JP2007056297 A JP 2007056297A JP 2008217611 A JP2008217611 A JP 2008217611A
Authority
JP
Japan
Prior art keywords
block
user level
level function
kernel
processing apparatus
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.)
Granted
Application number
JP2007056297A
Other languages
English (en)
Other versions
JP5076559B2 (ja
Inventor
Tatsuhiko Sorai
達彦 空井
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007056297A priority Critical patent/JP5076559B2/ja
Publication of JP2008217611A publication Critical patent/JP2008217611A/ja
Application granted granted Critical
Publication of JP5076559B2 publication Critical patent/JP5076559B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】情報処理装置の起動処理において、装置のユーザがユーザレベル機能を使用可能となるタイミングについて、早期化を実現する。
【解決手段】情報処理装置のオペレーティングシステムのカーネル100に、ブロックモジュール300を組み込む。ブロックモジュール300は、情報処理装置のカーネルによる起動処理において実行される、デバイス101に対しての初期化処理に対して、あらかじめ作成した条件(ブロック条件301−1)に従い、処理要求ブロックを実行し、オペレーティングシステム起動処理全体の初期化処理順序を再配置し、制御する。
【選択図】図1

Description

本発明は、情報処理装置、情報処理装置の起動方法及び起動プログラムに関し、特に、オペレーティングシステムのユーザレベル機能を起動処理の早期にユーザに提供する技術に関する。
従来「オペレーティングシステム(以下、OS)起動処理」では、「カーネル起動処理」が完了した後に、「ユーザレベル機能」の起動処理を実施していた。
これは「カーネル起動処理」内で、「ユーザレベル機能」の起動開始が行える環境(メモリ空間など)を構築するために、このような順序になっている。
しかし「カーネル起動処理」内で最も処理時間が掛かっているのは「デバイス」の初期化処理であった。
つまり「ユーザレベル機能」の起動開始が行える環境の構築処理が完了しても、「デバイス」の初期化処理が終わらなければ、実際には「ユーザレベル機能」の起動開始が実施されないのである。
確かに「ユーザレベル機能」の起動処理において「デバイス」に対して処理の要求を行う場合もあり、「デバイス」の初期化処理が先に完了していることが必要ではあるが、あくまでここでの「デバイス」とは、「ユーザレベル機能」の起動処理において必要とするデバイスであり、システムとして搭載されているすべての「デバイス」を指すのでは無い。言うなれば「ユーザレベル機能」の起動処理において必要な「デバイス」のみ、初期化処理が完了してさえいれば良く、すべての「デバイス」の初期化が完了するのを、「ユーザレベル機能」の起動処理が待つ必要は無いのである。
近年、システムに対する高機能化の要求が高まってきており、システムに搭載される「デバイス」や「ユーザレベル機能」は増加している。
「デバイス」の増加に伴い、すべての「デバイス」の初期化が完了するまでの時間も増加し、システムの「ユーザレベル機能」を使用するユーザは、「ユーザレベル機能」の起動処理が完了するまで「OS起動処理」の開始時点から長く待たされることとなり、問題となっていた。
つまり、高機能化というユーザに対しての利益をシステムは提供しながら、ユーザは「ユーザレベル機能」の使用開始が可能な時点まで長く待たされるという不利益もシステムは提供してしまっていたことになる。
こうした問題の解決を図った従来技術としては、特許文献1ないし3に開示されたものがある。特許文献1には、例えば段落0016−0018に、デバイス処理要求を保留及び保留解除にする技術が記載されている。また、特許文献2には、例えば段落0015−0016に、通常起動処理及び高速起動処理の2種を提供する情報処理装置であって、各種デバイスを初期化する処理のうち一部を省略する技術が記載されている。また、特許文献3には、例えば段落0038−0046に、カーネルとは独立してデバイスドライバの読み込みを行う機能を有するダイナミックドライバローダを備えてOSの起動処理を行う技術が記載されている。
特開2006−127179号公報 特開2006−252329号公報 特開平09−044437号公報
下記の説明により、より詳細に、上記のような従来技術の問題点を明らかにする。
図22を参照すると、OSのコアである「カーネル」100を有し、任意の数の「デバイス」101と、OSとして提供する「ユーザレベル機能(デーモン、アプリケーションなど)」102を任意の数搭載する従来システムの構成が示されている。
また、図23を参照すると、図22に示したシステムに電源が投入された後に実施される「OS起動処理」200の流れが示されている。
図23に示すとおり「OS起動処理」200は、任意の数の「デバイス」101を初期化する処理を含んだ「カーネル起動処理」201部分と、任意の数の「ユーザレベル機能」102の起動処理を実施する「ユーザレベル機能起動処理群」202に分別することが出来る。
システムを利用するユーザにとって、「ユーザレベル機能」102が使用可能となるのは、この図2に示すとおり「カーネル起動処理」201の完了後であり、「OS起動処理」200の後半部分となっている。
つまり、「ユーザレベル機能」102が使用可能となるまでに「カーネル起動処理」201の完了を待ち合わせている形となる。
この「カーネル起動処理」201では、「デバイス」101を初期化する処理を含んでおり、システムに搭載される「デバイス」101数の増加に伴い「カーネル起動処理」201時間も増加する。
つまりシステムに搭載される「デバイス」101数が増加すると、「ユーザレベル機能」102が使用可能となるまでの時間が長くなる。
従来では、搭載される「デバイス」101の数は限られており、搭載「デバイス」101の数の増加に伴い増加する「カーネル起動処理」201という時間は実質的に少なく、特に問題とされていなかった。
しかし技術的な発展により、カーネル100を有し、任意の数の「デバイス」101と、OSとして提供する「ユーザレベル機能」102を任意の数搭載するシステムにおいて、より多くの種類のデバイスをシステムとして搭載することが可能となった。
こうした、デバイスの数に応じて増加する「カーネル起動処理」201という時間は、ユーザにとって電源が投入されてから「ユーザレベル機能」102が使用可能となるまでの時間が長くなる、という課題生み出し、この課題は近年問題となっていた。
なお、上記特許文献1ないし3に記載の従来技術は、いずれも本発明とは目的に共通点があるものの、その解決手段において全く異なる従来技術である。
そこで本発明は、従来技術の問題点に鑑み、情報処理装置の起動処理において、装置のユーザがユーザレベル機能を使用可能となるタイミングについて、早期化を実現することを目的とする。
上記目的を達成するための請求項1記載の発明は、オペレーティングシステムを格納する記憶手段を有する情報処理装置の起動方法であって、前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールが、前記カーネルの行う前記情報処理装置の各デバイスの初期化処理を、前記ブロックモジュールの記憶するブロック条件に基づいて、実行させないブロック処理と、該ブロック処理の後、前記ブロックモジュールが、前記オペレーティングシステムの提供するユーザレベル機能を、前記カーネルに起動させるユーザレベル機能起動処理と、該ユーザレベル起動処理の後、前記カーネルが、前記各デバイスの初期化を行うデバイス初期化処理と、を有することを特徴とする情報処理装置の起動方法である。
請求項2記載の発明は、請求項1記載の情報処理装置の起動方法において、前記ブロック処理により、デバイスの初期化処理が実行されなかったデバイスにつき、該デバイスから状態変化通知を受けたこと、及び、前記ブロックモジュールが定期的にデバイスの状態を参照したことのいずれか1つ以上のトリガによって、前記カーネルが、前記デバイスのブロックを解除するブロック解除処理を有することを特徴とする。
請求項3記載の発明は、請求項1又は2記載の情報処理装置の起動方法において、前記ユーザレベル機能と前記各デバイスとの処理のやり取りを、情報として採取する情報採取処理を有し、前記ブロック条件は、前記情報採取処理に基づいて作成することを特徴とする。
請求項4記載の発明は、請求項1から3のいずれか1項記載の情報処理装置の起動方法において、前記ブロック条件は、情報処理装置の各デバイスの構成に変更があった際に、条件の入れ替えが実行されることを特徴とする。
請求項5記載の発明は、オペレーティングシステムを格納する記憶手段を有する情報処理装置であって、前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールと、該ブロックモジュールが記憶するブロック条件と、を有し、前記カーネルは、前記情報処理装置の起動処理の際、前記ブロック条件に基づいて、前記情報処理装置の各デバイスの初期化処理を、前記ブロック条件がブロックするデバイスについては実行させず、前記ブロックモジュールは、前記オペレーティングシステムの提供するユーザレベル機能を、前記各デバイスの初期化処理に先立ってユーザに提供するよう、前記オペレーティングシステムの起動処理の再配置を実行することを特徴とする情報処理装置である。
請求項6記載の発明は、オペレーティングシステムを格納する記憶手段を有する情報処理装置に前記オペレーティングシステムの起動処理を実行させる起動プログラムであって、前記情報処理装置に、前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールが、前記カーネルの行う前記情報処理装置の各デバイスの初期化処理を、前記ブロックモジュールの記憶するブロック条件に基づいて、実行させないブロック処理と、該ブロック処理の後、前記ブロックモジュールが、前記オペレーティングシステムの提供するユーザレベル機能を、前記カーネルに起動させるユーザレベル機能起動処理と、該ユーザレベル起動処理の後、前記カーネルが、前記各デバイスの初期化を行うデバイス初期化処理と、を実行させることを特徴とする起動プログラムである。
本発明によれば、情報処理装置の起動処理において、装置のユーザがユーザレベル機能を使用可能となるタイミングについて、早期化を実現することができる。
以下に、本発明の好適な実施形態について図面を参照して説明する。
本実施形態のハードウェア構成は、好適には記憶装置にOSが格納されている情報処理装置である。情報処理装置の例としては、本発明を特に限定するものではないが、パーソナルコンピュータやワークステーションなどの電子計算機や、エンベデッドOSによるマイコン応用システム等がある。次に、本実施形態の機能構成について説明する。
図1を参照すると、本実施形態の機能構成が示されている。本実施形態は、「ブロックモジュール」300を「カーネル」100に組み込み、「ブロック条件」301−1に従い「OS起動処理」200内の処理順序を制御することで、「ユーザレベル機能」102の起動処理の完了を前倒しすることが可能となり、ユーザへの「ユーザレベル機能」102の提供を早期化することを、要旨とする。
以下に挙げる第1から3の3つの構成要素の少なくとも第1を含む要素にて、ユーザへの「ユーザレベル機能」102の提供の早期化を実現する。第1の構成要素は、「ユーザレベル機能」102の起動処理開始の再配置である。次に、第2の構成要素は、ブロック手段である。次に、第3の構成要素は、ブロック解除手段である。詳細は後述する。
まず、第1の構成要素、「ユーザレベル機能」102の起動処理開始の再配置について説明する。これはすなわち、「ユーザレベル機能」102の起動開始を早めるために起動開始処理を前倒しするものである。
詳細には、「ユーザレベル機能」102の起動処理開始を早めるために、「ユーザレベル機能」102の起動処理を、「OS起動処理」200の初期段階、つまり「カーネル起動処理」201内での該当「デバイス」101を初期化する時点より先に開始するよう、処理順序の再配置を実施する。
再配置を実施することで、「ユーザレベル機能」102の起動処理開始タイミングが早まる。また、「ユーザレベル機能」102の起動処理に掛かる時間は、「ユーザレベル機能」102の起動処理開始が早まれば、「ユーザレベル機能」102の起動処理完了も早まり、結果としてユーザに対しての「ユーザレベル機能」102の提供タイミングも早まる。
図2は、本実施形態の階層構成を説明するための図である。図2に示すような、「ユーザレベル機能」102のα、β、γと「デバイス」101のA、B、C、Dが存在するシステム構成において、本実施形態の第1の構成要素である『「ユーザレベル機能」102の起動処理開始の再配置』を実施する前と実施した後での比較を示した図として図3に示す。図3を参照すると、OS起動処理200において、ユーザレベル機能の起動処理の前倒しが実行されることが分かる。
次に、第2の構成要素、ブロック手段について説明する。これはすなわち、「ユーザレベル機能」102が使用する「デバイス」101への要求が継続出来ずブロックすべき条件(例:初期化が未完了の場合)に該当する場合に、このデバイス要求をブロックするものである。本要素を、図4を参照して説明する。
単純に第1要素を実施しても、「ユーザレベル機能」102の起動処理が正常に完了しない可能性が存在する。
これは、「ユーザレベル機能」102の起動処理において、「デバイス」101に対して、何らかの処理要求を実施する場合、第1要素で実施した「ユーザレベル機能」102の起動処理開始の再配置により、この要求が該当「デバイス」101の初期化を実施する前で行われてしまう、という処理順序の矛盾が生じる可能性があるからである。この矛盾は「ユーザレベル機能」102の起動の失敗や、「ユーザレベル機能」102を提供することが出来ないという問題を引き起こす。
こうした問題に対応するために、「ユーザレベル機能」102からの「デバイス」101に対しての要求処理を、該当「デバイス」101の初期化処理完了後までブロックする手段が必要となる。
このように、「デバイス」101への要求をブロックすべき状態の場合に、この「デバイス」101への要求処理をブロックするブロック手段を実現するモジュールとして、本実施形態は、「ブロックモジュール」300を提供する。
また、「ブロックモジュール」300が実施する「デバイス」101に対しての要求処理に関してブロックする/しないを判定する際に、ブロックする条件を「ブロック条件」301−1と定義する。「ブロック条件」301−1は、実際にシステム内に組み込まれた「ブロックモジュール」300から参照出来るように、コード化を実施し「コード化されたブロック条件」301−2として作成する。
次に、第3の構成要素、ブロック解除手段について説明する。これはすなわち、「ブロックモジュール」300にてブロックしている「ユーザレベル機能」102の起動処理からの「デバイス」101に対しての要求処理を、ブロック解除して処理の実行を継続する手段である。図5を参照して説明する。
ブロックの解除は、「ブロック条件」301−1を用いて判定し、「デバイス」101への要求が継続出来る状態になればブロックを解除する。
ブロックを解除するか否かの判断は、「デバイス」101の状態を基に判断するが、その判断のタイミングは、「デバイス」101自身の状態が変化する場合(例:初期化完了)に「ブロックモジュール」300に通知させその通知をトリガとして判断しても良いし、「ブロックモジュール」300が「デバイス」101の状態変化を監視することで実現しても良い。また、これらを組み合わせても良い。
上述した3つの構成要素を適用したシステムの構成図が、前掲の図1である。以下、さらに詳細に本実施形態の構成及び動作について説明する。
再度本実施形態の目的について確認すると、本実施形態の目的は、OSのコアである「カーネル」100を有し、任意の数の「デバイス」101と、OSとして提供する「ユーザレベル機能」102を任意の数搭載するシステムに関して、システムを使用するユーザに対して「ユーザレベル機能」102の提供を早期化するものである。
そこで、本実施形態を処理の流れに着目して大きく分けると、「1.ブロック条件作成」と「2.処理の再配置」と「3.ブロック制御によるOS起動処理」の、3つのセクションに分かれる。したがって、以下、それぞれについて概略を説明し、さらにその後、それぞれについて詳細に説明を加える。
「1.ブロック条件作成」
本実施形態では、最初に3つの処理を実施し「コード化されたブロック条件」301−2を作成する。この作成した「コード化されたブロック条件」301−2を解決手段に適用することで、ユーザに対して「ユーザレベル機能」102の提供を早期化することを実現する。当該3つの処理の流れを図6として示す。
次に、図6で示した順序で実施される、3つの処理の概要について説明する。
「情報採取」ステップS400は、「ユーザレベル機能」102の起動処理の内容と、「ユーザレベル機能」102の起動処理と「デバイス」101との処理のやり取りを、情報として採取する処理である。ステップS400の後、ステップS401に進む。
「『ブロック条件』作成」ステップS401は、「情報採取」400で採取された「ユーザレベル機能」102の起動処理の情報を分析し「ブロック条件」301−1を作成する処理である。ステップS401の後、ステップS402に進む。
「『ブロック条件』のコード化」ステップS402は、「『ブロック条件』作成」401処理で作成された「ブロック条件」301−1を「ブロックモジュール」300から参照可能な形にコード化する処理である。
図7、図8は、上述の3つの処理に必要となるモジュールを説明するための図である。
図7は、「カーネル」100内に組み込まれた「情報採取モジュール」500を表す。
図8は、「情報採取モジュール」500と「解析モジュール」501、「ブロック条件コード化モジュール」502を表す。なお、図8中において、実線で示した矢印は、処理のインプット、破線で示した矢印は、処理のアウトプットを表す。
「情報採取モジュール」500は、「ユーザレベル機能」102の起動処理の内容と、「ユーザレベル機能」102の起動処理と「デバイス」101との処理のやり取りを、情報として採取する「カーネル」100に組み込むことが可能なモジュールである。
一方、「解析モジュール」501は、「ブロック条件」301−1を作成するモジュールであり、「ブロック条件コード化モジュール」502はその「ブロック条件」301−1のコード化を実施するモジュールである。
「ブロック条件」301−1は、「情報採取モジュール」500にて取得された「ユーザレベル機能」102の起動処理情報である「ユーザレベル機能起動処理情報」503を解析して作成する。
「解析モジュール」501で作成された「ブロック条件」301−1を、「ブロックモジュール」300から参照可能なコードに変換するモジュールを「ブロック条件コード化モジュール」502とする。変換された「ブロック条件」301−1を「コード化されたブロック条件」301−2とする。
以上の処理を行うことで、「コード化されたブロック条件」301−2を作成することが出来る。
「2.処理の再配置」
図3に示したとおり、「OS起動処理」200において「ユーザレベル機能」102を「デバイス」101の初期化処理よりも前に実行開始するように、処理の再配置を実施する。
「3.ブロック制御によるOS起動処理」
再度本実施形態の構成を確認すると、本実施形態の「OS起動処理」200を実行する場合の全体の機能構成は、図1に示されるものである。
図1に示す通り、「カーネル」100、「デバイス」101、「ユーザレベル機能」102、「ユーザレベル機能」102からの「デバイス」101に対しての要求をブロック/ブロック解除を実施するモジュールである「ブロックモジュール」300、「『ブロック条件』コード化」402処理で作成された「コード化されたブロック条件」301−2がある。
「ブロックモジュール」300は、「カーネル」100に組み込まれている形となる。
以上で本実施形態の処理の概略の説明を終え、以下で、より詳細な説明を加える。
上述の通り、本実施形態では、最初に、図6に示した処理の流れに沿って「コード化されたブロック条件」301−2作成と、「カーネル」100内への「ブロックモジュール」300の組み込みを行うまでを実施する。以下で、処理内容の詳細について説明する。
「1.ブロック条件作成」
まず、「ユーザレベル機能」102の起動処理の内容と、「ユーザレベル機能」102の起動処理と「デバイス」101との処理のやり取りを情報として採取する「情報採取」400を実施する。
この「情報採取」400を実施する前に必要な準備として、図7で示したように「カーネル」100に「ユーザレベル機能」102の起動処理の内容を把握する「情報採取モジュール」500を「情報採取」400を実施する前に組み込んでおく。
次に、「情報採取モジュール」500が組み込まれている「カーネル」100を使用したシステムにて、一度「OS起動処理」200をテストランとして実施する。
このテストランを実施することで「情報採取モジュール」500は、「ユーザレベル機能」102の起動処理の内容と、「ユーザレベル機能」102の起動処理と「デバイス」101との処理のやり取りを把握し、把握した情報を「ユーザレベル機能起動処理情報」503として出力する。
この「ユーザレベル機能起動処理情報」503は、関数レベルの詳細な情報であり、どの「ユーザレベル機能」102の起動処理において、どの「デバイス」101に対してどのような要求を出しているかという情報を含んでいる。
「ユーザレベル機能起動処理情報」503として出力される内容の具体的な内容を例として示す。
本具体例では、図2に示したシステムでテストランを実施した場合に取得する「ユーザレベル機能起動処理情報」503について説明する。
図2に示したシステムでは「デバイス」101はA、B、C、Dの4つ、「ユーザレベル機能」102は、α、β、γの3つが存在する。そして、各「デバイス」101と各「ユーザレベル機能」102は、図9(a)に示すような依存関係がある。図9は、本具体例におけるユーザレベル層とデバイス層の依存関係を説明するための図である。なお、図9(b)は、(a)の依存関係を説明するための図である。図9(a)に示すように、αはAを、βはBを、γはCを、それぞれ使用する依存関係がある。
さらに、本システムは図10に示すようなシーケンスにて動作する。具体的な処理内容を以下<1−1>〜<3−3>として示す。
<1−1>
「ユーザレベル機能」102αの起動処理は、「デバイス」101Aにあるファイルを参照する処理が存在する。
<1−2>
「ユーザレベル機能」102αの起動処理は、alpha_init()関数がコールされてからalpha_startup_done()関数がコールされるまでの区間である。
<1−3>
「ユーザレベル機能」102αの起動処理内でalpha_init()関数がコールされてから後に、alpha_data_initialize()関数から、カーネルを介して、「デバイス」101にあるファイルをOpenするdev_open()関数を、引数に対象でデバイスである「デバイス」Aを指定しコールする。
<2−1>
「ユーザレベル機能」102βの起動処理は、「デバイス」101Bからの応答を確認する。
<2−2>
「ユーザレベル機能」102βの起動処理は、beta_init()関数がコールされてからbeta_startup_done()関数がコールされるまでの区間である。
<2−3>
「ユーザレベル機能」102βの起動処理内でbeta_init()関数がコールされてから後に、beta_data_initialize()関数から、カーネルを介して、「デバイス」101に対して問い合わせを実施するdev_check()関数を、引数に対象でデバイスである「デバイス」Bを指定しコールする。
<3−1>
「ユーザレベル機能」102γの起動処理は、「デバイス」101Cに対して設定ファイルを書き込む処理が存在する。
<3−2>
「ユーザレベル機能」102γの起動処理はgamma_init()関数がコールされてからgamma_startup_done()関数がコールされるまでの区間である。
<3−3>
「ユーザレベル機能」102γの起動処理内でgamma_init()関数がコールされてから後に、gamma_data_initialize()関数から、カーネルを介して、「デバイス」101に対して設定ファイルを書き込む実施するdev_write()関数を、引数に対象でデバイスである「デバイス」Cを指定しコールする。
以上で、本実施形態の具体例のテストランにおける各処理についての説明を終える。なお、上記の関数名はすべて例である。これ以降でも関数名の記述については、本例を使用する。
上記<1−1>〜<3−3>までの処理がテストランにおいて実行されるが、このテストランにより「情報採取モジュール」500が採取し、出力する「ユーザレベル機能起動処理情報」503を図11として示す。
「ユーザレベル機能起動処理情報」503では、どの「ユーザレベル機能」102が、どの「デバイス」101に対して「デバイス要求」を実施するのか、という関係情報、それに加え図10に示すシーケンス図として表すことが可能な「ユーザレベル機能」102の起動処理内での、どのタイミングで「デバイス」101に対しての「デバイス要求」行うのかという情報を関数レベルで保持する。
各「ユーザレベル機能」102の起動処理開始/終了については、図7に示す通り、「ユーザレベル機能」102を包括する形で「情報採取モジュール」500が組み込まれているので、「情報採取モジュール」500にて、まず「ユーザレベル機能」102の関数コールシーケンスを取得する。
ここで起動処理開始/終了を行う関数にそれぞれ「XXX_init()」「XXX_startup_done()」というプレフィックスを付けるように定めておけば、前述した関数コールシーケンスの中からそれら関数コールを見つけることで起動処理開始/終了を把握することが出来る。
また、各「ユーザレベル機能」102では起動処理を行うよう関数自体を定義し、その関数名を別途「情報採取モジュール」500に通知しておいても、前記関数コールシーケンスによって、各「ユーザレベル機能」102での起動処理の開始/終了を把握出来る。
次に、「情報採取モジュール」500から作成された「ユーザレベル機能起動処理情報」503を元に、「解析モジュール」501にて解析を行い、「ブロック条件」301−1を作成する処理である「『ブロック条件』作成」401を実施する。
「ブロック条件」301−1として出力される内容を図12として示す。
「ブロック条件」301−1を作成するための「解析モジュール」501での解析内容は、「ユーザレベル機能起動処理情報」503においてどの「デバイス」101に対して要求つまり「デバイス要求」を行うか、という点と、対象「デバイス」101がどのような状態であればブロックすべきか、を中心に解析を実施する。つまり「ブロックモジュール」300にて、「ユーザレベル機能」102からの「デバイス要求」に対してブロックを行うべきかどうか、という判定のための解析である。
「ユーザレベル機能起動処理情報」503を解析することで「ブロックモジュール」300でのブロック実施判定に用いる「ブロック条件」301−1を作成する。その具体的な解析内容について以下に示す。
「解析モジュール」501への入力情報は、図11で示した「ユーザレベル機能起動処理情報」503と、図13に示した「デバイス要求継続条件」504とする。なお、図13は、デバイス状態管理テーブルの一例を示す図であるが、デバイス状態管理テーブルの詳細については後述する。
「デバイス要求継続条件」504とは、「デバイス要求」としてコールされる関数名と、その該当関数が処理を行うのに必要な「デバイス」101の状態、つまり図13に示した「デバイス」101の状態でなければ、「デバイス要求」は失敗する、という情報を表している。「デバイス」101の状態としては、以下に詳述する「RUNNING」と「NOTREADY」の2つを含む、種々の状態がある。
「RUNNING」とは、該当「デバイス」101が起動処理を終えて、「デバイス要求」に応じた処理が可能な状態であること表す。
「NOTREADY」とは、該当「デバイス」101が起動処理をまだ終えておらず、「デバイス要求」に応じた処理が出来ない状態を表す。
「デバイス要求継続条件」504では、デバイス要求関数毎にその要求が処理出来るデバイスの状態を示すが、どのようなデバイスの状態であっても良い場合は「any」で表す。つまり「デバイス」101がどのような状態であっても該当の「デバイス要求」を受け付けることが可能であることを示す。
したがって、図13からは、前述した「ユーザレベル機能起動処理情報」503から、「ユーザレベル機能」102αからの「デバイス」101Aに対する「デバイス要求」として、「ユーザレベル機能」102αのalpha_data_initialize()関数から「デバイス」101Aに対してdev_open()関数がコールされることが分かる。
また、dev_open()は、「デバイス要求継続条件」504から、「デバイス」101Aの初期化処理が完了する前の状態、つまり「デバイス」101Aがそれを示す「NOTREADY」状態の場合、処理が出来ないことが分かる。つまり「ユーザレベル機能」102αからの「デバイス」101Aに対しての「デバイス要求」であるdev_open()関数コールは、「デバイス」101Aが「RUNNING」状態でなければ、その関数コールは失敗する。
よって、「ユーザレベル機能」102αからの「デバイス」101Aに対しての「デバイス要求」であるdev_open()関数コールは、「デバイス」101Aが「RUNNING」状態になるまで、つまり「NOTREADY」の状態であれば「デバイス要求」をブロックする必要があることが分かる。
同様に、「ユーザレベル機能」102βからの「デバイス」101Bに対する「デバイス要求」として、「ユーザレベル機能」102βのbeta_data_initialize()関数から、「デバイス」101Bに対してdev_check()関数がコールされるが、dev_check()関数は、「デバイス要求継続条件」504から「デバイス」101Bの初期化処理が完了する前の状態つまり「デバイス」101Bがそれを示す「NOTREADY」状態である場合、処理が失敗するので、「RUNNING」状態で無ければ「デバイス要求」をブロックしなければならないことが解析により把握可能である。
また、「ユーザレベル機能」102γのgamma_data_initialize()関数からの、「デバイス」101Cに対する「デバイス要求」も同様に、「デバイス」101Cへのdev_write()関数は、「デバイス要求継続条件」504から「デバイス」101Cの初期化処理が完了する前の状態つまり「デバイス」101Cがそれを示す「NOTREADY」状態である場合、処理が失敗するので、「RUNNING」状態で無ければ「デバイス要求」をブロックしなければならないことが解析により把握可能である。
「ブロック条件作成」ステップS402は、上記のような「解析モジュール」501での解析により、「ブロック条件」301−1を作成する処理である。
「デバイス」101の状態は、例えば「カーネル」100内に存在する「デバイス状態管理テーブル」を参照することで把握する。この「カーネル」100内に存在する「デバイス状態管理テーブル」の例を図13として示す。
また、「デバイス」101から「ブロックモジュール」300に対して「デバイス」101自身の状態変化を通知させても良い。さらに「ブロックモジュール」300が「デバイス」101に対して状態を問い合わせる方法でも良い。
「ブロック条件」301−1としては図12に示した通り、例えば、次の5点の情報を保持している。
・どの「ユーザレベル機能」102からの「デバイス要求」なのか
・どの「ユーザレベル機能」102のどの関数からコールされるのか
・どの「デバイス」101に対しての「デバイス要求」なのか
・「デバイス」101の、どの関数が使用されるのか
・「デバイス」101がどのような条件であれば「デバイス要求」をブロックする必要があるのか
次に「カーネル」100に組み込む予定の「ブロックモジュール」300から「ブロック条件」301−1を参照出来るように、「ブロック条件」301−1をコード化する「『ブロック条件』コード化」ステップS402を実施する。
「『ブロック条件』コード化」ステップS402とは、「ブロックモジュール」300から「ブロック条件」301−1を参照可能とするために、「ブロック条件」301−1に対して「ブロックモジュール」300が動作時に解釈出来るデータ形式に変換することである。
このコード化された「ブロック条件」301−1である、「コード化されたブロック条件」301−2の例を図14に示す。
図14に示した、「コード化されたブロック条件」301−2は、カーネルコードに組み込んでも良いが、カーネルコードとは別にシステム上の適切な場所、例えば、
・「カーネル」100から参照可能な、システムに搭載されているメモリ上
・「カーネル」100から参照可能な、システムに搭載されている「カーネル」100のソースコードが格納されているROM上
といった場所に「コード化されたブロック条件」301−2を格納しても良い。
以上より、「コード化されたブロック条件」301−2の作成を完了する。
「2.処理の再配置」
次に、「ユーザレベル機能」102の起動処理の再配置を実施する。
ユーザに対しての「ユーザレベル機能」102の提供を早期化するためには、最初に「ユーザレベル機能」102の起動処理完了タイミングを早める必要がある。
これは図3に示した通り、「OS起動処理」200において「ユーザレベル機能」102の起動処理開始タイミングを早めることにより実現する。
具体的には、「ユーザレベル機能」102の開始ポイントである関数コールを「デバイス」101の初期化処理以前にコールするようにコードを再配置する。
再配置を実施する前の「OS起動処理」200の処理順序を図15に示す。再配置を実施した後の「OS起動処理」200の処理順序は図3で示した通りである。
以上により「OS起動処理」200を実施する準備が出来た。以下で、「OS起動処理」200における「ブロック手段」「ブロック解除手段」の詳細な動作について説明する。
「3.ブロック制御によるOS起動処理」
「ブロックモジュール」300での「ブロック手段」の処理内容について図16に、「ブロックモジュール」300での「ブロック解除手段」の処理内容について図17、ブロックしている「デバイス要求」を管理する「ブロックリスト」を図18に示す。
まず「ブロック手段」の詳細な動作について図16に沿って説明する。
「ユーザレベル機能」102からの「デバイス要求」が「ブロックモジュール」300を介して実行される。「ブロックモジュール」300は、「デバイス要求」を受け(ステップS1601)、「ブロック条件」301−1である「コード化されたブロック条件」301−2を参照し、該当「デバイス」101の現在の状態と比較することで、その「デバイス要求」を継続しても問題無いかどうかを判定する(ステップS1602)。
ここで「コード化されたブロック条件」301−2に合致しない「デバイス」101の状態であれば(ステップS1602、No)、「ユーザレベル機能」からの「デバイス要求」をブロックすること無く「デバイス要求」を該当「デバイス」101に対して送る(ステップS1603)。
しかし、「コード化されたブロック条件」301−2に合致する「デバイス」101の状態であれば(ステップS1602、Yes)、ブロックしている「デバイス要求」を「ブロックリスト」に追加し(ステップS1604)、その「デバイス要求」をブロックする(ステップS1605)。
この「デバイス要求」のブロックとは、「デバイス要求」を継続しないようにすることであり例えば「デバイス要求」を行ったスレッドをSleepさせたり、Waitさせたりすることでも良い。
具体的な内容としては、例えば、「ユーザレベル機能」102αのalpha_data_initialize()関数から、「ブロックモジュール」300を介して「デバイス」101Aに対してdev_open()関数がコールされるが、「ブロックモジュール」300は「コード化されたブロック条件」301−2を参照し、「デバイス」101Aの状態が初期化処理を終えていないことを示す「NOTREADY」の場合、「ユーザレベル機能」102αからの「デバイス要求」を「ブロックモジュール」300はブロックし、「ブロックリスト」にブロックした「デバイス要求」の内容を追加する。
また、「デバイス」101Aの状態が初期化処理を終えたことを示す「RUNNING」の場合には、「ユーザレベル機能」102αからの「デバイス要求」を「ブロックモジュール」300はブロックすること無く、「デバイス」101Aに対してdev_open()関数をコールする。
「ユーザレベル機能」102からの「デバイス要求」をブロックした場合の、「OS起動処理」200の処理の流れを図19に示す。
次に、「ブロック解除手段」の詳細な動作について図17に沿って説明する。
「ブロックモジュール」300はある一定期間の間隔をおいて、定期的に図18で示したような「ブロックリスト」を参照する(ステップS1701)。若しくは「デバイス」101から初期化終了などの状態変化時に、状態変更通知を受けてから「ブロックリスト」を参照する形でも良い。
ここで、リスト上に「デバイス要求」をブロックしていることを示す情報があれば(ステップS1702、Yes)、「デバイス」101の現在の状態を確認した上で(ステップS1703)、「コード化されたブロック条件」301−2を参照し、「コード化されたブロック条件」301−2に合致しない「デバイス」101の状態であれば(ステップS1704、No)、ブロックリストからデバイス要求情報を削除した上で(ステップS1705)、ブロックしている「デバイス要求」を該当「デバイス」101に対し送信する(ステップS1706)。
リスト上に「デバイス要求」をブロックしていることを示す情報があるが、該当「デバイス」101の状態を確認した際、「コード化されたブロック条件」301−2に合致しない「デバイス」101の状態でなければ(ステップS1704、Yes)、「ブロックモジュール」300は、「ブロック解除手段」を行わない(ステップS1707)。
ブロック解除を実行する又は実行しない場合のいずれであっても、再度ブロックリストの次のデバイス要求を取得する(ステップS1708)。
具体的な内容としては、「ユーザレベル機能」102αからの「デバイス要求」をブロックしていたことを示す情報が「ブロックリスト」に存在した場合、「ブロックモジュール」300は、「デバイス」101Aの状態が「NOTREADY」から初期化処理を終えたことを示す「RUNNING」に状態が変更していれば、その「デバイス要求」をブロックリストから外し、ブロックしていた「ユーザレベル機能」102αからの「デバイス要求」を該当「デバイス」101に送信する。
このように、「ブロックモジュール」300は、「ユーザレベル機能」102の起動処理からの「デバイス要求」をブロック/ブロック解除を実施することで、「OS起動処理」200において「ユーザレベル機能」102の起動処理開始タイミングを早めても、「ユーザレベル機能」102の起動処理が問題無く完了するよう、制御を実施する。
この制御により、「ユーザレベル機能」102の起動処理完了タイミングを早くすることが可能となる。よって「ユーザレベル機能」102として機能提供可能状態が早まることで、ユーザに対しての「ユーザレベル機能」102の提供が早期化されることが実現可能となる。
「情報採取」400、「『ブロック条件』作成」401、「『ブロック条件』コード化」402という処理を実施し、解決手段の第1から3の構成要素を用いることで本実施形態として「ブロックモジュール」300によるブロック/ブロック解除制御が可能となり、ユーザに対しての「ユーザレベル機能」102提供の早期化を実現することが可能となる。
ユーザに対しての「ユーザレベル機能」102提供の早期化を実現出来た「OS起動処理」200と、「ユーザレベル機能」102提供の早期化を実現する前の「OS起動処理」200との比較を表したタイミングチャート図を図20として示す。
また、本発明を実施しユーザに対しての「ユーザレベル機能」102提供の早期化を実現出来た「OS起動処理」200のシーケンスを図21に示す。
以上で、本実施形態の構成及び動作の説明を終え、以下で、本実施形態の効果について説明する。本実施形態の効果は、少なくとも、下記の第1から5の5つの効果が挙げられる。
・第1の効果は、ユーザに対して「ユーザレベル機能」102の提供タイミングを早期化出来る点にある。
従来では、ユーザに対しての「ユーザレベル機能」102提供のタイミングは「OS起動処理」200としての後半、つまりシステムとして電源が投入され、その後に実行されるシステムに搭載されているすべての「デバイス」101の初期化処理が完了した後であったが、「ユーザレベル機能」102の起動処理において実施される、「デバイス」101に対しての処理の要求において、予め作成した条件に従いブロック/ブロック解除を実施しOS起動処理全体の処理順序を制御することで、システムを利用するユーザに対しての機能提供タイミングを早期化することが出来る。
・第2の効果は、「ユーザレベル機能」102の起動処理の開始タイミングを早めることが出来る点にある。
従来では、システムに搭載されているすべての「デバイス」101の初期化処理が完了した後に「ユーザレベル機能」102の起動処理を行っていた。また、「デバイス」101の種類によっては初期化処理に掛かる時間が長いものも存在した。その上「ユーザレベル機能」102によってはそのような初期化処理に時間が掛かる「デバイス」101を必要としない場合もあり、すべての「デバイス」101の初期化処理が完了するまで「ユーザレベル機能」102の起動処理を開始しないという処理順序であった。しかし、「ユーザレベル機能」102の提供に必要な「デバイス」101のみ初期化処理を行い、「ユーザレベル機能」102の提供に必要としない「デバイス」の初期化処理を「ユーザレベル機能」102の提供後に実行することで、従来の処理順序より「ユーザレベル機能」102の起動処理の開始タイミングを早めることが出来る。
・第3の効果は、システムを使用するユーザに対して「ユーザレベル機能」102の提供を早期化するため、「ユーザレベル機能」102の起動処理を「デバイス」101の初期化より前に実施しても問題が生じず「ユーザレベル機能」102の起動処理が完了出来る点にある。
「ブロックモジュール」300が「デバイス」101に対する要求である「デバイス要求」を「ブロック条件」301−1に従い適切にブロック/ブロック解除をすることで、「ユーザレベル機能」102の起動処理の前倒しを実施しても矛盾が生じること無く「ユーザレベル機能」102の起動処理が完了することが可能となり、「ユーザレベル機能」102提供の早期化を実現出来る。
・第4の効果は、人の手によって行うユーザに対しての「ユーザレベル機能」102の提供を早期化する方法では、生じてしまう可能性がある問題を確実に回避することが可能な点にある。
人の手によって行うユーザに対しての「ユーザレベル機能」102の提供を早期化する手段では、「ユーザレベル機能」102の起動処理をすべて詳細にソースコードレベルで把握した上で行う必要があり、その上、人の手では見落としや処理順序の矛盾が発生しやすいが、本発明では「ユーザレベル機能」102の起動処理をすべて把握する必要は無く、1回の「カーネル起動処理」100のテストラン実施を行うだけで、「ユーザレベル機能」102提供の早期化が可能となり、人の手によって行うより見落としや処理順序の矛盾が発生しない。
・第5の効果は、システムの高機能化が進み搭載「デバイス」100数と搭載「ユーザレベル機能」102が増加しても、「ユーザレベル機能」102の提供を早期化することが可能な点にある。
システムに要求される高機能化により搭載「デバイス」100数と搭載「ユーザレベル機能」102数が増加した場合でも、本発明は「デバイス」100数や「ユーザレベル機能」102数に依存した手段を用いておらず、「デバイス」100と「ユーザレベル機能」102との処理内容の相関を解析に用いるため、搭載数が増加した場合も確実に「ユーザレベル機能」102の提供を早期化することが可能である。
本発明により、ユーザに対して「ユーザレベル機能」の提供を早期化することが可能となるため、任意のデバイスを搭載し、ユーザに対して何らかの機能を提供するシステム全般に適用可能である。
本発明による実施形態の機能構成を示す図である。 本実施形態の階層構成を説明するための図である。 本実施形態によるOS起動処理の再配置を説明するための図である。 本実施形態によるブロック手段を説明するための図である。 本実施形態によるブロック解除手段を説明するための図である。 本実施形態のブロック条件作成のための3つの処理を説明するための図である。 本実施形態のブロック条件作成に必要なモジュールを説明するための図(その1)である。 本実施形態のブロック条件作成に必要なモジュールを説明するための図(その2)である。 本実施形態の具体例におけるユーザレベル層とデバイス層の依存関係を説明するための図である。 本実施形態の具体例の動作例を示すシーケンス図である。 本実施形態の具体例の「ユーザレベル機能起動処理情報」503の一例を示す図である。 本実施形態の具体例の「ブロック条件」301−1として出力される内容の一例を示す図である。 本実施形態の具体例のデバイス状態管理テーブルの一例を示す図である。 本実施形態の具体例の「コード化されたブロック条件」301−2の一例を示す図である。 本実施形態の具体例の起動処理の再配置を実施する前の状態を説明するための図である。 本実施形態のブロックモジュール300によるブロック処理の手順を示すフローチャート図である。 本実施形態のブロックモジュール300によるブロック解除処理の手順を示すフローチャート図である。 本実施形態の具体例によるブロックリストの一例を示す図である。 本実施形態の具体例によるユーザレベル機能からのデバイス要求をブロックした場合のOS起動処理の処理の流れを示す図である。 本実施形態の具体例によるOS起動処理のタイミングチャート図である。 本実施形態の具体例によるOS起動処理のシーケンス図である。 従来の情報処理装置の、各デバイスを含めてOSの機能構成を説明するための図である。 従来の情報処理装置の、OS起動処理の流れを説明するための図である。
符号の説明
100 カーネル
101 デバイス
102 ユーザレベル機能
200 OS起動処理
201 カーネル起動処理
202 ユーザレベル機能起動処理群
300 ブロックモジュール
301−1 ブロック条件
301−2 コード化されたブロック条件
500 情報採取モジュール
501 解析モジュール
502 ブロック条件コード化モジュール
503 ユーザレベル機能起動処理情報
504 デバイス要求継続条件

Claims (6)

  1. オペレーティングシステムを格納する記憶手段を有する情報処理装置の起動方法であって、
    前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールが、前記カーネルの行う前記情報処理装置の各デバイスの初期化処理を、前記ブロックモジュールの記憶するブロック条件に基づいて、実行させないブロック処理と、
    該ブロック処理の後、前記ブロックモジュールが、前記オペレーティングシステムの提供するユーザレベル機能を、前記カーネルに起動させるユーザレベル機能起動処理と、
    該ユーザレベル起動処理の後、前記カーネルが、前記各デバイスの初期化を行うデバイス初期化処理と、
    を有することを特徴とする情報処理装置の起動方法。
  2. 前記ブロック処理により、デバイスの初期化処理が実行されなかったデバイスにつき、該デバイスから状態変化通知を受けたこと、及び、前記ブロックモジュールが定期的にデバイスの状態を参照したことのいずれか1つ以上のトリガによって、前記カーネルが、前記デバイスのブロックを解除するブロック解除処理を有することを特徴とする請求項1記載の情報処理装置の起動方法。
  3. 前記ユーザレベル機能と前記各デバイスとの処理のやり取りを、情報として採取する情報採取処理を有し、
    前記ブロック条件は、前記情報採取処理に基づいて作成することを特徴とする請求項1又は2記載の情報処理装置の起動方法。
  4. 前記ブロック条件は、情報処理装置の各デバイスの構成に変更があった際に、条件の入れ替えが実行されることを特徴とする請求項1から3のいずれか1項記載の情報処理装置の起動方法。
  5. オペレーティングシステムを格納する記憶手段を有する情報処理装置であって、
    前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールと、
    該ブロックモジュールが記憶するブロック条件と、を有し、
    前記カーネルは、前記情報処理装置の起動処理の際、
    前記ブロック条件に基づいて、前記情報処理装置の各デバイスの初期化処理を、前記ブロック条件がブロックするデバイスについては実行させず、
    前記ブロックモジュールは、前記オペレーティングシステムの提供するユーザレベル機能を、前記各デバイスの初期化処理に先立ってユーザに提供するよう、前記オペレーティングシステムの起動処理の再配置を実行することを特徴とする情報処理装置。
  6. オペレーティングシステムを格納する記憶手段を有する情報処理装置に前記オペレーティングシステムの起動処理を実行させる起動プログラムであって、
    前記情報処理装置に、
    前記オペレーティングシステムのカーネルに組み込まれたブロックモジュールが、前記カーネルの行う前記情報処理装置の各デバイスの初期化処理を、前記ブロックモジュールの記憶するブロック条件に基づいて、実行させないブロック処理と、
    該ブロック処理の後、前記ブロックモジュールが、前記オペレーティングシステムの提供するユーザレベル機能を、前記カーネルに起動させるユーザレベル機能起動処理と、
    該ユーザレベル起動処理の後、前記カーネルが、前記各デバイスの初期化を行うデバイス初期化処理と、
    を実行させることを特徴とする起動プログラム。
JP2007056297A 2007-03-06 2007-03-06 情報処理装置、その起動方法及び起動プログラム Expired - Fee Related JP5076559B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007056297A JP5076559B2 (ja) 2007-03-06 2007-03-06 情報処理装置、その起動方法及び起動プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007056297A JP5076559B2 (ja) 2007-03-06 2007-03-06 情報処理装置、その起動方法及び起動プログラム

Publications (2)

Publication Number Publication Date
JP2008217611A true JP2008217611A (ja) 2008-09-18
JP5076559B2 JP5076559B2 (ja) 2012-11-21

Family

ID=39837551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007056297A Expired - Fee Related JP5076559B2 (ja) 2007-03-06 2007-03-06 情報処理装置、その起動方法及び起動プログラム

Country Status (1)

Country Link
JP (1) JP5076559B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252536A (ja) * 2011-06-03 2012-12-20 Mitsubishi Electric Corp 情報処理装置及びその起動方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306327A (ja) * 2000-04-24 2001-11-02 I-O Data Device Inc Os起動前のアプリケーション実行方法及びデータ処理システム
JP2002091783A (ja) * 2000-09-12 2002-03-29 Matsushita Electric Ind Co Ltd 情報処理装置
JP2006268377A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd プログラム起動制御装置及びプログラム起動制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306327A (ja) * 2000-04-24 2001-11-02 I-O Data Device Inc Os起動前のアプリケーション実行方法及びデータ処理システム
JP2002091783A (ja) * 2000-09-12 2002-03-29 Matsushita Electric Ind Co Ltd 情報処理装置
JP2006268377A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd プログラム起動制御装置及びプログラム起動制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252536A (ja) * 2011-06-03 2012-12-20 Mitsubishi Electric Corp 情報処理装置及びその起動方法

Also Published As

Publication number Publication date
JP5076559B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
US7356680B2 (en) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
US8402437B2 (en) System and method for updating initialization parameters for application software from within a software development environment
US8364643B2 (en) Method and system thereof for restoring virtual desktops
RU2439678C2 (ru) Начальная загрузка операционной системы раздельными стадиями
US8190653B2 (en) Automatic file conversion to a target format
US9152432B2 (en) System and method to accelerate access to network data using a networking unit accessible non-volatile storage
US8607239B2 (en) Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
US20090064197A1 (en) Driver installer usable in plural environments
TW200901039A (en) Resource manager and method
US20060053228A1 (en) Method and apparatus for allowing sharing of streamable applications
JP2010020759A (ja) ロックをスレッドに割り当てる方法、装置
US20090307680A1 (en) Side-by-side driver installation
US9430222B2 (en) Controlling a running application for live scene graph editing
KR20120027219A (ko) 오퍼레이팅 시스템 상태의 캡처링 및 로딩
JP5076559B2 (ja) 情報処理装置、その起動方法及び起動プログラム
JP2009104443A (ja) Osの起動方法
US8694989B1 (en) Virtual installation environment
US8280950B2 (en) Automatic client-server code generator
JP5846016B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
Merenstein et al. F3: Serving files efficiently in serverless computing
JP2003330736A (ja) 不正リソース利用防止システム及びその方法並びにプログラム
US20110078709A1 (en) Distributed Management of Native Interface Metadata and Arrays
US20090313429A1 (en) Disk-based operating environment management system and method thereof
JP2013080386A (ja) 情報処理装置、アドレス管理方法
US20080184237A1 (en) Data processing apparatus and application launching method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120710

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5076559

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees