资源简介
1)每一个进程有一个PCB,其内容可以根据具体情况设定。
2)可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目
3)进程数、进入内存时间、要求服务时间可以在界面上进行设定
4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)
进程间的同步关系用一个段表示:W2,表示该进程先要等待P2进程执行结束后才可以运行因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W2
5)可以在运行中显示各进程的状态:就绪、阻塞、执行
6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列
7)具有一定的数据容错性
代码片段和文件信息
#include “stdafx.h“
#include“linkQueue.h“
int Clinkqueue::QueueEmpty()const//判断队列是否为空
{
return front==NULL&&rear==NULL;
}
int Clinkqueue::GetQueueLength()const//获取队列长度
{
return count;
}
void Clinkqueue::EnQueue(CString idint arrivetimeint inputtimeint ctimeint outputtimeCString wait)//入队依次将新增的结点插到队尾
{
PCB *p;
p=new PCB;
p->processID=id;
p->arrivetime=arrivetime;
p->inputtime=inputtime;
p->ctime=ctime;
p->outputtime=outputtime;
p->wait=wait;
p->rtime=0;
p->flags1=0;
p->flags2=0;
p->state=““;
p->finishtime=0;
p->next=NULL;
if(!QueueEmpty())
{
rear->next=p;
rear=p;
}
else
front=rear=p;
count++;
}
void Clinkqueue::DeQueue(PCB *p)//删除p元素
{
PCB *q;
q=front;
if(QueueEmpty())
return;
if(rear==front)
{
rear=front=NULL;
count--;
return;
}
if(p==front)
{
front=p->next;
p->next=NULL;
count--;
return;
}
while(q->next!=NULL)
{
if(q->next==p)
{
q->next=p->next;
if(p==rear)
rear=q;
count--;
break;
}
q=q->next;
}
}
int Clinkqueue::CheckPCB(CString id) //检查是否存在指定id的节点
{
PCB *p=front;
if(QueueEmpty())
{
return 0;
}
while(p)
{
if(p->processID==id) return 1;
p=p->next;
}
return 0;
}
CString Clinkqueue::GetProID(PCB *p)const
{
return p->processID;
}
int Clinkqueue::GetCTime(PCB *p)const//CPU
{
return p->ctime;
}
int Clinkqueue::GetRTime(PCB *p)const //已运行时间
{
return p->rtime;
}
PCB * Clinkqueue::GetFrontPointer()const//获取队头指针
{
return front;
}
int Clinkqueue::GetFinishTime(PCB *p)const//获取某个结点的R时间
{
return p->finishtime;
}
int Clinkqueue::GetATime(PCB *p) const//获取某个结点的到达时间
{
return p->arrivetime;
}
int Clinkqueue::GetITime(PCB *p) const//获取某个结点的I时间
{
return p->inputtime;
}
int Clinkqueue::GetOTime(PCB *p) const//获取某个结点的O时间
{
return p->outputtime;
}
CString Clinkqueue::GetWait(PCB *p)const
{
return p->wait;
}
// CString GetWait(PCB *)const;
CString Clinkqueue::GetState(PCB *p)//获取进程控制块的状态
{
if(!QueueEmpty())//队列不为空
return p->state;
else
return ““;
}
void Clinkqueue::EnQueue(PCB *p)
{
if(!p)
return;
p->next=NULL;
if(QueueEmpty())
{
front=rear=p;
}
else
{
rear->next=p;
rear=p;
}
// rear->next=NULL;
count++;
}
int Clinkqueue::alltime(int aint f)//计算两个时间相差的秒数
{
int c;
c=f-a;
return c;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4909 2012-07-08 10:51 time\Debug\APPMODUL.obj
文件 0 2012-07-08 10:51 time\Debug\APPMODUL.sbr
文件 26825 2012-07-09 06:33 time\Debug\li
文件 0 2012-07-09 06:33 time\Debug\li
文件 105812 2012-07-08 10:51 time\Debug\StdAfx.obj
文件 1368165 2012-07-08 10:51 time\Debug\StdAfx.sbr
文件 4989952 2012-07-09 13:14 time\Debug\time.bsc
文件 127040 2012-07-09 13:14 time\Debug\time.exe
文件 237312 2012-07-09 13:14 time\Debug\time.ilk
文件 27196 2012-07-09 06:33 time\Debug\time.obj
文件 7272232 2012-07-08 10:51 time\Debug\time.pch
文件 500736 2012-07-09 13:14 time\Debug\time.pdb
文件 4456 2012-07-09 09:29 time\Debug\time.res
文件 0 2012-07-09 06:33 time\Debug\time.sbr
文件 84749 2012-07-09 13:14 time\Debug\timeDlg.obj
文件 0 2012-07-09 13:14 time\Debug\timeDlg.sbr
文件 361472 2012-07-09 14:45 time\Debug\vc60.idb
文件 421888 2012-07-09 13:14 time\Debug\vc60.pdb
文件 2638 2012-07-08 16:09 time\li
文件 1545 2012-07-09 06:33 time\li
文件 3543 2012-07-01 16:28 time\ReadMe.txt
文件 1078 2012-07-01 16:28 time\res\time.ico
文件 396 2012-07-01 16:28 time\res\time.rc2
文件 2153 2012-07-09 09:29 time\resource.h
文件 202 2012-07-04 15:42 time\StdAfx.cpp
文件 1052 2012-07-03 20:08 time\StdAfx.h
文件 24048 2012-07-09 10:01 time\time.aps
文件 3111 2012-07-09 19:03 time\time.clw
文件 2206 2012-07-07 21:30 time\time.cpp
文件 4599 2012-07-08 11:09 time\time.dsp
............此处省略14个文件信息
相关资源
- 一个完整的旅游信息管理网站源代码
- Nurbs曲线曲面库源码
- RTKLIB在vsvc中的调试,包括了需要的额
- 东南大学 robocup 2012年 校赛 优胜奖 源
- 招聘网站源代码
- 2003年宽带放大器源代码
- ssdt内核hook的源代码
- 数独游戏源代码
- 生命游戏源代码
- 光束平差Bundle Adjustment源代码
- 太阳系仿真源代码,opengl模型太阳系
- 串口调试助手源代码 VS+Qt
- QT GUI 界面风格模板 源码
- stm8s ds18b20 温度传感器 IAR函数库源代
- 学生信息档案管理系统源代码
- 深入浅出设计模式中文版高清 pdf
- 操作系统真象还原 随书源代码
- 本人原创:基于Delphi WebBroker 的 CMS源
- 图像处理基础算法源代码
- winsocket 通讯程序
- lua编辑器自定义关键字可带注释
- labview的(源代码)
- 仿YY语音的聊天系统的源代码
- Flash AS3.0 360度全景展示源代码绝对好
- LDA资料文章+源代码
- 茶百科源代码
- anyQ服务器源代码
- 网络管理 校园网实验设计报告+源代码
- c本质论(第4版)源代码.tar
- 一个flash as 3.0 游戏人物行走的源代码
评论
共有 条评论