今期私はOSコースのTAです。だから私は、限られたCプログラミングスキルを持つCS学部向けマルチスレッドプログラミングの課題を設計するように頼まれました。マルチスレッドプログラミングの課題の設計
これは、最終グレードの5%しかかからないため、大きな課題ではありません。そして、これは何か新しいものでなければならないので、生徒はインターネットからコードをダウンロードするだけではいけません。
ここで私が考えているのは、単純なMessage Queueサーバです。
私たちは、学生に一つだけ のスレッドを持っており、唯一の2のクライアント接続、リーダライタを受け入れ、非常にダミーMQのサーバを提供します。ライターは定期的にキュー(すなわちサーバー)にメッセージを送信し、 リーダーはキューからメッセージを読み取ります。つまり、サーバーは メッセージをリーダーに送信します。また、読者には を提供します。
次に、複数の読者とライターを同時に受け入れるようにサーバーを変更するように学生に依頼します。 また、スレッド の安全性を尋ねます。言い換えれば、メッセージは1つのリーダーにしか送信されず、 キュー内でメッセージが失われず、mutexを使用する必要があります。
私はそれが単純すぎるかもしれないと感じますが、私はこの時点で他のことは考えられませんでした。あなたが私の立場にいるなら、あなたはどの任務を与えるでしょうか?
私はあまりにもずっと前にOSクラスを取った。彼らはスタンフォード・ピントスOSクラスのカリキュラムをモデル化しました。これはおそらく、あなたが計画しているものから大きく変化しているかもしれませんが、おそらく来年にはそれを考慮する必要があります。 http://www.stanford.edu/class/cs140/projects/pintos/pintos_2.html 編集:ところで、これはCSのメジャー全員で私のお気に入りのクラスでした。根底にあるOSアーキテクチャを理解したような気がした。 –