- 締切済み
助けてください( _ _ _ )
私は大学生です。大学の授業科目でOS(オペレーティングシステム)という授業があって、今困っています。もしよかったら、見ていただけるとありがたいです。 「マルチスレッドプログラミングにはどのようなものがあるか調査し、簡単なプログラムを作成してみる。」という問いです。 自分で調べたら、SOCKET(ソケット)プログラミングがマルチスレッドにおおいに関わっているとわかりましたが、プログラムができそうにないです。教えていたただけますか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- togino
- ベストアンサー率75% (97/129)
すみません。 ANo.#2 にて fork() を紹介してますが、これは「マルチプロセスプログラミング」の方です。紹介した URL には詳しく説明があるので、そちらを参考にしてください。
- togino
- ベストアンサー率75% (97/129)
環境が分からないので、 ■ C 言語 fork() を使った例をされるのが一番よろしいかと http://www.ncad.co.jp/~komata/c-kouza28.htm あたりを参考にしてください。 ■ Ruby 言語 http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Thread あたりを参考に ■ VC++ 言語 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_createthread.asp あたりですが、やや難解ですね(汗) ---- > 自分で調べたら、SOCKET(ソケット)プログラミングがマルチスレッドにおおいに関わっているとわかりましたが その通りです。よく調べられていると思います。 が、プログラムするには難しいテーマですね。 マルチスレッドというと、他には、デーモン(サーバプログラムのように常駐するプログラム)もありますね。 待機するプログラムは、マルチスレッドプログラムされている可能性が高いです。
お礼
ありがとうございます、参考に勉強させていただきます。 マルチスレッドプログラミングの調査以外にも、プロセス間通信でturnやflagといったDekkerのアルゴリズムを使って、排他制御をを行うといった問題もありました。それは、できったんですけどねぇ…。でも頑張ってみます。 環境は詳しくわかりませんが、OSはSolarisです。
- shige_70
- ベストアンサー率17% (168/946)
その問いは、その一文だけで、ヒント・指針・参考文献等の提示は全くなかったのでしょうか。だとしたら、一介の大学生に出す問いとしてはあんまりですね。 そもそも、プログラミング言語の授業ならともかく、OSのお勉強をするのにいきなりプログラムを書かせるのもどうかと思いますがね。 ソケットのプログラムは、ちょっと『簡単なプログラム』とは言い難いと思います。あなたがソケットに関心を抱いたのであれば是非挑戦していただきたいですが、そうでなければソケットを題材にするのはやめておきましょう。
お礼
ありがとうございます。 これっといったヒントはありませんでした。ただ、授業でマルチスレッドの解説や簡単なプログラムの例を示してくれましたけど、ソケットプログラムは紹介してくれませんでした。ちょっと、無理難題ですよね!! でも、やれるだけのことはやってみます!
お礼
返事が遅れてスイマセン。 紹介してもらったURLを参考に頑張ってみます。