计算机操作系统——进程控制和调度

一、 实验目的

用高级语言编写和调试进程调度的模拟程序,以加深对进程调度算法的理解。

二、实验仪器设备

CodeBlock

三、实验内容

1、 自定义进程相关的数据结构;
2、 模拟进程控制块队列、进程控制块优先级队列、统计信息链表及其指令集合;
3、 编程实现常见的进程控制和调度策略(先来先服务算法(FCFS调度法)、短作业(进程)优先调度算法(SJ调度算法)、最高优先权优先调度算法(优先调度算法)、时间片轮转算法(RR调度算法));
4、 测试以上进程调度策略的周转时间、带权周转时间、平均周转时间和平均带权周转时间,并定性评价它们的性能。

四、实验步骤

创建和显示进程状态算法:PCB *CreatPCB(int n)

  • FCFS调度算法

功能:根据进程到达的顺序进行调度,先到达的进程先执行。在就绪队列中排的越靠前越先执行
  算法:void FCFS(PCB *head,PCB *over)

  • SJ调度算法

功能:从就绪队列中选出剩余执行时间最短的就绪进程进行执行。执行结束后继续从就绪队列中选出剩余执行时间最短的。直到所有进程都被执行完。
  算法:void SJF(PCB *head,PCB *over)//sjf算法

  • 优先调度算法(Prio):

功能:从就绪队列中选出优先级别最高的进程进行执行。重复进行。直到所有的所有的进程执行完毕。
  算法:void Prio(PCB *head,PCB *over)

  • RR调度算法:

功能:根据时间片的大小,对每个进程依次执行。时间片用完之后进程进入阻塞的状态,重新得到时间片后接着执行。直到完成。
  算法:void RR(PCB *head,PCB *over,int t,int k)//时间片轮转法
在这里插入图片描述
FCFS调度算法:
在这里插入图片描述
在这里插入图片描述
SJF调度算法:
在这里插入图片描述
在这里插入图片描述
优先调度算法:
在这里插入图片描述
在这里插入图片描述RR调度算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、实验总结;

该实验利用进程调度中的优先级算法调度进程,开始给每一个进程设定一个优先级数,对于优先级高的进程先调度,优先级低的进程后调度,在调度一个进程时,其他进程将处于就绪态,而正在被调度的进程应处于运行态。优先级调度算法只是进程调度算法的一种,我们还应依照书本去学习进程调度的其它算法,以便更好地了解进程调度。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值