検索結果 5 件

by kranke
11年前
フォーラム: C言語何でも質問掲示板
トピック: 待ち行列モデルについて
返信数: 10
閲覧数: 5383

Re: 待ち行列モデルについて

みけCAT さんが書きました:enqueue関数で(*head)がNULLでないとき、tmp->nextにNULLを代入していないのがまずいかもしれません。
おおおおおおおおお!
ありがとうございます。無事動きました。初歩的なミスで非常に恥ずかしい限りです。
お二方とも、こんな質問に長々とお付き合いいただきましてありがとうございました。大変助かりました。
by kranke
11年前
フォーラム: C言語何でも質問掲示板
トピック: 待ち行列モデルについて
返信数: 10
閲覧数: 5383

Re: 待ち行列モデルについて

みけCAT さんが書きました:dequeue関数でセルを削除したら、headまたはその周り(前)のセルのnextが指す先を更新しなければいけないのではないですか?
dequeue関数ではheadを削除しませんので、更新は必要ないかなと思います
dequeue関数で削除するのはあくまでサーバのメモリに入っているセルのみで、待ち行列のhead自体は何も参照しません
nextを参照するのも、headを更新するのも、transmission関数にてheadをサーバに挿入した時のみかと思います
by kranke
11年前
フォーラム: C言語何でも質問掲示板
トピック: 待ち行列モデルについて
返信数: 10
閲覧数: 5383

Re: 待ち行列モデルについて

memory 『==』 NULL; if((*head)==NULL) (*tail)『==』NULL; 『』でくくった2箇所について、等号が本当に2個必要なのかどうか、チェックしてみてください。 具体的な回答ありがとうございます。しかし修正しましても、未だうまく動きません 以下、修正しましたプログラムです。 /* サーバのメモリにある転送要求を削除する関数 memory : サーバのメモリへのポインタ tail : 待ち行列の末尾への二重ポインタ 戻り値 : 先頭のセルに格納されていたデータ */ int dequeue(CELL **memory) { int tmp; //data退避...
by kranke
11年前
フォーラム: C言語何でも質問掲示板
トピック: 待ち行列モデルについて
返信数: 10
閲覧数: 5383

Re: 待ち行列モデルについて

今更ですが、このプログラムはM/M/S待ち行列の直列モデルです dequeue関数は削除というよりもサーバのサービス完了処理だと思ってください (1) enqueue関数で待ち行列にセルを追加 (2) 待ち行列にセルが存在し、かつメモリがNULLのサーバがあるかを探査 (3) (2)が満たされた時、transmission関数でそのサーバへ待ち行列のheadを送り、headをひとつ後ろへずらす (4) サーバにセルが存在し、ランダムな条件を満たした時、そのサーバが参照しているセルのデータを返し、メモリを解放する (5) (4)のちに再びサーバにNULLを代入し、transmission関数から...
by kranke
11年前
フォーラム: C言語何でも質問掲示板
トピック: 待ち行列モデルについて
返信数: 10
閲覧数: 5383

待ち行列モデルについて

はじめまして、krankeと申します。 学校の課題にて、どうしてもうまくいかない問題が出ましたので、是非ともお力をお借りしたく思います。 次のプログラムはM/M/Sの待ち行列モデルのプログラムです #include <stdio.h> #include <stdlib.h> struct st_cell { int data; /* 転送要求の到着時刻 */ struct st_cell *next; /* 次のセルへのポインタ */ }; typedef struct st_cell CELL; /* 転送処理の終了を判定する関数 */ int departure(double); /* 転...

詳細検索ページへ移動する