form3.cs
来自「操作系统 作业调度程序 课程设计文档 对于linux系统的学习有很大帮助」· CS 代码 · 共 733 行 · 第 1/2 页
CS
733 行
int m = p1[j].Intime / 100;
int k = m - n;
if (k > 0)
p1[j].waittime = Math.Abs((p1[i].Intime + p1[i].RequestTime) - p1[j].Intime + 40 * k);
else
p1[j].waittime = Math.Abs((p1[i].Intime + p1[i].RequestTime) - p1[j].Intime);
total_wait += p1[j].waittime;
break;
}
}
for (int i = 0; i < number; i++)
{
textBox1.AppendText("序号" + '\t' + "进入系统的时间" + '\t' + "运行时间" + '\t' + "等待时间" + '\n' +
p1[i].PID + '\t' + p1[i].Intime + '\t' + '\t' + p1[i].RequestTime + '\t' + '\t' + p1[i].waittime + '\n');
}
textBox1.AppendText("总等待时间为:" + total_wait);
}
if (number == 6)
{
PCB[] p1 = new PCB[number];
int i1 = Convert.ToInt32(textBox2.Text.ToString());
int j1 = Convert.ToInt32(textBox3.Text.ToString());
int k1 = Convert.ToInt32(textBox4.Text.ToString());
p1[0] = new PCB(i1, j1, k1);
int i2 = Convert.ToInt32(textBox6.Text.ToString());
int j2 = Convert.ToInt32(textBox7.Text.ToString());
int k2 = Convert.ToInt32(textBox8.Text.ToString());
p1[1] = new PCB(i2, j2, k2);
int i3 = Convert.ToInt32(textBox9.Text.ToString());
int j3 = Convert.ToInt32(textBox10.Text.ToString());
int k3 = Convert.ToInt32(textBox11.Text.ToString());
p1[2] = new PCB(i3, j3, k3);
int i4 = Convert.ToInt32(textBox12.Text.ToString());
int j4 = Convert.ToInt32(textBox13.Text.ToString());
int k4 = Convert.ToInt32(textBox14.Text.ToString());
p1[3] = new PCB(i4, j4, k4);
int i5 = Convert.ToInt32(textBox15.Text.ToString());
int j5 = Convert.ToInt32(textBox16.Text.ToString());
int k5 = Convert.ToInt32(textBox17.Text.ToString());
p1[4] = new PCB(i5, j5, k5);
int i6 = Convert.ToInt32(textBox18.Text.ToString());
int j6 = Convert.ToInt32(textBox19.Text.ToString());
int k6 = Convert.ToInt32(textBox20.Text.ToString());
p1[5] = new PCB(i6, j6, k6);
//先按先进来的时间排序
for (int i = 0; i < number - 1; i++)
{
for (int j = i + 1; j < number; j++)
if (p1[i].Intime > p1[j].Intime)
{
PCB Ptemp = new PCB();
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
//把剩下的再按短时间来排序
for (int i = 1; i < number; i++)
{
for (int j = i + 1; j < number; j++)
if (p1[i].RequestTime > p1[j].RequestTime)
{
PCB Ptemp = new PCB();
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
//如果有相同的时间和第一个相同并运行时间小就 交换
for (int i = 0; i < number; i++)
{
for(int j = i+1 ; j<number; j++)
{
if((p1[0].Intime == p1[j].Intime) && p1[0].Intime >=p1[j].Intime)
{
PCB Ptemp = new PCB();//临时交换变量
Ptemp = p1[0];
p1[0] = p1[j];
p1[j] = Ptemp;
}
}
}
for (int i = 1; i < number; i++)
{
for (int j = i + 1; j < number; j++)
{
if (Math.Abs(((p1[i].Intime + p1[i].RequestTime) - (p1[0].Intime + p1[0].RequestTime))) >= Math.Abs(((p1[j].Intime + p1[j].RequestTime) - (p1[0].Intime + p1[0].RequestTime))))
{
PCB Ptemp = new PCB();//临时交换变量
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
}
p1[0].waittime = 0;
for (int i = 0; i < number; i++)
{
int n = p1[i].Intime / 100;
for (int j = i + 1; j < number; j++)
{
int m = p1[j].Intime / 100;
int k = m - n;
if (k > 0)
p1[j].waittime = Math.Abs((p1[i].Intime + p1[i].RequestTime) - p1[j].Intime + 40 * k);
else
p1[j].waittime = Math.Abs((p1[i].Intime + p1[i].RequestTime) - p1[j].Intime);
total_wait += p1[j].waittime;
break;
}
}
for (int i = 0; i < number; i++)
{
textBox1.AppendText("序号" + '\t' + "进入系统的时间" + '\t' + "运行时间" + '\t' + "等待时间" + '\n' +
p1[i].PID + '\t' + p1[i].Intime + '\t' + '\t' + p1[i].RequestTime + '\t' + '\t' + p1[i].waittime + '\n');
}
textBox1.AppendText("总等待时间为:" + total_wait);
}
if (number == 7)
{
PCB[] p1 = new PCB[number];
int i1 = Convert.ToInt32(textBox2.Text.ToString());
int j1 = Convert.ToInt32(textBox3.Text.ToString());
int k1 = Convert.ToInt32(textBox4.Text.ToString());
p1[0] = new PCB(i1, j1, k1);
int i2 = Convert.ToInt32(textBox6.Text.ToString());
int j2 = Convert.ToInt32(textBox7.Text.ToString());
int k2 = Convert.ToInt32(textBox8.Text.ToString());
p1[1] = new PCB(i2, j2, k2);
int i3 = Convert.ToInt32(textBox9.Text.ToString());
int j3 = Convert.ToInt32(textBox10.Text.ToString());
int k3 = Convert.ToInt32(textBox11.Text.ToString());
p1[2] = new PCB(i3, j3, k3);
int i4 = Convert.ToInt32(textBox12.Text.ToString());
int j4 = Convert.ToInt32(textBox13.Text.ToString());
int k4 = Convert.ToInt32(textBox14.Text.ToString());
p1[3] = new PCB(i4, j4, k4);
int i5 = Convert.ToInt32(textBox15.Text.ToString());
int j5 = Convert.ToInt32(textBox16.Text.ToString());
int k5 = Convert.ToInt32(textBox17.Text.ToString());
p1[4] = new PCB(i5, j5, k5);
int i6 = Convert.ToInt32(textBox18.Text.ToString());
int j6 = Convert.ToInt32(textBox19.Text.ToString());
int k6 = Convert.ToInt32(textBox20.Text.ToString());
p1[5] = new PCB(i6, j6, k6);
int i7 = Convert.ToInt32(textBox21.Text.ToString());
int j7 = Convert.ToInt32(textBox22.Text.ToString());
int k7 = Convert.ToInt32(textBox23.Text.ToString());
p1[6] = new PCB(i7, j7, k7);
//先按先进来的时间排序
for (int i = 0; i < number - 1; i++)
{
for (int j = i + 1; j < number; j++)
if (p1[i].Intime > p1[j].Intime)
{
PCB Ptemp = new PCB();
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
//把剩下的再按短时间来排序
for (int i = 1; i < number; i++)
{
for (int j = i + 1; j < number; j++)
if (p1[i].RequestTime > p1[j].RequestTime)
{
PCB Ptemp = new PCB();
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
//如果有相同的时间和第一个相同并运行时间小就 交换
for (int i = 0; i < number; i++)
{
for(int j = i+1 ; j<number; j++)
{
if((p1[0].Intime == p1[j].Intime) && p1[0].Intime >=p1[j].Intime)
{
PCB Ptemp = new PCB();//临时交换变量
Ptemp = p1[0];
p1[0] = p1[j];
p1[j] = Ptemp;
}
}
}
for (int i = 1; i < number; i++)
{
for (int j = i + 1; j < number; j++)
{
if (Math.Abs(((p1[i].Intime + p1[i].RequestTime) - (p1[0].Intime + p1[0].RequestTime))) >= Math.Abs(((p1[j].Intime + p1[j].RequestTime) - (p1[0].Intime + p1[0].RequestTime))))
{
PCB Ptemp = new PCB();//临时交换变量
Ptemp = p1[i];
p1[i] = p1[j];
p1[j] = Ptemp;
}
}
}
for (int i = 0; i < number; i++)
{
textBox1.AppendText("序号" + '\t' + "进入系统的时间" + '\t' + "运行时间" + '\t' + "等待时间" + '\n' +
p1[i].PID + '\t' + p1[i].Intime + '\t' + '\t' + p1[i].RequestTime + '\t' + '\t' + p1[i].waittime + '\n');
}
textBox1.AppendText("总等待时间为:" + total_wait);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text.Equals("1"))
{
panel1.Visible = true;
panel2.Visible = false;
panel3.Visible = false;
panel4.Visible = false;
panel5.Visible = false;
panel6.Visible = false;
panel7.Visible = false;
//textBox1.Text = "序号"+"/t"+"进入系统的时间"+"/t"+"等待时间"+"/n"
// +p.PID+"/t"+p.RequestTime+"/t"+p.waittime+"/n";
}
if (comboBox1.Text.Equals("2"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = false;
panel4.Visible = false;
panel5.Visible = false;
panel6.Visible = false;
panel7.Visible = false;
}
if (comboBox1.Text.Equals("3"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = true;
panel4.Visible = false;
panel5.Visible = false;
panel6.Visible = false;
panel7.Visible = false;
}
if (comboBox1.Text.Equals("4"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = true;
panel4.Visible = true;
panel5.Visible = false;
panel6.Visible = false;
panel7.Visible = false;
}
if (comboBox1.Text.Equals("5"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = true;
panel4.Visible = true;
panel5.Visible = true;
panel6.Visible = false;
panel7.Visible = false;
}
if (comboBox1.Text.Equals("6"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = true;
panel4.Visible = true;
panel5.Visible = true;
panel6.Visible = true;
panel7.Visible = false;
}
if (comboBox1.Text.Equals("7"))
{
panel1.Visible = true;
panel2.Visible = true;
panel3.Visible = true;
panel4.Visible = true;
panel5.Visible = true;
panel6.Visible = true;
panel7.Visible = true;
}
}// 确定输入进程个数
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?