Lions' 本メモなど
runrun という変数 cross reference から引いてみる。
この変数は非ゼロな場合、優先度の高いプロセスを実行する準備ができている、とのこと。優先度は setpri() という手続きで設定されている模様。
ざくっと見てる限りでは runrun の値で云々、ということをしてるのは trap のみに見えます。あとは
- setrun() で ++
- setpri() で ++
- swtch() で 0 初期化
- clock() で ++
というカンジ。これはそれぞれの手続きの中でどういった条件で ++ されるのか、が鍵なのかどうか。そーゆー意味では setrun とか setpri とかがどこから呼び出されているのか、というあたりがポイント高いんスね。
まず setpri 手続きから見てみます。
- trap.c の trap() 手続き
- え、m40.s の trap との関係はどうなるんだろ
- clock() 手続き
ええと、なんとなくワケワカになってきたので 8 章読みます。
別件ですが
- 明日、DEBUG HACKS の crash だの systemtap だのなあたりを確認してみたいなと思ってたり。
- 河野さんの tweet に影響され英文標準問題精講を購入。忘れても良いからひたすら、な方向でナニ。年とってるとこうした対応が嫌になるんですがなるべく頑張ります。