C语言实现多级反馈队列调度算法

本文详细介绍了如何使用C语言来实现计算机操作系统中的多级反馈队列调度算法,涵盖了算法的设计原理和具体的代码实现,为理解和应用该调度算法提供了实践指导。
摘要由CSDN通过智能技术生成

C语言实现多级反馈队列调度算法

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
typedef struct node   /*进程节点信息*/  
{  
char name[20];   /*进程的名字*/  
int prio;    /*进程的优先级*/  
int round;    /*分配CPU的时间片*/  
int cputime;   /*CPU执行时间*/  
int needtime;   /*进程执行所需要的时间*/  
char state;    /*进程的状态,W——就绪态,R——执行态,F——完成态*/  
int count;    /*记录执行的次数*/  
struct node *next;  /*链表指针*/  
}PCB;  
typedef struct Queue  /*多级就绪队列节点信息*/  
{  
PCB *LinkPCB;   /*就绪队列中的进程队列指针*/  
int prio;    /*本就绪队列的优先级*/  
int round;    /*本就绪队列所分配的时间片*/  
struct Queue *next;  /*指向下一个就绪队列的链表指针*/  
}ReadyQueue;  
PCB *run=NULL,*finish=NULL; /*定义三个队列,就绪队列,执行队列和完成队列*/  
ReadyQueue *Head = NULL; /*定义第一个就绪队列*/  
int num;     /*进程个数*/  
int ReadyNum;    /*就绪队列个数*/  
void Output();          /*进程信息输出函数*/  
void InsertFinish(PCB *in);       /*将进程插入到完成队列尾部*/  
void InsertPrio(ReadyQueue *in);     /*创建就绪队列,规定优先数越小,优先级越低*/  
void PrioCreate();         /*创建就绪队列输入函数*/  
void GetFirst(ReadyQueue *queue);     /*取得某一个就绪队列中的队头进程*/  
void InsertLast(PCB *in,ReadyQueue *queue);   /*将进程插入到就绪队列尾部*/  
void ProcessCreate();        /*进程创建函数*/  
void RoundRun(ReadyQueue *timechip);    /*时间片轮转调度算法*/  
void MultiDispatch();        /*多级调度算法,每次执行一个时间片*/  

int main(void)  
{  
PrioCreate(); /*创建就绪队列*/  
ProcessCreate();/*创建就绪进程队列*/  
MultiDispatch();/*算法开始*/  
Output();  /*输出最终的调度序列*/  
return 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值