操作系统_进程调度算法C/C++语言实现

操作系统课程实验,C/C++实现四种进程调度算法。包括先到先执行、优先级原则、短作业优先、时间片轮转。本篇主要讲述整体框架及几个调度算法的具体实现。之所以说是C/C++是因为程序整体框架为C结构化没有使用面向对象。但是使用了c++标准输入输出以及c++标准库里的queue队列

 

一、整体框架

整体框架流程图
整体框架流程图

 

 二、调度算法实现

四种调度算法不懂的可以参考此篇[操作系统]调度

先到先服务、短作业优先以及优先及原则基本都是先对提交的进程按不同原则进行排序然后然后按序列执行。此处主要介绍时间片轮转的实现。

时间片轮转流程图
void RRO()
{
    //时间片轮转
    void runRro(PCB job);
    std::queue<PCB>tempPcb;
    while(!PCB_Queue.empty()||!tempPcb.empty()||!ready_queue.empty())
    {

        if(PCB_Queue.front().up_time==m_system_time)
        {
            tempPcb.push(PCB_Queue.front());
            PCB_Queue.pop();
        }
        if(!ready_queue.empty())
        {
            tempPcb.push(ready_queue.front());
            ready_queue.pop();
        }
        runRro(tempPcb.front());
        tempPcb.pop();
    }

}

三、源码

vscode+g++可直接编译运行

https://github.com/zhaomangang/processScheduling.git

时间片轮转运行截图

 

 

写在最后:

早上8点迷迷糊糊去上实验课,本来想着混一上午,结果心血来潮把这写了。当时想直接把博客写了但是时间来不及了。下午博主最近在跟的项目出了bug该到了九点多才结束。接着准备写这篇,本想多加写点内容,但是流程图画出来后发现根本无需博主多说。大家有什么疑问或博主行文及单吗中有何问题欢迎留言指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值