
No.1ベストアンサー
- 回答日時:
【頭出し程度にお考えください。
間違いがあれば指摘いただきたいです】タプルスペースを書くための定義がありませんでしたので、以下のようにします。
out(): タプルをタプルスペースに追加する.
in(): タプルスペースからマッチするタプルを削除し,それをプロセスに返す.
必要なタプルが見付からない場合は,プロセスはブロックして待つ.
read(): in と同様だが,読み出されたタプルはタプルスペースから削除されない.
(1)要はキューを作りなさいと言っているので
def queue(d:data)
in(QUEUELEN,i:integer) 末尾のキュー位置を取得し
out(QUEUE,d:i+1) データを追加し
out(QUEUELEN i+1) ずらす
end
def dequeue()
in(CURQUEUE,i) 現在のキュー位置を取得し
in(QUEUE,d:data,i) データを取得して
out(CURQUEUE,i+1) ずらす
return d
def
CURQUEUE QUEUELEN QUEUEは定数、初期設定として、out(QUUEUELEN,0) out(CUEQUEUE,0)が実行されているものとする。
(2)
共有データcomdへのアクセスを考えます。
def lock()
in(FLAG, i:integer)
read(COMD,j:integer)
out(FLAG,1)
end
FLAGは定数。初期設定としてout(FLAG, 1)が実行されているものとする。
FLAGを使用権と考えて、使用権を持っているプロセスが実行出来る。それ以外はinで待つ。
使用権を持つプロセスは実行が終わったらoutで使用権を返上する。ではダメでしょうか。
(3)またプロセスの通信間の方式としてタプルスペース以外になにがありますか?
・クライアントサーバ ソケット
・3層アーキテクチャ ソケット・ファイル
・N層アーキテクチャ ソケット・ファイル
・密結合(クラスター) ソケット・メッセージパッシング
・Peer-to-peer ちょっとわかりません
何れもプレセスの通信間の方式を用いた実装例に見えます。
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD% …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
プロセスがタスクマネージャー...
-
System Idle Processってなに?...
-
デーモンモードとは何でしょうか?
-
NETSTATのコマンドプロンプト画...
-
ネットワーク使用率約75%維持状...
-
プロンプトが返らない
-
タスクマネージャのCPU率がおか...
-
今日から急にPCが重くなりま...
-
プロセスがずっと起動している...
-
CPU使用率が常に50~10...
-
linuxでプロセスが動いているCP...
-
コマンドライン上でファイルを...
-
CPU使用率とロードアベレージ
-
実行中のプログラムを調べるには?
-
UNIX コマンドにおける # や円...
-
Linux のシェルスクリプトの強...
-
ファイル名一覧の印刷
-
スクリプトのエラー「unexpecte...
-
IPアドレスだとPingが通るのに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
プロセス、サービス、デーモン...
-
System Idle Processってなに?...
-
プロセスがタスクマネージャー...
-
タスクバーの音量アイコンをク...
-
デスクトップ上の謎の白い□
-
CPU使用率取得方法について
-
タスクマネージャのCPU率がおか...
-
スリープ状態から復帰後、DPCs...
-
Windowsで作れるスレッド最大数...
-
コマンドライン上でファイルを...
-
プロンプトが返らない
-
CPU使用率が常に50~10...
-
メディアプレイヤーが終了でき...
-
アクロバットを終了しても、プ...
-
sighupとsigtermの違い
-
イラストレータでの透明部分の...
-
デュアルCPU(デュアルコアでは...
-
デーモンモードとは何でしょうか?
-
【プログラム】 iu14d2n.tmp ...
おすすめ情報