中南大学操作系统原理实验报告
金属腐蚀与防护的实验报告-中南大学粉冶院

⾦属腐蚀与防护的实验报告-中南⼤学粉冶院实验⼀恒电位法测定阳极极化曲线⼀、⽬的1.了解⾦属活化、钝化转变过程及⾦属钝化在研究腐蚀与防护中的作⽤。
2.熟悉恒电位测定极化曲线的⽅法。
3.通过阳极极化曲线的测定,学会选取阳极保护的技术参数。
⼆、实验基本原理测量腐蚀体系的极化曲线,实际就是测量在外加电流作⽤下,⾦属在腐蚀介质中的电极电位与外加电流密度(以下简称电密)之间的关系。
测量极化曲线的⽅法可以采⽤恒电位和恒电流两种不同⽅法。
以电密为⾃变量测量极化曲线的⽅法叫恒电流法,以电位为⾃变量的测量⽅法叫恒电位法。
⼀般情况下,若电极电位是电密的单值函数时,恒电流法和恒电位法测得的结果是⼀致的。
但是如果某种⾦属在阳极极化过程中,电极表⾯壮态发⽣变化,具有活化/钝化变化,那么该⾦属的阳极过程只能⽤恒电位法才能将其历程全部揭⽰出来,这时若采⽤恒电流法,则阳极过程某些部分将被掩盖,⽽得不到完整的阳极极化曲线。
在许多情况下,⼀条完整的极化曲线中与⼀个电密相对应可以有⼏个电极电位。
例如,对于具有活化/钝化⾏为的⾦属在腐蚀体系中的阳极极化曲线是很典型的。
由阳极极化曲线可知,在⼀定的电位范围内,⾦属存在活化区、钝化过渡区、钝化区和过钝化区,还可知⾦属的⾃腐蚀电位(稳定电位)、致钝电密、维钝电密和维钝电位范围。
⽤恒电流法测量时,由⾃腐蚀电位点开始逐渐增加电密,当达到致钝电密点时⾦属开始钝化,由于⼈为控制电密恒定,故电极电位突然增加到很正的数值(到达过钝化区),跳过钝化区,当再增加电密时,所测得的曲线在过钝化区。
因此,⽤恒电流法测不出⾦属进⼊钝化区的真实情况,⽽是从活化区跃⼊过钝化区。
图1 恒电位极化曲线测量装置三、实验仪器及药品电化学⼯作站CHI660D、铂电极、饱和⽢汞电极、碳钢、天平、量筒、烧杯、电炉、⽔砂纸、U型管蒸馏⽔、碳酸氢铵、浓氨⽔、浓硫酸、琼脂、氯化钠、氯化钾、⽆⽔⼄醇、棉花四、实验步骤1.琼脂-饱和氯化钾盐桥的制备烧杯中加⼊3g琼脂和97ml蒸馏⽔,使⽤⽔浴加热法将琼脂加热⾄完全溶解。
中南大学近代物理实验报告-原子力显微镜实验报告

