No.2ベストアンサー
- 回答日時:
模範的には再配置(relocation)という技術を使っているというのが正解ですね。
再配置には、静的再配置と動的再配置があります。前者は、メモリに入れる
(ロードする)前に各アドレスの参照部分を修正することで再配置をします。
そのためには、どこでアドレスを参照しているかを別に記録しておく必要があ
ります。後者は、すべてのアドレスをPCに対して相対的に参照するようにプロ
グラムを構成しておき、アドレスを参照するときにプロセッサが自動的に目的
アドレスを生成することで、再配置を達成します。これらのいずれかが可能な
プログラムのことを、再配置可能(relocatable)なプログラムといいます。
ところが、UNIXなんかでは、ロードモジュール本体はいわゆる再配置可能になっ
ていません。ほとんどのプログラムは固定の番地にロードされることを前提に
作成されています。近代的なプロセッサはプログラムが利用する論理アドレス
を動的にメモリが利用する物理アドレスに変換するような装置を内部または外
部に備えています。プロセスの切替えごとに、そのアドレス変換表をとりかえ
れば、マルチプロセッシングが可能というわけです。
No.3
- 回答日時:
x86系CPUではプロテクトモード下ではアドレス変換を使って
それぞれのプログラムが独立した連続のアドレス空間下で実行されます
実際にはそれぞれのプログラムの論理アドレス空間事にどの実アドレス空間にマッピングされるかという情報をセットしてあり、CPUがメモリを参照するときにマッピングテーブルを見て実メモリのアドレスを取得し、アクセスします
詳細は参考URLの「はじめて読む485」という本を読んでみてください
参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4756102 …
No.1
- 回答日時:
オブジェクトプログラムは全部0番地から作られますが、連係編集プログラム(リンケージエディタ) and/or ローダの働きで実際にローディングされるアドレスに従って、プログラムの実行に支障がでないよう処置が採られますのでご安心下さい。
変数の番地やジャンプ先の番地も必要が有れば上記のプログラムたちが書き換えてくれます。従って問題は起きないはずです。この辺の方式はハードやOSとの組み合わせで色々あって簡単には説明できません。書籍の目次で、あまり親切ではありませんが「参考URL」の中で「再配置」というキーワードがその部分です。
なお、普通はメモリーの先頭にOSが入っていますので、先頭のAPも0番地からは入れず、上記の仕組みで再配置されています。
参考URL:http://www.shoko-do.co.jp/infobooks/ISBN4-7856-3 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PICマイコンのコピー(クローン...
-
Excelで4096点以上のFFTの方法
-
Dドライブ、アンインストール
-
VC++コンソールアプリでウイン...
-
COBOLの連絡領域について
-
あるプログラムのコマンドライ...
-
ポケコンSHARP PC-G801 の使い方
-
powered byの表記について
-
C#を使って…
-
XPでBorandC++5.5でコンパイル
-
激しくカテ違いかもしれません...
-
べき乗
-
BC++6.0で暴走
-
フォルダを閉じてから再実行し...
-
英語曲名の表示方法
-
数学の図系の領域のプログラム...
-
自作のプログラムがウイルスと...
-
VB6のWScript.Shellについて
-
クリックするとページ内で説明...
-
Scratchの足し算の合計値が10以...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
ゲーミングPCに入っているAlris...
-
Excelで4096点以上のFFTの方法
-
PICマイコンのコピー(クローン...
-
自動クエリとはどういうもので...
-
VBAにてメール作成した際、一部...
-
読み込み中にアクセス違反が発...
-
「Outlookが他のプログラムによ...
-
Excelに埋め込んだVBAのプログ...
-
VBAでユーザーフォームが自動的...
-
XnViewにwebpを「いつも開く」...
-
画像を読み込むのと取り込むの...
-
ドロップダウンリストの文字を...
-
CASLIIのプログラム(並び替え...
-
binファイルってiphone専用です...
-
モジュール、アプリケーション...
-
excelのexe化について
-
未使用の変数を一括検索する方法
-
クリックするとページ内で説明...
-
Vba UserFormを前面に出す方法...
おすすめ情報