エンベデッドシステムスペシャリスト 2010年 午前2 問10
問題文
動的リンキングの機能はどれか。
選択肢
ア:プログラムの実行中に、主記憶を有効に利用するためにプログラムを再配置する。
イ:プログラムの実行中に、必要になったモジュールを共用ライブラリやシステムライブラリからロードする。(正解)
ウ:プログラムの実行中に、読み込まれたページの論理アドレスを物理アドレスに変換する。
エ:プログラムの実行に先立って、複数の目的プログラムを連係編集(リンケージエディット)する。
🔒 解説は解答すると表示されます
動的リンキング【午前2解説】
正解の理由
動的リンキングとは、プログラムの実行時に、必要なモジュールをライブラリから読み込み、プログラムと結び付ける機能です。
イは、実行中に必要となったモジュールを共用ライブラリやシステムライブラリからロードすると説明しています。実行時にライブラリのモジュールを利用するという点で、動的リンキングに該当します。
解法ステップ
- 「動的リンキング」の「動的」は、実行時に処理することを表します。
- 「リンキング」は、プログラムと必要なモジュールを結び付けることです。
- 実行中にライブラリから必要なモジュールを読み込むイを選びます。
選択肢別の誤答解説
- ア:プログラムを主記憶上で再配置する処理です。リンキングではなく、再配置に関する説明です。
- イ:実行中に必要なモジュールをライブラリからロードします。動的リンキングの説明です。
- ウ:論理アドレスを物理アドレスに変換する処理です。アドレス変換に関する説明です。
- エ:実行前に複数の目的プログラムを結合します。リンケージエディットによる静的な連係処理の説明です。
よくある誤解
- 「実行中にロードする」処理はすべて同じだと思う
動的ロードは、必要なモジュールを実行時に読み込むことに重点があります。動的リンキングは、読み込んだモジュールをプログラムと結び付けることにも着目します。 - リンキングは必ず実行前に行うと思う
実行前に結合する方式もありますが、動的リンキングでは実行時に行います。 - アドレス変換もリンキングの一種だと思う
論理アドレスから物理アドレスへの変換は、メモリ管理の機能です。
補足コラム
実行前にライブラリのモジュールをプログラムへ結合する方式を、静的リンキングといいます。一方、動的リンキングでは、ライブラリを実行時に利用します。ライブラリを複数のプログラムで共用できるため、実行ファイルのサイズやメモリ使用量を抑えられる場合があります。
FAQ
Q. 動的リンキングでは、毎回ライブラリ全体を読み込むのですか?
A. 必要なモジュールを読み込む方式なので、必ずしもライブラリ全体を読み込むとは限りません。
A. 必要なモジュールを読み込む方式なので、必ずしもライブラリ全体を読み込むとは限りません。
Q. 選択肢エもリンキングですが、なぜ違うのですか?
A. 選択肢エは、実行に先立ってプログラムを結合する処理です。実行時にモジュールを読み込む動的リンキングとは、処理のタイミングが異なります。
A. 選択肢エは、実行に先立ってプログラムを結合する処理です。実行時にモジュールを読み込む動的リンキングとは、処理のタイミングが異なります。
関連キーワード: 動的リンキング、動的ロード、静的リンキング、リンケージエディット、再配置、アドレス変換

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

