• 締切済み

オペレーティングシステムのページテーブルについて

インターネットや本などで調べてもなかなか下記の問題が解けないのでどなたかご教示おねがいします 64ビットCPUで、第4,3,2,1レベルテーブル、ページ内オフセットが順に11,13,14,15,11ビットの多段ページングがあるとする。 (1)あるプロセスは1ページだけしか使用しないものとすると、全テーブルの合計テーブルは何バイトか?なお2次記憶のアドレスは64ビットで指定するものとする。 (2)あるプロセスは0番地と0000 0000 0FFF FFFF番地だけしか使用しないとすると、このプロセスを管理するのに必要なテーブルはそれぞれ何個か?このとき全テーブルの合計は何バイトか?

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

page内offsetの指定に11bitが割り当てられており、2kbyte/pageのシステムと分ります。 >2次記憶のアドレスは64ビットで指定するものとする。 とありますが、1次記憶==主記憶アドレスは64ビットアドレスで指定するものとすると解釈しました。 64ビット対応物理メモリフル実装、それと同程度のページアウト領域を割り当てても、 必要最大ページアウト領域数は 64bit-11bit(2kbyte) = 53bitあれば十分です。 http://www.seiai.ed.jp/sys/text/csd/cf13/c13a060.html 30bit==>1GB, 40bit==>1TB, 50bit==>1PB, 60bit==>1EB, 64bit==>16EB ? A0. 先ず最下位レベルのpage tableに必要な内容を考えてみます。 割り当てられた物理page address(先頭物理ページアドレス、page内offsetを除いた部分)の指定に64-11=53bit必要です。 その他にpage typeに最低6bit: VRWXPS 必要です。(+1bit=I/O address space?) V:valid, R:read, W:write, X:execute, P:protected, (OS, IODriver等の特権モードプログラムのみアクセス可能), S:swapped 合計59bitは最低限必要<==>1-entry 8byte 構成とします。 Vbitも含めて全bit Offの場合はInvalid page Vbit off, RWX-bitの何れかのbit onの場合は、validだが未割当のpage 等の使用法が考えられます。 Vbit on, Sbit onの場合はpage out状態、下位53bitには物理pageに代り、pageout-areaのpage 番号が入ります。 A1. 最下位レベルのpage table はA0 より2Kbyteのpage単位で割り当てます。   2kbyte/8byte=256entry, 2KB*256=512KBの物理pageを管理する事が出来ます。 A2. なお最下位レベルのpage tableは15bit==32kentry単位で管理され、   最大32kentry/256entry=128page, 最少2KB-最大256KBの連続物理page areaの割り当てが必要とされます。 B0. より上位のpage tableも同様に下位page tableの先頭物理page table address指定に53bit必要です。   それ以外にentry valid bit, 下位page tableに何page割り当てているかのフィールドも普通割り当てます。 1:valid +8:page_table_length +53:物理page_no page_table_length には最大7bit: 第1レベルテーブルに(15-8=7bit)必要です。 (1) あるプロセスは1ページだけしか使用しないものとする 0番地で始まる1ページのみの使用と言う事ですね。 この場合は簡単で各4レベルのページテーブルに各々1ページ、合計4ページ8kbyte必要です。 (2) あるプロセスは0番地と0000 0000 0FFF FFFF番地だけしか使用しないとする.... この場合には下位28bitにnon-0のアドレスがあり、上位36bitは0です。 上位レベルから11, 11+13=24, 11+13+14=38bit迄が守備範囲 第4,3レベルテーブルは各1個、第2,1レベルテーブルは各2個必要になります。 以下の説明はアドレス64bit中、上位32bitは0なので、変化する部分32bit部分のみについて記しています。 第1レベルテーブルは次の通り 0000,0000-0007,ffff迄の管理用として1個==2kbyte # 256entryの内、最初の1entryのみvalid, 他はinvalid 0ff8,0000-0fff,ffff迄の管理用として1個==2kbyte # 256entryの内、最後の1entryのみvalid, 他はinvalid 第2レベルテーブルは次の通り ユーザー空間の最初のページ管理用とて1個 0000.0000-03ff,ffff迄の論理アドレス:第1レベルページ管理用、 top entryのみvalid, 第1レベル有効page table entry数 0 max (0+1)*256page entry exist (topのpage tableのみ有効) ユーザー空間の最後のページ管理用とて1個 0c00,0000-0fff,ffff迄の論理アドレス:第1レベルページ管理用、 last entryのみvalid, 第1レベル有効page table entry数 3f max (3f+1)*256page entry exist (2)の合計テーブル数は合計6個、12kbyteとなる筈です。 図を書いて説明すればより分り易いでしょうが、以上の説明から分るでしょうか。 自分も答を書いていて途中で多少混乱したりした点等もありました。 不明な点やこの説明に分らない点や誤り等があれば、再度補足等で追加問い合わせして下さい。

