操作系统实验九.docx
- 文档编号:9120056
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:10
- 大小:120.98KB
操作系统实验九.docx
《操作系统实验九.docx》由会员分享,可在线阅读,更多相关《操作系统实验九.docx(10页珍藏版)》请在冰点文库上搜索。
操作系统实验九
学号E11614051专业计算机科学与技术姓名施飞宇
实验日期2018/12/20教师签字成绩
实验报告
【实验名称】最低松弛度优先调度算法
【实验目的】
1.学习最低松弛度算法思想。
2.用代码实现改算法,解决最低松弛度优先调度问题。
【实验原理】
最低松弛度优先(LLF)算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。
任务的紧急程度愈高,为该任务所赋予的优先级就愈高,使之优先执行。
在实现该算法时要求系统中有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在队列最前面,被优先调度。
松弛度的计算方法如下:
任务的松弛度=必须完成的时间-其本身的运行时间-当前时间
其中其本身运行的时间指任务运行结束还需多少时间,如果任务已经运行了一部分,则:
任务松弛度=任务的处理时间-任务已经运行的时间–当前时间
【实验内容】
数据结构:
本实验进程采用结构体来存储线信息,采用结构体数组来存储进程序列。
进程结构定义如下:
typedefstruct{
intstart;//进程申请服务开始时间
intover;//进程截止时间
intsurvey1;//需要服务总时间
intsurvey2;//已经服务时间
intsongchi;//松弛度
intlabel;//等于0未被处理,等于1已经被处理完毕
}pcb;
程序流程图:
程序代码:
%2018/12/20笃行南楼A202E11614051施飞宇
#include"iostream"
#include
usingnamespacestd;
typedefstruct{
intstart;//进程申请服务开始时间
intover;//进程截止时间
intsurvey1;//需要服务总时间
intsurvey2;//已经服务时间
intsongchi;//松弛度
intlabel;//等于0未被处理,等于1已经被处理完毕
}pcb;
voidpcb_A(pcb*A,intn)//A进程创建函数
{
inti;
for(i=0;i { A[i].start=i*20; A[i].survey2=0; A[i].label=0; A[i].songchi=10; A[i].survey1=10; A[i].over=A[i].start+20; if(i! =n) cout<<"A"< } } voidpcb_B(pcb*B,intn)//B进程创建函数 { inti; for(i=0;i { B[i].start=i*50; B[i].survey2=0; B[i].label=0; B[i].songchi=25; B[i].survey1=25; B[i].over=B[i].start+50; if(i! =n) cout<<"B"< } } inttest(pcb*X,intn,inttime) { inti,j; for(i=0;i { if(X[i].label==0&&X[i].start<=time) { X[i].songchi=X[i].over-(X[i].survey1-X[i].survey2)-time; returni; } } return-1; } voidrun_AB(pcb*A,intn1,pcb*B,intn2) { inttime; intai,bi,ka,kb; intmax_time; intAB=1; intlabel=0; if(n1*20>=n2*50) { max_time=n1*20; } else { max_time=n2*50; } cout<<"时间"<<"A"<<"截止时间"<<"服务时间"<<"松弛度"<<"B截止时间"<<"服务时间"<<"松弛度"<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验