资源简介
含本人实验报告,有具体流程图,实验课上写的,有更好的想法可以提出,大家一起学习,赚点积分不容易 C语言编写,调试过可运行,含实验报告,含具体流程图 ,有注释和变量解释,环境为VS2008
代码片段和文件信息
// oslab1.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
int numa=0numb=0;//存放已经运行的次数
int deadtimea[10]={20406080100120140160180};//存放时间轴上A任务的截止时间
int deadtimeb[10]={50100150200};//存放时间轴上B任务的截止时间
int runtimea=10runtimeb=25;//存放当前任务A、B还需要运行的时间,A、B任务的运行时间的初始值分别为10和25
int clock=0;//clock中存放当前时间
int step=5;//用来存放时间跨度,每次增加5,即每隔5个时间单位进行一次最低松弛度优先算法的调度
int softa=0softb=0;//softa和softb分别用来存放当前任务A和任务B的松弛度
bool runa=falserunb=false;
//通过布尔量runa和runb来定义一些规则,runb为true表示B任务正在运行,为false表示当前不允许B任务执行,
//runa同理,在程序中可以灵活使用
void softai()//最低松弛度优先算法的核心部分
{
if(softa==0)//表示如果当前A任务已经到达了临界条件即A任务松弛度为0时,此时要抢占处理机来执行任务A
{
runb=false;
}
if(softb==0)//表示如果当前B任务已经到达了临界条件即B任务松弛度为0时,此时要抢占处理机来执行任务B
{
runa=false;
}
if(deadtimea[numa]-clock>20)//表示如果任务A当前周期内的运行任务已经完成,而且尚未进入下一周期,则任务A放弃处理机,让任务B执行任务
{
runb=true;
}
if(deadtimeb[numb]-clock>25)//表示如果任务B当前周期内的运行任务已经完成,而且尚未进入下一周期,则任务B放弃处理机,让任务A执行任务
{
runa=true;
}
if(softa {
runa=true;
runtimea-=step;
if(runtimea==0)
{
runtimea=10;
numa++;
}
}
else
{
runb=true;
runtimeb-=step;
if(runtimeb==0)
{
runb=false;
runtimeb=25;
numb++;
}
}
}
void display()//对表格中的每一项进行打印,包括“当前时间、截止时间、运行时间、松弛度”
{
printf(“%5d%11d%11d%9d %6d%11d%11d\n“clockdeadtimea[numa]runtimeasoftadeadtimeb[numb]runtimebsoftb);
}
int _tmain(int argc _TCHAR* argv[])
{
int timeatimeb;//用来存放任务的周期
int deadtime;//存放调度的最终截止时间
printf(“请输入任务A的周期:\n“);
scanf(“%d“&timea);
printf(“请输入任务A每周期的运行时间:\n“);
scanf(“%d“&runtimea);
printf(“请输入任务B的周期:\n“);
scanf(“%d“&timeb);
printf(“请输入任务B每周期的运行时间:\n“);
scanf(“%d“&runtimeb);
printf(“该调度算法从0时刻开始,请输入调度运行时间:\n“);
scanf(“%d“&deadtime);
for(int i=0;i<10;i++)
{
deadtimea[i]=timea*(i+1);//deadtimea[i]存放时间轴上A任务的截止时间
deadtimeb[i]=timeb*(i+1);//deadtimeb[i]存放时间轴上B任务的截止时间
}
printf(“*********************A*****************************B***************\n“);
printf(“当前时间 必须完成时间 运行时间 松弛度 必须完成时间 运行时间 松弛度\n“);
while(clock<=deadtime)//在deadtime内进行最低松弛度优先的调用
{
softa=deadtimea[numa]-runtimea-clock;//计算当前A任务的松弛度
softb=deadtimeb[numb]-runtimeb-clock;//计算当前B任务的松弛度
display();//每调用一次算法,打印当前任务的运行时间、截止时间等
softai();//调用最低松弛度优先算法
clock+=step;//时间增加
}
getchar();
getchar();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 31232 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\Debug\oslab1.exe
文件 378340 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\Debug\oslab1.ilk
文件 470016 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\Debug\oslab1.pdb
文件 9508 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\BuildLog.htm
文件 65 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\mt.dep
文件 663 2018-12-12 14:26 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\oslab1.exe.em
文件 728 2018-12-12 14:26 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\oslab1.exe.em
文件 621 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\oslab1.exe.intermediate.manifest
文件 11038 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\oslab1.obj
文件 3211264 2018-12-12 14:26 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\oslab1.pch
文件 12149 2018-12-12 14:26 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\stdafx.obj
文件 68608 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\vc90.idb
文件 126976 2018-12-12 15:33 实验9——最低松弛度优先算法\oslab1\oslab1\Debug\vc90.pdb
文件 2992 2018-12-12 15:35 实验9——最低松弛度优先算法\oslab1\oslab1\oslab1.cpp
文件 4495 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1\oslab1.vcproj
文件 1403 2018-12-12 16:52 实验9——最低松弛度优先算法\oslab1\oslab1\oslab1.vcproj.C25.ACER.user
文件 1177 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1\ReadMe.txt
文件 211 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1\stdafx.cpp
文件 233 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1\stdafx.h
文件 498 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1\targetver.h
文件 207872 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1.ncb
文件 884 2018-12-12 14:15 实验9——最低松弛度优先算法\oslab1\oslab1.sln
..A..H. 11264 2018-12-12 16:52 实验9——最低松弛度优先算法\oslab1\oslab1.suo
文件 223819 2018-12-21 09:52 实验9——最低松弛度优先算法\实验报告9.docx
文件 65536 2018-12-12 16:08 实验9——最低松弛度优先算法\绘图1.vsd
目录 0 2018-12-21 09:13 实验9——最低松弛度优先算法\oslab1\oslab1\Debug
目录 0 2018-12-21 09:13 实验9——最低松弛度优先算法\oslab1\Debug
目录 0 2018-12-21 09:13 实验9——最低松弛度优先算法\oslab1\oslab1
目录 0 2018-12-21 09:13 实验9——最低松弛度优先算法\oslab1
目录 0 2018-12-21 09:52 实验9——最低松弛度优先算法
............此处省略3个文件信息
相关资源
- 动态分区分配方式的模拟
- 操作系统电梯调度算法
- nachos操作系统实验三
- 用C\\C++实现操作系统经典同步问题,
- NUR算法和OPT算法实现-----操作系统实验
- 操作系统模拟实现单级目录的文件系
- FCFS和SJF调度算法C++
- 进程同步操作系统实验三,带实验报
- 操作系统的理发师问题解决文件打包
- 操作系统调度算法c语言实现
- 操作系统实验-计算机进程管理和进程
- 操作系统课程设计之进程调度源代码
- 操作系统 动态分区存储管理方式的
- 《 Linux操作系统下C语言编程入门》
- 操作系统内存分配C++实现
- 操作系统 读者写者问题c++
- 操作系统实习-快速文件系统
- 操作系统实习:动态分区分配C++实现
- 操作系统c语言模拟作业调度实验
- 进程调度时间片轮转+优先级进程调度
- 作业调度算法c语言版
- 操作系统课程设计 文件管理系统模拟
- spooling模拟系统代码.docx
- 操作系统实验-----MFC线程--购票系统演
- 分区式存储管理
- 操作系统抢占式短进程优先调度算法
- 请求调页存储管理方式的模拟
- 缓冲池的模拟(C++)
- 操作系统进程调度C++代码实现
- 操作系统请求分页存储器管理C++代码
评论
共有 条评论