Nachos实验报告9
- 格式:doc
- 大小:105.55 KB
- 文档页数:5
酸碱中和滴定实验报告精编版一、实验目的:1.通过酸碱中和反应学习滴定法。
2.掌握常用酸碱溶液的制备方法。
3.熟悉酸碱指示剂的使用。
4.强化实验操作技能。
二、实验原理:1.滴定法:滴定法是一种通过对待测物质与一定浓度的标准溶液进行反应,使其达到等量反应的终点滴定,从而确定待测物质浓度的分析方法,也称作滴定分析法。
滴定通常采用酸碱滴定、还原滴定、氧化滴定等方式。
2.酸碱指示剂:酸碱指示剂是一种能够根据溶液中氢离子或羟基离子的浓度而改变颜色的化合物,常用的酸碱指示剂有酚酞、甲基橙、溴甲酚等。
一个好的酸碱指示剂应该有以下几个特点:颜色鲜明、变色范围大、酸碱滴定时变色明显、对滴定不会有影响、不易挥发、热稳定。
3.酸碱中和反应:在酸碱中和反应中,酸溶液中的氢离子和碱液中的羟基离子结合生成水分子从而达到中和。
其中,酸溶液与碱溶液的化学计量量之间有确定的关系,可以根据摩尔反应通量关系求得酸或碱的浓度。
如下式所示:H+ + OH- → H2O三、实验器材:烧杯、量筒、滴定管、分液漏斗、酸碱溶液、酸碱指示剂等。
四、实验步骤:1.制备标准溶液:先将NaOH固体称取一定质量加入烧杯中,加入适量的水使溶解,再转移到量筒中,加入水至刻度线,搅拌均匀,得到浓度为1mol/L的NaOH标准溶液。
2.制备待测溶液:将HCl固体称取一定质量加入烧杯中,加入适量的水使溶解,转移到量筒中,加入水至刻度线,搅拌均匀,得到待测HCl溶液。
3.选择适当的酸碱指示剂:根据待测酸溶液和标准碱溶液的化学特性及相互作用选择适当的酸碱指示剂,对于HCl溶液和NaOH溶液,常用酸碱指示剂为酚酞。
4.进行滴定:将待测HCl溶液放入烧杯中,加入适量的酸碱指示剂,用标准NaOH溶液滴定,从开始滴定到出现深亮粉红色为止,滴定量即为等量反应时的体积。
5.数据记录和计算:记录好待测HCl溶液和标准NaOH溶液的浓度,以及滴定的体积。
根据摩尔反应通量关系计算得到待测HCl溶液的浓度。
2021亚硝酸盐检验实验报告实验目的:本实验的目的是学习利用化学方法检测水中亚硝酸盐的含量。
亚硝酸盐是一种常见的水污染物,如果超标会对人体健康造成严重的影响。
因此,准确测定水中亚硝酸盐的含量对于保障水环境的安全和人类健康至关重要。
实验步骤:1.制备样品:依据实验要求,用一定体积的纯净水制备出不同浓度的亚硝酸盐标准溶液。
2.检验亚硝酸盐:将待测样品取一定量,加入硫酸磁铁粉,摇匀,加入亚硝酸铵试液,摇匀。
观察样品变化并进行分析比较。
3.制备标准曲线:以已知亚硝酸盐浓度为横坐标,检测结果为纵坐标,绘制标准曲线。
4.检测含量:使用标准曲线计算待测样品中亚硝酸盐的含量。
实验结果:使用上述方法对不同浓度的亚硝酸盐标准溶液进行检验,可以得到样品颜色变化的结果如下表所示。
亚硝酸盐标准溶液浓度试验结果0mg/L 无颜色1mg/L 浅粉色2mg/L 比1mg/L深3mg/L 比2mg/L深4mg/L 比3mg/L深5mg/L 比4mg/L深通过上述结果可以很明显地看出,随着亚硝酸盐溶液浓度的增大,试验结果的颜色也会相应加深。
因此,这个方法是适用于亚硝酸盐含量检测的。
依据实验中制备的标准曲线,我们可以计算出不同样品中亚硝酸盐的含量。
例如,某个待测样品的检测结果为3.5mg/L,根据标准曲线可以计算出该样品中亚硝酸盐的含量为3mg/L。
通过本实验,我们学习了利用化学方法检测水中亚硝酸盐含量的方法。
我们发现,这种方法可以简单可靠地检测亚硝酸盐含量,并且可以得到较为准确的结果。
因此,它在实际的水环境监测中得到了广泛的应用,保障了人类健康和水环境的安全。
nachos实验报告nachos实验报告一、引言操作系统是计算机系统中的核心软件之一,它负责管理计算机的硬件资源和提供各种服务。
为了更好地理解操作系统的原理和设计,我们在课程中进行了一系列的实验,其中之一就是使用nachos操作系统进行实验。
本报告将对我们在nachos实验中的学习和体验进行总结和分享。
二、nachos简介nachos是一个教学用的操作系统,它是为了帮助学生更好地理解操作系统的原理和设计而开发的。
nachos的设计简单、模块化,易于理解和扩展。
通过使用nachos,我们可以深入了解操作系统的各个组成部分,如进程管理、内存管理、文件系统等,并通过实验来加深对这些概念的理解。
三、实验一:进程管理在第一个实验中,我们学习了进程管理的基本原理和实现。
通过使用nachos,我们可以创建和管理多个进程,并学习它们之间的通信和同步机制。
我们了解了进程的状态转换、进程调度算法以及进程间通信的方法,如共享内存和消息传递等。
通过实验,我们更深入地理解了进程管理的重要性和挑战。
四、实验二:内存管理在第二个实验中,我们学习了内存管理的原理和实现。
nachos提供了虚拟内存的支持,我们可以通过设置页表和实现页面置换算法来管理内存。
我们了解了内存分页和分段的概念,以及常见的页面置换算法,如FIFO、LRU等。
通过实验,我们深入了解了内存管理的工作原理和性能优化方法。
五、实验三:文件系统在第三个实验中,我们学习了文件系统的原理和实现。
nachos提供了一个简单的文件系统接口,我们可以通过创建、读取和写入文件来学习文件系统的操作。
我们了解了文件系统的组织结构,如目录、文件和索引节点等,并学习了文件系统的一致性和恢复机制。
通过实验,我们更好地理解了文件系统的工作原理和性能优化方法。
六、实验四:网络通信在第四个实验中,我们学习了网络通信的原理和实现。
nachos提供了一个简单的网络模拟器,我们可以创建和管理多个网络节点,并通过网络进行通信。
实验报告酸碱溶液的中和反应实验报告:酸碱溶液的中和反应1. 实验目的本实验旨在探究酸碱溶液之间的中和反应,通过实验观察和数据分析,研究中和反应的特点和规律。
2. 实验原理中和反应是指酸溶液和碱溶液在适当条件下混合后,生成盐和水的反应。
在中和反应中,酸和碱通过转移质子的方式进行中和,并释放出大量的热量。
3. 实验材料和仪器- 稀硫酸 (H2SO4)- 稀盐酸 (HCl)- 稀氢氧化钠溶液 (NaOH)- 水- 玻璃容器- 酸碱指示剂 (酚酞溶液)4. 实验步骤步骤1:准备实验所需材料和仪器,确保实验环境清洁整齐。
步骤2:取一定量的稀硫酸(H2SO4)溶液倒入玻璃容器中。
步骤3:将酸碱指示剂滴加到硫酸溶液中,观察颜色变化。
步骤4:逐滴加入稀氢氧化钠溶液(NaOH),同时观察溶液颜色的变化。
步骤5:当溶液颜色变为中性或酸碱指示剂的颜色变化停止时,停止滴加。
步骤6:记录实验过程中添加的稀氢氧化钠溶液的体积,作为实验数据。
5. 数据记录和分析根据实验步骤6的记录,将实验数据整理成表格,并进行数据分析。
通过观察溶液颜色变化的情况,可以判断中和反应达到了中性或停止了。
6. 讨论与结论根据实验结果,我们可以得出以下结论:- 酸碱溶液在适当的条件下,可以发生中和反应。
- 中和反应是通过质子转移来达到酸碱中和的目的。
- 实验中添加的稀氢氧化钠溶液的体积可以反映出酸溶液和碱溶液的摩尔比例。
通过本实验,我们深入了解了酸碱溶液之间的中和反应。
这有助于我们更好地理解酸碱溶液的性质和相互作用,对于化学反应的研究和应用具有重要意义。
总结:本实验通过观察和数据记录实验结果,探究了酸碱溶液的中和反应特点和规律。
通过质子转移,酸碱溶液可以中和并产生盐和水。
实验结果的数据分析有助于我们理解酸碱溶液的性质和化学反应过程。
中和反应在日常生活和工业生产中都有广泛应用,对于学习化学知识和应用具有重要意义。
次氯酸钠报告
一、实验目的
本实验旨在探究次氯酸钠溶液的氧化性质和漂白作用。
二、实验原理
次氯酸钠是一种强氧化剂,能使有机物质发生氧化反应,使其褪色、变色或分解。
本实验利用次氯酸钠的漂白作用来探究其氧化性质。
三、实验步骤
1. 准备工作:将所需试剂及玻璃仪器取出,清洗干净。
佩戴防护手套、眼镜等防护用品,注意安全。
2. 取两只试管,分别加入10滴鲜果汁。
3. 将其中一只试管加入2滴次氯酸钠溶液,并轻轻晃动试管,观察果汁发生的变化。
4. 将两只试管同时放置在白纸上,比较两只试管中果汁的颜色差异。
四、实验结果
经过实验,加入次氯酸钠溶液的果汁呈现出明显的漂白作用,变得更为清澈,颜色变浅。
与另一只试管中颜色较为鲜艳的果汁形成鲜明的对比。
五、实验分析
次氯酸钠溶液能够发生氧化反应,将果汁中的有机物质氧化分解,产生漂白作用。
这是由于次氯酸钠分解后生成游离氯离子和次氯酸离子,氯离子是一种强氧化剂,能够将果汁中的色素、色素中间体和其他有机物氧化分解,达到漂白的效果。
六、实验总结
本实验通过探究次氯酸钠溶液的氧化性质和漂白作用,揭示了次氯酸钠作为强氧化剂在有机反应中的应用。
同时也提醒实验者在实验过程中注意安全,佩戴防护用品,避免发生意外事故。
科学实验报告范例之酸碱中和反应你是否曾经想过,当你喝下一杯刺激口感冲击你味蕾的柠檬水时,到底发生了什么?这就需要我们来进行一次有趣的科学实验,探究酸碱中和反应。
在这篇文章中,我们将详细介绍酸碱中和反应的基本概念、实验步骤和实验报告的写作范例,带你一起探索科学的奥秘。
1. 酸碱中和反应的基本概念酸碱中和反应是化学中一种常见的反应类型,它发生在酸和碱之间。
当酸和碱混合在一起时,它们会产生中和反应,生成盐和水。
具体地说,酸会释放出氢离子(H+),碱会释放出氢氧根离子(OH-),当它们遇到一起时,氢离子和氢氧根离子结合形成水,同时生成的盐则是由阴离子和阳离子组成。
例如,当我们将盐酸(酸)和氢氧化钠(碱)混合在一起时,它们会发生中和反应,生成氯化钠(盐)和水。
酸碱中和反应有很多实际应用,例如在化学工业中用来制备盐、在生活中用来调节水的酸碱度以及在食品加工中用来调味等。
2. 实验步骤在进行酸碱中和实验之前,我们需要准备实验所需的材料和设备,包括:•盐酸和氢氧化钠溶液•试管和试管架•手套和护目镜(安全第一!)•酚酞指示剂(用于显示溶液的酸碱性质)接下来,我们按照以下步骤进行实验:2.1. 步骤一:加入酸和碱溶液首先,取两只试管,分别加入适量的盐酸和氢氧化钠溶液。
可以根据需要调整溶液的浓度,但要确保使用相同浓度的溶液以减少实验误差。
2.2. 步骤二:添加酚酞指示剂将酚酞指示剂滴加到两个试管中的溶液中。
酚酞指示剂会在酸性溶液中呈现红色,而在碱性溶液中呈现无色。
这样可以帮助我们观察溶液的酸碱性质变化。
2.3. 步骤三:混合溶液使用玻璃棒等工具轻轻搅拌试管中的溶液,使酸和碱充分混合。
2.4. 步骤四:观察和记录观察混合后溶液的变化。
如果溶液变为中性,那么酚酞指示剂将会变成无色。
反之,如果溶液仍然呈现红色,说明酸和碱还未完全中和。
同时,我们可以使用pH试纸等其他工具来测量溶液的酸碱度。
3. 实验报告范例下面是一份关于酸碱中和反应实验的实验报告范例,帮助你了解如何撰写一份科学实验报告。
实验项目4:元素分析仪测定炼焦煤中C、H、N、S元素含量一、实验目的1、了解元素分析仪的基本原理和仪器CHNS模式和O模式管路的物理连接及不同作用。
2、熟悉元素分析仪的微量称重处理、自动进样、方法设置、定量分析。
二、实验原理vario EL III元素分析仪分为CHNS模式和O模式两种,CHNS模式是将样品在高温下的氧气环境中经催化氧化使其燃烧分解,而O模式要将样品在高温的还原气氛中通过裂解管分解,含氧分子与裂解管中活性碳接触转换成一氧化碳。
生成气体中的非检测气体被去除,被检测的不同组分气体通过特殊吸附柱分离,再使用热导检测器对相应的气体进行分别检测,氦气作为载气和吹扫气。
三、仪器与药品vario EL III元素分析仪1台;预装有vario EL III程序计算机1台;METTLER TOLEDO高精度天平1台,打印机1台。
氨基苯磺酸(Sulfanilic Acid,sul)标准样品;苯甲酸(Benzoic Acid,ben)标准样品;炼焦煤样品。
四、实验步骤1、开机步骤:开机前应打开操作程序菜单,检查Options>Maintenance中提示的各更换件测试次数的剩余是否还能满足此次测试,通常最应该注意的是还原管、干燥管(可通过观察其颜色变化判断)以及灰份管。
检漏前请在未开主机前将操作程序中Options>Parameters中Furnace 1、Furnace 2的温度都设置为0,退出操作程序,再按照以下步骤进行正常的开机。
(1)开启计算机,进入Windows状态。
(2)堵上主机后面尾气的堵头。
(3)将主机的进样盘拿开后,开启主机电源。
(4)待进样盘底座自检转动完毕(即自转至零位)后,将进样盘样品孔位手动调到0位后放回原处。
(5)打开He气,将气体钢瓶上减压阀输出压力调至:He:0.125 Mpa。
(6)启动varioel操作软件。
(7)调节He气减压阀,使软件状态栏压力显示为:1.05bar以上(不超过1.25bar)。
化工实验报告
化工实验报告
实验名称:制备氢氧化钙
实验目的:掌握制备氢氧化钙的方法,了解氢氧化钙的性质和应用。
实验原理:氢氧化钙(Ca(OH)2),又称石灰乳,是一种白色结晶性固体。
其制备方法有多种,本实验采用化学法制备。
实验步骤:
1. 准备实验器材和试剂:氢氧化钙试剂、蒸馏水、瓶塞、容量瓶、搅拌棒等。
2. 预先称取适量的氢氧化钙试剂,放入容量瓶中。
3. 用蒸馏水将试剂稀释至一定浓度。
4. 将瓶塞盖紧容量瓶,用搅拌棒充分搅拌溶解。
5. 溶液澄清后,即可制备出氢氧化钙。
实验结果:制备出的氢氧化钙为白色结晶体状,溶液澄清。
实验讨论及结论:根据实验结果,我们成功地制备出了氢氧化钙。
氢氧化钙是一种重要的化学物质,在医药、农业、建筑等
领域都有广泛的应用。
例如,在医药领域,氢氧化钙可以用作中和酸性物质,用于治疗胃病等疾病。
在农业领域,氢氧化钙可以用作农药的中间体,用于防治某些植物病害。
在建筑领域,氢氧化钙可以用作建筑材料的外墙防水剂,提高墙体的防水性能。
通过本次实验,我们进一步了解了氢氧化钙的制备方法和一些基本性质,增加了对化学物质的认识和理解,培养了我们的实验操作能力和观察分析能力。
实验总结:本实验简单而有趣,通过自己的实际操作,让我们更好地了解了氢氧化钙的制备方法和应用。
在以后的学习中,我们将更加努力地学习其他化学物质的制备和应用,为将来的科学研究和实践工作打下坚实的基础。
甲酸钠分析报告范文摘要:本实验通过标准曲线法对甲酸钠溶液进行了定量分析,结果表明甲酸钠的质量浓度为0.125mol/L,相对标准偏差为0.72%。
通过比色法测得的甲酸钠的质量浓度为0.120mol/L,相对标准偏差为1.27%。
结果表明标准曲线法比比色法更准确。
1.引言甲酸钠是一种常用的实验试剂,在许多领域都有广泛的应用。
因此,准确分析甲酸钠的浓度对实验结果的准确性至关重要。
本实验旨在通过两种方法,标准曲线法和比色法,对甲酸钠进行浓度的定量分析。
2.实验方法2.1实验仪器和试剂本实验所使用的仪器有:分光光度计、移液管、蒸发皿等。
试剂:甲酸钠固体、去离子水、硫酸。
2.2实验步骤2.2.1标准曲线的绘制首先在一系列试管中分别加入不同质量浓度的甲酸钠溶液,然后加入适量的硫酸使甲酸钠完全分解,生成甲酸和氢氧化钠。
随后,用去离子水稀释试管中的溶液至一定体积,并分别在同一波长下测得吸光度。
最后,根据测得的吸光度与甲酸钠溶液质量浓度的对应关系,绘制标准曲线。
2.2.2比色法定量分析将待测甲酸钠溶液与标准溶液分别稀释至相同体积,并在同一波长下测得吸光度。
通过对照标准曲线,根据吸光度与甲酸钠溶液质量浓度的关系,确定待测甲酸钠溶液的浓度。
3.结果与讨论通过标准曲线法和比色法,分别对甲酸钠溶液进行了定量分析,结果如下:标准曲线法定量分析结果表明,甲酸钠的质量浓度为0.125mol/L,相对标准偏差为0.72%。
比色法定量分析结果表明,甲酸钠的质量浓度为0.120mol/L,相对标准偏差为1.27%。
通过比较两种方法的结果可知,标准曲线法的测量结果更准确。
标准曲线法是通过测量吸光度与溶液浓度之间的线性关系,来确定待测溶液的浓度。
而比色法是根据溶液的吸收特性,在波长范围内对溶液进行吸光度测定。
标准曲线法具有更高的灵敏度和准确度,能够更精确地测定溶液的浓度。
4.结论通过标准曲线法和比色法对甲酸钠溶液进行了定量分析,结果表明标准曲线法测得的甲酸钠浓度更准确。
第1篇一、实验背景医用盐,又称生理盐水,是一种常用的医疗用品,其主要成分是氯化钠,浓度为0.9%。
它广泛应用于临床医学中,如静脉注射、清洗伤口、制备药物溶液等。
本次实验旨在探究医用盐的制备方法、浓度测定及其在临床中的应用。
二、实验目的1. 学习医用盐的制备方法。
2. 掌握医用盐浓度的测定方法。
3. 了解医用盐在临床医学中的应用。
三、实验原理医用盐的制备原理是通过溶解适量的氯化钠于蒸馏水中,使其达到0.9%的浓度。
浓度的测定可以通过滴定法或电导率法进行。
四、实验材料与仪器1. 材料:氯化钠、蒸馏水、滴定管、电导率仪、烧杯、玻璃棒等。
2. 仪器:电子天平、移液管、滴定仪、pH计等。
五、实验步骤1. 医用盐的制备:(1)称取适量的氯化钠。
(2)将氯化钠加入烧杯中。
(3)加入适量的蒸馏水,用玻璃棒搅拌直至氯化钠完全溶解。
(4)将溶液转移至容量瓶中,用蒸馏水定容至刻度。
2. 医用盐浓度的测定:(1)滴定法:用已知浓度的氢氧化钠溶液滴定医用盐溶液,根据消耗的氢氧化钠溶液体积计算医用盐的浓度。
(2)电导率法:用电导率仪测定医用盐溶液的电导率,根据电导率与浓度的关系计算医用盐的浓度。
六、实验结果与分析1. 医用盐的制备:实验制备的医用盐溶液,经过浓度测定,其浓度为0.90%,符合医用盐的标准。
2. 医用盐浓度的测定:(1)滴定法:消耗的氢氧化钠溶液体积为20.00 mL,计算得出医用盐的浓度为0.90%。
(2)电导率法:测得的电导率为0.60 mS/cm,根据电导率与浓度的关系计算得出医用盐的浓度为0.90%。
七、实验结论1. 本实验成功制备了符合标准的医用盐溶液。
2. 通过滴定法和电导率法测定医用盐浓度,结果一致,表明两种方法均可用于医用盐浓度的测定。
3. 医用盐在临床医学中具有广泛的应用,如静脉注射、清洗伤口、制备药物溶液等。
八、实验反思1. 在实验过程中,应注意称量精度和溶液的定容操作,以保证实验结果的准确性。
计算机科学与技术学院实验报告:9
实验题目:设计并实现具有优先级的线程调度策略姓名:李威
日期:2013-12-1 学号:201100300259 班级:11级软件3班Email:sduliwei@
实验目的:
Nachos系统采用基本的FCFS的线程调度策略,修改成为具有优先级的线程调度策略
硬件环境:
软件环境:
linux操作系统,Nachos操作系统
实验步骤:
1.修改Thread类的构造函数,加入优先级priority属性,并且加入getPrioty方法。
以便在线程的
等待队列中找到优先级最高的线程。
其中,线程优先级的范围从1到7,默认为7,即最低优先级。
修改代码如下:(,thread.h)
class Thread {
……………………………………
public:
Thread(char* debugName, int priority=7);// initialize a Thread …………………………………………………
int getPriority(){return this->priority;
}
Thread::Thread(char* threadName, int p)
{
if(p<1) priority = 1;
else if(p>7) priority = 7;
else priority = p;
name = threadName;
stackTop = NULL;
stack = NULL;
status = JUST_CREATED;
#ifdef USER_PROGRAM
space = NULL;
#endif
}
2,首先,了解Nachos系统原来的线程调度方式。
通过读,,文件
中的内容了解线程调度的方式。
首先,修改 文件中的ThreadTest方法,创建有优先级的Thread,代码如下:
然后,从Thread类中找到Fork方法,代码如下:
这说明ThreadTest方法的目的是,实例化新的线程,调用Fork方法,也就是让新产生的线程去执行SimpleThread方法,并且把当前执行的线程加入到等待队列。
从SimpleThread的定义中可以知道,新生产的线程就是打印一条信息然后去执行Yield();
通过查看yield,可知,先从等待队列中找到一个线程保留在nextThread中,并将当前线程加到等待队列,然后使nextThread运行
void
Thread::Yield ()
{
Thread *nextThread;
IntStatus oldLevel = interrupt->SetLevel(IntOff);
ASSERT(this == currentThread);
DEBUG('t', "Yielding thread \"%s\"\n", getName());
nextThread = scheduler->FindNextToRun();
if (nextThread != NULL) {
scheduler->ReadyToRun(this);
scheduler->Run(nextThread);
}
(void) interrupt->SetLevel(oldLevel);
}
3,为了实现按优先级调度,需要按优先级选择等待队列中的,即状态为ready的线程,因而,在线程插入,移除等待队列的时候使用List类中提供好的SortedInsert(void *item, int sortKey)
SortedRemove(int *keyPtr)
方法,而不是原来使用的Append,Remove方法;
void
Scheduler::ReadyToRun (Thread *thread)
{
DEBUG('t', "Putting thread %s on ready list.\n", thread->getName());
thread->setStatus(READY);
readyList->SortedInsert((void *)thread, thread->getPriority());
}
//----------------------------------------------------------------------
Thread *
Scheduler::FindNextToRun ()
{
int p;
return (Thread *)readyList->SortedRemove(&p);
}
4,结果显示:
lu@ubuntu:~/csc2404/nachos-3.4/code/threadsWithPrioty$ ./nachos ******* thread 2 looped 0 times
******* thread 4 looped 0 times
******* thread 2 looped 1 times
******* thread 2 looped 2 times
******* thread 4 looped 1 times
******* thread 2 looped 3 times
******* thread 4 looped 2 times
******* thread 2 looped 4 times
******* thread 4 looped 3 times
******* thread 4 looped 4 times
******* thread 5 looped 0 times
******* thread 5 looped 1 times
******* thread 5 looped 2 times
******* thread 3 looped 0 times
******* thread 5 looped 3 times
******* thread 3 looped 1 times
******* thread 5 looped 4 times
******* thread 3 looped 2 times
******* thread 1 looped 0 times
******* thread 3 looped 3 times
******* thread 1 looped 1 times
******* thread 3 looped 4 times
******* thread 1 looped 2 times
******* thread 1 looped 3 times
******* thread 1 looped 4 times
No threads ready or runnable, and no pending interrupts.
Assuming the program completed.
Machine halting!
Ticks: total 400, idle 10, system 390, user 0
Disk I/O: reads 0, writes 0
Console I/O: reads 0, writes 0
Paging: faults 0
Network I/O: packets received 0, sent 0
Cleaning up...
5,结果分析:
可以看出,线程执行的顺序不是在ThreadTest中的生成Thread(1,2,3,4,5)的顺序,而是按照优先级的顺序调度的。
首先从等待队列中找一个优先级最高的线程,然后把当前运行的线程加入到等待队列中,然后再运行
(本次实验所在所在位置:csc2404/nachos-3.4/code/threadsWithPrioty)
结论分析与体会:
通过这个实验,为了实现线程优先级的调度,细致分析了Thread目录下的各个文件的内容,尤其是,,文件中对于线程的状态,以及调度函数的实现等问题上面有了更深一步的了解。
从而,知道如何修改可以实现线程的优先级调度问题,也就是管理一个SortedList,其内容是状态为Ready的线程。
由概念到实践,了解了简单的线程调度的实现。