资源简介

代码片段和文件信息
#define MAXQSIZE 100 //最大队列长度
#define NULL 0
#define OK 1
#define OVERFLOW 0
#define STATUS int
#define ERROR 0
#include
#include
#include
using namespace std;
struct PCB
{
int name;//用数字对数据块标号
int state;//其状态为0或1
int prior;//优先级
};
typedef struct QNode
{//定义队列的结点的结构
PCB data;
struct QNode *next;
}QNode *QueuePtr;
typedef struct
{//定义队列的结构
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}linkQueue;
int InitQueue (linkQueue &Q)
{//初始化队列
Q.front=Q.rear=(QueuePtr) malloc(sizeof(QNode));
if(!Q.front) exit(0);
Q.front->next=NULL;
return OK;
}
int PrintQueue(linkQueue &Q)//打印整个队列
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(Q.front==Q.rear) return ERROR;
p=Q.front->next;
do
{
cout<data.name<<“ “<data.state<<“ “<data.prior< p=p->next;
}
while(p!=NULL);
cout< free(p);
return OK;
}
void print(PCB &s)//打印单个进程的情况
{
cout<
}
int EnQueue(linkQueue &QPCB e)
{//入队
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p) exit(0);
p->data=e; p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return OK;
}
int DeQueue (linkQueue &QPCB &e)
{//出队
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(Q.front==Q.rear) return ERROR;
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p) Q.rear=Q.front;
free(p);
return OK;
}
int GetHead (linkQueue &QPCB &e)
{//读取对列头元素
e=Q.front->next->data;
return OK;
}
int QueueEmpty (linkQueue Q)
{//判断队列是否为空,为空则返回0
if(Q.front==Q.rear)
return 0;
else
return 1;
}
void fifo(linkQueue &waitlinkQueue &oklinkQueue &run)
{//先进先出调度算法,wait为等待对列,ok为就绪队列
srand((unsigned)time(NULL));//让随机数不重复
PCB temptemp2;
int t;
while(QueueEmpty(wait)==1||QueueEmpty(ok)==1)
{
///////////////////////////////////////////////就绪队列放一个元素到运行队列中
if(1==QueueEmpty(ok))//ok队列非空
{
DeQueue (oktemp);//就绪队列中出一个元素
temp.state=2;
EnQueue(runtemp);//就绪队列头进入运行队列
cout<<“当前执行进程为:“< }
else
{
cout<<“就绪队列为空“< //return ;
}
//////////////////////////////////////////////////////////等待队列的第一个进程插入到就绪队列
if(1==QueueEmpty(wait))//等待队列非空
{
DeQueue ( waittemp);
temp.state = 1;
EnQueue(oktemp);
}
////////////////////////////////////////////////////////////输出运行情况
cout<<“进程名 状态 优先级 “< cout<<“就绪队列为:“< PrintQueue(ok);
cout<<“等待队列为:“< PrintQueue(wait);
///////////////////////////////////////////////////////////如何处理正在运行队列
if(1==QueueEmpty(run))//ok队列非空
{
t = rand()%2;
DeQueue (runtemp);//就绪队列中出一个元素
if(0==t)
{
temp.state=3;
}
else if(1==t)
{
temp.state=1;
EnQueue(oktemp);//插入就绪队列队尾
}
else if(2==t)
{
temp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4896 2008-12-15 10:36 实验1\sy1\Debug\BuildLog.htm
文件 663552 2008-12-15 10:36 实验1\sy1\Debug\fifo.exe
文件 146 2008-12-08 17:17 实验1\sy1\Debug\fifo.exe.em
文件 212 2008-12-08 17:17 实验1\sy1\Debug\fifo.exe.em
文件 145 2008-12-15 10:36 实验1\sy1\Debug\fifo.exe.intermediate.manifest
文件 1511164 2008-12-15 10:36 实验1\sy1\Debug\fifo.ilk
文件 488185 2008-12-15 10:36 实验1\sy1\Debug\fifo.obj
文件 43520 2008-12-09 10:48 实验1\sy1\Debug\fifo.opt
文件 2468864 2008-12-15 10:36 实验1\sy1\Debug\fifo.pdb
文件 67 2008-12-15 10:36 实验1\sy1\Debug\mt.dep
文件 50176 2008-12-08 13:20 实验1\sy1\Debug\vc60.idb
文件 53248 2008-12-08 13:20 实验1\sy1\Debug\vc60.pdb
文件 175104 2008-12-15 10:36 实验1\sy1\Debug\vc80.idb
文件 167936 2008-12-15 10:14 实验1\sy1\Debug\vc80.pdb
文件 9406 2008-12-15 10:14 实验1\sy1\fifo.cpp
文件 4260 2008-12-08 13:24 实验1\sy1\fifo.dsp
文件 533 2008-12-08 13:09 实验1\sy1\fifo.dsw
文件 1387520 2008-12-15 10:36 实验1\sy1\fifo.ncb
文件 48640 2008-12-08 13:24 实验1\sy1\fifo.opt
文件 996 2008-12-08 13:20 实验1\sy1\fifo.plg
文件 872 2008-12-15 10:36 实验1\sy1\fifo.sln
..A..H. 14336 2008-12-15 10:36 实验1\sy1\fifo.suo
文件 5105 2008-12-15 10:36 实验1\sy1\fifo.vcproj
文件 1427 2008-12-15 10:36 实验1\sy1\fifo.vcproj.0A071DF18F2E4E6.Administrator.user
文件 204288 2009-01-07 20:35 实验1\实验报告1.doc
目录 0 2008-12-15 10:36 实验1\sy1\Debug
目录 0 2008-12-15 10:36 实验1\sy1
目录 0 2009-12-29 20:32 实验1
----------- --------- ---------- ----- ----
7304598 28
............此处省略1个文件信息
- 上一篇:FineCMS 海豚大众版v2.3.5
- 下一篇:单片机点阵毕业设计
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- STM32基于rt_thread操作系统的SDHC卡文件
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- Bochs入门教程[操作系统第一步]
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 模拟一个文件管理系统
- 二级文件系统(操作系统)
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 操作系统共享内存实验
- 操作系统循环首次适应算法
- 操作系统课程设计实现可变分区存储
- 基于GTK的Linux环境下的简易任务管理器
- 操作系统课程设计 二级文件管理系统
- 加快Windows XP操作系统开机速度
- 操作系统教程课后答案华中科技大学
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 计算机操作系统课后_汤小丹_第四版
- 计算机操作系统(第四版)汤小丹课
评论
共有 条评论