ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者PHP講座コミュの食事をする哲学者

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いま、授業でプロセスを学んでいます。
プロセスを学んでいく中で、有名な「食事をする哲学者」の問題が出されたのですが、そこにpipeを使わなければいけないんです↓
まず問題はこうです。
・pipeを用いて「食事をする哲学者」を具現

・哲学者の状態変化(eating,hungry,thinking)はrandom numberを利用
・ある哲学者がフォークを得るためには左右哲学者にrequest messageを送る
・フォークの状態変化は使用可否に依存、ただし、ある哲学者から他哲学者にフォークが転送されるときにはきれいになること(clean)を仮定
・使われたフォークは汚くなる

・他の哲学者からフォークの要求が到着すると次のような法則
 ・きれいなフォークを持ったときは渡さない
 ・もう使ったフォークを持ったときは渡す
 ・フォークが転送中にはフォークが向く哲学者に優先権がある

・フォーク及びrequest messageの転送は必ずpipeを利用
・哲学者をあらわす5個のプロセスとは別に状態変化を観察することができるモニタープロセスを置き、状態が変わるとレポティングする。このときにもpipeを利用
・注意、deadlockが発生しないようにする

という問題なんですが・・・C言語でどう書けばいいのでしょう(泣)

コメント(9)

そもそもここはPHPのコミュニティなんですが…
C言語のコミュで聞きましょう。
それ以前にわからないことを丸投げするのもやめましょう。
出題自体が哲学的すぎて、
問題に書いてあることを、理解することすら、
拒否してしまっているのではないかと。。。

とりあえず、/usr/include/ の中を眺めてみましょうね・・・
この問題のフォークはfork()に引っ掛けてるわけですね。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者PHP講座 更新情報

初心者PHP講座のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。