第一范文网 - 专业文章范例文档资料分享平台

处理机调度算法的实现

来源:用户分享 时间:2025/8/3 14:58:57 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

处理机调度算法的实现

处理机调度算法的实现

程序设计思路:

自定义结构体PCB表(进程名name,进程优先数priority,进程执行时间time)以及进程就绪队列Queue_Process(data[MAXSIZE]数组存放PCB,front,rear队首队尾指针),通过每次对进程就绪队列进行进程优先数从大到小排序来确定进程执行的选择,并且是采用动态优先数调度算法(每次优先数减1,执行时间减1),每次输出进程执行情况时只需要将队首PCB调出执行,其他进程都处于动态就绪状态,等进程执行结束后重新对进程就绪队列排序。 程序中,采用结构体、队列等数据结构,其中对队列每次排序是采用冒泡排序算法实现。

源代码:

#include #include

using namespace std;

#define MAXSIZE 10

struct PCB {

int name; //进程名 int priority; //进程优先数 int time; //进程执行时间 };

struct Queue_Process {

PCB data[MAXSIZE]; //PCB队列 int front; // 队首 int rear; // 队尾 };

void InitQueue(Queue_Process *Q) { Q->front = Q->rear = 0;

}

bool IsQueueEmpty(Queue_Process Q) //队空判断函数 {

return (Q.front == Q.rear) ? true:false; }

bool IsQueueFull(Queue_Process Q) //队满判断函数 {

return (Q.front == (Q.rear+1)%MAXSIZE) ? true:false; }

void EnQueue(Queue_Process *Q,PCB x) //入队函数 {

if(IsQueueFull(*Q)) // 判断队列是否为满

搜索更多关于: 处理机调度算法的实现 的文档
处理机调度算法的实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7w55e0mgcn207lq1bbd16zh7s4eqk601d52_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top