091120

|


菜園状況。これは今シーズン最後の大玉。驚くことにまだトマトは新しく花を
咲かせている。



長ネギ。なんとか芽は出た。

これは玉ネギ。

最後の一本大根、よくよく見てみたら思いっきり虫に喰われていた。急いで収 穫。引っこぬいたら、4cm長のヨトウムシを発見。

大根の二次隊はヨトウムシによって全滅。アオムシなら葉っぱから食べていく のでまだいいのだけど、ヨトウムシは茎の部分からいきなり食べてしまうので リカバリ不能。

キャベツはまだ順調。寒冷紗かけてるのに、はっと気付くと青虫がいる。ヨト ウムシじゃないだけまだいい。

スケジューラアクティベーション。これはカーネル層とユーザ層で二段でスレッ ドをスケージュリングする方法の一つで、Thomas E.Andersonらが91年に体系化 したものだ。これまでにも、こういったアプローチはあったけれど、体系化し たのはこれが最初のようだ。これはDEC SRCのFireflyという6CPUの実験用ワー クステーション上のTopazで実装された。そしてその後、92年にはMach 3.0に実 装されている。NetBSDへの実装はNathan J.Williamsによって02年になされた (その論文の塩崎さんによる和訳はBSD magazine 13号にある)。
現在のNetBSDではこのスケジューラアクティベーションはなくなっている。
他OSでもこの傾向だ。が、Windows NTから1:1スレッドだったのがWidnows 7で はUMS; User Mode Schedulerという名で(大義の)スケジューラアクティベーショ ンが実装されることになった。それまではユーザ層だけでスイッチする軽量さ が欲しければ、ファイバを使って自分で制御を移行せよということだった。(こ のファイバは専用の局所記憶をもったもので、マイOSは当初これと同じ方針で 実装したのだけど、空間的なきつさからスタックなしへの改装を目論みつつ、 スタックがないなら関数コールと同じだよというジレンマに陥っている。改装 はとりあえず先延ばし。)
原典
Scheduler Activations: Effective Kernel Support for the User-Level
Management of Parallelism

Thomas E.Anderson, Brian N.Bershad, Edward D.Lazowska and Henry M.Levy
University of Washington

ACM Transactions on Computersystems, Vol.10, No.1, February 1992,p53-79.
そのMach 3.0への実装
Adding Scheduler Activations to Mach 3.0
Paul Barton-Davis, Dylan McNamee, Raj Vaswani, and Edward D.Lazowska
University of Washington

Technical Report 92-08-03 Reversed March 1993
これらをゆっくり読んでみたいと思う。まずは実地的でわかりやすいと思われ るMach 3.0への実装から。