Touge オペレーティング システム教室演習 4.3: セグメント化されたページ メモリ管理 回答 分析なし

レベル 1: プロセス作成前後のページ ディレクトリとページ テーブルの変更

プログラミング要件

gdb および dbg のデバッグを通じて答えを見つけて、第 1 レベルの答えを入力します/data/workspace/myshixun/第一关.txt
このタスクでは、バージョン 1 カーネルを分析して次の質問に答えます。
1. プロセス 0 が fork システム コールを実行する前に、リニア アドレス空間と物理アドレス空間の間のマッピング関係は何ですか?
2. プロセス 0 が fork システム コールを実行した直後、リニア アドレス空間と物理アドレス空間の間のマッピング関係は何ですか?
3. プロセス 0 が fork システム コールを実行する前後で、ページ ディレクトリにはどのような変化が生じましたか?

バージョン 1 のカーネル環境構成の詳細については、最初の数レベルに移動してください~ Touge オペレーティング システムの宿題 3.1: プロセスの説明とステータス

gdb デバッガーを起動します。

b 145
c
n

x/5i $eip

p &current
p current
quit

 

次に、dbg デバッガーを起動します。

b 0x6908
c
x/wx 0x1fa20

info tab
x/40wx 0x0
next
info tab
x/40wx 0x0

 

 第 1 レベルの文書の答え(多かれ少なかれ 0 を入力しないように注意してください) :

 

レベル 2: プロセス 1 による mynext 変数の最初の変更

プログラミング要件

gdb および dbg のデバッグを通じて答えを見つけて、第 2 レベルの答えを入力します/data/workspace/myshixun/第二关.txt
このタスクは、バージョン 1 カーネルを分析して、「
プロセス No. 1.1 が mynext 変数を変更する命令のアドレスは何ですか?」という質問に答えます。
2. プロセス番号 1 の変数 mynext のリニアアドレスは何ですか?
3. プロセス 1 が mynext 変数を初めて変更する前に、上記の線形アドレスに対応するページ テーブル エントリの値は何ですか? このリニア アドレスがマッピングされている物理アドレス (古い物理アドレス) は何ですか?
4. プロセス No.1 が初めて mynext 変数を変更すると、ページフォルトが発生しますが、ページフォルトハンドラが実行を開始するときの CR2 レジスタの値は何ですか?
5. このページの障害が解決された後に復旧ポイントに戻るときの復旧ポイントのアドレスは何ですか? このとき、上記リニアアドレスに対応するページテーブルエントリの値は何でしょうか?このリニアアドレスがマッピングされる物理アドレス(新物理アドレス)は何でしょうか?
6. リカバリポイント命令の実行後、上記の新しい物理アドレスの値は何になりますか? 上記の古い物理アドレスの値は何ですか?

環境構成バージョン1.3カーネルは以前と同じです 詳細は下記リンクへ移動してください~峠オペレーティングシステム教室演習4.1: セグメントメモリ管理解答_ブルーベリークリーム団子ブログ-CSDNブログ

gdb デバッガーを起動します。

b 156
c

x/8i $eip
p &mynext
quit

 dbg デバッガーを開始します。

b 0x6988
c
sreg

x/wx 0x17:0x2282c
x/wx 0x0+16*4
x/wx 0xffe000+34*4
s
creg
u/26

b 0xb1d5
c
s
s
x/wx 0x0+16*4
x/wx 0xffe000+34*4
s
xp/wx 0xffc82c
xp/wx 0x2282c

第 2 レベルの文書の答え(多かれ少なかれ 0 を入力しないように注意してください) :

 

おすすめ

転載: blog.csdn.net/kercii/article/details/130607223