资源简介
os实验,采用C#语言模拟进程管理问题,采用了时间片轮转调度、先来先服务、短进程优先调度三种算法模拟进程调度问题,可以时时查看进程调度情况和资源变化情况
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;
namespace os_test2
{
public partial class ProManage : Form
{
public ProManage()
{
InitializeComponent();
this.InitForm();
}
ArrayList hAll = new ArrayList(); //存储所有进程队列
ArrayList hReady = new ArrayList();//用于存放就绪队列
ArrayList hBlock = new ArrayList();//用于存放阻塞队列
int m n r a b c h = 0 timecount=0;
public void InitForm()//初始化初始进程信息
{
txtPCount.Text = “5“;
txtInitPCount.Text = “3“;
txtACount.Text = “10“;
txtBCount.Text = “10“;
txtCCount.Text = “10“;
txtTimelen.Text = “500“;
}
//短进程优先调度初始化进程
public void InitPcbAndInsertSPF()
{
int tmp = 0;
object p0 = null;
ArrayList temp = new ArrayList();
Random ran = new Random();//用于产生随机数
m = Convert.ToInt32(txtPCount.Text.ToString());
n = Convert.ToInt32(txtInitPCount.Text.ToString());
a = Convert.ToInt32(txtACount.Text.ToString());
b = Convert.ToInt32(txtBCount.Text.ToString());
c = Convert.ToInt32(txtCCount.Text.ToString());
time = Convert.ToInt32(txtTimelen.Text.ToString());
timer1.Interval = time;
r = m - n;
count = n;
string str = ““;
for (int i = 0; i < n; i++)
{
Pcb p = new Pcb();
p.Id = i + 1;
p.Ra = ran.Next(a) + 1;
p.Rb = ran.Next(b) + 1;
p.Rc = ran.Next(c) + 1;
p.Ntime = ran.Next(5) + 1;
p.Rtime = 0;
p.State = ‘B‘;
temp.Add(p);
}
for (int i = 0; i < temp.Count - 1; i++)
{
tmp = i;
for (int j = i + 1; j < temp.Count; j++)
if (((Pcb)temp[tmp]).Ntime > ((Pcb)temp[j]).Ntime) tmp = j;
if (i != tmp)
{
p0 = temp[tmp];
temp[tmp] = temp[i];
temp[i] = p0;
}
}
int ff = 0;
for (int i = 0; i < temp.Count; i++)
{
Pcb p = (Pcb)temp[i];
if (p != null)
{
if (ff==0&&((a - p.Ra) >= 0) && ((b - p.Rb) >= 0) && ((c - p.Rc) >= 0)) //如果符合要求写入就绪队列队尾(状态为W)
{
a = a - p.Ra; //当前所剩A类资源数目
b = b - p.Rb; //当前所剩B类资源数目
c = c - p.Rc; //当前所剩C类资源数目
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-11-14 16:40 os_test2\
目录 0 2012-11-14 16:40 os_test2\os_test2\
文件 914 2012-10-10 09:15 os_test2\os_test2.sln
文件 20480 2012-11-09 09:35 os_test2\os_test2.suo
目录 0 2012-11-14 16:40 os_test2\os_test2\bin\
目录 0 2012-11-14 16:40 os_test2\os_test2\bin\Debug\
目录 0 2012-11-14 16:40 os_test2\os_test2\bin\Debug\images\
文件 42464 2009-07-04 14:34 os_test2\os_test2\bin\Debug\images\bg1.jpg
文件 162364 2008-10-02 11:10 os_test2\os_test2\bin\Debug\images\bg2.jpg
文件 69632 2012-11-09 09:13 os_test2\os_test2\bin\Debug\os_test2.exe
文件 52736 2012-11-09 09:13 os_test2\os_test2\bin\Debug\os_test2.pdb
文件 14328 2012-11-09 09:15 os_test2\os_test2\bin\Debug\os_test2.vshost.exe
文件 490 2009-06-11 05:14 os_test2\os_test2\bin\Debug\os_test2.vshost.exe.manifest
文件 31062 2012-11-09 00:10 os_test2\os_test2\Form1.cs
文件 17143 2012-11-08 23:26 os_test2\os_test2\Form1.Designer.cs
文件 6008 2012-11-08 23:26 os_test2\os_test2\Form1.resx
目录 0 2012-11-14 16:40 os_test2\os_test2\obj\
目录 0 2012-11-14 16:40 os_test2\os_test2\obj\Debug\
文件 3254 2012-11-09 09:15 os_test2\os_test2\obj\Debug\os_test2.csproj.FileListAbsolute.txt
文件 891 2012-11-09 09:13 os_test2\os_test2\obj\Debug\os_test2.csproj.GenerateResource.Cache
文件 69632 2012-11-09 09:13 os_test2\os_test2\obj\Debug\os_test2.exe
文件 180 2012-10-24 00:21 os_test2\os_test2\obj\Debug\os_test2.Form1.resources
文件 52736 2012-11-09 09:13 os_test2\os_test2\obj\Debug\os_test2.pdb
文件 180 2012-11-09 09:13 os_test2\os_test2\obj\Debug\os_test2.ProManage.resources
文件 43115 2012-10-24 00:21 os_test2\os_test2\obj\Debug\os_test2.Properties.Resources.resources
目录 0 2012-10-17 11:25 os_test2\os_test2\obj\Debug\Refactor\
目录 0 2012-11-14 16:40 os_test2\os_test2\obj\Debug\TempPE\
文件 4608 2012-10-20 14:10 os_test2\os_test2\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
文件 3948 2012-10-20 14:16 os_test2\os_test2\os_test2.csproj
文件 1991 2012-11-08 23:22 os_test2\os_test2\Pcb.cs
文件 2529 2012-10-10 10:23 os_test2\os_test2\pcb.txt
............此处省略7个文件信息
相关资源
- 操作系统课程设计 c#版cpu,内存,磁
- 操作系统四个实验[C#版]
- 操作系统实验之进程调度 C#编写,G
- C# 内存处理器、网络上行与下行实时
- C# 如何禁止关闭操作系统源码
- 进程管理器
- MyBank 操作系统银行家算法
- 操作系统实验-模拟生产者与消费者问
- 操作系统,模拟文件管理系统
- 模拟操作系统(C#编写,包括进程管理
- 银行家算法 c#
- c#处理机调度实验带界面
- 操作系统页面置换LRUFIFOOPT算法实现代
- c#做的操作系统
- c#编写的操作系统作业--模拟进程调度
- c# 模拟操作系统 文件管理 内存管理
- C# 进程管理工具(我爱学习——强制
- C#操作系统文件
- 操作系统行为模拟[内存分配算法银行
- C# 获取操作系统 CPU信息(频率、供应
- 如何获取系统基本信息源代码(计算
- C# 获取电脑操作系统以及环境变量等
评论
共有 条评论