处理器管理及进程高级通信实验

#创造灵感#按照优先级(优先数越小,优先级越大)对就绪队列进行排序,类似于链表中的排序。

从班级纪律委员cjr的代码中得到启发,xiexie        

时间片轮转算法:

对资源的分析:由输入的两个进程已经运行所需时间可以得知,pid1的资源开始占用的需求点为(6/23pid2的资源开始占用的需求点为(7/23(系统进程和用户进程各一半)。因此在pid1运行的3时刻,即总运行时间的5时刻,pid1开始占用资源,在pid2运行的3时刻,总运行时间的7时刻pid2开始占用资源,但此时资源占用时长还未结束,pid1需要继续使用资源,因此pid2要下CPU,让pid1继续使用CPU。直到总运行时间的10时刻,此时资源空闲,pid2可以占用资源。

CPU的分析:时间片为2,因此在2时刻,pid1cpu,3-4pid2CPU,不断轮转,但在7时刻,由于pid1还在使用资源,因此pid2只能先下CPU,pid1继续使用CPUpid1继续使用CPU,继续进行轮转调度直到9,pid1运行结束,只剩下pid2这一个进程使用CPU

接着使用Visio软件绘制甘特图如下图2所示:

                              时间轮转算法系统中CPU、资源分配的甘特图

修改为高优先级调度算法:

                                  通过比较优先数prio使进程按照优先级进行排列

类似于对链表进行排序。

然后在runIn()函数中调用sortList(ready)对就绪队列进行排序如下图9所示,使得进程按照优先级排列,排在最前面的优先级最高。

                          在runIn()中调用sortList(ready)按照优先级对进程进行排序

输入3个进程,pid1  2,pid2 3,pid3 4

对资源的分析:由输入的三个进程已经运行所需时间可以得知,pid1的资源开始占用的需求点为(2/21pid2的资源开始占用的需求点为(3/2)向下取整为1pid3的资源占用需求点为(4/22,(系统进程和用户进程各一半)。由于使用的算法为高优先级调度算法,pid2的优先级大于pid3的优先级大于pid1的优先级。因此在pid2运行的1时刻,即总运行时间的1时刻,pid2开始占用资源,资源占用时间为3,则在4时释放资源。接下来是pid3运行的2时刻,总运行时间的5时刻pid3开始占用资源,资源占用时间为3 ,则在8时释放资源。最后是pid1需要在运行的1时刻,总运行时间的8时刻使用资源,资源占用3后,直到总运行时间的11时刻,此时资源空闲。

CPU的分析:由于使用的算法为高优先级调度算法,因此pid2的优先级大于pid3的优先级大于pid1的优先级。Pid20-3时刻使用CPU,在3时刻使用完毕,下CPU3-7pid3CPU,但在7时刻,进程结束使用CPU。最后,pid18-11使用CPU,9时刻所有进程都使用完CPU使用Visio软件绘制相应的甘特图如下图所示:

                                    高优先级调度算法的CPU、资源分配甘特图

输入5个进程,pid1 3, pid2 4, pid3 5,pid4 6,pid5 7。

对资源的分析:由输入的三个进程已经运行所需时间可以得知,pid2的资源开始占用的需求点为(4/22pid4的资源开始占用的需求点为(6/23pid3的资源占用需求点为(5/2)向下取整为2, pid1的资源占用需求点为(3/2)向下取整为1, pid5的资源占用需求点为(7/2)向下取整为3,(系统进程和用户进程各一半)。由于使用的算法为高优先级调度算法,pid2的优先级大于pid4的优先级大于pid3的优先级大于pid1的优先级大于pid5的优先级。因此在pid2运行的2时刻,即总运行时间的2时刻,pid2开始占用资源,资源占用时间为3,则在5时释放资源。接下来是pid4运行的3时刻,总运行时间的7时刻pid4开始占用资源,资源占用时间为3 ,则在10时释放资源。接下来是pid3运行的2时刻,总运行时间的12时刻pid3开始占用资源,资源占用时间为3 ,则在15时释放资源。接下来是pid1运行的1时刻,总运行时间的16时刻pid1开始占用资源,资源占用时间为3 ,则在19时释放资源。最后是pid5需要在运行的3时刻,总运行时间的21时刻使用资源,资源占用3后,直到总运行时间的24时刻,此时资源空闲。

CPU的分析:由于使用的算法为高优先级调度算法,因此pid2的优先级最大,pid20-4时刻使用CPU,在4时刻使用完毕,下CPU4-10时刻pid4CPU,但在10时刻,进程pid4结束使用CPU。然后,pid310-15时刻使用CPU, pid115-18时刻使用CPU ,最后pid518-25时刻使用CPU 25时所有进程都使用完CPU

介是Tsingxianlan发的第一篇blog哟,如果有不对的地方,请批评指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值