2006-03-22から1日間の記事一覧

setlabel/gotolabelによるコルーチン

Plan9はTSS(タイムシェアリングシステム)であり,プロセススケジューリングに対する基本的な考えはUNIXと同じである.あるプロセスが動作しているときに,タイマ割込みなどによってカーネルに動作が遷移し,スケジューラが起動され,プロセスを入れ替え,ユ…

gonzuiでPlan9のコードを読む

acmeの使い方に慣れるためにも,acme上でコードを読むようにしているんだけど,ちょっとgonzuiを味見してみた.インストールしたのは初めてだけど,簡単. 早速使い始めるが,"fundef:setlabel"のようなアセンブリで定義した関数はヒットしないなぁ.Linuxカ…

userinit

最後に最初のプロセスを立ち上げる処理を見てみよう.カーネル初期化の最後に,最初のプロセスをスケジューリングするために,schedinitが呼ばれるのだが,プロセスが存在しない場合は,156行目のsetlabelが呼ばれないので,176行目のgotolabelで飛び先がな…