资源简介
操作系统课程设计报告-多级反馈队列调度算法模拟,操作系统,多级就绪队列,进程调度,时间片轮转法,附带详细的文档说明和源代码
代码片段和文件信息
#include
#include
#include
#include
typedef struct pcb //进程控制块信息
{
char name[20]; //进程名
int prio; //进程的优先级
int arritime; //进程到达时间
int round; //分配CPU的时间片
int cputime; //CPU已执行时间
int needtime; //进程运行所需要的时间
int fintime; //完成时间
char state; //进程的状态:就绪W运行R完成F
struct pcb *next; //链表指针
}PCB;
typedef struct Queue //多级就绪队列节点信息
{
PCB *linkPCB; //就绪队列中的进程队列指针
int prio; //就绪队列的优先级
int round; //就绪队列所分配的时间片
struct Queue *next; //向下一个就绪队列的链表指针
}ReadyQueue;
PCB *wait=NULL*run=NULL*finish=NULL; //定义三个队列:就绪队列执行队列完成队列
ReadyQueue *Head = NULL; //定义第一个就绪队列
int num; //进程个数
int ReadyNum=3; //就绪队列个数
unsigned long Scount; //系统时间计算器变量
void Insertwait(PCB *q) ; //新进程按优先级插入临时就绪队列
void ReadyQout(); //就绪队列输出函数
void Output(); //进程信息输出函数
void InsertFinish(PCB *fin); //进程插入到完成队列尾部
void InsertReadyQ(ReadyQueue *qin); //建就绪队列
void ReadyQCreate(); //创建就绪队列输入函数
void GetFirst(ReadyQueue *queue); //取得某一个就绪队列中的队头进程
void InsertLast(PCB *pinReadyQueue *queue); //进程插入到就绪队列尾部
void ProcessCreate(); //进程创建函数
void RoundRun(ReadyQueue *timeslice); //时间片轮转调度算法
void ProcessRun(PCB *p); //进程运行函数
void MultiDispatch(); //多级调度算法,每次执行一个时间片
int main(void)
{
PCB *p;
ReadyQueue *print=Head;
Scount=0;
printf(“——————多级反馈队列算法模拟——————\n\n“);
ReadyQCreate(); //创建就绪队列
ProcessCreate(); //创建就绪进程队列
printf(“起始时刻多级反馈队列情况:\n“);
ReadyQout();
Output();
printf(“\n“);
printf(“算法开始执行请按回车键:“);
getchar();
MultiDispatch();
Output();
p=finish;
printf(“进程完成的顺序:\n**********************\n“);
while (p->next!=NULL)
{
printf(“%s->“p->name);
p=p->next;
}
printf(“%s\n**********************\n“p->name);
return 0;
}
void ReadyQout() //就绪队列进程输出函数
{
ReadyQueue *pout=Head;
PCB *p;
int j;
printf(“\n------------系统时间为:T=%d---------------\n“Scount);
for(j=1;j<=ReadyNum;j++)
{
printf(“\n第%d个就绪队列 时间片大小为 %d \n“jpout->round);
if(pout->linkPCB!=NULL)
{
p=pout->linkPCB;
printf(“进程名 优先级 到达时间 需要时间 cpu时间 进程状态\n“);
while(p)
{
printf(“ %s %d %d %d %d %c\n“p->namep->priop->arritimep->needtimep->cputimep->state);
p=p->next;
}
}
else
printf(“\n无进程\n\n“);
pout=pout->next;
}
}
void Output() //进程信息输出函数
{
ReadyQueue *print=Head;
PCB *p;
p=run;
while(p)
{
printf(“\n正在运行的进程是:\n“);
printf(“进程名\t优先级\t到达时间 需要时间 cpu时间\t进程状态\n“);
while(p!=NULL)
{
printf(“ %s\t %d\t %d\t %d \t %d\t %c\n“p->namep->priop->arritimep->needtimep->cputimep->state);
p=p->next;
}
}
printf(“\n“);
p=finish;
while(p)
{
printf(“已完成进程信息:\n“);
printf(“进程名\t优先级\t到达时
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 41984 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\vc60.idb
文件 45056 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\vc60.pdb
文件 200811 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\操作系统课程设计源程序.exe
文件 216124 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\操作系统课程设计源程序.ilk
文件 20685 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\操作系统课程设计源程序.obj
文件 229256 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\操作系统课程设计源程序.pch
文件 418816 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug\操作系统课程设计源程序.pdb
文件 200192 2011-04-19 22:51 操作系统课程设计报告-多级反馈队列调度算法模拟\多级反馈队列算法演示.ppt
文件 237568 2011-04-20 23:00 操作系统课程设计报告-多级反馈队列调度算法模拟\多级反馈队列算法设计报告.doc
文件 9409 2011-04-20 23:02 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.cpp
文件 3595 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.dsp
文件 552 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.dsw
文件 33792 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.ncb
文件 48640 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.opt
文件 1287 2011-04-21 08:44 操作系统课程设计报告-多级反馈队列调度算法模拟\操作系统课程设计源程序.plg
目录 0 2012-05-17 11:15 操作系统课程设计报告-多级反馈队列调度算法模拟\Debug
目录 0 2012-05-17 11:15 操作系统课程设计报告-多级反馈队列调度算法模拟
----------- --------- ---------- ----- ----
1707767 17
- 上一篇:广东工业大学硕士论文答辩PPT模板
- 下一篇:BWA_BWT生物比对软件
评论
共有 条评论