私は現在の割り当てに固執しています。これは主に、しばらく使用しなかった後、Cにあまり熟練していないためです。
FCFS(First Come First Serve)スケジューリングアルゴリズムシミュレーターを作成する必要があります。このシミュレーターは、各プロセスで発生するすべてのタイムイベントを単純に通過し、プロセスと所要時間を完了したときに出力します。
プロセスがどのように機能するかはわかりますが、CまたはC ++プログラムに実装すると困惑し、どこから始めればよいのかさえわかりません。
stdinから入力を取得し、次の形式になります。
最初の行:(CPUの数)(プロセスの数)(クォンタムサイズ)
プロセスライン:(ID)(優先度)(送信時間)(必要なCPU時間)(I / Oが必要になるまでの計算時間)(各計算のI / O時間)
最初の行から定義されたプロセスの数に基づいて、さらに多くのプロセス行が必要です。
入力例は次のとおりです。
1 1 10
1 1 0 20 5 50
簡単に言えば、複数のCPUの可能性を含むソースを支援またはサンプリングするためのリソースを誰かに教えてもらえますか。または、皆さんが私が始めるのを手伝ってくれるなら、私は本当にそれを感謝します。私はあなたにすべてを作るように求めているのではなく、私がそこからどこに行くべきかを知るために私が始めるのを手伝ってください。
ありがとう!
編集:
これが私がこれまでに得たものです。それは非常に初歩的ですが、今のところ私はこれを成し遂げようとしているだけで、私が言ったように、私はCに非常に錆びています(とにかくそれに熟練していたわけではありません):
int main()
{
//process * proc = (process *)malloc(100*sizeof(process));
process proc[25];
CPU cp[4];
int count = 0;
//int * input = malloc(sizeof(int) * 100);
int input = 0;
int cpus = 0;
int processes = 0;
int quantum = 0;
int processLoop = 0;
int x = 0;
int id = 0;
int pri = 0;
int sub = 0;
int cptime = 0;
int compute = 0;
int itime = 0;
int complete = 0;
while(1 == scanf("%d", &input))
{
if(count < 0)
break;
if(count == 0)
{
cpus = input;
}
else if(count == 1)
{
processes = input;
}
else if(count == 2)
{
quantum = input;
}
else
{
if(count == 3)
{
proc[processLoop].ID = input;
}
else if(count == 4)
{
proc[processLoop].Priority = input;
}
else if(count == 5)
{
proc[processLoop].subTime = input;
}
else if(count == 6)
{
proc[processLoop].cpuTime = input;
}
else if(count == 7)
{
proc[processLoop].computeTime = input;
}
else if(count == 8)
{
proc[processLoop].ioTime = input;
proc[processLoop].isCompleted = 0;
processLoop++;
if(processLoop == processes)
{
count = -1; //Leaves possibility for multiple simulations in one run
}
else
{
count = 2; //Repeats if multiple processes are detected
}
}
}
count++;
}
for(x = 0; x < cpus; x++)
{
cpu[x].idle = 0;
}
return 0;
}
ええ、非常に原始的で効率的ではありませんが、すべての数値を読み取り、EOFで終了するか、数字以外のものが来ると終了します。また、負の数。私がprocを25の配列にした理由は、それが私たちのインストラクターが数も増えると言った限界だからです。また、CPUの場合、最大4つが使用されると彼は言ったので、主にポインターがひどいので、配列を作成しました。
配列にデータが入ったので、proc配列をsubTimeで並べ替えて、実際の計算を開始する必要があります。特に私のお粗末な設定では、この部分はどれほど悪くなるでしょうか?