操作系统--进程调度算法

一、要求(1)先来先服务算法,短进程优先算法,高优先级优先算法,时间片轮转调度算法;(2)有录入界面,动态录入进程个数,进程标识符,进入时间,服务时间,优先级,系统时间片长短等信息;(3)有算法选择界面,能够选择不同的调度算法;(4)有输出界面,输出不同调度算法下诸进程的进程标识符,进入时间,服务时间,开始时间,完成时间,周转时间,带权周转时间及一组进程的平均周转时间及平均带权周转时间。二、原理定义一个进程控制块PCB,包含进程标识符,进入时间,服务时间,开始时间,完成时间,周转时间,带权周转时
摘要由CSDN通过智能技术生成

一、要求

(1)先来先服务算法,短进程优先算法,高优先级优先算法,时间片轮转调度算法;
(2)有录入界面,动态录入进程个数,进程标识符,进入时间,服务时间,优先级,系统时间片长短等信息;
(3)有算法选择界面,能够选择不同的调度算法;
(4)有输出界面,输出不同调度算法下诸进程的进程标识符,进入时间,服务时间,开始时间,完成时间,周转时间,带权周转时间及一组进程的平均周转时间及平均带权周转时间。

二、原理

定义一个进程控制块PCB,包含进程标识符,进入时间,服务时间,开始时间,完成时间,周转时间,带权周转时间等一系列将会用到的数据成员,再利用构造函数对进程标识符,进入时间,服务时间,优先级赋值。

用courseQueue类来定义不同算法调度下队列的变化(即进程进出队情况),enterQueue()进程进队的方法,在先来先服务算法,短作业优先算法和高优先级优先算法中使用outQueue()出队方法,在时间片轮转算法中使用outQueueRoundRubin(double sliceTime)出队方法。
ContrastArrivetime类对到达时间由先到后进行排序,ContrastPriority类对不同优先级的进程进行排序,ContrastServetime类对服务时间由短到长排序。

Course类中的init()方法动态录入进程个数及各进程信息,Select()方法中包含算法选择页面,用switch ,case语句进行不同算法的选择。

三、主要内容及步骤

1、 算法流程

(1)主要函数:

  • Course.Init():对进程个数及各进程的信息进行初始化;
  • Course.Select():包含算法选择目录,输入不同序号,调用不同算法;
  • courseQueue.enterQueue():使到达进程入队;
  • courseQueue.outQueue():基本的出队操作;
  • courseQueue.outQueueRR():时间片轮转算法下的出队操作。

(2)核心算法及解析:

public void enterQueue()//进程入队函数
{
   
    while (nowIndex < storage.size()) {
   
        if (storage.get(
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值