实验四
实验四进程调度算法的模拟实现
实验目的:
1:理解和掌握课堂上讲的进程调度算法,并编程模拟实现调度过程。 2:进程调度算法的实现方法
实验内容:
编程模拟实现进程调度算法:FCFS算法和SPJ算法
运行结果如下:
程序清单:
进程类:
package homework;
import java.text.DecimalFormat;
publicclass Process {
int pid; // pid表示进程的进程号
String pname; //name表示进程的名称
double arr_t; //arr_t表示进程的到达时间
double ser_t; //ser_t表示进程要求服务时间
double fin_t; //fin_t表示进程的完成时间
double t_t; //t_t表示进程的周转时间
double w_t; //w_t表示进程的带权周转时间
public Process(int pid,String name,double d,double e){ this.pid = pid;
this.pname = name;
this.arr_t = d;
this.ser_t = e;
}
//计算周转时间:完成时间 - 到达时间
publicvoid setT_t() {
t_t = fin_t - arr_t;
}
//计算带权周转时间:周转时间 / 服务时间
publicvoid setW_t() {
w_t = t_t /this.ser_t;
}
//打印进程的相关信息
public String toString() {
java.text.DecimalFormat df =new
java.text.DecimalFormat("###############0.000");
return"Process"+pid+";"+"进程名:"+pname+""+"完成时间:
"+df.format(fin_t)+""+"周转时间:"+df.format(t_t)+""+"带权周转时间:"+df.format(w_t);
}
}
测试类:
package homework;
import java.util.Scanner;
publicclass Moni {
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
Process[] p = new Process[5];//定义一个进程数组,用于存放测试进程信息
//初始化测试进程,
p[0] = new Process(1,"PA",8.0,1.0);
p[1] = new Process(2,"PB",8.5,0.5);
p[2] = new Process(3,"PC",9.0,0.2);
p[3] = new Process(4,"PD",9.1,0.1);
p[4] = new Process(5,"PE",9.8,0.6);
//用户输入不同数字选择不同算法,进行操作系统的模拟调度
Scanner scan = new Scanner(System.in);
System.out.println("请选择:1-FCFS 2-SJF");
int select =scan.nextInt();
if(select==1){
FCFS(p);
}
elseif(select == 2){
SPJ(p);
}
else{
System.out.println("请重新输入:");
}
}
;
//FCFS算法
publicstaticvoid FCFS(Process[] p){
//对存放进程的数组P按照进程的到达时间进行升序排序
for(int i = 0 ; i < 5 ; i++){
for( int j = i;j < 4; j++){
if(p[j].arr_t> p[j+1].arr_t){
double temp;
temp = p[j].arr_t;
p[j].arr_t = p[j+1].arr_t;
p[j+1].arr_t = temp;
}
}
}
//按照FCFS算法模拟操作系统对进程的调度
double finish_time = p[0].arr_t; //用于记录上一个进程的完成时间,用于计算该进程的完成时间
for(int i = 0 ; i < 5 ; i++){
p[i].fin_t = finish_time+ p[i].ser_t; //计算完成时间
finish_time = p[i].fin_t ;
p[i].setT_t(); //计算周转时间
p[i].setW_t(); //计算带权周转时间
System.out.println(p[i].toString()); //依照进程的执行顺序输出各进程的执行信息
}
}
//SPJ算法
publicstaticvoid SPJ(Process[] p){
double finish_time = p[0].arr_t; //用于记录上一个进程的完成时间,用于查找短作业和计算该进程的完成时间
for(int i = 0 ; i < 5 ; i++){ //外层循环用于进程的调度次数
int num = i;
double min_time = 1000;
for( int j = 0;j < 5; j++){ // 内层循环:每次调度时,从满足条件的进程中选取最短作业
//最短作业需要满足的条件:到达时间<=上一个进程的完成时间,还未被调度,服务时间是满足前两个条件的进程中最短的
if(p[j].ser_t p[j].fin_t==0.0){ min_time = p[j].ser_t; num = j ; } } p[num].fin_t = finish_time+ p[num].ser_t; //计算完成时间 finish_time = p[num].fin_t ; p[num].setT_t(); //计算周转时间 p[num].setW_t(); //计算带权周转时间 System.out.println(p[num].toString()); //依照进程的执行顺序输出各进程的执行信息 } } } 实验总结: FCFS算法和SPJ算法的比较: 1:FCFS算法较SPJ算法实现简单,只需根据进程的到达时间调度即可,而SPJ算法则需要到达时间,服务时间共同决定进程的调度。 2:FCFS算法优先考虑在系统中等待时间最长的作业,按照到达的时间先后进行调度,故不利于短作业。而FCFS算法按照作业的长短进行调度,利于短作业,但对长作业不利。SPJ算法完全不考虑作业的等待时间,因此可能会出现饥饿现象。 3:FCFS算法和SPJ算法都没有考虑进程的紧迫程度。因此,均不能实现人-机交互。 开课学院、实验室:数统学院实验时间:2015年10月28日 课程名称数学实验实验项目 名称 种群数量的状态转移—— 微分方程 实验项目类型 验证演示综合设计其他 指导 教师 肖剑成绩 实验目的 [1] 归纳和学习求解常微分方程(组)的基本原理和方法; [2] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [3] 熟悉MATLAB软件关于微分方程求解的各种命令; [4] 通过范例学习建立微分方程方面的数学模型以及求解全过程; 通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建 立微分方程方面的数学模型。这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟 悉处理大量的工程计算问题的方法是十分必要的。 实验内容 1.微分方程及方程组的解析求解法; 2.微分方程及方程组的数值求解法——欧拉、欧拉改进算法; 3.直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解); 4.利用图形对解的特征作定性分析; 5.建立微分方程方面的数学模型,并了解建立数学模型的全过程。 基础实验 一、问题重述 1.求微分方程的解析解, 并画出它们的图形, y’= y + 2x, y(0) = 1, 0 实验报告 实验名称 课程名称 ___电子技术基础实验 院系部:专业班级:学生姓名:学号 :同组人:实验台号 :指导教师:成绩:实验日期 : 华北电力大学 实验报告要求: 一、实验目的及要求 二、仪器用具 仪器名称规格/型号数量备注 实验箱1 示波器1 数字万用表1 交流毫伏表1 信号放生器1 三、实验原理 四、实验步骤(包括原理图、实验结果与数据处理) 五、讨论与结论(对实验现象、实验故障及处理方法、实验中 存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。) 六、实验原始数据 一、实验目的及要求: 1.学会放大器静态工作点的调试方法,分析静态工作点对放大器性能的影响。 2.掌握放大器电压放大倍数和最大不失真输出电压的测试方法。 3.悉常用电子仪器及模拟电路实验设备的使用。 二、仪器用具:略 三、实验原理 图 1.2.1为电阻分压式工作点稳定单管放大器实验电路图。 图 1.2.1共射极单管放大器实验电路 在图 1.2.1电路中,当流过偏置电阻R B1和 R B2的电流远大于晶体管VT 的基极电流I B时(一般 5~ 10 倍),则它的静态工作点可用下式估算: R B1U CC I E U U I C CE=U CC-I C(R C+R F1+ R E) U B R B2B U BE R B1R E R F1 电压放大倍数: A Vβ R C //R L 其中 r be= 200+26 (1+β)/I E r be(1)R F 1 输入电阻: R i= R B1 // R B2 // [r be+(1+β)R F1 ] 输出电阻: R O≈ R C 四、实验方法与步骤: 1.调试静态工作点 接通+ 12V 电源、调节R W,使 U E= 2.0V ,测量 U B、 U E、U C、 R B2值。记入表 1.2.1 。 表 1.2.1U= 2.0V E 测量值计算值U B( V)U E( V)U C( V)R B2(KΩ) U BE( V) U CE( V) I C( mA) 2.665 2.07.8530.865 5.2 2.0 根据表格测量数据,计算得到: U=U -U E =0.665V,U = U - U E =5.8V,I ≈ I = U /R =2/(1.1)=1.82mA BE B CE C CE EE 实验数据显示,Q点的值满足放大电路的静态工作点要求,BJT 处于放大区。 2.测量不同负载下的电压放大倍数 高等数学数学实验报告 实验人员:院(系) __ __学号____姓名_ __ 实验地点:计算机中心机房 实验一 空间曲线与曲面的绘制 一、实验题目:(实验习题1-2) 利用参数方程作图,做出由下列曲面所围成的立体图形: (1) x y x y x z =+--=2 222,1及xOy 平面; (2) 01,=-+=y x xy z 及.0=z 二、实验目的和意义 1、利用数学软件Mathematica 绘制三维图形来观察空间曲线和空间曲面图形的特点,以加强几何的直观性。 2、学会用Mathematica 绘制空间立体图形。 三、程序设计 空间曲面的绘制 作参数方程],[],,[,),(),() ,(max min max min v v v u u v u z z v u y y v u x x ∈∈? ?? ??===所确定的曲面图形的 Mathematica 命令为: ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,umin,umax}, {v,vmin,vmax},选项] (1) (2) 四、程序运行结果 (1) (2) 五、结果的讨论和分析 1、通过参数方程的方法做出的图形,可以比较完整的显示出空间中的曲面和立体图形。 2、可以通过mathematica 软件作出多重积分的积分区域,使积分能够较直观的被观察。 3、从(1)中的实验结果可以看出,所围成的立体图形是球面和圆柱面所围成的立体空间。 4、从(2)中的实验结果可以看出围成的立体图形的上面曲面的方程是xy z =,下底面的方程是z=0,右边的平面是01=-+y x 。 实验一 空间曲线与曲面的绘制 一、实验题目:(实验习题1-3) 观察二次曲面族kxy y x z ++=22的图形。特别注意确定k 的这样一些值,当k 经过这些值时,曲面从一种类型变成了另一种类型。 实验三:数据库的嵌套查询实验 实验目的: 加深对嵌套查询语句的理解。 实验内容: 使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 实验步骤: 一. 使用带IN谓词的子查询 1. 查询与’刘晨’在同一个系学习的学生的信息: 2. 查询选修了课程名为’信息系统’ 的学生的学号和姓名: 3. 查询选修了课程’1’和课程’2’的学生的学号: 二. 使用带比较运算的子查询 4. 查询比’刘晨’年龄小的所有学生的信息: 三. 使用带Any, All谓词的子查询 5. 查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄; 6. 查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄: 7. 查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄: select sno,sname,sage from student where sage<>all (select sage from student where sdept='CS') 四. 使用带Exists谓词的子查询和相关子查询 8. 查询与其他所有学生年龄均不同的学生学号, 姓名和年龄: 9. 查询所有选修了1号课程的学生姓名: 10. 查询没有选修了1号课程的学生姓名: 11. 查询选修了全部课程的学生姓名: 12. 查询至少选修了学生95002选修的全部课程的学生的学号: 13. 求没有人选修的课程号cno和cnamecname: 14. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno的课程 15. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade): 思考: 如何查询所有学生都选修了的课程的课程号cno? 实验四:数据库的分组查询和统计查询 实验目的: 熟练掌握数据查询中的分组、统计、计算和集合的操作方法。 实验内容: 使用聚集函数查询、分组计算查询、集合查询。 实验步骤: 一. 使用聚集函数: 1.查询学生总人数: 2. 查询选修了课程的学生总数: 3. 查询所有课程的总学分数和平均学分数,以及最高学分和最低学分: 4. 计算1号课程的学生的平均成绩, 最高分和最低分: 5. 查询’信息系’(IS)学生”数据结构”课程的平均成绩: 6*. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade): 7*. 求成绩低于该门课程平均成绩的学生的成绩信息(sno,cno,grade) 二. 分组查询 8. 查询各系的学生的人数并按人数从多到少排序 : 9. 查询各系的男女生学生总数, 并按系别,升序排列, 女生排在前: 10. 查询选修了3门课程已上的学生的学号和姓名: 11. 查询每个学生所选课程的平均成绩, 最高分, 最低分,和选课门数:低分, 12. 查询至少选修了2门课程的学生的平均成绩: 13. 查询平均分超过80分的学生的学号和平均分: 14. 查询”信息系”(IS)中选修了5门课程以上的学生的学号: 竭诚为您提供优质文档/双击可除word20XX的实验报告 篇一:word实验报告 实验报告 课程名称计算机应用基础实验项目名称word综合练习班级与班级代码12级新闻1班实验室名称(或课室)ss1-201专业新闻学任课教师刘松学号:12251204102姓名:蔡晓童实验日期:20XX-04-11 广东商学院教务处制 姓名实验报告成绩 评语: 指导教师(签名)年月日 说明:指导教师评分后,实验报告交院(系)办公室保存。 一、实验目的 1、2、 掌握常用的word编辑方法 综合运用word桌面排版功能(字符排版、段落排版、 页面排版、图文混排、艺术字等)进行实际文档的处理。 二、实验设备 1、2、 计算机word20XX软件 三、实验步骤 1、新建一个word文档,输入文章。 2、选择“插入”→“图片”→“艺术字”,选择艺术字样式→在对话框中设置字体、字号。 3、选择“插入”→“图片”→“来自文件”,选择所要插入的图片,在合适的位置插入相应的图片,并对图片的格式进行定义。 4、选中要分栏的段落,选择“格式”→“分栏”命令,显示“分栏”对话框,在预设类型中选择一种类型,单击“确定”按钮。 5、将第一段的“潮”字首字下沉,点击【格式】→【首字下沉】→【下沉】,单击“确定”。 6、选择“编辑”→“查找”,输入要查找的内容,然后选择“你”,再进行字体变换。 7、进行字符格式设置,如改变字型,大小,颜色等。8、进行页眉(学号和姓名)和页脚(页码)格式设置。 四、实验结果 如下页所示 五、实验分析与体会 通过本次实验,我了解了word字符格式、段落格式和 页面格式等排版技术和图文混排等技术的使用,今后可以更好的运用word在生活中工作中制作文档。而且通过这次试验,我觉得自己动手排版非常有趣。因为我对word文档的 操作的不熟悉,所以,我的速度一直很慢,而且,还不可以更具自己想要的效果自由的进行操作,但是在经过一边查书,一边操作的过程中,经过自己的努力,终于完成了我的文档。我越来越熟悉它的操作,并且能够运用其中大部分的工具,来完善自己的文档。而且我也明白了,word文档的操作是很基础的计算机运用,也是使用范围非常广泛的程序。因此,学习这一门课程是非常重要和必要的。 广□播站潮州市高级中学云里之音○ 作为校园文化的传媒机构,以丰富学生的校园生活,传播校园资讯为目的,以"努只为把声音传得更远"为口号,力,陪伴高级 走过了许多风风雨雨。在高级中学团中学 学生会的管理下,委会、广播站一如既往地坚持发扬广播不怕苦,不怕累的精神,努力唱响青春,唱响热情。 mondaysunshineAfternoon:品味生活点滴享受午后阳光;为你带来新鲜的生活资讯,介绍生活小常识。Tuesdaywindow:ListeningListeningwindow, 1.(1) [1 2 3 4;0 2 -1 1;1 -1 2 5;]+(1/2).*([2 1 4 10;0 -1 2 0;0 2 3 -2]) 2. A=[3 0 1;-1 2 1;3 4 2],B=[1 0 2;-1 1 1;2 1 1] X=(B+2*A)/2 3. A=[-4 -2 0 2 4;-3 -1 1 3 5] abs(A)>3 % 4. A=[-2 3 2 4;1 -2 3 2;3 2 3 4;0 4 -2 5] det(A),eig(A),rank(A),inv(A) 求计算机高手用matlab解决。 >> A=[-2,3,2,4;1,-2,3,2;3,2,3,4;0,4,-2,5] 求|A| >> abs(A) ans = ( 2 3 2 4 1 2 3 2 3 2 3 4 0 4 2 5 求r(A) >> rank(A) ans = 4 求A-1 《 >> A-1 ans = -3 2 1 3 0 -3 2 1 2 1 2 3 -1 3 -3 4 求特征值、特征向量 >> [V,D]=eig(A) %返回矩阵A的特征值矩阵D 与特征向量矩阵V , V = - + + - - + - + - + - + D = { + 0 0 0 0 - 0 0 0 0 + 0 0 0 0 - 将A的第2行与第3列联成一行赋给b >> b=[A(2,:),A(:,3)'] b = 《 1 - 2 3 2 2 3 3 -2重庆大学数学模型数学实验作业四讲解
完整word版标准实验报告模板.docx
数学实验报告
实验三四
word20XX的实验报告
数学实验答案-1