资源简介
操作系统 进程调度
代码片段和文件信息
#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
- 下一篇:单片机点阵毕业设计
相关资源
- 汤子瀛版操作系统西电ppt
- 哈工大操作系统试验二:系统调用
- 模拟Unix文件系统,操作系统课程设计
- 深度探索嵌入式操作系统:从零开始
- 操作系统思维导图总结
- 基于stm32f103C8-ADC带ucos操作系统
- 操作系统原理实验报告+源代码哲学家
- 操作系统设计与实现Andrew S.Tanenbaum中
- 操作系统实验,生产者与消费者问题
- 操作系统实验进程的创建源代码及文
- 东北大学操作系统期末复习准备
- MIT Xv6 操作系统源码详解最新版 rev1
- 计算机操作系统答案/张尧学
- 操作系统课程设计报告 分页存储管理
- 计算机操作系统 考研书籍 汤子赢 P
- 操作系统原理电子书
- 计算机操作系统学习指导与题解.pdf
- 计算机操作系统教程第二版.pdf
- 计算机操作系统汤小丹第四版课件P
- 操作系统设计与实现(第三版影印版
- 操作系统 向勇 课件
- 操作系统教程(第5版) 费翔林
- 清华大学讲义操作系统
- 机器人操作系统ROS_现状与应用
- 现代操作系统第四版英文版Modern.Ope
- 计算机操作系统历年期末试卷广工版
- 嵌入式操作系统_by_kite
- 上海大学操作系统2实验报告
- UCOSII实时操作系统实验
- 任哲-嵌入式实时操作系统μCOS-II原理
评论
共有 条评论