操作系统课程设计:仿真通用处理机调度

用高级语言仿真实现一个通用处理机调度演示程序。基本要求如下:

(1)进程调度算法包括:先来先服务算法、短作业优先算法、静态优先权调度算法以及高响应必优先调度算法,并采用菜单进行算法的选择;

(2)每一个进程由一个PCB标识,其内容可以根据具体情况设定;

(3)进程数、进入内存时间、要求服务时间、作业大小、优先级等可以在界面设定,也可以从外部文件中读取样例数据;

(4)在运行中显示各进程的状态:就绪和执行;

(5)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态;

(6)有算法的性能比较功能,可以比较同一组数据在不同调度算法下的平均周转时间;

(7)有一定的数据容错能力。

 

NOTES:

虽然最近比较忙,但是还是头铁的选择了自己写代码,而不是copy网上的,所有代码都是我自己写的,由于水平限制所以难免有问题,希望大家多指正,参考时请自行测验,代码后面写的那些测试案例得出的结果是正确的。

题目要求中的4、5两项要求由于时间原因,而且我没能清楚理解第四个要求的意义(个人觉得因为只让显示就绪或者执行,那么显示出来的自然就是执行的,其他的自然就是就绪了),所以没有写这个 步骤;第五个要求因为要每一步都输入一个字符让其继续运行,导致页面过于混乱,操作过于复杂,所以我选择了去掉。

另外:还是由于时间原因我没有考虑当一个进程运行完以后,就绪队列中没有任何一个进程的情况

希望各位同学以后在做课程设计时还是应当尽量追求完美,忙于考研,我已经不能再去熬一夜了。。。

总结:

这可能是我目前为止独立写的最长的代码,熬了两次夜,起来俩痘......,不过收获颇多

1:写程序之前先构造了大体框架,感受到了盖房子的过程

2:代码中命名、注释、缩进等基本统一标准,整体美观

3:实现某个功能的各个函数之间相对独立(比如:Calculate和Output)方便单独调用和修改

 

发现的问题:

1:虽然有了大体框架,但是对各个部分了解不深就草草开写,导致最开始写出的几个算法都出现逻辑错误,不得不修改大部分代码,浪费了很多时间。

2:刚开始时函数的功能不够独立,比如Output中包含了计算和输出两部分,要计算就不得不输出,当然,下面的代码中我已经修改了。

3:...问题还有许多,希望大佬们多指正,代码错误或者代码习惯不好都可以,欢迎大家留言

总之,很开心能独立快速的写出这个课程设计,革命尚未成功,同志还需努力。

代码(使用DEV编写):

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<windows.h>
#define maxn 30
#define INF 10000
using namespace std;
 
//函数声明
int Turn();
int Menu();
int Select();
int Input();
int FCFS(int n,bo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值