関連するQ&A

  • 仮想記憶システムの問題です

    ページング方式の仮想記憶システムで、下記のように仮想アドレスを16ビットで表し、ページサイズを4096バイトとする。 4ビット           12ビット ページ番号        ページ内変位 この方式では、16ビットで仮想アドレスを表す。ここで、ページ番号が3で、ページ内変位が32である 仮想アドレスを16進数で表すと(1)となる。 回答群 ア.0000 イ.0010 ウ.0023 エ.3020 答えはエなのですが、途中式などが解りません。 解説をお願いします。

  • タスクマネージャに乗らないプロセスは存在しますか?

    ■環境 OS:Windows 7 Professional(64ビット) メモリ:24GB パソコンをずっと起動していると、メモリが解放できずに、徐々にメモリを食いつぶしていってしまいます。 その時のタスクマネージャのプロセス毎のメモリ使用量を合計しても、物理メモリの合計にまったく届きません。 ということは、タスクマネージャに乗らないプロセスが存在すると思えるのですが、そんなことがありえるのでしょうか? また、あり得る場合、その謎のプロセスを確認する方法はありますか? また、メモリがたまった状態で、フリーのメモリ解放ソフトなどを使うと、フリーズ状態になります。 (ページアウト可能なページがない?) ページングファイル有でも無でも、同様のメモリ枯渇に陥ります。

  • ページキャッシュとは?

    ページキャッシュについてお聞きします。 「ページング方式」でwikiで調べましたところ以下の様にかかれてます。 「使われていない物理ページには、スワップ領域以外のファイルに対応するページキャッシュと何とも対応していない完全な未使用ページがある。」 スワップ領域以外のファイルって何なんでしょうか? スワップ領域にはプロセスとそれに必要なファイルだけがロードされるということでしょうか? ファールデータ(例えば、mp3ファイル)などはページキャッシュにロードされるのでしょうか?

  • cakephpでテンポラリテーブル

    お世話になります。ご助力頂ければ幸いで御座います。 ---------------------------- PHP Version 5.6.14 cakephp 2.5系 mariadb-10.0.21-with-mroonga-5.08-winx64 ---------------------------- cakephpで以下の事がやりたいです。 (1)select文を使用してデータの抽出 (2)(1)を利用してテンポラリテーブルを作成。 (3)web上で検索結果を表示。 ※ページングを行いたのでcakePHPでページネーションを使用したいです。 (4)次ページやソート変更の際にはテンポラリテーブルからselect。 cakephpでテンポラリテーブルを作成、使用する場合のやり方がわからず、 頓挫しております。 お手数をお掛け致しますが、 何かご指摘点でも構いませんので、ご回答頂ければ幸いで御座います。

    • ベストアンサー
    • PHP
  • access で 方法を教えてください。

    access で 方法を教えてください。 テーブルは セミコロン区切りで、区切られて表示されています (テーブル例)  1 aaaa;bbbb;cccc;dddd;eeee;ffff 2000byte 2 aaaa 300byte 3 bbbb;cccc;ffff 3000byte 4 ffff;dddd 120byte このセミコロン区切りの区切られたデータの 「件数」と「バイト」を表で表示させる方法を教えて欲しいのです。 上記テーブル例を使用しての(抽出例)  抽出条件    ↓   aaaa 2件 2500byte   bbbb 2件 5000byte  cccc 2件 5000byte   dddd 2件 2120byte   eeee 1件 2000byte   ffff 3件 5120byte 宜しくお願いします。

  • ハードウェア実験について

    ワンボードマイコンに使用しているメモリーには11本のアドレスピンがあり、メモリーの最小番地は16ビットの2進数で表すと0000000000000000、最大値は0000111111となります。 各番地には8ビットのデータが格納されます。 ここで実験のマイコンは8ビットを1バイトとして扱うので、メモリーの容量は2048バイトとなるのですが、これは何故2048バイトとなるのですか? どなたか詳しく教えてもらえないでしょうか?よろしくお願いします。

  • EXCELで表引き(入力文字と参照テーブル)

    住所録からゼンリン地図の索引ページを自動的に取ってくるシートを作成しています。 下記のような参照テーブル(町名と索引ページ)表があります。     A         B    C 1  町名       番地 索引ページ 2 吉成         1    105       (1番地から99番地) 3 吉成        100    108       (100番地から199番地) 4 吉成1丁目          109 5 吉成南町1丁目       201 以下の入力セルに町名と番地が一致した検索ページを表示させたい。      A                 B 10  住所              地図ページ 11 鳥取市吉成南町1丁目100    201 12 鳥取県鳥取市吉成95番地    105 13 鳥取市吉成106-1-5        108 14 鳥取市吉成1丁目100番地    109 参照表から入力住所と一致する地図ページを表引きするにはどのような関数を使用すればよろしいでしょうか?VLOOUP関数を使用してトライしていますが、文字の抜き出し方が良く分かりません。 アドバイスをお願いします。

  • 仮想記憶システムの問題で…

    主記憶容量-----------------64Kバイト 仮想アドレス空間容量-------8Mバイト ページサイズ---------------8Kバイト ページ追い出しアルゴリズム-LRU (1)ページテーブルの各エントリは物理ページアドレスと9ビットの付加情報から構成されている。ページテーブルのサイズを求めよ。 (2)現在、主記憶上にはどのページも存在していないとする。この状態で、以下に示す仮想ページアドレスに対応する仮想ページが順にアクセスされた。  0, 1, 2, 3, 4, 5, 6, 7, 0, 3, 8, 4, 1, 0, 8 このときのページフォルトが発生する回数を求めよ。 …の2つがどうしてもよく分からないので、解説付きで教えてください。 よろしくお願いします。

  • 論理・物理アドレスに関する問題。

    物理メモリ128Mバイトしかないパソコンで1Gバイトの論理メモリ空間を実現する場合でページサイズ4Kのページング方式を採用したとき、物理メモリページは何ページ格納できるかを求めるという問題なのですが・・・・・・。この問題はどう解けばいいのでしょうか? 128Mバイト=27ビット 4Kバイト=12ビット 1Gバイト=30ビット から 物理アドレス=27ビット? 仮想アドレス=30ビット? ということから求める?にしてもこのあとがとけません。

  • タスクマネージャのことで

    僕はよく、タスクマネージャを見ます。 けれど、CPU使用率とPF使用量しか見方がわかりません。 なので、この際他の項目も知っておきたいと思い投稿しました。 現在、 【合計】 ハンドル:10342 スレッド:481 プロセス:56 【コミットチャージ(KB)】 合計:314388 制限値:1078412 最大値:314844 【物理メモリ(KB)】 合計:456804 利用可能:95208 システムキャッシュ:170000 【カーネルメモリ(KB)】 合計:60376 ページ:33080 非ページ:27296 という値を示していますが、 それぞれどういう意味で、どういう状態を示しているのでしょうか? また、疑問に思うことがあり、 フリーズした時は決まってCPU使用率は100%になりますが、 CPU使用率が100%なのに、音はうるさいですが動く時があります。 これはどうしてでしょうか? よろしくお願いします。