资源简介
用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如先来先服务调度、短作业优先调度、优先权调度、时间片轮转调度、多级反馈队列调度)的调度。
代码片段和文件信息
//#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;
class program{
public:
char name;
float arrivetime;
float servetime;
float starttime;
float finishtime;
float overtime;
float weightime;
};
void sort( program a[] int n){
program t;
cout<<“根据到达时间重新排序:“< for (int j = 0; j for (int i = 0; i if (a[i].arrivetime>a[i + 1].arrivetime)
{
t.arrivetime = a[i].arrivetime; a[i].arrivetime = a[i + 1].arrivetime; a[i + 1].arrivetime = t.arrivetime;
t.name = a[i].name; a[i].name = a[i + 1].name; a[i + 1].name = t.name;
t.servetime = a[i].servetime; a[i].servetime = a[i + 1].servetime; a[i + 1].servetime = t.servetime;
}
for (int i = 0; i cout<<“进程:“<}
void fcfs( program a[] int n){
int i = 0;
float time = a[i].arrivetime;
for (i = 0; i time = time + a[i].servetime;
a[i].finishtime = time;
a[i].starttime = a[i - 1].finishtime;
a[i].overtime = a[i].finishtime - a[i].arrivetime;
a[i].weightime = (float)a[i].overtime / a[i].servetime;
}
cout<<“FCFS算法:“< for (i = 0; i if (i == 0){
a[i].starttime = a[i].arrivetime;
}
cout<<“进程:“< a[i].finishtime<<“周转时间:“< }
}
void sjf( program a[] int n){
program t;
int i = 0 j = 0;
float sorttime;
sorttime = a[0].arrivetime;
for (i = 0; i < n - 1; i++){
if (a[i].arrivetime <= sorttime&&a[i + 1].arrivetime <= sorttime){
if (a[i].servetime >a[i + 1].servetime){
t.arrivetime = a[i].arrivetime; a[i].arrivetime = a[i + 1].arrivetime; a[i + 1].arrivetime = t.arrivetime;
t.name = a[i].name; a[i].name = a[i + 1].name; a[i + 1].name = t.name;
t.servetime = a[i].servetime; a[i].servetime = a[i + 1].servetime; a[i + 1].servetime = t.servetime;
}
}
sorttime = sorttime + a[i].servetime;
}
cout<<“短作业优先算法:“< for (i = 0; i < n; i++){
cout<<“进程:“< }
float time = a[0].arrivetime;
for (i = 0; i time = time + a[i].servetime;
a[i].finishtime = time;
a[i].starttime = a[i - 1].finishtime;
a[i].overtime = a[i].finishtime - a[i].arrivetime;
a[i].weightime = (float)a[i].overtime / a[i].servetime;
}
for (i = 0; i if (i == 0){
a[i].starttime = a[i].arrivetime;
}
cout<<“进程 “< < <<“带权周转时间“< }
}
void main(){
int i m n;
struct program pro[5];
cout<<“请输入进程的数目:“< cin>>m;
for (i = 0; i cout<<“请输入进程名,到达时间,服务时间“< cin >> pro[i].name >> pro[i].arrivetime >> pro[
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 46080 2015-10-28 14:11 实验1\Debug\实验1.exe
文件 410320 2015-10-28 14:11 实验1\Debug\实验1.ilk
文件 658432 2015-10-28 14:11 实验1\Debug\实验1.pdb
文件 15269888 2015-10-28 15:01 实验1\ipch\实验1-9ccda7e2\实验1-f7ce3cc7.ipch
文件 594 2015-10-28 14:11 实验1\实验1\Debug\cl.command.1.tlog
文件 8876 2015-10-28 14:11 实验1\实验1\Debug\CL.read.1.tlog
文件 252 2015-10-28 14:11 实验1\实验1\Debug\CL.write.1.tlog
文件 2 2015-10-28 14:11 实验1\实验1\Debug\li
文件 2 2015-10-28 14:11 实验1\实验1\Debug\li
文件 1318 2015-10-28 14:11 实验1\实验1\Debug\li
文件 2638 2015-10-28 14:11 实验1\实验1\Debug\li
文件 566 2015-10-28 14:11 实验1\实验1\Debug\li
文件 336 2015-10-28 14:11 实验1\实验1\Debug\mt.command.1.tlog
文件 246 2015-10-28 14:11 实验1\实验1\Debug\mt.read.1.tlog
文件 246 2015-10-28 14:11 实验1\实验1\Debug\mt.write.1.tlog
文件 436 2015-10-27 22:37 实验1\实验1\Debug\rc.command.1.tlog
文件 218 2015-10-27 22:37 实验1\实验1\Debug\rc.read.1.tlog
文件 226 2015-10-27 22:37 实验1\实验1\Debug\rc.write.1.tlog
文件 207872 2015-10-28 14:11 实验1\实验1\Debug\vc100.idb
文件 241664 2015-10-28 14:11 实验1\实验1\Debug\vc100.pdb
文件 3228 2015-10-27 22:37 实验1\实验1\Debug\实验1.Build.CppClean.log
文件 406 2015-10-27 22:37 实验1\实验1\Debug\实验1.exe.em
文件 472 2015-10-27 22:37 实验1\实验1\Debug\实验1.exe.em
文件 381 2015-10-28 14:11 实验1\实验1\Debug\实验1.exe.intermediate.manifest
文件 72 2015-10-28 14:11 实验1\实验1\Debug\实验1.lastbuildstate
文件 2650 2015-10-28 14:11 实验1\实验1\Debug\实验1.log
文件 196 2015-10-27 22:37 实验1\实验1\Debug\实验1_manifest.rc
文件 73136 2015-10-28 14:11 实验1\实验1\Debug\调度算法.obj
文件 3925 2015-10-27 16:56 实验1\实验1\实验1.vcxproj
文件 950 2015-10-27 16:56 实验1\实验1\实验1.vcxproj.filters
............此处省略16个文件信息
相关资源
- C、java表白代码合集
- 南京中新赛克2016校招笔试题C语言软件
- 开源STM32F4xx自定义USB数据传输,支持
- 操作系统课程设计 java编写 文档+代码
- 操作系统课程设计--模拟进程调度管理
- 基于Android的C语言题库管理系统
- Java模拟最短作业优先、时间片轮转、
- Weka 3.7.9 windows操作系统
- 操作系统课程设计——模拟生产者与
- 纯java编写的操作系统
- C语言解析教程原书第4版美 凯利.pdf
- 操作系统 进程调度算法实现Android实现
- 基于Java的移动臂磁盘调度算法
- C语言词法分析器(Java版.带界面)
- C语言程序设计第4版
- 编译原理词法分析器实现Java带界面源
- c0编译器 词法分析 文法分析 生成目
- 利用Java编写简单的C语言词法分析器
- java实现的c语言简单编译器
- 使用直接分析法编制C语言子集的词法
- MiniC语言编译系统
- 采用java编写的C语言词法分析器(可执
- Java模拟银行前后台简单操作系统
- 用三个线程分别计算平均值,最大值
- JavaCC实现MiniC语言的编译
- c语言表达式的语法分析器
- 天津理工操作系统实验三java带界面
- C语言指针以及区分左值和右值的技巧
- 东北大学软件学院最新操作系统实验
- 源享科技学习视频arm、单片机、模电
评论
共有 条评论