近代物理实验实验报告实验名称:原子力显微镜所在学院:物理与电子学院专业班级:物理升华班1301学生姓名:黄佳清学生学号:0801130117指导教师:黄迪辉一、目的要求(1) 了解原子力显微镜的工作原理。
(2) 初步掌握用原子力显微镜进行表面观测的方法。
二、实验原理1.基本原理AFM是利用一个对力敏感的探针针尖与样品之间的相互作用力来实现表面成像的,工作原理如图1所示。
将一个对微弱力极敏感的弹性微悬臂一端固定,另一端有一微小的针尖,针尖与样品的表面轻轻接触,由于针尖尖端原子与样品表面原子间存在极微弱的作用力(10-8~10-6 N),微悬臂会发生微小的弹性形变。
针尖和样品之间的力F与微悬臂的形变△z 之间遵循胡克定律(Hooke Law)F = k·△z其中,k为微悬臂的力常数。
测定微悬臂形变量的大小,就可以获得针尖与样品之间作用力的大小。
针尖与样品之间的作用力与距离有着强烈的依赖关系,所以在扫描过程中利用反馈回路保持针尖和样品之间的作用力恒定,即保持微悬臂的形变量不变,针尖就会随表面的起伏上下移动。
记录针尖上下运动的轨迹即可得到样品表面形貌的信息。
这种检测方式被称为“恒力”模式(Constant Force Mode),是AFM使用最广泛的扫描方式。
AFM的图像也可以使用“恒高”模式(Constant Height Mode)来获得,也就是在x、y扫描过程中,不使用反馈回路,保持针尖与参考水平面之间的距离恒定,检测器直接测量微悬臂z 方向的形变量来成像。
这种方式由于不使用反馈回路,可以采用更高的扫描速度,通常在观察原子、分子像时用得比较多,而对于表面起伏较大的样品不适合。
图1 AFM原理示意图2. AFM的工作模式当AFM的针尖与样品表面原子相互作用时,通常有几种力同时作用于微悬臂,其中最主要的是范德瓦尔斯力(Van der Waals forces)。
针尖与样品表面原于间的范德瓦尔斯力与距离关系曲线如图2所示。
中南大学大学物理实验报告答案大全+实验数据+思考题答案

(1) 按讲义中的电路原理图连接好实物电路图; (2) 测光电管的伏安特性曲线: ① 先使正向电压加至30伏以上,同时使光电流达最大(不超量程), ② 将电压从0开始按要求依次加大做好记录; (3) 测照度与光电流的关系: ① 先使光电管距光源20cm处,适当选择光源亮度使光电流达最大(不超量程); ② 逐渐远离光源按要求做好记录; 实验步骤 (4) 测光电管的截止电压: ① 将双向开关换向; ② 使光电管距光源20cm处,将电压调至“0”, 适当选择光源亮度使光电流达最大(不超量程),记录此时的光 电流I ,然后加反向电压使光电流刚好为“0”,记下电压值U ; ③ 使光电管远离光源(光源亮度不变)重复上述步骤作好记录。 数据处理
k
(a + b) sin ψ
k
如果人射光不是单色,则由上式可以看出,光的波长不同,其衍射角也各不相同,于是复色光将被分解,而在中央 k =0、 ψ =0 处,各色光仍重叠在一起,形成中央明条纹。在中央明条纹两侧对称地分布着 k=1,2,3,…级光谱 ,各级光谱 线都按波长大小的顺序依次 排列成一组彩色谱线,这样就把复色光分解为单色光。如果已知光栅常数,用分光计测出 k 级光谱中某一明条纹的衍射角ψ,即可算出该明条纹所对应的单色光的波长λ。 实验步骤 (1) 调整分光计的工作状态,使其满足测量 条件。 (2) 利用光栅衍射 测量汞灯在可见光范 围内几条谱线的波长。 ① 由于衍射光谱在中央明条纹两侧对 称地分布,为了提高测量的准确度,测量第k级光谱时 ,应测出 +k级和-k 级光谱线的位置,两位置的差值之 半即为实验时 k取1 。 ② 为了减少分光计刻度盘的偏心误差,测量每条光谱线时 ,刻度盘上的两个游标都要读数 ,然后取其平均值 (角 游标的读数方法与游 标卡尺的读数方法基本一致)。 ③ 为了使十字丝对准光谱线,可以使用望远镜微调螺钉12来对准。 ④ 测量时,可将望远 镜置最右端,从 -l 级到 +1 级依次测量,以免漏测数据。 数据处理 谱线 游标 左1级 (k=-1) 右1级 (k=+1) φ λ/nm λ /nm
中南大学电工电子专业课程设计实验报告

