Lions' 本読み (37)
expand 手続きについて。以下を掘削した方が良さげなカンジ。
- u.u_rsav と u.u_ssav の使途の差
- proc 構造体の p_addr 属性について
- retu 手続きと sureg 手続きについて
retu は基本的に u.u_rsav を云々してるはずなんですが savu に u.u_ssav を渡すのはどういった副作用というか効果があるのかを確認しておきたい。
プロセス構造体の p_addr 属性が expand の対象になっているのが気になります。色々探してるんですが、まごろくさんのプレゼンスライドに_Stack は struct user のページの後半_という記述がありますね。expand のコメントにも以下な記述があります。
2252 * プロセスのデータ+スタック領域のサイズを変更する。
を、スライドめくってたらカーネルモードとユーザモードでちょい違うな。あら、スライドの最後らへんはちょっと記憶が薄いんですが諸々確認入れないといけない事項があるように思えます。
もう少し
と言いつつ色々調べてるんですが、なんというか凄く根本的な部分をもっかいおさらいした方が良い気がしはじめてます。
あ、スライドの最後らへんのソレは expand のコメントがアレですね。
2264 * この手続きを呼び出したあと、呼び出し側はデータ領域へ、 2265 * あるいはデータ領域からユーザーのスタックをコピーする。
なんとなく estabur 手続きかな、と思ってますが、今日はこのへんが限界かも。
課題
- savu(u.u_ssav) の目的とか副作用とかを確認
- retu 手続きと sureg 手続きの関連
- expand 手続きと estabur 手続きの関連
- 381p の aretu と u.u_ssav に関する調査について確認
あと、pdp11 なマニュアル確認した方が良さげ。