結果として、各プログラムのページテーブルには、以下のようなマッピングが格納される(「プログラムのページ番号 → OSのページ番号」)。 プログラムA: 0 → 0、1 → 1、2 → 2 プログラムB: 0 → 3、1 → 4、2 → 7 プログラムD: 0 → 5、1 → 6 ここで、プログラムが自身に割り当てられたメモリにアクセスしようとしたときに何が起きるかを示す。プログラムA が "LOAD memory at 20FE"(20FE番地からロード)という命令を実行したとする。 20FE(16進数)を2進数表記すると(16ビットシステムでは) 0010000011111110 となる。ページサイズは4Kバイトとする。従って、20FE番地のメモリ参照要求を受けると MMU は以下のようにこのアドレスを見る。 0010000011111110 = 20FE |__||__________
ページング機構 セグメントとページング セグメント機構ではメモリ空間を好きなアドレスから好きなサイズだけセグメントとして切り出して使うことができました。 ページング機構ではメモリをページと呼ばれる固定長のサイズのメモリ領域に分割して管理します。 x86アーキテクチャではページサイズは基本的に4KBです。 ページングでは開始アドレスとサイズに制限がある代わりに、セグメント機構に比べてより柔軟できめ細かい制御が可能になります。 またページング機構はセグメント機構によるアドレッシングとは独立しています。 プログラマがあるアドレスを指定すると まずセグメントにより開始アドレスが加算される(この結果できるアドレスをリニアアドレスと呼びます) ページングがOFFの場合はリニアアドレスがそのまま物理アドレスになる。 ONの場合はページング機構によりアドレス変換が行われ物理メモリが決定される。 と
Last update 1999/08/07 Scheme処理系の制作 第1回 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 ゲームとスクリプト はい、また例によって行き当たりばったりな企画です。 といっても、相当長い間私の心の大きな部分を占めていた問題ではあります。 それは言語の処理系の必要性についての問題です。 ゲーム制作、特にRPG・アドベンチャーなどの「シナリオ」の重要性が高いものを作るのに必要不可欠なものに、「イベントスクリプトの処理系」というものがあります。ネットでもこうした「イベントスクリプトの処理系」について考える人が少なくないのも、こうした必要性の表われと言えるでしょう。 しかし、こうした処理系は、それぞれのプログラマが独自の文法でプロジェクトごとに作り直しているのが現状です。これが、コードの再利用、ひいては「気楽にゲームを作る」上での大きな障害に
Paul Graham著,野田 開 訳 前書き 拡張可能なプログラミング言語 関数 関数的プログラミング ユーティリティ関数 返り値としての関数 表現としての関数 マクロ いつマクロを使うべきか 変数捕捉 マクロのその他の落し穴 古典的なマクロ 汎変数 コンパイル時の計算処理 アナフォリックマクロ 関数を返すマクロ マクロを定義するマクロ リードマクロ 構造化代入 クエリ・コンパイラ 継続 複数プロセス 非決定性 ATNを使ったパージング Prolog オブジェクト指向Lisp パッケージ 翻訳者 野田 開のサイト 原著者Paul Graham氏のサイト (c) 野田 開 NODA Kai <t50473@mail.ecc.u-tokyo.ac.jp>
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く