中南大学电工电子技术课程设计汇报题目:可编程乐曲演奏器设计学院:信息科学和工程学院指导老师:陈明义专业班级:姓名:学号:前言伴随科学技术发展日新日异,电工电子技术在现代社会生产中占据着很关键地位,所以作为二十一世纪自动化专业学生而言,掌握电力电子应用技术十分关键。
电工电子课程设计目标在于深入巩固和加深所学电工电子基础理论知识。
使学生能综合利用相关关课程基础知识,经过本课程设计,培养我们独立思索能力,学会和认识查阅学习我们未学会知识,了解专业工程设计特点、思绪、和具体方法和步骤,掌握专业课程设计中设计计算、软件编制,硬件设计及整体调试。
设计过程中还能树立正确设计思想和严谨工作作风,达成提升我们设计能力目标。
从理论到实践,往往看似简单,实则是有很大差距,经过课程设计,能够培养我们学到很多东西,不仅能够巩固了以前所学过知识,而且学到了很多在书本上所没有学到过知识。
只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才能真正学到知识,从而提升自己实际动手能力和独立思索能力。
在次,尤其感谢老师给我们以实践动手机会,让我们对以前知识以复习,整合,并从理论走向实践,相信我们全部会在这次课程设计中学到很多!!!目录前言 (2)正文第一章系统概述 (4)系统功效 (4)系统结构 (4)试验原理 (4)整体方案 (5)第二章单元电路设计和分析 (5)2.1 音频发生器设计 (5)2.2 节拍发生器设计 (6)2.3 读取存放器数据 (7)2.4 选择存放器地址 (8)2.5 控制音频电路设计 (8)第三章电路安装和调试 (9)第四章结束语 (9)元器件明细表 (10)参考文件 (10)附录 (11)第一章系统概述系统功效依据要求,我们设计该可编程电子音乐演奏电路能够经过开关选择预先设定好音乐曲目,曲目选定后则自动演奏所选曲目。
歌曲曲目能够暂停,能够重放,还能够依据情况调整歌曲播放速度。
基础达成估计要求,不过最大缺点就是歌曲播放音调不准!系统结构可编程电子音乐自动演奏电路系统结构要求图1-1所表示。
Linux实验报告

中南大学Linux操作系统实验报告学生姓名学院信息科学与工程学院指导老师胡小龙专业班级完成时间目录1.实验一Linux的安装 (3)1.1 实验目的 (3)1.2 实验设备 (3)1.3 实验原理 (3)1.4 实验步骤 (3)2. 实验二Linux基本操作 (5)2.1 实验目的 (5)2.2 实验设备 (5)2.3 实验原理 (6)2.4 实验步骤 (6)3. 实验三Linux系统管理 (10)3.1 实验目的 (10)3.2 实验设备 (10)3.3 实验原理 (10)3.4 实验步骤 (11)4. 实验四Linux Shell程序设计 (14)4.1 实验目的 (14)4.2 实验设备 (14)4.3 实验原理 (15)4.4 实验步骤 (17)5. 实验五Linux 高级程序设计 (20)5.1 实验目的 (20)5.2 实验设备 (21)5.3 实验原理 (21)5.4 实验步骤 (21)6. 实验六Linux内核 (23)6.1 实验目的 (23)6.2 实验设备 (23)6.3 实验原理 (23)6.4 实验步骤 (23)Linux操作系统1.实验一Linux的安装1.1 实验目的(1)了解硬盘分区的概念和方法;(2)掌握硬盘的分区规划;(3)掌握Linux操作系统的安装和配置过程。
1.2 实验设备一台pc机、RedHat Linux 7.2以上版本、VMware Workstation v5.5。
1.3 实验原理Linux可以以多种方式安装在PC机上:(1)独立分区安装、(2)DOS分区安装和(3)虚拟机VMWare下安装。
鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。
1.4 实验步骤(1)在Windows XP下安装VMware 5.5(2)配置虚拟机(3)启动虚拟机(4)启动Linux安装过程(5)安装过程配置(6)安装后配置(7)第1次启动VMWare下Linux操作系统2.实验二Linux基本操作2.1 实验目的(1)复习Linux基本命令;(2)掌握常用Linux命令。
中南大学离散数学实验报告(实验1abc)

