タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

unixv6に関するembeddedのブックマーク (2)

  • Lions’ Commentary on UNIX 読書会メモ#6 - やる気のないブログ(A boring diary)

    はじめに Lions読書会#6に参加してきました。メモを残しておきます。 当初は13, 14章を読む予定でしたが、議論が白熱して13章の前半(トレースの前)までで時間が来てしまいました。 進度は遅かったですが、今までで一番盛り上がった会とも言えそうです。 さらにPDP11+Unix v6インタプリタを実装した参加者のデモまでありました(!!) togetter 関連ツイートをtogetterでまとめました。 http://togetter.com/li/122332 ツイートが活発だったので、これを読むだけでも当日話された内容がつかめると思います。 exit( ) & wait( ) 今回一番話題になったのがexit( )のloop:以降の内容でした。init processを起こしていたり、子プロセスの親プロセスをinit processに切り替えていたり。「いったい何のためにこんなこ

    Lions’ Commentary on UNIX 読書会メモ#6 - やる気のないブログ(A boring diary)
    embedded
    embedded 2011/04/16
    UNIX V6でのexitとwait
  • sleepとwakeup関数 - Plan9日記

    古典的なUNIXでは、カーネル内で走行中のプロセスがバッファやIOなどの共有資源にアクセスするときの同期機構としてsleepとwakeup関数を提供している。ちょっと注意が必要なのは、これらの関数はsleep(1)と直接動作に関係ないこと。実はV6にはsleep(1)を実装するためにsleep(2)があるのだが、V7以降はpause(2)、alarm(2)が導入されたためライブラリ関数になった。 ちょっと教科書風に書くと、UNIXカーネルはリエントラント(再入可能)であり、カーネル内では複数のプロセスが実行可能状態にある。プロセスはカーネル内のデータ構造を共有しているので、それを排他的に利用するために同期機構が必要である。ユニプロセッサでは、同時に一つのプロセスだけが実行でき、他のプロセスはCPUや他の資源待ちでブロッキングされている。このようにプロセスがあるイベントやIO処理を待つために

    sleepとwakeup関数 - Plan9日記
    embedded
    embedded 2011/04/16
    UNIX V6でのsleepとwakeup
  • 1