翻訳と辞書
Words near each other
・ 位置情報SNS
・ 位置情報ゲーム
・ 位置情報サービス
・ 位置情報連動型ゲーム
・ 位置感覚
・ 位置指定道路
・ 位置揃え
・ 位置水頭
・ 位置決め
・ 位置燈
位置独立コード
・ 位置異常
・ 位置登録ゲーム
・ 位置移動
・ 位置習性
・ 位置覚
・ 位置通報
・ 位置通報点
・ 位置選択性
・ 位藤紀美子


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

位置独立コード : ミニ英和和英辞書
位置独立コード[いちどくりつこーど]
=====================================
〔語彙分解〕的な部分一致の検索結果は以下の通りです。

: [くらい]
  1. (n,n-adv,suf,vs) grade 2. rank 3. court order 4. dignity 5. nobility 6. situation 7. throne 8. crown 9. occupying a position 10. about 1 1. almost 12. as 13. rather 14. at least 15. enough to 1
位置 : [いち]
  1. (n,vs) place 2. situation 3. position 4. location 
: [どいつ]
 (n) Germany
独立 : [どくりつ]
  1. (adj-na,n,vs) independence (e.g., Ind. Day) 2. self-support 
: [ちょうおん]
 (n) long vowel mark (usually only used in katakana)

位置独立コード : ウィキペディア日本語版
位置独立コード[いちどくりつこーど]
位置独立コード(いちどくりつコード、: '、PIC)または位置独立実行形式(いちどくりつじっこうけいしき、: '、PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUのない古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。
位置独立コードはメモリ上の任意の位置にコピーでき、修正することなく実行できる。リロケータブルコードは、指定されたアドレスで実行可能にするためにリンケージエディタローダが特別な処理を施すが、位置独立コードではそれが不要である。位置独立コードはソースコードにおける特別な意味論が必要で、コンパイラがそれをサポートしていなければならない。絶対アドレスを指定する分岐命令など、特定のメモリアドレスを参照する命令は、等価なプログラムカウンタ相対命令に置き換えなければならない。そのために命令数が増えることもあるので効率は低下するが、最近のプロセッサはその差が無視できる程度になるよう設計されている。PIC)または位置独立実行形式(いちどくりつじっこうけいしき、: '、PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUのない古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。
位置独立コードはメモリ上の任意の位置にコピーでき、修正することなく実行できる。リロケータブルコードは、指定されたアドレスで実行可能にするためにリンケージエディタローダが特別な処理を施すが、位置独立コードではそれが不要である。位置独立コードはソースコードにおける特別な意味論が必要で、コンパイラがそれをサポートしていなければならない。絶対アドレスを指定する分岐命令など、特定のメモリアドレスを参照する命令は、等価なプログラムカウンタ相対命令に置き換えなければならない。そのために命令数が増えることもあるので効率は低下するが、最近のプロセッサはその差が無視できる程度になるよう設計されている。PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUのない古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。
位置独立コードはメモリ上の任意の位置にコピーでき、修正することなく実行できる。リロケータブルコードは、指定されたアドレスで実行可能にするためにリンケージエディタローダが特別な処理を施すが、位置独立コードではそれが不要である。位置独立コードはソースコードにおける特別な意味論が必要で、コンパイラがそれをサポートしていなければならない。絶対アドレスを指定する分岐命令など、特定のメモリアドレスを参照する命令は、等価なプログラムカウンタ相対命令に置き換えなければならない。そのために命令数が増えることもあるので効率は低下するが、最近のプロセッサはその差が無視できる程度になるよう設計されている。
== 歴史 ==
初期のコンピュータではコードは位置依存だった。プログラムは特定アドレスにロードされ、実行されるよう構築されていた。複数のジョブを同時に並行して実行させるには、それらジョブが必要とするアドレスが重ならないようオペレータが注意深くスケジューリングする必要があった。例えば、給与支払いプログラムと受取勘定プログラムが共に同じアドレスで動作するよう構築されていた場合、オペレータはそれらを同時に実行させることができない。時には1つのプログラムのロードアドレスを変化させた複数のバージョンを作っておき、スケジューリングしやすくしていた。
より柔軟にするため、位置独立コードが発明された。位置独立コードをロードするアドレスはオペレータが任意に選択可能である。
動的アドレス変換(MMUが提供する機能)によって各プロセスに別々のアドレス空間が割り当てられるようになり、位置独立コードはほとんど不要となった。位置独立コードは位置依存コードより効率が悪いため、動的アドレス変換の方がよりよい解決策だった。
次に解決すべき課題は、複数の似たようなジョブを同時に実行する際、同じコードを複数回ロードしなければならず、メモリを無駄に使用することになる点である。全く同じプログラムを動作させる2つのジョブがあるとき、動的アドレス変換では物理メモリ上にロードしたプログラムを2つのジョブの仮想アドレス空間にマッピングすることで、1つのプログラムのコピーがメモリ上には1つしかないようにすることができる。
しかし、プログラムは別々でも多くのコードが共通しているということの方が多い。例えば給与支払いプログラムと受取勘定プログラムは、全く同一のサブルーチンを数多く含んでいると考えられる。そこでモジュールの共有という考え方が生まれた(共有ライブラリは共有モジュールの一種である)。給与支払いプログラムと受取勘定プログラムの主プログラムはそれぞれ別のメモリにロードされるが、共有モジュールは物理メモリ上には1回だけロードされ、それを2つの仮想アドレス空間にマッピングする。
位置独立コードはユーザーレベルのアプリケーションで使われるだけでなく、OS内でも使われている。初期のページング方式は仮想アドレス空間を採用していなかった。その代わりOSが必要に応じて個々のモジュールをロードし、必要性の低いモジュールを上書きしていた(OSが使用可能なメモリはOS自体よりも小さかった)。モジュールは必要なときに空いているメモリ上で動作可能でなければならないため、個々のOSモジュールは位置独立コードとして書かれていた。
仮想記憶の発明で、OS自体も広大な仮想アドレス空間を持てるようになり、各OSモジュールに別々の恒久的仮想アドレスを割り当てられるようになったので、、この技法も廃れた。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「位置独立コード」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.