“离散数学”实验报告(实验1ABC)专业班级学号姓名日期:2011.12.05目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、实验原理和实现过程(算法描述) (3)1、实验原理 (3)2、实验过程 (4)五、实验数据及结果分析 (7)A题型 (7)B、C题型 (9)六、源程序清单 (13)A题部分源代码 (13)B、C题部分源代码 (14)七、其他收获及体会 (22)一、实验目的熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。
二、实验内容1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
(A)2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C))三、实验环境C或C++语言编程环境实现。
四、实验原理和实现过程(算法描述)1.实验原理(1)合取:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P∧Q, 读作P、Q的合取, 也可读作P与Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = T时方可P∧Q =T, 而P、Q只要有一为F则P∧Q = F。
这样看来,P∧Q可用来表示日常用语P与Q, 或P并且Q。
(2)析取:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P∨Q, 读作P、Q的析取, 也可读作P或Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = F, Q = F时方可P∨Q =F, 而P、Q只要有一为T则P∨Q = T。
这样看来,P∨Q可用来表示日常用语P或者Q。
(3)条件:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P→Q, 读作P条件Q, 也可读作如果P,那么Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = F时方可P→Q =F, 其余均为T。
(4)双条件:二元命题联结词。
中南大学网络安全课外实验报告嗅探与欺骗
中南大学CENTRAL SOUTH UNIVERSITY《SEED PROJECT》实验报告学生姓名孙毅学号 **********指导教师王伟平学院信息科学与工程专业班级信息安全1401成时间2016.12目录一、实验原理 (1)二、实验器材 (1)三、实验步骤及运行结果 (1)Task1.编写嗅探程序 (1)Task2.包欺骗 (3)Task3:综合使用 (4)四、附件 (4)Task1 (5)Task2 (13)Task3 (17)Sniffing_Spoofing一、实验原理Sniffing就是一种能将本地网卡状态设成‘混杂’状态的模式,当网卡处于这种“混杂”方式时,该网卡具备“广播地址”,它对遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
(绝大多数的网卡具备置成混杂模式的能力)一般来说,sniffing和poofing会联合起来使用。
当攻击者嗅探到关键信息时,通常会使用poofing技术来构造数据包来劫持会话或者去获取更多信息,通常会造成很大的危害。
Poofing技术就是攻击者自己构造数据包的ip/tcp数据包帧头部数据来达到自己的目的。
本次实验就是基于以上原理,在linux下模拟整个过程。
二、实验器材1.Ubuntu12.04。
2.Wireshark等常用捕包工具。
三、实验步骤及运行结果Task1.编写嗅探程序嗅探程序可以很容易地使用pcap库。
利用PCAP,嗅探器的任务变得在pcap 库调用一系列简单的程序。
在序列结束时,数据包将被放置在缓冲区中,以进一步处理,只要它们被捕获。
所有的数据包捕获的细节由pcap库处理。
Tim Carstens写了一个教程如何使用pcap库写的嗅探程序。
1:深入理解并可以编写嗅探程序。
2:编写过滤器。
请为您的嗅探程序捕捉每个写过滤表达式如下。
在你的实验报告,你需要包括screendumps显示应用这些过滤器的结果。
•捕获ICMP数据包。
本科:晶体X射线衍射实验报告
Ia 3647 37.0% a a ( I a I b Kb I c Kc ) (3647 8157 0.89 15370 0.89) 3.04 3.58
b K Al RIRb 3.04 2O 3 K c K Al 2O3 RIRc 3.58 b c
b K Al RIRb 3.04 2O 3 K a K Al 2O3 RIRa 0.89 b a
二、 实验原理
X 射线是原子内层电子在高速运动电子的轰击下跃迁而产生的光辐射,主要 有连续 X 射线和特征 X 射线两种。晶体可被用作 X 光的光栅,这些很大数目的原 子或离子/分子所产生的相干散射将会发生光的干涉作用,从而影响散射的 X 射 线的强度增强或减弱。 由于大量原子散射波的叠加,互相干涉而产生最大强度的 光束称为 X 射线的衍射线。 满足衍射条件,可应用布拉格公式:2dsinθ=λ
Silicon Oxide=24.2%
Wt%
Siderite=38.8%
Quantitative Analysis from Profile-Fitted Peaks
样品 2 的含量为 W%(FeS2):W%(SiO2):W%(Fe(CO3))=37.0%:24.2%:38.8% 3 点阵常数精确测定结果 从样品 1 的分析结果中可以看出 TiO2 晶体为体心正方,点阵常数为 3.7848 x 3.7848 x 9.5124 <90.0 x 90.0 x 90.0> Ti0.924O2 晶体为体心正方,点阵常数为 4.59053 x 4.59053 x 2.958 <90.0 x 90.0 x 90.0> 从样品 2 的分析结果中可以看出 FeS2 晶体为简单立方,点阵常数为 5.417 x 5.417 x 5.417 <90.0 x 90.0 x 90.0> SiO2 晶体为简单六方,点阵常数为 4.9134 x 4.9134 x 5.4052 <90.0 x 90.0 x 120.0> Fe(CO3)晶体为简单六方,点阵常数为 4.6916 x 4.6916 x 15.3796 <90.0 x 90.0 x 120.0>
Matlab实验报告13
301,302,303,304,305,306,307,308,309];
(3)
仿照问题
1
中方法找出数组
A
4 3
2 1
0 1
2 3
4
5
中所有绝对值大于
3
的元素。
(4)在命令窗口执行下面指令,体味二维数组的子数组寻访和赋值
A=zeros(2,4)
% 创建(2*4)的全零数组
二行是“ has multiple rows. ”。
6 .利用串操作函数 char、str2mat、strvcat 分别写出使以下这段文字成为字符串的程序,
注意保持这段文字的格式。
在英式用法中,引号通常是单引号,如‘Fire!’。
In GB usage quotation marks are usually single: ’Fire!’ .
whos
% 观察变量 a,b 在内存中所占字节
2 .已知串数组 a=”This is an example.”, 试将其到序输出。
3 .接上题,试执行 ascii_a=double(a),观察其 ASCII 码,并将 ASCII 码变回字符串。
4 .设 A=”这是一个算例”,重复上面的 2-3。
5 .尝试用直接输入法在命令窗口创建字符串 s ,第一行时“ This string array ” , 第
全赋为 1
(5) 运行指令
rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B-1;
首先预测( C*C’)/100 的运行结果,然后再在机器上验证。(本方法提供了产
生通信等仿真中常需若干独立的双随机码的方法原型。)
中南大学物理化学实验报告
中南大学物理化学实验报告中南大学化工原理实验报告目录实验一、流体阻力实验 (2)实验二、柏努利实验 (19)实验四、对流传热实验 (25)实验五、板框压滤机过滤常数的测定 (39)实验六、离心泵特性曲线实验 (48)实验七、干燥实验 (56)实验十、填料式精馏塔的操作 (71)实验十二、振动筛板萃取实验 (80)中南大学化工原理实验报告化学化工院院系专业班级姓名学号同组者实验日期年月日指导教师篇二:溶解热的测定实验报告溶解热的测定实验报告姓名/学号:何一白/2012011908 班级:化22 同组实验者姓名:苏剑晓实验日期:2014年12月4日提交报告日期:2014年12月10日带实验的老师姓名:王溢磊1 引言(简明的实验目的/原理)1.1 实验目的1.测量硝酸钾在不同浓度水溶液的溶解热,求硝酸钾在水中溶解过程的各种热效应。
2.掌握量热装置的基本组合及电热补偿法测定热效应的基本原理。
3.复习和掌握常用的测温技术。
1.2 实验原理物质溶于溶剂中,一般伴随有热效应的发生。
盐类的溶解通常包含着几个同时进行的过程:晶格的破坏、离子或分子的溶剂化、分子电离(对电解质而言)等。
热效应的大小和符号决定于溶剂及溶质的性质和它们的相对量。
在热化学中,关于溶解过程的热效应,需要了解以下几个基本概念。
溶解热在恒温恒压下,溶质B溶于溶剂A(或溶于某浓度溶液)中产生的热效应,用?solH表示。
摩尔积分溶解热在恒温恒压下,1mol溶质溶解于一定量的溶剂中形成一定浓度的溶液,整个过程产生的热效应。
用?solHm表示。
solHmsolH(1)nB式中, nB为溶解于溶剂A中的溶质B的物质的量。
摩尔微分溶解热在恒温恒压下,1mol溶质溶于某一确定浓度的无限量的溶液中产生的热效应,以(solHH)T,P,nA表示,简写为(sol)nA。
?nB?nB稀释热在恒温恒压下,一定量的溶剂A加到某浓度的溶液中使之稀释,所产生的热效应。
摩尔积分稀释热在恒温恒压下,在含有1mol溶质的溶液中加入一定量的溶剂,使之稀释成另一浓度的溶液,这个过程产生的热效应,以?dilHm表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机操作系统 实验报告
学 院: 信息科学与工程学院 专业班级: 信息安全1302班 指导老师: 郁博文 学 号: 0906130205 《计算机操作系统》实验347672121.doc_郁博文 第 2 页 共 16 页 计算机操作系统 1.设计目的 1、增强学生对计算机操作系统基本原理、基本理论、基本算法的理解; 2、提高和培养学生的动手能力。
2.设计要求 1、每人至少选作1题,多做不限; 2、每人单独完成,可以讨论,但每人的设计内容不得完全相同,抄袭或有2人/多人设计完全一样者,不能通过; 3、设计完成后,应上交课程设计文档,文档格式应是学校课程设计的标准格式,所有学生的封面大小、格式也必须一样; 4、同时上交设计的软盘(或以班刻录光盘)。
3.设计题目 调度算法的模拟:模拟各种调度算法,并进行调度性能分析。 4.设计过程 4.1 设计思路 模拟了一个作业调度算法,其中用到了先来先服务算法(FCFS)、短作业优先算法(SJF)、最高响应比优先算法(HRN)三种算法。 如下,分别为三种算法的程序流程图。 《计算机操作系统》实验347672121.doc_郁博文 第 3 页 共 16 页 《计算机操作系统》实验347672121.doc_郁博文
第 4 页 共 16 页 4.2 实验过程
图1 - 开始界面 图2 – 输入作业的信息(名字、提交时间、运行时间) 图3 – 选择算法(FCFS、SJF、HRN) 《计算机操作系统》实验347672121.doc_郁博文
第 5 页 共 16 页 图4、5 – 选择FCFS算法后输出结果 《计算机操作系统》实验347672121.doc_郁博文
第 6 页 共 16 页 图6、7 – 选择SJF算法后输出结果 《计算机操作系统》实验347672121.doc_郁博文
第 7 页 共 16 页 图8、9 – 选择HRN算法后输出结果 《计算机操作系统》实验347672121.doc_郁博文
第 8 页 共 16 页 4.3 调度性能分析 1.先来先服务算法(FCFS) 优点: 能体现公平性;
缺点: 一旦一个较长的作业进入系统后就会长时间的占用系统的资源,这样如果有优先级较高的短作业需要执行的话需要等待很长时间。
2.短作业优先算法(SJF) 优点: 比前者改善了平均周转时间和平均带权周转时间,缩短作业的等待时间,提高系统的吞吐量;
缺点: 对长作业非常不利,可能长时间得不到执行,未能一句作业的紧迫程度来划分执行的优先级,难以准确估计作业的执行时间,从而影响调度性能。
3.最高响应比优先算法(HRN) 优点: 这种算法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
缺点: 由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。 《计算机操作系统》实验347672121.doc_郁博文
第 9 页 共 16 页 5.总结
在实验中,由于对算法细节不够熟悉,以及对c语言的遗忘,我遇到了不少困难。因而,在克服这些困难的过程中,我对FCFS算法有了更加深刻而透彻的理解,c语言的一些基本操作也得到了巩固。今后我亦将多多练习,毕竟理论与实践结合才是最好的学习方法。
6.代码附录 #include #include
#define getpch(type)(type*)malloc(sizeof(type)) struct worktime { float Tb;//作业运行时刻 float Tc;//作业完成时刻 float Ti;//周转时间 float Wi;//带权周转时间 };
struct jcb { /*定义作业控制块JCB */ char name[10];//作业名 float subtime;//作业提交时间 float runtime;//作业所需的运行时间 char resource;//所需资源 float Rp;//后备作业响应比 char state;//作业状态 struct worktime wt; struct jcb *link;//链指针 }*jcb_ready = NULL, *j; 《计算机操作系统》实验347672121.doc_郁博文 第 10 页 共 16 页 typedef struct jcb JCB; float T = 0;
void sort()/* 建立对作业进行提交时间排列函数*/ { JCB *first, *second; int insert = 0; if ((jcb_ready == NULL) || ((j->subtime)<(jcb_ready->subtime)))/*作业提交时间最短的,插入队首*/ { j->link = jcb_ready; jcb_ready = j; T = j->subtime; j->Rp = 1; } else/* 作业比较提交时间,插入适当的位置中*/ { first = jcb_ready; second = first->link; while (second != NULL) { if ((j->subtime)<(second->subtime))/*若插入作业比当前作业提交时间短,*/ { /*插入到当前作业前面*/ j->link = second; first->link = j; second = NULL; insert = 1; } else/* 插入作业优先数最低,则插入到队尾*/ { first = first->link; second = second->link; } } 《计算机操作系统》实验347672121.doc_郁博文 第 11 页 共 16 页 if(insert == 0) first->link = j; } }
void SJFget()/* 获取队列中的最短作业 */ { JCB *front, *mintime, *rear; int ipmove = 0; mintime = jcb_ready; rear = mintime->link; while (rear != NULL)
if ((rear != NULL) && (T >= rear->subtime) && (mintime->runtime)>(rear->runtime)) { front = mintime; mintime = rear; rear = rear->link; ipmove = 1; } else rear = rear->link; if(ipmove == 1) { front->link = mintime->link; mintime->link = jcb_ready; } jcb_ready = mintime; }
void HRNget()/* 获取队列中的最高响应作业 */ { JCB *front, *mintime, *rear; int ipmove = 0; 《计算机操作系统》实验347672121.doc_郁博文 第 12 页 共 16 页 mintime = jcb_ready; rear = mintime->link; while (rear != NULL) if((rear != NULL) && (T >= rear->subtime) && (mintime->Rp)<(rear->Rp)) { front = mintime; mintime = rear; rear = rear->link; ipmove = 1; } else rear = rear->link; if(ipmove == 1) { front->link = mintime->link; mintime->link = jcb_ready; } jcb_ready = mintime; }
void input()/* 建立作业控制块函数*/ { int i,num; printf("\nplese input the number of the job:"); scanf("%d", &num,2); for(i = 0; i{ printf("\nthe ordernumber of the job No.%d:\n", i); j = getpch(JCB); printf("\nplease input the name of the job:"); scanf("%s", j->name); printf("\nplease input the time when the job was submitted:"); scanf("%f", &j->subtime); printf("\nplease input the runtime of the job:");