トップページ⇒tech
3コメント2KB

食事をする哲学者問題 C言語(並列プロセス)

■ このスレッドは過去ログ倉庫に格納されています
0001哲学者2007/07/12(木) 16:44:30
プロセスを学んでいく中で、有名な「食事をする哲学者」の問題が出されたのですが、そこにpipeを使わなければいけないんです↓
まず問題はこうです。
・pipeを用いて「食事をする哲学者」を具現

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

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

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

という問題なんですが・・・C言語ではどう書くのでしょうか??
コンパイルできる形にしていただくと幸いです。
いろいろなプログラムを見てみたいのでよろしくお願いします!
0002デフォルトの名無しさん2007/07/12(木) 16:56:13
単発質問スレ
おまけにマルチポストか
http://pc11.2ch.net/test/read.cgi/tech/1183511364/751

削除依頼出しとけよ
0003デフォルトの名無しさん2007/07/12(木) 17:46:45
うちにも着た
必死だなw
http://pc11.2ch.net/test/read.cgi/tech/1184003625/52

53 デフォルトの名無しさん sage 2007/07/11(水) 02:33:15
別名「ホモのハッテン場問題」とも言う
■ このスレッドは過去ログ倉庫に格納されています