Lions本読書会#5

Lions本読書会#5関係のツイートまとめです。 ほとんどが自分のツイートですが。 http://atnd.org/events/12983 続きを読む
0
kotrit @kotrit

明日の範囲のLions本12章と13章を一読し終えた。相変わらず、分かるような分からないような。深く追えば深そう。あと最初の頃に出てきたestaburが活躍していたような気がする。ちょっと復習しよう。まとめようとして、まだやってなかったりするのもあるなあ。

2011-03-26 21:54:14
takahiro(John Smith) @superhoge

estaburとexpandについて誰かおさらいしてくれると助かる

2011-03-27 12:11:57
kotrit @kotrit

私も助かります。 QT @superhoge: estaburとexpandについて誰かおさらいしてくれると助かる

2011-03-27 12:14:01
takahiro(John Smith) @superhoge

2818のpsignalでソフトウェア割り込みをしている。ハードウェア機構のtrapとソフトウェア機構のソフトウェア割り込みを組み合わせて処理しているのか。最初に読んだとき気づかなかった。やはりLions本は再読しないとだな

2011-03-27 13:54:27
takahiro(John Smith) @superhoge

すぐ後の2821でissig( )&psig( )でソフトウェア割り込みチェック&実行している

2011-03-27 13:55:52
takahiro(John Smith) @superhoge

そもそもソフトウェア割り込みがtrapのために存在しているのかな?とも思ったけど、それは違うか。やはりtrapはハードウェア割り込み機構とソフトウェア割り込み機構の融合なんだと思う

2011-03-27 13:58:07
Yutaka Matsuzawa @alumican

トラップはカーネルモードでは使わないって。。。どうしてだっけ。。。

2011-03-27 14:07:23
takahiro(John Smith) @superhoge

@alumican 10章で見たように、カーネルモード時のtrapはnofault経由で処理を行うからじゃないでしょうかねぇ。それにカーネルモードだとtrapなんて機構を使わなくても例外動作時に色々処理できますし。自信ないですけどw

2011-03-27 14:21:46
Yutaka Matsuzawa @alumican

@superhoge そうか、nodefaultってあったね。いろいろ脳みそから零れ落ちてます。。。再帰して前の章を読まないと~

2011-03-27 14:25:12
takahiro(John Smith) @superhoge

カーネルモードならば、事前に「例外が起こりうる命令をこれから実行する」というのがわかっているので、trap.c経由による処理は通常行わないのではないでしょうか。

2011-03-27 14:25:36
takahiro(John Smith) @superhoge

細かいコードレベルの話は結構理解できてきたけど、もっと大きい視点で読み解いていきたいなぁ。「なぜこのような仕様になっているのか?」とか「もっと効率のより制御方法はないだろうか?」とか

2011-03-27 14:30:47
きしる🌈🐟なお🏳️‍⚧️ @xylnao

PDP-11/20は純粋にロジックだけで命令を実装しているっぽい。格好いいなあ。これとPDP-11/40みたいなマイクロコードアーキテクチャーとの対応関係をさぐるとおもしろい。

2011-03-27 15:24:30
takahiro(John Smith) @superhoge

ソフトウェア割り込みを使ってプロセスを切り替えるようなケース(ptraceとか)で、sleep時にソフトウェア割り込みチェックして処理中断しちゃうとつじつまが合わなくなるので、寝るときの優先度を負にして逃げている

2011-03-27 15:48:10
takahiro(John Smith) @superhoge

たぶんsavu(u.q_qsav)はssleep(システムコール用のsleep)のため?

2011-03-27 15:48:36
takahiro(John Smith) @superhoge

文が少し変ですけど、メモレベルなので気にしない

2011-03-27 15:49:18
takahiro(John Smith) @superhoge

execntで寝ているプロセスはソフトウェア割り込みで止められない?(優先度-1で寝ているから). killでも殺せない? たくさんexec実行しちゃうとプロセス殺せなくて大変なことになる?

2011-03-27 16:09:43
takahiro(John Smith) @superhoge

セクタ関係の話はよくわからんw誰か後日解説することを期待

2011-03-27 16:11:05
takahiro(John Smith) @superhoge

引数のcharacter数が奇数なら最後に0(null文字を追加)。たぶんword(1 byte x 2)単位にしたいから。これがないと最後のwordの下位byteに何入っているのかわからないから?

2011-03-27 16:23:14
takahiro(John Smith) @superhoge

たとえば'00000000 00000000'という値にしたつもりが、下位ビットに変な値が入っていると'00000000 xxxxxxxx'になって想定外の処理をしてしまう?

2011-03-27 16:24:12
takahiro(John Smith) @superhoge

man5.pdfにa.outのヘッダフォーマットが!ずっと探していたよー

2011-03-27 16:27:19
takahiro(John Smith) @superhoge

あ、lions本の355Pに、「man5にあるよ」って書いてあった

2011-03-27 16:27:52
takahiro(John Smith) @superhoge

最近ではIとDで空間を分離していない。キーワードはハーバードアーキテクチャ?

2011-03-27 16:35:08
takahiro(John Smith) @superhoge

a.outの先頭1byteの410はデータ領域とテキスト領域でパディングが入っている構成

2011-03-27 16:45:23
takahiro(John Smith) @superhoge

別のプログラムが、実行するプログラムのテキスト領域をデータ領域として開いているようなケースはエラー。テキストとデータ領域をごっちゃに扱っているようなシステムの場合?

2011-03-27 16:50:41