JPH0895757A - マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置 - Google Patents

マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置

Info

Publication number
JPH0895757A
JPH0895757A JP22033195A JP22033195A JPH0895757A JP H0895757 A JPH0895757 A JP H0895757A JP 22033195 A JP22033195 A JP 22033195A JP 22033195 A JP22033195 A JP 22033195A JP H0895757 A JPH0895757 A JP H0895757A
Authority
JP
Japan
Prior art keywords
program
shared library
loading
loader
dynamic
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
JP22033195A
Other languages
English (en)
Inventor
Lee Barton Gary
ギャリー・リー・バートン
Yun Chao Chin
チン・ユン・チャオ
Michel Maggi James
ジェームズ・マイケル・マジー
Mankovski Richard
リチャード・マンコフスキ
O Metaf Binkesh
ヴィンケッシュ・オー・メフタ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0895757A publication Critical patent/JPH0895757A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 マイクロカーネル・オペレーティング・シス
テムを始動する際の効率を改善する。 【解決の手段】 マスタ・サーバ・プログラム・ローダ
は、マイクロカーネル・システムのメモリ内の多数の様
々なプログラムおよび共用ライブラリのロードを容易に
するように設計される。マスタ・サーバは、ローダ、動
的リンカおよび動的ローダの3つの構成要素を有する。
ローダは、始動前に実行可能プログラムをターゲット・
タスクにロードする。動的リンカは、始動前に共用ライ
ブラリ・オブジェクトをターゲット・タスクとリンクさ
せる。動的ローダは、プログラムの実行時に共用ライブ
ラリ・オブジェクトをロードする。プログラム・ロード
方法は、ローダがターゲット・プログラムをターゲット
・タスクにロードし、動的リンカに制御を移すことから
始まる。次に、動的リンカが共用ライブラリ・オブジェ
クトをターゲット・タスクにリンクし、制御をマスタ・
サーバに移す。次にマスタ・サーバが、制御をターゲッ
ト・プログラムに移して終了する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本明細書に開示する本発明
は、広義にはデータ処理システムに関し、より詳細には
データ処理システム用のオペレーティング・システムの
改善に関する。
【0002】
【従来の技術】本明細書で開示する本発明はまた、イン
ターナショナル・ビジネス・マシーンズ・コーポレイシ
ョンに譲渡され、参照により本明細書に組み込まれた、
1994年9月9日出願のラーム・ケー・グプタ(Ram
K.Gupta)、ラヴィ・スリニバサン(Ravi Srinivasa
n)、デニス・アッカーマン(Dennis Ackerman)および
ヒマンシュ・デサイ(Himanshu Desai)の"EXCEPTION H
ANDLING METHOD AND APPARATUS FOR A MICROKERNEL DAT
A PROCESSING SYSTEM"と題する同時係属の米国特許出願
第303796号(IBM整理番号BC9−94−07
2)にも関連する。
【0003】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年9月9日出願のハーディープ・シン(Hardeep
Singh)、ガイ・ソトマイヤー(Guy Sotomayor)、ガリ
ー・バートン(Gary Barton)、フリーマン・ローソン
(Freeman Rawson)、チン・ヤン・チャオ(Ching Yun
Chao)およびチャールズ・ジュン(Charles Jung)の"B
ACKING STORE MANAGEMENT METHOD AND APPARATUS FOR A
MICROKERNEL DATA PROCESSING SYSTEM"と題する同時係
属の米国特許出願第303851号(IBM整理番号B
C9−94−087)にも関連する。
【0004】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年6月21日出願のガイ・ジー・ソトマイヤー・
ジュニア(Guy G.Sotomayor,Jr.)、ジェームズ・エム
・マジー(James M.Magee)、フリーマン・エル・ロー
ソン三世(Freeman L.Rawson,III)の"METHOD AND APPA
RATUS FOR MANAGEMENT OF MAPPED AND UNMAPPED REGION
S OF MEMORY IN A MICROKERNEL DATA PROCESSINGSYSTE
M"と題する同時係属の米国特許出願第263710号
(IBM整理番号BC9−94−053)にも関連す
る。
【0005】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年6月21日出願のジェームズ・エム・マジー他
の"CAPABILITY ENGINE METHOD AND APPARATUS FOR A MI
CROKERNEL DATA PROCESSING SYSTEM"と題する同時係属
の米国特許出願第263313号(IBM整理番号BC
9−94−071)にも関連する。
【0006】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年6月21日出願のジェームズ・エム・マジー他
の"TEMPORARY DATA METHOD AND APPARATUS FOR A MICRO
KERNEL DATA PROCESSING SYSTEM"と題する同時係属の米
国特許出願第263633号(IBM整理番号BC9−
94−076)にも関連する。
【0007】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年6月21日出願のジェームズ・エム・マジー他
の"MESSAGE CONTROL STRUCTURE REGISTRATION METHOD A
ND APPARATUS FOR A MICROKERNEL DATA PROCESSING SYS
TEM"と題する同時係属の米国特許出願第263703号
(IBM整理番号BC9−94−077)にも関連す
る。
【0008】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年6月21日出願のジェームズ・エム・マジー他
の"ANONYMOUS REPLY PORT METHOD AND APPARATUS FOR A
MICROKERNEL DATA PROCESSING SYSTEM"と題する同時係
属の米国特許出願第263709号(IBM整理番号B
C9−94−080)にも関連する。
【0009】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年7月27日出願のアジーザ・ブシュラ・ファル
ーキー(Aziza Bushra Faruqi)他の"SEPARATION OF TR
ANSMISSION CONTROL METHOD AND APPARATUS FOR A MICR
OKERNEL DATA PROCESSING SYSTEM"と題する同時係属の
米国特許出願第281217号(IBM整理番号BC9
−94−081XX)にも関連する。
【0010】本明細書で開示する本発明はまた、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンに譲渡され、参照により本明細書に組み込まれた、1
994年9月9日出願のラーム・ケー・グプタ、ラヴィ
・スリニバサン、デニス・アッカーマンおよびヒマンシ
ュ・デサイの"PAGE TABLE ENTRY MANAGEMENT METHODAND
APPARATUS FOR A MAICROKERNEL DATA PROCESSING SYST
EM"と題する同時係属の米国特許出願第303805号
(IBM整理番号BC9−94−073)にも関連す
る。
【0011】オペレーティング・システムはコンピュー
タ上で動作する最も重要なソフトウェアである。汎用コ
ンピュータはすべて、他のプログラムを実行するために
オペレーティング・システムを備えていなければならな
い。オペレーティング・システムは通常、キーボードか
らの入力を認識し、出力を表示画面に送り、ディスク上
のファイルとディレクトリを追跡し、ディスク・ドライ
ブやプリンタなどの周辺装置を制御するなどの基本的タ
スクを実行する。より複雑なシステムでは、オペレーテ
ィング・システムはより大きな責任と能力を有する。オ
ペレーティング・システムは、同時に動作する様々なプ
ログラムおよびユーザが互いに干渉しないようにする。
また、オペレーティング・システムは、一般に機密保護
の責任を持ち、無許可ユーザがシステムにアクセスしな
いようにする。
【0012】オペレーティング・システムは、マルチユ
ーザ・オペレーティング・システム、マルチプロセッサ
・オペレーティング・システム、マルチタスク・オペレ
ーティング・システム、およびリアルタイム・オペレー
ティング・システムに分類することができる。マルチユ
ーザ・オペレーティング・システムは、複数のユーザが
プログラムを同時に実行できる。同時に数百あるいは数
千人のユーザがログオン可能なオペレーティング・シス
テムもある。マルチプロセッシング・プログラムは、1
人のユーザが複数のプログラムを同時に実行できる。実
行される各プログラムはプロセスと呼ばれる。大部分の
マルチプロセッシング・システムは、複数のユーザをサ
ポートする。マルチタスク・システムは、単一のプロセ
スが複数のタスクを実行できる。普通の用語法では、マ
ルチタスキングとマルチプロセッシングの語は、少し異
なる意味をもつ場合でもしばしば交換可能に使用され
る。マルチタスキングは、プログラムであるタスクを複
数同時に実行する機能である。マルチタスキングでは、
1つの中央演算処理装置が関与するだけであるが、1つ
のプログラムから別のプログラムに迅速に切り替わり、
すべてのプログラムを同時に実行しているような外観を
与える。マルチタスキングには、プリエンプティブ(pr
eemptive)と協調型(cooperative)の2つの基本的な
種類がある。プリエンプティブ・マルチタスキングで
は、オペレーティング・システムがCPUのタイム・ス
ライスを各プログラムに分配する。協調型マルチタスク
では、各プログラムが必要な限りCPUを制御すること
ができる。しかしあるプログラムがCPUを使用してい
ない場合は、別のプログラムにCPUを一時的に使用さ
せることができる。たとえば、OS/2(商標)および
UNIX(商標)オペレーティング・システムはプリエ
ンプティブ・マルチタスキングを使用し、Macint
osh(商標)コンピュータ用のMulti−Find
er(商標)は協調型マルチタスキングを使用する。マ
ルチプロセッシングとは、コンピュータ・システムが複
数のプロセスまたはプログラムを同時にサポートできる
能力を言う。マルチプロセッシング・オペレーティング
・システムは、いくつかのプログラムを並行して動作さ
せることができる。マルチプロセッシング・システム
は、オペレーティング・システムが競合する各プロセス
に資源を適正に割り振らなければならないので、単一プ
ロセス・システムよりもずっと複雑になる。リアルタイ
ム・オペレーティング・システムは、入力に対して即座
に応答する。DOSやUNIXなどの汎用オペレーティ
ング・システムはリアルタイムではない。
【0013】オペレーティング・システムは、アプリケ
ーション・プログラムがその上で動作できるソフトウェ
ア・プラットフォームを提供する。アプリケーション・
プログラムは一般に、特定のオペレーティング・システ
ム上で動作するように明確に書かれなければならない。
したがって、オペレーティング・システムの選択によ
り、実行できるアプリケーションがほぼ決定される。I
BM互換パーソナル・コンピュータでは、オペレーティ
ング・システムの例は、DOS、OS/2(商標)、A
IX(商標)、XENIX(商標)である。
【0014】ユーザは一般に1組のコマンドによってオ
ペレーティング・システムと対話する。たとえば、DO
Sオペレーティング・システムには、ファイルをコピー
するCOPYやファイル名を変更しRENAMEなどの
コマンドが含まれる。コマンドは、コマンド・プロセッ
サまたはコマンド・インタープリタと呼ばれるオペレー
ティング・システムの一部分によって受け入れられ実行
される。
【0015】パーソナル・コンピュータ用には、CP/
M(商標)、DOS、OS/2(商標)、UNIX(商
標)、XENIX(商標)、AIX(商標)などの様々
なオペレーティング・システムがある。CP/Mは、小
型コンピュータ用の最初のオペレーティング・システム
の1つであった。CP/Mは最初様々なパーソナル・コ
ンピュータで使用されたが、結局DOSのために影が薄
くなった。DOSは、すべてのIBM互換パーソナル・
コンピュータ上で動作する、単一ユーザ、単一タスクの
オペレーティング・システムである。OS/2はDOS
の後継OSであり、インテル80286またはそれ以降
のマイクロプロセッサを使用するIBM互換パーソナル
・コンピュータ上で動作する比較的強力なオペレーティ
ング・システムである。OS/2は、一般にDOSと互
換性があるが他に多くの機能を含み、たとえばマルチタ
スキングであり仮想メモリをサポートする。UNIXお
よびUNIXをベースとするAIXは、様々なパーソナ
ル・コンピュータおよびワークステーション上で動作す
る。UNIXとAIXは、ワークステーション用の標準
オペレーティング・システムになってきており、強力な
マルチユーザ、マルチプロセッシング・オペレーティン
グ・システムである。
【0016】1981年に、IBMパーソナル・コンピ
ュータが米国で導入されたとき、DOSオペレーティン
グ・システムは約10キロバイトの記憶域を占有してい
た。それ以後、パーソナル・コンピュータはますます複
雑になり、ますます大きなオペレーティング・システム
を必要とする。今日、たとえば、IBMパーソナル・コ
ンピュータ用のOS/2オペレーティング・システム
は、22メガバイトもの記憶域を占有する。パーソナル
・コンピュータは時間が経つにつれてますます複雑で強
力になってきており、これらのシステムに関連する記憶
装置上で大きな記憶域を占有するという犠牲を払わず
に、引き続きサイズと複雑さを増大させることができな
いことは明らかである。
【0017】このようにオペレーティング・システムの
サイズの増大率に耐えられないため、1980年代にCa
rnegie Mellon UniversityにおいてMACHプロジェク
トが実施された。この研究の目的は、コンピュータ・プ
ログラマが、現れた最新ハードウェア・アーキテクチャ
を利用することができ、しかもカーネル・オペレーティ
ング・システムのサイズと機構数を減少する、新しいオ
ペレーティング・システムを開発することであった。カ
ーネルは、ハードウェア資源の割振りなどの基本機能を
実行するオペレーティング・システムの一部分である。
MACHカーネルの場合、システム用の基本ビルディン
グ・ブロックとして5つのプログラミング概念が確立さ
れた。それらの概念は、カーネルの外部で典型的な複雑
な操作をその上に構築できる、有用なシステムを作成す
るのに最低限必要なものとして選択された。Carnegie M
ellonのMACHカネールは、リリース3.0でサイズ
が縮小され、MACHマイクロカーネルと呼ばれる完全
に機能するオペレーティング・システムになった。MA
CHマイクロカーネルは、タスク、スレッド、ポート、
メッセージ、メモリ・オブジェクトの各プリミティブを
有する。
【0018】従来のUNIXプロセスは、MACHマイ
クロカーネルにおいては別々の2つの構成要素に分割さ
れる。第1の構成要素は、1群の協調エンティティ用の
すべての資源を含むタスクである。タスク中の資源の例
には、仮想メモリや通信ポートがある。タスクとは、受
動的な資源の集合であり、したがってプロセッサ上では
動作しない。
【0019】スレッドは、UNIXプロセスの第2の構
成要素であり、能動的な実行環境である。各タスクは、
スレッドと呼ばれる1つまたは複数の並行して実行され
る計算をサポートできる。たとえば、マルチスレッド・
プログラムは、あるスレッドを使って科学計算を計算
し、同時に別のスレッドでユーザ・インターフェースを
監視する。MACHタスクは、すべてが同時に動作する
多数の実行スレッドを有することができる。MACHプ
ログラミング・モデルの能力の大部分は、あるタスク内
のすべてのスレッドがタスクの資源を共有することから
得られる。たとえば、それらのスレッドはすべて同じ仮
想メモリ(VM)アドレス空間を有する。ただし、ある
タスク内の各スレッドは、それ自体専用の実行状態を有
する。この状態は、汎用レジスタ、スタック・ポイン
タ、プログラム・カウンタ、フレーム・ポインタなどの
1組のレジスタから成る。
【0020】ポートは、スレッドが互いに通信するため
の通信チャネルである。ポートは資源であり、タスクに
よって所有される。スレッドは、タスクに属することに
よってポートへのアクセス権を得る。協調型プログラム
では、あるタスクのスレッドが別のタスク内のポートに
対するアクセス権を獲得できる。重要な特徴は、スレッ
ドがロケーション透過性であることである。この機能に
よって、プログラムの修正なしにネットワーク上でのサ
ービスの配布が容易になる。
【0021】メッセージは、異なるタスク内のスレッド
が互いに通信できるようにするために使用される。メッ
セージは、所与のクラスまたはタイプのデータの集合を
含む。このデータは、数または文字列などプログラム特
有のデータから、ポートの諸機能をあるタスクから別の
タスクへ移送するなどのMACH関連データにまで及
ぶ。
【0022】メモリ・オブジェクトは、ユーザ・レベル
のプログラムにおいて従来のオペレーティング・システ
ムの諸機能を実行する能力をサポートする概念であり、
MACHマイクロカーネルの重要な特徴である。たとえ
ば、MACHマイクロカーネルは、ユーザ・レベルのプ
ログラムにおいて仮想メモリのページング方針をサポー
トする。メモリ・オブジェクトは、この能力をサポート
する概念である。
【0023】これらの概念はすべて、MACHマイクロ
カーネル・プログラミング・モデルにとって基本的なも
のであり、カーネル自体の中で使用される。Carnegie M
ellon UniversityのMACHマイクロカーネルのこれら
の概念およびその他の特徴は、ジョセフ・ボイキン(Jo
seph Boykin)著"Programming Under MACH"、AddisonWe
ssely Publishing Company、1993年に記載されてい
る。
【0024】UNIXのパーソナリティをサポートする
ためのマイクロカーネルの使用に関する他の議論は、マ
イク・アセッタ(Mike Accetta)他の"MACH:A New Kern
el Foundation for UNIX Development"、Proceedings o
f the Summer 1986 USENIX Conference、米国ジョージ
ア州アトランタ論文に出ている。この話題に関するもう
1つの技術論文は、デビッド・ゴルブ(David Golub)
他の論文"UNIX as an Application Program"、Proceedi
ngs of the Summer 1990 USENIX Conference、米国カリ
フォルニア州アナハイムである。
【0025】前記同時係属の米国特許出願第26371
0号には、図1に示した、オペレーティング・システム
用の新しい基礎であるマイクロカーネル・システム11
5が記載されている。マイクロカーネル・システム11
5は、純粋なカーネルとして実施される1組の簡潔なカ
ーネル・サービスと、1組のユーザ・レベル・サーバと
して実施される、オペレーティング・システムのパーソ
ナリティを構築するための1組の大規模なサービスとを
提供する。マイクロカーネル・システム115は、様々
な従来のオペレーティング・システムの諸機能を提供
し、オペレーティング・システムのパーソナリティとし
て現出する多数のサーバ構成要素からなる。マイクロカ
ーネル・システム115は、タスク(クライアント)
が、通信チャネル上を送られるメッセージを介して他の
タスク(サーバ)に要求することによってサービスにア
クセスする、クライアント/サーバ・システム構造を使
用する。マイクロカーネル120は、それ自体では極め
て少数のサービスしか提供しないので(たとえば、ファ
イル・サービスは提供しない)、マイクロカーネル12
0のタスクは、必要なサービスを提供する他の多数のタ
スクと通信しなければならない。
【0026】マイクロカーネル・システム115を構成
する構成要素プログラムが多種多様でかつ多数あるた
め、セッションの開始時に大きなプログラム・ロード負
荷が課される。マイクロカーネル120自体を除き、す
べてのパーソナリティ・ニュートラル・サーバ(person
ality neutral server)およびパーソナリティ・プログ
ラム(personality program)は、ユーザ・アドレス空
間内で動作する。多数の共用ライブラリを有する構成要
素プログラムのシステムを始動させて、所望の調整され
た方式で動作を開始させるには何らかの手段が必要であ
る。
【0027】
【発明が解決しようとする課題】したがって、本発明の
目的は、マイクロカーネル・オペレーティング・システ
ムの始動時の効率を改善することである。
【0028】本発明のもう1つの目的は、マイクロカー
ネル・アーキテクチャにおける様々な構成要素プログラ
ムの始動時の調整を改善することである。
【0029】本発明の他の目的は、マイクロカーネル・
システムにおける複数のプログラムおよびその共用ライ
ブラリの始動操作を改善することである。
【0030】
【課題を解決するための手段】上記その他の目的、特徴
および利点は、本明細書に開示したマスタ・サーバ・プ
ログラム・ロード方法および装置によって達成される。
このマスタ・サーバ・プログラム・ロード方法は、マイ
クロカーネル・システムのメモリ内の多数の様々なプロ
グラムおよび共用ライブラリのロードを容易にするよう
に設計される。マスタ・サーバは、ローダ、動的リンカ
および動的ローダの3つの構成要素を有する。ローダ
は、始動前に実行可能プログラムをターゲット・タスク
内にロードするものである。動的リンカは、始動前に共
用ライブラリ・オブジェクトをターゲット・タスクとリ
ンクさせるものである。動的ローダは、プログラムの実
行時に共用ライブラリ・オブジェクトをロードするもの
である。このプログラム・ロード方法は、ローダがター
ゲット・プログラムをターゲット・タスク内にロード
し、制御を動的リンカに移すことから始まる。次に動的
リンカが、共用ライブラリ・オブジェクトをターゲット
・タスクにリンクし、制御をマスタ・サーバに移す。次
にマスタ・サーバが、制御をターゲット・プログラムに
移して終了する。
【0031】本発明の1つの特徴は、メモリ内で共用ラ
イブラリ・オブジェクトを再配置するために、再配置情
報データをターゲット・タスク内に記憶することであ
る。動的リンカが再配置情報にアクセスして、共用ライ
ブラリ・オブジェクトにより再配置操作を実行する。動
的ローダはまた、実行時に共用ライブラリ・オブジェク
トにより再配置操作を実行する必要がある場合、そのと
き再配置情報にアクセスする。
【0032】このように、このマスタ・サーバ・プログ
ラム・ロード方法および装置は、マイクロカーネル・シ
ステムのメモリ内の多数の様々なプログラムおよび共用
ライブラリのロードを容易にする。
【0033】
【発明の実施の形態】
パートA.マイクロカーネル 第1章 マイクロカーネルの原理 図1は、マイクロカーネル・システム115の機能ブロ
ック図であり、様々なハードウェア・プラットフォーム
上でマイクロカーネル120およびパーソナリティ・ニ
ュートラル・サービス(PNS)140が複数のオペレ
ーティング・システム・パーソナリティ150をどのよ
うに実行するかを示す。
【0034】図1に示したホスト・マルチプロセッサ1
00は、補助記憶装置106にバス104によって接続
されたメモリ102を含む。補助記憶装置106は、た
とえばディスク・ドライブ、読取り専用または読み書き
光記憶装置、あるいはその他の任意の大容量記憶装置で
よい。これは、データをオリジナル・フォーマットで記
憶する補助データ・ソースである。これは、大量記憶装
置、データ通信装置、揮発性データ記憶装置、不揮発性
データ記憶装置、磁気データ記憶装置、光データ記憶装
置、書込み可能なランダム・アクセス・メモリ、プログ
ラマブル読取り専用メモリ、読取り専用メモリ、ローカ
ル・エリア・ネットワーク、分散処理ネットワーク、ま
たは遠隔通信ネットワークでよい。バス104には入出
力アダプタ108も接続され、この入出力アダプタ10
8は、キーボード、モニタ・ディスプレイ、遠隔通信ア
ダプタ、ローカル・エリア・ネットワーク・アダプタ、
モデム、マルチメディア・インターフェース装置、また
は他の入出力装置に接続されていてもよい。バス104
はまた、第1のプロセッサA 110、と第2のプロセ
ッサB 112にも接続されている。図1に示した例
は、対称マルチプロセッサ構造のものであり、2つの単
一プロセッサ110および112が共通のメモリ・アド
レス空間102を共用する。同様な適切な例として、単
一または複数プロセッサの他の構成を示すこともでき
る。プロセッサは、たとえばインテル386(商標)C
PU、インテル486(商標)CPU、ペンティアム
(商標)プロセッサ、またはその他の単一プロセッサ装
置など他の型式のものでもよい。
【0035】メモリ102には、マイクロカーネル・シ
ステム115が記憶され、マイクロカーネル・システム
115は、マイクロカーネル120、マシン依存コード
125、パーソナリティ・ニュートラル・サービス14
0、およびパーソナリティ・サーバ150を含む。マイ
クロカーネル・システム115は、メモリ102内に格
納されたアプリケーション・プログラム180用のオペ
レーティング・システムとして働く。
【0036】本発明の目的は、UNIXやOS/2など
の従来のオペレーティング・システムのように振る舞う
オペレーティング・システムを提供することである。つ
まり、そのオペレーティング・システムは、OS/2ま
たはUNIX、あるいは従来の他のオペレーティング・
システムのパーソナリティを有することになる。
【0037】マイクロカーネル120は、計算機の基本
動作を制御する、ホスト・マルチプロセッサ100の最
優先状態で動作する、システム・ソフトウェアのメッセ
ージを受け渡す小さな核を含む。マイクロカーネル・シ
ステム115は、マイクロカーネル120と、パーソナ
リティ・ニュートラル・サービス140を提供する1組
のサーバおよびデバイス・ドライバとを含む。名前が意
味するように、パーソナリティ・ニュートラル・サーバ
およびデバイス・ドライバは、UNIXやOS/2など
のどんなパーソナリティにも依存しない。パーソナリテ
ィ・ニュートラル・サーバおよびデバイス・ドライバ
は、マイクロカーネル120に依存しかつ互いに依存し
あう。パーソナリティ・サーバ150は、マイクロカー
ネル120のメッセージ受渡しサービスを利用してパー
ソナリティ・ニュートラル・サービス140と通信す
る。たとえば、UNIX、OS/2または他のパーソナ
リティ・サーバは、パーソナリティ・ニュートラル・デ
ィスク・ドライバにメッセージを送って、ディスクから
データのブロックを読み取るよう依頼する。ディスク・
ドライバは、そのブロックを読み取ってメッセージ中で
戻す。メッセージ・システムは、ポインタを操作するこ
とより大量のデータが迅速に転送されるように最適化さ
れ、したがってデータ自体はコピーされない。
【0038】マイクロカーネル120は、そのサイズな
らびに標準プログラミング・サービスとアプリケーショ
ン・プログラムとしての機能をサポートできる能力のた
めに、標準のオペレーティング・システムよりも単純で
ある。マイクロカーネル・システム115は、様々な形
で構成されるモジュール式断片に分割され、断片を小さ
な断片に加えることにより大きなシステムを構築でき
る。たとえば、各パーソナリティ・ニュートラル・サー
バ140は論理的に分離しており、様々な形で構成する
ことができる。各サーバは、アプリケーション・プラグ
ラムとして動作し、アプリケーション・デバッガを使っ
てデバッグすることができる。各サーバは、別々のタス
ク内で動作し、サーバ内のエラーはそのタスクに制限さ
れる。
【0039】図1は、プロセス間通信モジュール(IP
C)122、仮想メモリ・モジュール124、タスクお
よびスレッド・モジュール126、ホストおよびプロセ
ッサ・セット128、入出力サポートおよび割込み13
0、マシン依存コード125を含むマイクロカーネル1
20を示す。
【0040】本発明によれば、図1に示したパーソナリ
ティ・ニュートラル・サービス140は、マスタ・サー
バ142を含み、マスタ・サーバ142はローダ19
0、動的リンカ192および動的ローダ194を含む。
マスタ・サーバ142は、マイクロカーネル・システム
115内の様々なプログラム構成要素および共用ライブ
ラリを調整された形でロードする責任を負う。本発明の
マスタ・サーバ・プログラムのロード動作の詳細な考察
を以下に示す。
【0041】また、図1のパーソナリティ・ニュートラ
ル・サービス140は、メモリ・オブジェクト管理モジ
ュール143および補助記憶管理モジュール145を備
えるデフォルト・ページャ144を含む。パーソナリテ
ィ・ニュートラル・サービス140はまた、複数パーソ
ナリティ・サポート/パーソナリティ・ニュートラル・
デバイス・ドライバ147を含むデバイス・サポート1
46も含む。パーソナリティ・ニュートラル・サービス
140はさらに、ファイル・サーバ、ネットワーク・サ
ービス、データベース・エンジンおよびセキュリティを
含む他のパーソナリティ・ニュートラル・プロダクト1
48も含む。
【0042】パーソナリティ・サーバ150は、たとえ
ばUNIXパーソナリティなどの主要パーソナリティ1
52である。パーソナリティ・サーバ150は、UNI
Xサーバとなる補助空間用管理エンティティ154など
の主要パーソナリティ・サーバ、およびUNIX主要パ
ーソナリティをサポートする入出力システム・デバイス
・ドライバ155などの他の主要パーソナリティ・サー
ビスを含む。代替主要パーソナリティ156は、たとえ
ばOS/2でよい。代替パーソナリティ156には、補
助空間用管理エンティティ158などOS/2パーソナ
リティを特徴づける代替パーソナリティ・サーバと、入
出力システム・デバイス・ドライバ159などOS/2
用の他の代替パーソナリティ・サービスとが含まれる。
【0043】図1に示した、UNIX主要パーソナリテ
ィの例に関連する主要パーソナリティ・アプリケーショ
ン182は、UNIXオペレーティング・システム・パ
ーソナリティ152上で動作するUNIX型アプリケー
ションである。図1に示した代替パーソナリティ・アプ
リケーション186は、OS/2代替パーソナリティ・
オペレーティング・システム156上で動作するOS/
2アプリケーションである。図1には、本発明による再
配置情報214を含むタスク210も示されている。タ
スク210内に再配置情報を配置することによって、そ
のタスクに関してプログラム・ロード操作を実行するた
めに、動的リンカ192と動的ローダ194がこの情報
を迅速に取り出せるようになる。
【0044】図1では、マイクロカーネル・システム1
15がその実施を、あるタイプのプロセッサから別のタ
イプのプロセッサに完全に移植可能なコードと、実行し
ている特定装置内のプロセッサ・タイプに依存するコー
ドとに入念に分割する。マイクロカーネル・システム1
15はまた、デバイスに依存するコードをデバイス・ド
ライバに分離し、したがって、デバイス・ドライバ・コ
ードはデバイス依存であるが、必ずしもプロセッサ・ア
ーキテクチャに依存しない。マイクロカーネル・システ
ム115は、タスクごとに複数のスレッドを使用するこ
とによって、どれか特定の装置がマルチプロセッサであ
ることを必要とせずにマルチプロセッサを使用できるア
プリケーション環境を提供する。単一プロセッサ上で
は、様々なスレッドが異なる時間に動作する。複数のプ
ロセッサに必要なサポートはすべて、小さく単純なマイ
クロカーネル120に集中される。
【0045】上記の特許出願に、アーキテクチャ・モデ
ル、タスク、スレッド、ポート、およびプロセス間通信
を含むマイクロカーネル・システム115と、マイクロ
カーネル120の諸機能のより詳細な説明が出ている。
マイクロカーネル120によって提供される仮想環境
は、カーネルによって提供されるエミュレートされた命
令(システム・トラップ)によって増補された、ユーザ
空間からアクセス可能なすべてのハードウェア命令を実
行する仮想プロセッサからなり、この仮想プロセッサ
は、1組の仮想レジスタと、他の点ではマシンの物理メ
モリと同様に応答する何らかの仮想メモリにアクセスす
る。他のすべてのハードウェア資源は、メモリ・アクセ
スとエミュレートされた命令の特別な組合せによっての
みアクセス可能である。当然ながら、スレッドによって
提示された命令を実際に実行するのは物理プロセッサで
ある。
【0046】スレッドを実行できる物理プロセッサはそ
れぞれ、プロセッサ制御ポートと呼ばれる。それらのプ
ロセッサは、実際の作業を行う点では重要であるが、マ
イクロカーネルにおいてはプロセッサ・セットのメンバ
として以外はあまり重要でない。プロセッサ・セット
は、1組のスレッドのスケジュールを立てるために使用
されるプロセッサのプールの基礎を構成し、それと関連
したスケジューリング属性を有する。プロセッサのため
にサポートされる操作には、プロセッサ・セットに対す
る指定、および始動や停止などの装置制御が含まれる。
【0047】メモリ管理 カーネルは、何らかのメモリ管理を提供する。メモリ
は、タスクと関連付けされる。メモリ・オブジェクト
は、タスクがメモリ管理を制御するための手段である。
マイクロカーネル・システム115は、大型で潜在的に
疎らな仮想アドレス空間をサポートするための機構を提
供する。各タスクは、カーネルによって維持されタスク
のアドレス空間における仮想アドレスの物理アドレスへ
の変換を制御する、関連アドレス・マップを有する。仮
想メモリ・システム内と同様に、所与のタスクのアドレ
ス空間全体の内容が完全に物理メモリ内に同時に常駐す
るわけではなく、タスクの仮想アドレス空間用のキャッ
シュとして物理メモリを使用する機構がなければならな
い。従来の仮想メモリの設計とは違って、マイクロカー
ネル・システム115は、それ自体ですべてのキャッシ
ングを実施するわけでなない。マイクロカーネル・シス
テム115は、ユーザ・モードのタスクにこれらの機構
に関与する能力を与える。パーソナリティ・ニュートラ
ル・サービスは、メモリにページング・サービスを提供
するユーザ・タスクである、デフォルト・ページャ14
4を含む。
【0048】マイクロカーネル・システム115内の他
の資源と違って、仮想メモリはポートを使って参照され
ない。メモリは、特定のタスク・アドレス空間への索引
として仮想アドレスを使用することによってのみ参照す
ることができる。メモリと、タスクのアドレス空間を定
義する関連アドレス・マップとは、他のタスクと部分的
に共用することができる。タスクは、そのアドレス空間
内に新しいメモリ範囲を割り振り、それを割り振り解除
し、それに対する保護を変更することができる。タスク
はまた、その範囲の継承特性を指定できる。新しいタス
クは、新しいタスク用のアドレス空間を構築する基礎と
して既存のタスクを指定することによって作成される。
既存タスクの各メモリ範囲の継承属性によって、新しい
タスクがその定義された範囲を有するかどうかが決ま
り、またその範囲が仮想コピーされるかそれとも既存タ
スクと共用されるかどうかが決まる。メモリに関するほ
とんどの仮想コピー操作は、書込み時コピー最適化によ
って実施される。書込み時コピー最適化は、共用を保護
することによって実施される。2つのタスクは、コピー
するメモリを共用するが、読取り専用アクセスである。
いずれかのタスクが範囲の一部を修正しようとすると
き、その部分がその時点でコピーされる。このメモリ・
コピーの遅延評価は、マイクロカーネル・システム11
5によって実行される重要なパフォーマンス最適化であ
り、このシステムの通信/メモリの原理にとって重要で
ある。
【0049】マイクロカーネル・システム115では、
機能的に独立した多数のサーバ・プログラムによってサ
ービスが提供される。マイクロカーネル120自体を除
くすべてのサーバは、ユーザ・アドレス空間内で動作す
る。マスタ・サーバ142(MS)は、マイクロカーネ
ル・システム115内にプログラムおよび共用オブジェ
クト・ローダとして設計される。MSローダ190はシ
ステム起動中に早期に始動され、他のすべてのシステム
・サービスを始動させて、1つまたは複数のオペレーテ
ィング・システム環境を提供する。
【0050】図1は、ホスト・マルチプロセッサ100
のメモリ102内のマイクロカーネル・システム115
の機能ブロック図であり、マイクロカーネル120とパ
ーソナリティ・ニュートラル・サービス140が複数の
オペレーティング・システムパーソナリティをどのよう
に実行するかを示す。マスタ・サーバ142は、図1に
示したように、ローダ190、動的リンカ192、動的
ローダ194の3つのモジュールに区分される。すべて
のプログラムを、1つまたは複数の共用ライブラリと動
的にリンクすることができる。これらの共用ライブラリ
は、プログラム・ロード時にロードされる。外部データ
参照は、プログラム・ロード時に完全に解決される。外
部機能参照は、プログラム・ロード時に完全に解決する
ことも実行時間まで延期することもできる。共用ライブ
ラリはまた、プログラム実行中にロードしプログラムと
動的にリンクすることもでき、これがいわゆる動的ロー
ディングである。マスタ・サーバ142は、プログラム
自体をロードする基本ローダ190モジュールを含む。
動的リンカ192は、プログラム・ロードの一環として
すべての共用ライブラリをロードする、スタートアップ
・コードの一部分である。動的ローダ194は、必要な
らば、動的リンカ192によって提供されるサービスを
使用できる、プログラムの一部分である。動的リンカ1
92と動的ローダ194は共に、共用オブジェクトとし
て実現することができる。外部参照をターゲット・プロ
グラム220のアドレスで解決すると、(1)アドレス
変換が必要なく、(2)複数プロセッサには理想的なの
で、効率が高くなる。
【0051】本発明では、タスク210内に再配置情報
214を維持し、この再配置情報214は、動的リンカ
192および動的ローダ194のみならずデバッガおよ
び追跡ユーティリティにも役立つ。図2は、タスク21
0のメモリ・マップであり、再配置情報214の記憶場
所を示す。再配置情報214はまた、再配置情報に関す
るデータを含むメモリ・オブジェクトへのポインタとす
ることもできる。
【0052】再配置情報214は、ターゲット・プログ
ラム220空間内の、タスク210によって指示されマ
スタ・サーバ142に既知の場所に常駐するデータ構造
内にある。動的リンカ192が、そのデータ構造を作成
してマスタ・サーバ142ならびに動的ローダ194を
使用可能にする。情報は、動的リンカ192および動的
ローダ194の両方に必要なので、ターゲット・プログ
ラム220のアドレス空間内で情報を維持するとより効
率的である。マスタ・サーバ142はこの情報の場所を
知っているので、この情報にどうアクセスすべきかを知
っており、それをデバッガおよび追跡ユーティリティに
使用可能にすることができる。マスタ・サーバ142
が、動的リンカ192または動的ローダ194の遠隔手
順呼出しを介してではなく再配置情報214に直接アク
セスすることの利点は、デバッガでは通例のことである
が、ターゲット・プログラム220が一時中断されて
も、情報検索サービスが中断されないことである。
【0053】本発明では、プログラムの実行をプログラ
ムのロードとプログラムの始動に分割する。これを図3
の流れ図に示す。図3は、マスタ・サーバ142のプロ
グラム・ロード方法300の流れ図である。
【0054】プログラムを実行するために、マスタ・サ
ーバ142は、図3の段階310でターゲット・プログ
ラム220をロードして動的リンカ192に制御を渡
す。段階320で、動的リンカ192は必要なすべての
共用ライブラリをロードし、マスタ・サーバ142に制
御を戻す。次に段階330で、マスタ・サーバ142は
ターゲット・プログラム220に制御を戻す。プログラ
ムの実行を2段階に分けることの利点は、(1)異なる
1組の引数および環境文字列を動的リンカ192および
ターゲット・プログラム220に渡すことができ、フレ
キシビリティが高くなること、および(2)ターゲット
・プログラム220を既知の状態から始動したいデバッ
ガにとって理想的であるが、ロード後に別のエンティテ
ィによってターゲット・プログラム220を始動するこ
とができることである。
【0055】本発明では、ファイル管理機能を、マスタ
・サーバ142、外部メモリ・マネージャ、およびファ
イル・サーバの間で分割して、冗長性を回避する。
【0056】ローディングのパフォーマンスを改善する
ためには、プログラム・ファイルおよび共用ライブラリ
・ファイルを、実際にメモリ内にコピーするのではなく
メモリ空間にマップしなければならない。マスタ・サー
バ142のローダ190、動的リンカ192および動的
ローダ194は、ファイル・サーバからのマップ・イン
ターフェースを必要とする。システム起動の早期段階で
ファイル・サーバがないときは、プログラム・ファイル
はブートストラップ・タスクを介してアクセス可能にな
る。ブートストラップ・タスクはまた、ファイル・サー
バと同じマップ・インターフェースも提供する。ブート
ストラップ・タスクからマップされたファイルは、外部
メモリ・マネージャによって管理される。したがって、
この方法により、マイクロカーネル・システム115に
冗長機能が導入されるのを回避することができる。
【0057】マスタ・サーバ用のローダ190および動
的リンカ192 マスタ・サーバ142および関連ライブラリは、パーソ
ナリティ・ニュートラル・サービス・プログラムをロー
ドする能力をユーザに提供する。また、共用ライブラリ
を使用できる能力をパーソナリティ・ニュートラル・サ
ービス・プログラムに提供する。マスタ・サーバ142
のローダ190機能および動的リンカ192機能は、マ
スタ・サーバ・タスクとマスタ・サーバ142によって
始動されるパーソナリティ・ニュートラル・サービス・
タスクの間で分割される。これをさらに明らかにするた
めに、ローダ190と動的リンカ192の用語を以下の
ように使用する。
【0058】ローダ190−ローダ190はマスタ・サ
ーバ142内にあり、実行可能なプログラムをターゲッ
ト・タスク210内にロードする。動的リンカ192−
これは、本質的にライブラリであり、マスタ・サーバ1
42によって始動されたプログラムがこのライブラリと
リンクされる。動的ローダ194は、始動中に共用ライ
ブラリをロードし、再配置を実行する。動的リンカ19
2はまた、実行時に記号解決を提供するコードを有する
(LD_BIND_NOWフラグ)。
【0059】動的ローダ194−これは、実行時に共用
ライブラリをロード/アンロードするための、ライブラ
リ呼出しdl_open()、dl_close()、dl_sym()、およびdl_
error()をサポートする。したがって、動的リンカ19
2によって提供されるサービスを使用する。
【0060】ローダ190 マスタ・サーバ142内で動作するローダ190は、呼
出し側からの2つの異なる要求、MS_LoadResource およ
びMS_StartResourceとしてタスクをロードし始動するサ
ポートを提供する。その代わりに、単一の呼出しMS_Sta
rtResourceでタスクのロードと始動を行うこともでき
る。
【0061】このことは、マスタ・サーバ142が内部
でタスクのロードと開始を別々に実施していることを暗
示する。
【0062】プログラムのロードを最初のロードと次の
始動との別々の2つの段階に分離することが本発明の特
徴である。そのようにすることの利点は、タスクをロー
ドした後そのタスクを実行する前に第三者がタスクを操
作できることである。この特徴によりデバッガがタスク
に容易に接続できるようになるので、デバッガのような
システム保守ユーティリティがこの特徴から恩恵を受け
ることができる。
【0063】図4は、ローダ190によって実行される
方法400の流れ図である。
【0064】タスクのロード − ファイルを開いて認識する − ターゲット・タスク210上にセグメントをマップ
する − ターゲット・タスク210用のポートおよび他の初
期設定 − ターゲット・タスク210上で動的ローダを始動す
【0065】段階410:(a) ファイルを開いて認
識する マスタ・サーバ142のローダ190がファイルを開
き、ファイル・フォーマットを認識し、ファイル用のMo
dule_Handleを作成する(ELFの場合はそのElf Module
_Handle)。
【0066】段階420:(b) ターゲット・タスク
210上にセグメントをマップする ターゲット・タスク210上にセグメントをマップす
る。マップされるセグメントは実行可能ファイル用のも
のだけである。共用ライブラリはローダ190によって
マップされない。
【0067】マスタ・サーバ142のローダ190はま
た、ターゲット・タスク上にElf Module_Handleをvm
書込みする。Elf Module_Handleはまたプログラム・ヘ
ッダも含む。プログラム・ヘッダ情報は、実行可能プロ
グラムがテキスト・セグメント内に再配置要件(DT_
TEXTREL)を有する場合に、動的リンカを必要と
する。この場合、動的リンカ192は、テキスト・セグ
メントを識別し、このセグメント内での書込みが可能な
ように許可を変更することができなければならない。
【0068】段階430:(c) ターゲット・タスク
210用のポートおよび他の初期設定 ターゲット・タスク210用の他の初期設定を実行す
る。たとえば、ターゲット・タスク210用の例外ハン
ドラおよびポート名空間を占有する。
【0069】段階440:(d) ターゲット・タスク
210上で動的リンカ192を始動する この時点で、マスタ・サーバ142のローダ190が、
動的リンカ192に渡される引数を作成する。以下の引
数が動的リンカ192に供給される。 argv[1] int FILE TYPE(ELF,AOUT,XCOFF,…) argv[2] vm_address_t Elf_Module_Handleのアドレス
【0070】ターゲット・タスク210上でスレッドが
作成される。次に、argc、argvおよびスタック
が作成され、動的リンカ192が始動される。この時点
で、マスタ・サーバ142はローディングのその部分を
完了した。
【0071】段階450:この時点で、マスタ・サーバ
142は、ターゲット・タスク210から動的リンキン
グ完了の通知を待つだけでよい。
【0072】動的リンカ192は、インターフェースを
介してリンキング・プロセスの完了を知らせる。 MS_LinkNotify( ms_special_port, /*ターゲット・タスクのブートストラップ・ポートと同じ*/ target_task, /*ターゲット・タスク210のカーネル・ポート*/ linking_status /*動的リンカ192によって戻される状況*/ /* *linking status values: */ #define MS_LINK_STATUS_SUCCESS MS SUCCESS /*リンキング成功*/ #define MS_LINK_STATUS_NOFILE MS FILE NOTFOUND /*そのようなリップは見つからなかった*/ #define MS_LINK_STATUS_BADFILE MS FILE BADFORMAT /*ELFファイルではない*/
【0073】ターゲット・タスク210上の呼出しスレ
ッドは、この呼出しを行った後で終了する。
【0074】マスタ・サーバ142は、通知を受け取る
と通知の結果を呼出し側タスクに戻す。
【0075】MS_LoadResourceとMS_StartResource呼出
しは、次のように実施される。呼出し側のmig定義
は、マスタ・サーバ142のmig定義とは異なる。呼
出し側(クライアント)のmig定義は、同期呼出しの
ように見える。一方、マスタ・サーバ142(サーバ)
はそれを2つの同期呼出しに分割する。マスタ・サーバ
142(サーバ)のmig定義は、マスタ・サーバ14
2がLoad/StartResourceに対する要求を受け取るように
分割される。ターゲット・タスク210をロードした後
で、マスタ・サーバ142のサーバ・スレッドは、さら
に他の要求の処理準備完了を戻す。一方、呼出し側は待
ち続ける。ターゲット・タスク210がマスタ・サーバ
142に(MS_LinkNotifyにより)通知を出すときは、
動的リンキングの状況であり、マスタ・サーバ142は
別のIPCメッセージを送る。このメッセージは、実際
には、呼出し側によって行われるMS_LoadResource/MS_S
tartResource呼出しから戻された値として現れる。
【0076】タスクの始動 ローディングが成功した場合、タスクはただちに、ある
いは後で呼出し側から要求されたときに始動できる。
【0077】タスクを始動するために、ローダ190は
ターゲット・タスク内に新しいスレッドを作成する。次
に、argc、argvおよびスタックをセットする。
そしてスレッドが始動される。
【0078】動的リンカ192 動的リンカ192用のスタートアップ・コード 図5は、動的リンカ192によって実行される方法50
0の流れ図である。動的リンカ192は、始動時に以下
の機能を実行する。 段階510:(a) flag_relocatedを以下のようにセットする if (I(flag_relocated)){ ms InitDyneElfLinker(); /*下記段階(b)ないし(e)を呼び出す*/ flag_relocated++; return; } continue processing,main ()etc…
【0079】スタートアップ・コードが一番最初に呼び
出されるときは、再配置を実行して戻る。2回目の要求
では、再配置をスキップしユーザ・コードを呼び出す。
【0080】段階520:(b) ファイルがELFで
はない場合は、残りの初期設定をスキップする。
【0081】段階530:(c) 共用ライブラリの依
存関係リストを作成する。これには、2つの連係リス
ト、つまりElf_Module_handleの共用ライブラリ・リス
トおよびdep_entryの連係リストを更新する必
要がある。共用ライブラリのすべてのエントリは1のr
ef_countを有する。(本明細書の最後にあるデ
ータ構造の説明を参照のこと)
【0082】段階540:(d) すべての共用ライブ
ラリをマップする
【0083】段階550:(e) 実行可能ファイルお
よび共用ライブラリの再配置を実行する
【0084】動的ローダ194 dl *()機能の実行時サポート:サポートされる4つの機
能、dl_open()、dl_close()、dl_sym()、およびdl_writ
e()である。
【0085】dl_open() この機能は、動的リンカ192用のスタートアップ・コ
ードと類似している。図6は、動的ローダ194によっ
て実行される方法600の流れ図である。これは以下の
段階を含む。
【0086】段階610:(a) まず、図7に示した
既存の共用ライブラリ・リスト700中で共用ライブラ
リ710を探す。見つかった場合は、新しい依存関係リ
ストを作成し、この共用ライブラリおよびそのいずれか
の依存物のref_countを更新する。戻る。
【0087】段階620:(b) 共用ライブラリ71
0を開いて読み取り、フォーマットがELFかどうか確
認し、ELFではない場合はERRORを戻す。
【0088】段階630:(c) 図8の依存関係リス
ト800を作成する。依存関係リストを作成するとき
は、マップされていないがマップする必要のある共用ラ
イブラリをマップする。新しい共用ライブラリがマップ
されると、その共用ライブラリはref_countが
1の共用ライブラリ・リストに付加される。共用ライブ
ラリがすでにマップされている場合は、その参照カウン
トだけを更新する。
【0089】段階640:(d) これらの共用ライブ
ラリに必要な再配置を実行する
【0090】段階650:(e) 現依存関係リスト8
20を、依存関係リスト800の末尾810に付加する
(図8のデータ構造を参照のこと)。
【0091】段階660:(f) このテーブル800
用の現依存関係リスト820の先頭805であるハンド
ルを戻す。
【0092】dl_close(): (a)依存関係リストを削除し、依存関係リスト内のす
べての共用ライブラリの参照カウントを減少させる。
【0093】dl sym():実行可能ファイル(ハンド=N
ULL)の場合は、記号テーブルは動的リンキングに必
要な記号だけを有する。共用ライブラリの場合は、すべ
ての記号が使用可能である(共用ライブラリ用のelf
dumpに見られるように)。
【0094】dl error():このルーチンは、上記のdl_*
()呼出しの間に起こった最終エラーを抽出する。エラー
の値は静的バッファ内に戻される。
【0095】このバッファは、次の呼出しで上書きされ
る。スレッドは、新しい文字列をバッファ内に常にコピ
ーすることによって安全になる。
【0096】データ構造:図7は、共用ライブラリの連
係リスト700を示す。
【0097】図8は、依存関係リスト800を示す。
【0098】(a)マップされた共用ライブラリのリス
トは、Elf_Module_Handle構造に記憶される。
【0099】(b)初期オープン用およびすべてのdl_o
pen()用の依存関係リスト
【0100】図7に、共用ライブラリ連係リスト700
を示す。
【0101】図8に、依存関係リスト800を示す。
【0102】動的リンカ192および動的ローダ194
はタスク・アドレス空間内で動作し、ローダ190のア
ドレス空間内では動作しない。ロードするすべての共用
ライブラリおよびその場所のリストなど再配置情報21
4を記憶する理想的な場所はタスク内である。再配置情
報214は動的リンカ192によって構成され、動的ロ
ーダ194によって更新される。再配置情報214は、
デバッガなど他のタスクが利用できなければならない。
【0103】再配置情報214は、データ構造内の、マ
スタ・サーバ142内のローダ190、動的リンカ19
2および動的ローダ194に既知のアドレスに記憶され
る。デバッガなどのユーティリティ・プログラムは、マ
スタ・サーバ142からのみ情報を取り出す。 /*再配置情報214は次のように記憶される * *MS_RELOC_INFO *1番目のモジュールのMS_MODULE_INFO * 1番目のセグメントのプログラム・ヘッダ(Elf32_Phdr構造) * 2番目のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) * .... * 最後のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) *2番目のモジュールのMS_MODULE_INFO * 1番目のセグメントのプログラム・ヘッダ(Elf32_Phdr構造) * 2番目のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) * .... * 最後のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) *.... *.... *最後のモジュールのMS_MODULE_INFO * 1番目のセグメントのプログラム・ヘッダ(Elf32_Phdr構造) * 2番目のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) * .... * 最後のセグメントのプログラム・ヘッダ(Elf32-Phdr構造) */
【0104】再配置情報214のデータ構造とそれをす
べてのシステム構成要素が使用できるようにする方法が
本発明の特徴である。
【0105】利点は以下の通りである。 (1)最も便利な場所に記憶される。その場所は、タス
ク・アドレス空間内であり、動的リンカ192および動
的ローダ194もそこに配置される。 (2)マスタ・サーバ142を経由し1組のインターフ
ェースを介して他のユーティリティが使用できるように
なる。情報はマスタ・サーバ142に既知の場所にある
ので、マスタ・サーバ142はその情報をそのアドレス
空間にマップすることによって情報を取り出すことがで
きる。その情報は、タスクがデバッガによって中断され
ているときでも使用可能である。
【0106】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0107】(1)データ処理システムにおいて、デー
タ処理システム内にあり、データ構造およびプログラム
命令を記憶するメモリ手段と、前記メモリ手段に結合さ
れたバス手段と、メモリ手段に結合され、前記メモリ手
段に記憶された前記プログラム命令を実行するプロセッ
サ手段と、前記メモリ手段内のターゲット・タスクと、
前記メモリ手段内にあり、前記メモリ手段内にプログラ
ムをロードするマスタ・サーバ・プログラム・ロード手
段と、前記マスタ・サーバ・プログラム・ロード手段内
にあり、実行可能プログラムを前記ターゲット・タスク
内にロードするローダ手段と、前記マスタ・サーバ・プ
ログラム・ロード手段内にあり、共用ライブラリ・オブ
ジェクトを前記ターゲット・タスクにリンクさせる動的
リンカ手段とを含み、前記ローダ手段が、ターゲット・
プログラムを前記ターゲット・タスクにロードして制御
を前記動的リンカ手段に移し、前記動的リンカ手段が、
共用ライブラリ・オブジェクトをロードし、前記共用ラ
イブラリ・オブジェクトを前記ターゲット・タスクにリ
ンクさせ、制御をマスタ・サーバ・プログラム・ロード
手段に移し、前記マスタ・サーバ・プログラム・ロード
手段が、制御を前記ターゲット・プログラムに移すこと
を特徴とするプログラム・ロード装置 (2)前記ターゲット・タスク内にあり、前記メモリ内
で前記共用ライブラリ・オブジェクトを再配置するため
の再配置情報データをさらに含み、前記動的リンカが、
前記再配置情報にアクセスし、前記共用ライブラリ・オ
ブジェクトにより再配置動作を実行することを特徴とす
る、上記(1)に記載のプログラム・ロード装置。 (3)前記ローダ手段がさらに、前記ローダ手段内にあ
り、ターゲット・プログラム・ファイルを開いて認識す
る手段と、前記ローダ手段内にあり、前記ターゲット・
タスク上にターゲット・プログラム・ファイルのセグメ
ントをマップする手段と、前記ローダ手段内にあり、前
記ターゲット・タスク用のポートを初期設定する手段、
および前記ローダ手段内にあり、前記ターゲット・タス
ク上で動的リンカを始動する手段とを含むことを特徴と
する、上記(1)に記載のプログラム・ロード装置。 (4)前記動的リンカ手段が、さらに、前記動的リンカ
手段内にあり、再配置フラグをセットする手段と、前記
動的リンカ手段内にあり、前記プログラム・ファイルが
ロード・ファイルかどうか判定する手段と、前記動的リ
ンカ手段内にあり、前記共用ライブラリ・オブジェクト
の依存関係リストを作成する手段と、前記動的リンカ手
段内にあり、前記共用ライブラリ・オブジェクトをマッ
プする手段と、前記動的リンカ手段内にあり、前記共用
ライブラリ・オブジェクトの再配置を実行する手段とを
含むことを特徴とする、上記(3)に記載のプログラム
・ロード装置。 (5)前記マスタ・サーバ・プログラム・ロード手段内
にあり、前記ターゲット・プログラムの実行時に前記共
用ライブラリ・オブジェクトを前記ターゲット・タスク
にロードする動的ローダ手段をさらに含む、上記(1)
に記載のプログラム・ロード装置。 (6)前記動的ローダ手段が、さらに、前記ターゲット
・タスク内にあり、前記メモリ内で前記共用ライブラリ
・オブジェクトを再配置するための再配置情報データを
含み、前記動的ローダが、前記再配置情報データにアク
セスして前記共用ライブラリ・オブジェクトにより再配
置操作を実行することを特徴とする、上記(5)に記載
のプログラム・ロード装置。 (7)前記動的ローダ手段が、さらに、前記共用ライブ
ラリ・オブジェクトを見つける手段と、前記共用ライブ
ラリ・オブジェクトを開いて読み取り、前記共用ライブ
ラリ・オブジェクトがロード・ファイルかどうか判定す
る手段と、前記共用ライブラリ・オブジェクトの依存関
係リストを作成する手段と、前記共用ライブラリ・オブ
ジェクトの再配置を実行する手段と、現依存関係リスト
を既存の依存関係リストの末尾に増補する手段と、現依
存関係リストのハンドルを戻す手段とを含むことを特徴
とする、上記(5)に記載のプログラム・ロード装置。 (8)メモリ手段とプロセッサ手段を含むデータ処理シ
ステムにおいて、ローダ手段によりターゲット・プログ
ラムをターゲット・タスク内にロードし、制御を動的リ
ンカ手段に移す段階と、動的リンカ手段により共用ライ
ブラリ・オブジェクトをロードし、前記共用ライブラリ
・オブジェクトを前記ターゲット・タスクにリンクし、
制御をマスタ・サーバ・プログラム・ロード手段に移す
段階とを含み、前記マスタ・サーバ・プログラム・ロー
ド手段が、制御を前記ターゲット・プログラムに移すこ
とを特徴とするプログラム・ロード方法。 (9)前記メモリ内に前記共用ライブラリ・オブジェク
トを再配置するための再配置情報データを前記ターゲッ
ト・タスク内に記憶する段階をさらに含み、前記動的リ
ンカが、前記再配置情報にアクセスして前記共用ライブ
ラリ・オブジェクトにより再配置操作を実行することを
特徴とする、上記(8)に記載のプログラム・ロード方
法。 (10)前記ローダ手段が、ターゲット・プログラム・
ファイルを開いて認識する段階と、前記ターゲット・タ
スク上にターゲット・プログラム・ファイルのセグメン
トをマップする段階と、前記ターゲット・タスク用のポ
ートを初期設定する段階と、前記ターゲット・タスク上
で前記動的リンカを始動する段階とを含む方法を実行す
ることを特徴とする、上記(8)に記載のプログラム・
ロード方法。 (11)前記動的リンカ手段が、再配置フラグをセット
する段階と、前記プログラム・ファイルがロード・ファ
イルかどうか判定する段階と、前記共用ライブラリ・オ
ブジェクトの依存関係リストを作成する段階と、前記共
用ライブラリ・オブジェクトをマップする段階と、前記
共用ライブラリ・オブジェクトの再配置を実行する段階
とを含む方法を実行することを特徴とする、上記(1
0)に記載のプログラム・ロード方法。 (12)前記ターゲット・プログラムの実行時に、動的
ローダ手段により共用ライブラリ・オブジェクトを前記
ターゲット・タスク内にロードする段階をさらに含むこ
とを特徴とする、上記(8)に記載のプログラム・ロー
ド方法。 (13)前記動的ローダ手段が、前記メモリ内で前記共
用ライブラリ・オブジェクトを再配置する段階と、前記
再配置情報にアクセスして、前記共用ライブラリ・オブ
ジェクトにより再配置操作を実行する段階とを含む方法
を実行することを特徴とする、上記(12)に記載のプ
ログラム・ロード方法。 (14)前記動的ローダ手段が、前記共用ライブラリ・
オブジェクトを見つける段階と、前記共用ライブラリを
開いて読み取り、それがロード・ファイルであると判定
する段階と、前記共用ライブラリ・オブジェクトの依存
関係リストを作成する段階と、前記共用ライブラリ・オ
ブジェクトの再配置を実行する段階と、現依存関係リス
トを既存の依存関係リストの末尾に増補する段階と、現
依存関係リストのハンドルを戻す段階とを含む方法を実
行することを特徴とする、上記(12)に記載のプログ
ラム・ロード方法。
【0108】
【発明の効果】以上のマスタ・サーバ・プログラム・ロ
ード方法および装置の発明は、マイクロカーネル・シス
テム115のさまざまなプログラム構成要素のローディ
ングにおける効率、フレキシビリティ、調整を改善す
る。
【図面の簡単な説明】
【図1】マイクロカーネル120およびパーソナリティ
・ニュートラル・サービス140が複数のオペレーティ
ング・システム・パーソナリティをどのように実行する
かを示す、ホスト・マルチプロセッサ100のメモリ1
02内のマイクロカーネル・システム115の機能ブロ
ック図である。
【図2】タスク210のメモリ・マップを示す図であ
る。
【図3】マスタ・サーバのプログラム・ロード方法30
0の流れ図である。
【図4】ローダ190によって実行される方法400の
流れ図である。
【図5】動的リンカ192によって実行される方法50
0の流れ図である。
【図6】動的ローダ194によって実行される方法60
0の流れ図である。
【図7】共用ライブラリ連係リスト700を示す図であ
る。
【図8】依存関係リスト800を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チン・ユン・チャオ アメリカ合衆国33434 フロリダ州ボカ・ ラトン ネプチューンズ・ベーシン・コー ト 9281 (72)発明者 ジェームズ・マイケル・マジー アメリカ合衆国33463 フロリダ州レー ク・ワース キャナル・ドライブ 5310 (72)発明者 リチャード・マンコフスキ アメリカ合衆国33496 フロリダ州ボカ・ ラトン ミリタリー・トレール ノース 6503 ナンバー4402 (72)発明者 ヴィンケッシュ・オー・メフタ アメリカ合衆国78717 テキサス州オース チン スプレットアロウ・ドライブ 8906

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、 データ処理システム内にあり、データ構造およびプログ
    ラム命令を記憶するメモリ手段と、 前記メモリ手段に結合されたバス手段と、 メモリ手段に結合され、前記メモリ手段に記憶された前
    記プログラム命令を実行するプロセッサ手段と、 前記メモリ手段内のターゲット・タスクと、 前記メモリ手段内にあり、前記メモリ手段内にプログラ
    ムをロードするマスタ・サーバ・プログラム・ロード手
    段と、 前記マスタ・サーバ・プログラム・ロード手段内にあ
    り、実行可能プログラムを前記ターゲット・タスク内に
    ロードするローダ手段と、 前記マスタ・サーバ・プログラム・ロード手段内にあ
    り、共用ライブラリ・オブジェクトを前記ターゲット・
    タスクにリンクさせる動的リンカ手段とを含み、 前記ローダ手段が、ターゲット・プログラムを前記ター
    ゲット・タスクにロードして制御を前記動的リンカ手段
    に移し、 前記動的リンカ手段が、共用ライブラリ・オブジェクト
    をロードし、前記共用ライブラリ・オブジェクトを前記
    ターゲット・タスクにリンクさせ、制御をマスタ・サー
    バ・プログラム・ロード手段に移し、 前記マスタ・サーバ・プログラム・ロード手段が、制御
    を前記ターゲット・プログラムに移すことを特徴とする
    プログラム・ロード装置
  2. 【請求項2】前記ターゲット・タスク内にあり、前記メ
    モリ内で前記共用ライブラリ・オブジェクトを再配置す
    るための再配置情報データをさらに含み、 前記動的リンカが、前記再配置情報にアクセスし、前記
    共用ライブラリ・オブジェクトにより再配置動作を実行
    することを特徴とする、請求項1に記載のプログラム・
    ロード装置。
  3. 【請求項3】前記ローダ手段がさらに、 前記ローダ手段内にあり、ターゲット・プログラム・フ
    ァイルを開いて認識する手段と、 前記ローダ手段内にあり、前記ターゲット・タスク上に
    ターゲット・プログラム・ファイルのセグメントをマッ
    プする手段と、 前記ローダ手段内にあり、前記ターゲット・タスク用の
    ポートを初期設定する手段、および前記ローダ手段内に
    あり、前記ターゲット・タスク上で動的リンカを始動す
    る手段とを含むことを特徴とする、請求項1に記載のプ
    ログラム・ロード装置。
  4. 【請求項4】前記動的リンカ手段が、さらに、 前記動的リンカ手段内にあり、再配置フラグをセットす
    る手段と、 前記動的リンカ手段内にあり、前記プログラム・ファイ
    ルがロード・ファイルかどうか判定する手段と、 前記動的リンカ手段内にあり、前記共用ライブラリ・オ
    ブジェクトの依存関係リストを作成する手段と、 前記動的リンカ手段内にあり、前記共用ライブラリ・オ
    ブジェクトをマップする手段と、 前記動的リンカ手段内にあり、前記共用ライブラリ・オ
    ブジェクトの再配置を実行する手段とを含むことを特徴
    とする、請求項3に記載のプログラム・ロード装置。
  5. 【請求項5】前記マスタ・サーバ・プログラム・ロード
    手段内にあり、前記ターゲット・プログラムの実行時に
    前記共用ライブラリ・オブジェクトを前記ターゲット・
    タスクにロードする動的ローダ手段をさらに含む、請求
    項1に記載のプログラム・ロード装置。
  6. 【請求項6】前記動的ローダ手段が、さらに、 前記ターゲット・タスク内にあり、前記メモリ内で前記
    共用ライブラリ・オブジェクトを再配置するための再配
    置情報データを含み、 前記動的ローダが、前記再配置情報データにアクセスし
    て前記共用ライブラリ・オブジェクトにより再配置操作
    を実行することを特徴とする、請求項5に記載のプログ
    ラム・ロード装置。
  7. 【請求項7】前記動的ローダ手段が、さらに、 前記共用ライブラリ・オブジェクトを見つける手段と、 前記共用ライブラリ・オブジェクトを開いて読み取り、
    前記共用ライブラリ・オブジェクトがロード・ファイル
    かどうか判定する手段と、 前記共用ライブラリ・オブジェクトの依存関係リストを
    作成する手段と、 前記共用ライブラリ・オブジェクトの再配置を実行する
    手段と、 現依存関係リストを既存の依存関係リストの末尾に増補
    する手段と、 現依存関係リストのハンドルを戻す手段とを含むことを
    特徴とする、請求項5に記載のプログラム・ロード装
    置。
  8. 【請求項8】メモリ手段とプロセッサ手段を含むデータ
    処理システムにおいて、 ローダ手段によりターゲット・プログラムをターゲット
    ・タスク内にロードし、制御を動的リンカ手段に移す段
    階と、 動的リンカ手段により共用ライブラリ・オブジェクトを
    ロードし、前記共用ライブラリ・オブジェクトを前記タ
    ーゲット・タスクにリンクし、制御をマスタ・サーバ・
    プログラム・ロード手段に移す段階とを含み、 前記マスタ・サーバ・プログラム・ロード手段が、制御
    を前記ターゲット・プログラムに移すことを特徴とする
    プログラム・ロード方法。
  9. 【請求項9】前記メモリ内に前記共用ライブラリ・オブ
    ジェクトを再配置するための再配置情報データを前記タ
    ーゲット・タスク内に記憶する段階をさらに含み、 前記動的リンカが、前記再配置情報にアクセスして前記
    共用ライブラリ・オブジェクトにより再配置操作を実行
    することを特徴とする、請求項8に記載のプログラム・
    ロード方法。
  10. 【請求項10】前記ローダ手段が、 ターゲット・プログラム・ファイルを開いて認識する段
    階と、 前記ターゲット・タスク上にターゲット・プログラム・
    ファイルのセグメントをマップする段階と、 前記ターゲット・タスク用のポートを初期設定する段階
    と、 前記ターゲット・タスク上で前記動的リンカを始動する
    段階とを含む方法を実行することを特徴とする、請求項
    8に記載のプログラム・ロード方法。
  11. 【請求項11】前記動的リンカ手段が、 再配置フラグをセットする段階と、 前記プログラム・ファイルがロード・ファイルかどうか
    判定する段階と、 前記共用ライブラリ・オブジェクトの依存関係リストを
    作成する段階と、 前記共用ライブラリ・オブジェクトをマップする段階
    と、 前記共用ライブラリ・オブジェクトの再配置を実行する
    段階とを含む方法を実行することを特徴とする、請求項
    10に記載のプログラム・ロード方法。
  12. 【請求項12】前記ターゲット・プログラムの実行時
    に、動的ローダ手段により共用ライブラリ・オブジェク
    トを前記ターゲット・タスク内にロードする段階をさら
    に含むことを特徴とする、請求項8に記載のプログラム
    ・ロード方法。
  13. 【請求項13】前記動的ローダ手段が、 前記メモリ内で前記共用ライブラリ・オブジェクトを再
    配置する段階と、 前記再配置情報にアクセスして、前記共用ライブラリ・
    オブジェクトにより再配置操作を実行する段階とを含む
    方法を実行することを特徴とする、請求項12に記載の
    プログラム・ロード方法。
  14. 【請求項14】前記動的ローダ手段が、 前記共用ライブラリ・オブジェクトを見つける段階と、 前記共用ライブラリを開いて読み取り、それがロード・
    ファイルであると判定する段階と、 前記共用ライブラリ・オブジェクトの依存関係リストを
    作成する段階と、 前記共用ライブラリ・オブジェクトの再配置を実行する
    段階と、 現依存関係リストを既存の依存関係リストの末尾に増補
    する段階と、 現依存関係リストのハンドルを戻す段階とを含む方法を
    実行することを特徴とする、請求項12に記載のプログ
    ラム・ロード方法。
JP22033195A 1994-09-19 1995-08-29 マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置 Pending JPH0895757A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30818994A 1994-09-19 1994-09-19
US308189 1994-09-19

Publications (1)

Publication Number Publication Date
JPH0895757A true JPH0895757A (ja) 1996-04-12

Family

ID=23192935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22033195A Pending JPH0895757A (ja) 1994-09-19 1995-08-29 マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置

Country Status (1)

Country Link
JP (1) JPH0895757A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100583499B1 (ko) * 2002-09-30 2006-05-24 주식회사 케이티 공유 라이브러리를 이용한 모바일 서버의 메모리 관리방법 및 이를 구현시키기 위한 프로그램이 기록된 기록매체
KR100617297B1 (ko) * 2004-12-03 2006-08-30 한국전자통신연구원 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법
US7236998B2 (en) 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7392511B2 (en) 2001-03-22 2008-06-24 International Business Machines Corporation Dynamically partitioning processing across plurality of heterogeneous processors
US7415703B2 (en) 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392511B2 (en) 2001-03-22 2008-06-24 International Business Machines Corporation Dynamically partitioning processing across plurality of heterogeneous processors
KR100583499B1 (ko) * 2002-09-30 2006-05-24 주식회사 케이티 공유 라이브러리를 이용한 모바일 서버의 메모리 관리방법 및 이를 구현시키기 위한 프로그램이 기록된 기록매체
US7236998B2 (en) 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7415703B2 (en) 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
KR100617297B1 (ko) * 2004-12-03 2006-08-30 한국전자통신연구원 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법

Similar Documents

Publication Publication Date Title
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
US9189263B1 (en) Object synchronization in shared object space
US5771383A (en) Shared memory support method and apparatus for a microkernel data processing system
US6260075B1 (en) System and method for providing shared global offset table for common shared library in a computer system
JP3314378B2 (ja) 実行可能プログラムに対するメモリ割当を管理するシステムおよび方法
Yokote et al. A Reflective Architecture for an Object-Oriented Distributed Operating System.
EP2296089B1 (en) Operating systems
US6763518B2 (en) Automatic client/server translation and execution of non-native applications
JPH05216692A (ja) プログラム実行を管理する方法およびシステム
US20050086237A1 (en) Shared queues in shared object space
JPH0687222B2 (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
CA2581345A1 (en) A method and system for accessing resources
US7293267B1 (en) System and method for performing speculative initialization of application models for a cloned runtime system process
US7426720B1 (en) System and method for dynamic preloading of classes through memory space cloning of a master runtime system process
JPH0895757A (ja) マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置
Armand et al. Revolution 89 or ‘‘Distributing UNIX Brings it Back to its Original Virtues’’
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
US20050251803A1 (en) Method of performing kernel task upon initial execution of process at user level
US7343603B1 (en) System and method for performing incremental initialization of a master runtime system process
Hunt Creating user-mode device drivers with a proxy
US6256752B1 (en) Method and apparatus for dynamic swappable bytecode loop in java virtual machines
US6023711A (en) System and method for flexible file encapsulation through latent levels of isolation
US6752836B1 (en) Method and apparatus for high-concurrency client locking with java in a data processing system
JPH0816411A (ja) マイクロカーネル・データ処理システム用の無名応答ポートの方法および装置
JPH0855037A (ja) プロセス間通信方法およびプロセス間通信用のシステム