「这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战」
导读
PS:最近有很多小伙伴问我怎么准备算法竞赛和面试的问题,还有一些刚入门的新同学不知道怎么学习编程,肥学给大家准备了一些专栏有兴趣的可以去看看哦!
好了今天我们给大家准备了操纵系统的期末综合实验大家可以参考参考!源码可以在我的主页上找到。
一、实验目的
通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。
二、设备与环境
- 硬件设备:PC机一台
- 软件环境:安装Windows操作系统,并安装相关的程序开发环境,如C \C++\Java 等编程语言环境。
三、实验内容
实验采用了java语言编程模拟N个进程采用动态高优先权优先进程调度算法。该算法就是按照优先权的大小运行进程,如果一个时间片内未运行完,则将优先权数减3后再插入到链表中按priority的顺序进行排序找到最大的priority作为下一个运行进程且在就绪队列里面的进程priority会加1。
主模块:
动态priority排序模块:
用来保证头部永远最大
到达时间进入就绪状态模块:
计算周转时间和带权周转时间:
四、实验结果及分析
输入的信息
初始权值都为100,needtime为还需要的时间
进程 到达时刻 服务时间
1 | java复制代码A 0 3 |
以A为例:
最后结束时:
部分代码展示
1 | java复制代码//创建结构 |
1 | java复制代码判断是否到达,进程进入时间 |
1 | java复制代码//将进程转为就绪态并排序 |
本文转载自: 掘金