资源简介
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个文件信息
相关资源
- bp神经网络源代码,可直接运行
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- dotnet 写字板 实验 源代码 不好请要不
- 使用选择性重传协议实现UDP可靠通信
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- VC 获得文件属性 获取文件的创建时
- 网上拍卖系统完整源代码
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 读者写者问题(读者优先,写者优先
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- STM32F103 串口程序(完整版)
- VPC3_DPV1源代码,Profibus
- PB做的托盘程序(最小化后在左下角显
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 透明加密源码及说明
- 排队机叫号 源代码
- 五子棋C 源代码
- CAD LISP24个源代码
- 二叉树基本操作源代码
- 推箱子及人工智能寻路C 源代码
评论
共有 条评论