• 大小: 419KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签:

资源简介

操作系统课程设计报告-多级反馈队列调度算法模拟,操作系统,多级就绪队列,进程调度,时间片轮转法,附带详细的文档说明和源代码

资源截图

代码片段和文件信息

#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


评论

共有 条评论

相关资源