はじめてのOSコードリーディング 読書会 (4)

2013/5/12に開催された「第4回 はじめてのOSコードリーディング 読書会」に関連するつぶやきです。
2
Keigo @K5_sem

V6の仕様では符号ついてしまうので、25行目で符号を落としている!! #firstv6

2013-05-12 16:43:31
Keigo @K5_sem

xalloc関数の処理の流れは図を参照。 #firstv6 http://t.co/fmDtawh2qE

2013-05-12 16:53:55
拡大
Keigo @K5_sem

実行プロセスが使用しているテキストセグメントの参照カウンタをデクリメントする関数がxfree()で、テキストセグメントのメモリ中のプロセスからの参照カウンタをデクリメントする関数がxccdec()である。 #firstv6

2013-05-12 17:01:46
Keigo @K5_sem

407形式だとテキストがデータの中に入っちゃうからスワップいらなくなる(図4.6の右部のスワップ処理は仕様上起こらない) #firstv6

2013-05-12 17:02:03
Keigo @K5_sem

図4.6の右部のスワップ処理は410形式でのお話。 #firstv6

2013-05-12 17:02:30
Keigo @K5_sem

mallocは物理アドレスしか扱えないが、readiは仮想アドレスしか扱えないというのが面倒くささ

2013-05-12 17:27:48
もっちぃ @tanimocchi

大域変数だらけの副作用バリバリのOSソースの解析、やはり自分では全く歯が立たなかった。追々慣れるしかないなと。

2013-05-12 21:49:24
七誌 @7shi

P.43の表2.1のp_textはp_textpの誤りでは? #firstv6

2013-05-13 10:23:51
七誌 @7shi

P.131 リスト4.2 sched() 41-43で見付けたスワップアウト対象は、46のように時間チェックをしなくても、スラッシングは大丈夫なのか気になった。SWAITかSSTOPなら止まっているので、すぐスワップインすることはないという判断か。 #firstv6

2013-05-13 10:31:27
七誌 @7shi

P.130 リスト4.2 sched():32 p_textpのNULLチェックは何をしているのか。実行バイナリが407だとtextがdataに吸収されて、p_textpがNULLとなる。 #firstv6

2013-05-13 10:34:44
七誌 @7shi

カーネルプロセスの位置付けがモヤっとしていたけど、proc[0]を眺めてやっと糸口が見えてきた。ユーザープロセスはシステムコールでカーネルに潜るのに対して、カーネルプロセスはユーザー側がなくカーネル側だけで回っている。 #firstv6

2013-05-13 10:53:41