nachos实验七实验报告
nachos系统实验报告:实验二

实验二一.实验目的将nachos 中的lock 和condition 类的实现补充完整,并利用这些同步机制实现两个基础功能。
二.实验内容1) 实现syncy.h 中的Lock 和Condition 类,并利用这些同步机制将实验一中所双向有序链表类修改成可以在多线程线程环境下运行。
2) 实现一个线程安全的Table 。
Table 有一个固定大的Entery 数组。
3) 实现一个大小受限的BoundBuffer ,可以完成读.写功能,其中读写的size 可以超过设定的buffer 大小,当读的东西太快或写的太慢时,就将其挂起。
当buffer 里重新有写的空间或读的空间时在将其线程放入就绪队列中。
三.实验结果1.锁机制的实现 **因为lock 和condition 都有两个版本,所以当调用取得锁和释放锁的函数时我 用的是GetLock()和ReleaseLock(),而不是lock->Acquire(),Condition 同理用的是Signal ()和Wait ()。
这些函数会根据运行程序时输入的参数来决 定用哪个版本的锁或者不用锁。
a)主要代码分析 Lock 类的主要成员{public : void Acquire(); // 得到锁 void Release(); // 解放锁private: Thread *LockedThread ; // 用于储存现在拥有 lock 的线程 LockStatus status ; // 表示此时lock 的状态(Busy ,Free ) List *queue // 用于保存挂起的 线程}Lock 类中Acquire 函数得到锁,如果此时别的线程拥有锁,则此时线程被 挂起放在queue 队列中,直到有人释放锁时,Release 函数将queue 中的一 个线程加入就绪队列,每次只能由一个线程得到锁。
Condition 类主要成员{ public: void Wait(LockO *conditionLock); void Signal(LockO *conditionLock); private:List *queue ; char* name;}Condition 类的所有操作都在线程得到锁时进行操作,且运行其函数时,都 先检测 lock 是否被currentThread 锁拥有。
nachos实验报告

nachos实验报告nachos实验报告一、引言操作系统是计算机系统中的核心软件之一,它负责管理计算机的硬件资源和提供各种服务。
为了更好地理解操作系统的原理和设计,我们在课程中进行了一系列的实验,其中之一就是使用nachos操作系统进行实验。
本报告将对我们在nachos实验中的学习和体验进行总结和分享。
二、nachos简介nachos是一个教学用的操作系统,它是为了帮助学生更好地理解操作系统的原理和设计而开发的。
nachos的设计简单、模块化,易于理解和扩展。
通过使用nachos,我们可以深入了解操作系统的各个组成部分,如进程管理、内存管理、文件系统等,并通过实验来加深对这些概念的理解。
三、实验一:进程管理在第一个实验中,我们学习了进程管理的基本原理和实现。
通过使用nachos,我们可以创建和管理多个进程,并学习它们之间的通信和同步机制。
我们了解了进程的状态转换、进程调度算法以及进程间通信的方法,如共享内存和消息传递等。
通过实验,我们更深入地理解了进程管理的重要性和挑战。
四、实验二:内存管理在第二个实验中,我们学习了内存管理的原理和实现。
nachos提供了虚拟内存的支持,我们可以通过设置页表和实现页面置换算法来管理内存。
我们了解了内存分页和分段的概念,以及常见的页面置换算法,如FIFO、LRU等。
通过实验,我们深入了解了内存管理的工作原理和性能优化方法。
五、实验三:文件系统在第三个实验中,我们学习了文件系统的原理和实现。
nachos提供了一个简单的文件系统接口,我们可以通过创建、读取和写入文件来学习文件系统的操作。
我们了解了文件系统的组织结构,如目录、文件和索引节点等,并学习了文件系统的一致性和恢复机制。
通过实验,我们更好地理解了文件系统的工作原理和性能优化方法。
六、实验四:网络通信在第四个实验中,我们学习了网络通信的原理和实现。
nachos提供了一个简单的网络模拟器,我们可以创建和管理多个网络节点,并通过网络进行通信。
第七次实验报告

第七次实验报告在科学的探索之路上,实验是我们获取真理、验证假设的重要手段。
每一次实验都像是一场未知的冒险,充满了挑战与惊喜。
而这第七次实验,更是给我留下了深刻的印象。
这次实验的主题是关于物质的化学反应速率。
实验的目的是探究不同因素对化学反应速率的影响,并通过精确的测量和观察,得出具有科学性和可靠性的结论。
实验开始前,我们进行了充分的准备工作。
首先,对实验所需的仪器和药品进行了仔细的检查和清点,确保没有遗漏和损坏。
我们这次用到的仪器有容量瓶、量筒、温度计、秒表、玻璃棒等等,而药品则包括了常见的化学试剂,如盐酸、氢氧化钠溶液等。
实验过程中,我们设计了多组对比实验。
第一组是改变反应物的浓度,通过控制加入的试剂的量,来观察反应速率的变化。
第二组是改变反应的温度,利用恒温槽将反应体系分别设置在不同的温度条件下,记录反应完成所需的时间。
第三组则是加入催化剂,观察其对反应速率的加速效果。
在改变反应物浓度的实验中,我们发现,随着反应物浓度的增加,反应速率明显加快。
以盐酸和氢氧化钠的中和反应为例,当盐酸的浓度增大时,与相同量的氢氧化钠反应的速度显著提升,溶液的温度升高也更为迅速,这表明反应放出的热量更多,反应进行得更剧烈。
而在改变温度的实验中,结果更是一目了然。
温度升高,分子的运动速度加快,有效碰撞的几率增加,从而大大提高了反应速率。
当我们将反应体系的温度从室温提升到 50 摄氏度时,原本需要几分钟才能完成的反应,在几十秒内就接近完成。
在加入催化剂的实验里,催化剂的神奇作用让我们惊叹不已。
它就像是化学反应中的“助推器”,能够显著降低反应的活化能,使反应能够在更温和的条件下快速进行。
然而,实验并非一帆风顺。
在操作过程中,我们也遇到了一些问题。
比如,在测量反应时间时,由于秒表的操作不够熟练,导致记录的数据出现了一些误差。
还有在配置溶液的过程中,因为对量具的读数不准确,使得溶液的浓度与预期有所偏差。
但这些问题并没有让我们气馁,反而激发了我们更加严谨和认真的态度。
氰化钠的测定

一、实验原理
在碱性介质中,银离子与氰离子生成络合物,用试银灵为指示剂,过量的银离子使溶液变为粉红色,指示终点。
反应式 Ag + + 2CN —→〔Ag (CN )2〕—
二、溶液试剂的配置
(1) AgNO 3滴定液
称取1.74g (分析纯)硝酸银,稀释至1000ml 的容量瓶中,摇匀。
此溶液为标准滴定液。
(2)NaCN 实验液
称取17.21g 的氰化钠固体样放置于烧瓶中,用蒸馏水溶解后全部移入100ml 容量瓶A 中,再移取1mlA 溶液放至100ml 容量瓶B 中,摇匀。
B 溶液为实验溶液。
三、分析步骤
移取10ml 试验溶液置于锥形瓶中,加入一滴试银灵指示剂,用AgNO3 标准滴定液滴定到刚好出现粉色为终点,记录消耗Ag NO 3的体积。
四、结果记录(平行测定两次)
NaCN 实验液 10ml 10ml
AgNO 3滴定液 16.7ml 16.67ml
五、结果计算
W% = 21n n = 1000
/1/2/p 22111⨯⨯⨯M m V M 其中:w%表示实验样品NaCN 中CN —的纯度;
n 1表示实验样品NaCN 中CN —的摩尔质量;
n 2表示纯度为100%的NaCN 中CN —的摩尔质量;
p1表示AgNO3溶液的浓度;
M1表示AgNO3的相对分子质量;
V1表示实验耗掉AgNO3溶液的体积;
m2表示试验样品的质量;
M2表示NaCN的相对分子质量;
将两次实验的数据(只有AgNO3溶液用量不同)带入公得:W1%=97.33%
W2%=97.16%。
探究7溶液酸碱性的检验实验报告

探究7溶液酸碱性的检验实验报告实验目的:通过多种方法检验7个不同溶液的酸碱性质,观察酸碱指示剂和电极的使用,并比较不同方法的准确性和适用性。
实验原理:酸碱性质指溶液中氢离子(H+)和氢氧根离子(OH-)的浓度。
在溶液中,如果H+离子浓度大于OH-离子浓度,则溶液为酸性;反之,溶液为碱性。
酸碱性质可通过化学试剂的颜色变化、电极测量溶液的pH值等进行检验。
实验步骤:1.将7个不同溶液标记为A、B、C、D、E、F、G,并记录其组成物质。
2.使用酸碱指示剂蓝矾指示剂,滴加2滴至每个溶液中,观察颜色变化。
3.使用酸碱指示剂酚酞指示剂,滴加2滴至每个溶液中,观察颜色变化。
4.使用pH计,将电极插入每个溶液,并记录测得的pH值。
5.使用酸碱指示剂溴酸溴甲酯,滴加2滴至每个溶液中,观察颜色变化。
6.使用酸碱指示剂红石蕊试剂,滴加2滴至每个溶液中,观察颜色变化。
实验结果与讨论:1.对于不同溶液,在使用蓝矾指示剂时,观察到颜色变化的情况如下:溶液A:无变化溶液B:无变化溶液C:由蓝色变为红色溶液D:无变化溶液E:由蓝色变为红色溶液F:由蓝色变为红色溶液G:由蓝色变为红色2.对于不同溶液,在使用酚酞指示剂时,观察到颜色变化的情况如下:溶液A:由无色变为红色溶液B:由无色变为红色溶液C:由深红变为无色溶液D:由蓝色变为红色溶液E:由无色变为红色溶液F:由无色变为红色溶液G:由无色变为红色3.使用pH计测量每个溶液的pH值,结果如下:溶液A:pH4.5溶液B:pH5.0溶液C:pH2.0溶液D:pH7.5溶液E:pH8.0溶液F:pH8.5溶液G:pH9.04.对于不同溶液,在使用溴酸溴甲酯指示剂时,观察到颜色变化的情况如下:溶液A:由浅黄变为红色溶液B:由浅黄变为红色溶液C:由黄绿变为浅黄溶液D:由浅蓝变为红色溶液E:由浅黄变为红色溶液F:由浅黄变为红色溶液G:由浅黄变为红色5.对于不同溶液,在使用红石蕊试剂时,观察到颜色变化的情况如下:溶液A:由无色变为红色溶液B:由无色变为红色溶液C:由黄色变为红色溶液D:由无色变为红色溶液E:由无色变为红色溶液F:由无色变为红色溶液G:由无色变为红色通过以上观察,可以得出以下结论:-溶液A、B无法通过颜色变化确认酸碱性质,需要使用其他方法检测;-溶液C为酸性;-溶液D为中性,其pH值为7.5;-溶液E、F、G为碱性;-在本实验中,使用蓝矾指示剂、酚酞指示剂、溴酸溴甲酯指示剂以及红石蕊试剂均能较好地区分酸碱性质。
实验报告初中化学

实验报告初中化学实验名称:化学实验,制备硫化氢气体一、实验目的:1.了解硫化氢气体的制备方法及与氧气的反应特性。
2.掌握实验操作技能,培养实验观察和记录能力。
3.认识硫化氢气体的危险性,并学会正确的安全操作方法。
二、实验仪器:试管、导管、滴管、试剂瓶等。
三、实验原理:硫化氢气体是一种无色、剧毒、具有刺激性气味的气体,同时也是一种有毒、易燃、易爆的物质。
硫化氢气体可以通过以下反应制备:FeS+2HCl→FeCl2+H2S↑四、实验步骤:1.取适量的硫化亚铁粉末,放入试管中。
2.用滴管滴加稀盐酸至试管中,注意滴加时要小心,避免溅出。
3.在滴加的同时,将试管的口用导管接通试管装置的另一端。
4.收集生成的气体,可以用滴管插入一小瓶水中,观察气泡的形成。
五、实验注意事项:1.操作过程中要戴上防护眼镜和手套,避免对皮肤和眼睛产生伤害。
2.实验结束后要及时清洗实验器材,避免积存危险物质。
3.在实验过程中避免将硫化氢气体直接吸入,应保持实验室通风良好。
4.硫化氢气体具有有毒性,实验过程中应远离人群,并放置在通风处,避免气体积聚。
六、实验结果:在实验过程中,观察到试管中加入稀盐酸后,产生了大量白色气泡,其气味具有刺激性,味道酸臭。
根据实验现象可以得知,实验制备了硫化氢气体。
七、实验分析:硫化氢气体是一种常见的化学气体,它具有刺激性气味和剧毒性。
它常见于工业生产和实验室操作中。
它是一种具有还原性的物质,在与氧气接触时会发生爆炸。
八、实验总结:通过这次实验,我们了解到了硫化氢气体的制备方法和性质,并掌握了实验操作技能。
在实验过程中,我们也明白了硫化氢的危险性,以及正确的安全操作方法。
实验过程中要注意戴上防护眼镜和手套,避免对皮肤和眼睛造成伤害。
同时,在实验操作结束后要及时清洗实验器材,保持实验室的卫生环境。
硫化氢气体具有有毒性,因此实验时要远离人群,并将其置于通风处,避免气体的积聚。
实验过程中观察到了制备硫化氢气体的过程,了解到了化学反应的基本原理。
初中化学报告范本参考
初中化学报告范本参考一、实验目的本实验旨在探究酸碱中和反应的性质和特点,了解中和反应的应用以及其在日常生活中的意义。
二、实验原理酸碱中和反应是指酸和碱溶液混合后,生成盐和水的反应。
其中,酸溶液可采用盐酸溶液,碱溶液可采用氢氧化钠溶液。
三、实验器材1.烧杯2.滴管3.玻璃棒4.试剂瓶四、实验步骤1.取一定量的盐酸溶液倒入烧杯中。
2.将适量的氢氧化钠溶液逐滴加入盐酸溶液中,并用玻璃棒搅拌均匀。
3.继续滴加氢氧化钠溶液,直至溶液中酸味消失,出现中性溶液。
4.记录滴加的氢氧化钠溶液的体积。
五、实验结果在本实验中,倒入10 mL的盐酸溶液,滴加氢氧化钠溶液直至溶液呈中性时,记录滴加的氢氧化钠溶液体积为20 mL。
六、实验讨论通过本实验,我们观察到了酸碱中和反应的过程。
酸和碱溶液混合后,产生盐和水的反应符合化学方程式:酸 + 碱→ 盐 + 水。
在本实验中,盐是氯化钠(NaCl),生成的水则是无色透明的。
根据实验结果,我们得知滴加20 mL的氢氧化钠溶液可以与10 mL的盐酸溶液完全中和。
这表明两者的摩尔比为1:1,即盐酸和氢氧化钠的摩尔量相等。
根据摩尔比,我们可以计算出反应物的摩尔浓度,进一步计算反应的化学反应式。
中和反应是一种重要的化学反应,在日常生活中被广泛应用。
例如,当我们使用洗衣粉洗衣服时,洗衣粉中的成分能够与污渍发生中和反应,使衣物变得干净。
此外,在身体内部,胃酸和胃壁中的碱性物质之间也会发生中和反应,以维持胃的正常pH值。
七、实验结论本实验通过观察酸碱中和反应,探究了中和反应的性质和特点。
实验结果显示,在摩尔比为1:1的情况下,滴加20 mL的氢氧化钠溶液可以与10 mL的盐酸溶液完全中和。
通过实验,我们深入了解了中和反应的应用和意义。
总之,中和反应在日常生活中扮演着重要的角色。
通过学习和了解中和反应的性质,我们可以更好地理解化学反应的机理,并将其应用于实际生活中解决问题。
氰酸钠合成实验报告
实验名称:氰酸钠合成实验一、实验目的1. 了解氰酸钠的合成原理和方法。
2. 掌握氰酸钠的制备过程及操作步骤。
3. 熟悉实验操作技能,提高实验操作能力。
二、实验原理氰酸钠(NaCNO)是一种重要的有机化工原料,广泛应用于制药、农药、印染等行业。
氰酸钠的合成方法主要有:氨氰法、氰化钠法、氰酸钾法等。
本实验采用氨氰法合成氰酸钠。
实验原理:氨气与二氧化碳在催化剂的作用下,生成氰氨化钙,再与氢氧化钠反应生成氰酸钠。
化学方程式如下:2NH3 + CO2 + Ca(OH)2 → Ca(CN)2 + 2H2OCa(CN)2 + 2NaOH → 2NaCNO + Ca(OH)2三、实验仪器与试剂1. 仪器:反应釜、搅拌器、温度计、压力计、冷凝器、过滤器、储罐、计量泵、管道等。
2. 试剂:氨气、二氧化碳、氢氧化钠、氰氨化钙、催化剂等。
四、实验步骤1. 准备氨气、二氧化碳、氢氧化钠、氰氨化钙、催化剂等试剂。
2. 将氰氨化钙加入反应釜中,加入适量的水,搅拌均匀。
3. 启动搅拌器,调节温度至40-50℃。
4. 开始通入氨气和二氧化碳,控制反应压力为0.5-0.6MPa。
5. 持续通入氨气和二氧化碳,观察反应釜内溶液的变化,直至溶液呈淡黄色。
6. 停止通入氨气和二氧化碳,加入适量的氢氧化钠,搅拌均匀。
7. 继续搅拌反应釜内的溶液,观察溶液的变化,直至溶液呈深棕色。
8. 停止搅拌,将反应釜内的溶液过滤,得到氰酸钠溶液。
9. 将氰酸钠溶液浓缩,结晶,得到氰酸钠固体。
10. 清洗实验设备,回收未反应的试剂。
五、实验结果与分析1. 实验结果:本实验成功合成了氰酸钠,产率为85%。
2. 结果分析:实验过程中,氨气和二氧化碳的通入量、反应温度、反应压力等条件对氰酸钠的产率有较大影响。
本实验通过优化实验条件,得到了较高的产率。
六、实验总结1. 本实验成功合成了氰酸钠,掌握了氰酸钠的合成原理和方法。
2. 通过实验,提高了实验操作技能,积累了实验经验。
元素分析仪测定C H N S
实验项目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)。
nachos 实验报告
nachos 实验报告
《Nachos 实验报告》
在计算机科学领域,操作系统是一个非常重要的概念。
它是计算机系统的核心组成部分,负责管理计算机的资源并提供用户和应用程序之间的接口。
为了更好地理解操作系统的工作原理,我们进行了一项名为Nachos的实验。
Nachos是一个用于教学目的的操作系统内核。
它是在加州大学伯克利分校开发的,旨在帮助学生学习操作系统的基本概念和原理。
在这个实验中,我们使用Nachos来深入了解操作系统的各个方面,包括进程管理、内存管理、文件系统和网络通信等。
首先,我们学习了Nachos的基本结构和架构。
它由多个模块组成,每个模块负责不同的功能。
通过阅读Nachos的源代码和文档,我们逐渐理解了操作系统内核的组成和工作原理。
接着,我们进行了一系列的实验,来探索Nachos的各种功能。
我们实现了进程管理模块,通过创建和调度多个进程来理解进程的概念和调度算法。
我们还实现了内存管理模块,通过分配和释放内存来了解内存管理的重要性。
此外,我们还实现了文件系统和网络通信模块,以便更好地理解操作系统对外部设备和网络的支持。
通过这些实验,我们不仅加深了对操作系统的理解,还提高了编程和调试的能力。
Nachos实验让我们从理论知识转化为实际操作,让我们更加深入地理解了操作系统的工作原理。
总的来说,Nachos实验为我们提供了一个宝贵的学习机会,让我们对操作系统有了更深入的了解。
通过这个实验,我们不仅学到了知识,还培养了解决问题
的能力和团队合作精神。
希望未来能够继续深入研究操作系统,为计算机科学领域做出更多的贡献。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
nachos实验报告七
实验题目: Extension of AddrSpace 学号:201200301057
日期:2014-11-29 班级:计软12-3 姓名:高鹏辉
实验目的:
在了解了Nachos 装入并执行单个用户进程的情况后,我们就需要进一步完成用户内存空间的扩充以便多用户程序同时驻留内存,进而使多用户进程并发执行。
硬件环境:
Mem:3.9G
CPU:Intel® Core™2 Quad CPU Q9500 @ 2.83GHz × 4
Disk:15.5 GB
软件环境:
System:ubuntu12.04LST i386
gcc: (Ubuntu 4.6.3-1ubuntu5) 4.6.3
nachos system
实验步骤:
要在Nachos中实现多用户程序同时驻留内存并发执行,首先涉及到Nachos的两个系统调用:Exec()和Exit()。
这两个系统调用也是构造父子进程并发执行的基础。
假设我们有以下两个用户程序:../test/exec.c和../test/halt.c
../test/halt.c
第65页
用户进程管理设计
1 #include "syscall.h"
2 int
3 main()
4 {
5 Halt()
6 }
../test/exec.c
1 #include "syscall.h"
2 int
3 main()
4 {
5 SpacId pid;
6 pid = Exec("../test/halt.noff");
7 Halt()
8 }
在文件../test/exec.c第5行上的语句Exec是一条Nachos的系统功能调用,它的功能为装入并执行以其参数为名的可执行文件,即创建一个新的用户进程。
假设我们先执行../test/exec.noff 程序,则../test/exec.noff 会在它还没有执行结束时又装入并执行另外一个程序halt.noff,并与它同时驻留内存.
pageTable[i].physicalPage=usermap-->Find();避免从头开始物理存储覆盖了前一个用户程序的内存内容
利用Nachos在../userprog/bitmap.h 中文件定义的Bitmap类。
利用bitmap 记录和申请内存物理帧,使不同的程序装入到不同的物理空间中去,下面是对新的内存分配存储算法,改进了对多个用户程序的同时进驻内存的支持
这是对BitMap的代码修改,每次分配的时候要找到bitmap中的空闲页进行分配,而不能从0页开始分配在AddressSpace类中声明bitmap对象
static BitMap *mbitmap=new BitMap(NumPhysPages);
运行./nachos –x ../test/exec.noff
结论分析与体会:
nachos无法运行多个用户程序的原因在于物理页的分配,那么改变物理页的分配,使多个程序的物理页不会相互覆盖,每个程序都能分配到对应的独立的物理页,那么不就可以同时执行多个用户程序了吗。
物理页的分配算法在BitMap类中有实现,使用一个数组作为物理页的数据结构。
在给用户程序分配物理页时,不再使用与逻辑页相同的数值,而是使用Find()方法查找下一个可用的物理页。