实验二实验报告
- 格式:doc
- 大小:2.64 MB
- 文档页数:12
实验二杨氏弹性模量的测定实验报告一、实验目的1、学会用伸长法测量金属丝的杨氏弹性模量。
2、掌握光杠杆测量微小长度变化的原理和方法。
3、学会用逐差法处理实验数据。
二、实验原理杨氏弹性模量是描述固体材料抵抗形变能力的物理量。
假设一根粗细均匀的金属丝,长度为 L,横截面积为 S,受到外力 F 作用时伸长了ΔL。
根据胡克定律,在弹性限度内,应力(F/S)与应变(ΔL/L)成正比,比例系数即为杨氏弹性模量 E,其表达式为:\E =\frac{F \cdot L}{S \cdot \Delta L}\在本实验中,F 由砝码的重力提供,S 可通过测量金属丝的直径 d计算得出(\(S =\frac{\pi d^2}{4}\)),ΔL 是微小长度变化量,难以直接测量,采用光杠杆法进行测量。
光杠杆是一个带有可旋转支脚的平面镜,其前足尖放在固定平台上,后足尖置于待测金属丝的测量端,平面镜与金属丝平行。
当金属丝伸长ΔL 时,光杠杆后足尖随之下降ΔL,带动平面镜转过一个小角度θ。
设从望远镜中看到的标尺刻度的变化为Δn,光杠杆常数(即光杠杆前后足尖的垂直距离)为 b,望远镜到平面镜的距离为 D,则有:\(\tan\theta \approx \theta =\frac{\Delta L}{b}\)\(\tan 2\theta \approx 2\theta =\frac{\Delta n}{D}\)由上述两式可得:\(\Delta L =\frac{b \cdot \Delta n}{2D}\)将其代入杨氏弹性模量的表达式,可得:\E =\frac{8FLD}{\pi d^2 b \Delta n}\三、实验仪器杨氏弹性模量测定仪、光杠杆、望远镜、标尺、砝码、千分尺、游标卡尺等。
四、实验步骤1、调整仪器调节杨氏弹性模量测定仪底座的水平调节螺丝,使立柱铅直。
将光杠杆放在平台上,使平面镜与平台面垂直,前、后足尖位于同一水平面内。
《电力电子技术基础》实验报告
班姓名学号
同组人
实验二直流斩波电路的性能研究
一、实验目的
二、实验电路
1.降压斩波电路
2.升压斩波电路
三、实验内容
1.PWM性能测试
观察PWM脉宽调制电压(u GE)波形,观察其最大占空比和最小占空比波形,并记录在下表中。
2.降压斩波电路的波形观察及电压测试
改变PWM脉冲占空比,观察并记录PWM信号占空比最大以及最小时,输出电压u o波形、输出电流i o波形,以及u o的平均值U o,并记录在下表中。
3.升压斩波电路的波形观察及电压测试
改变PWM脉冲占空比,观察并记录PWM信号占空比最大以及最小时,输出电压u o波形、输出电流i o波形,以及u o的平均值U o,并记录在下表中。
四、思考题
(1)根据记录的波形,分析并绘制降压斩波电路的U o/U i- (占空比)关系曲线,与理论分析结果进行比较,并讨论产生差异的原因。
(2)如果斩波电路的负载电阻发生变化,对其输出电压、电流波形有何影响,为什么?。
操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。
通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。
三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。
2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。
3、为新进程指定可执行文件的路径、命令行参数、进程属性等。
4、编写代码来等待新进程的结束,并获取其退出代码。
(二)进程同步实验1、设计一个生产者消费者问题的模型。
2、使用信号量来实现生产者和消费者进程之间的同步。
3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。
4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。
(三)进程通信实验1、选择使用管道来实现进程之间的通信。
2、创建一个匿名管道,父进程和子进程分别读写管道的两端。
3、父进程向管道写入数据,子进程从管道读取数据并进行处理。
四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。
通过观察进程的创建和执行过程,加深了对进程概念的理解。
(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。
分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。
(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。
数据能够准确地在进程之间传递,验证了管道通信的有效性。
五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。
通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。
(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。
C语言程序设计报告二数据类型,运算符和简单的输入输出计算机学院软件工程2班王莹0411402011,实验目的(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2)掌握对各种数值型数据的正确输入方法。
(3)学会使用C语言的有关算数运算符,移机包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
(4)学会编写和运行简单的应用程序。
(5)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2,实验内容和步骤(1)输入并运行教材第3章第4题给出的程序。
○1运行以上程序,分析为什么会输出这些信息。
因为第6行是将c1,c2按%c的格式输出,97是字符a的AS CⅡ代码,98是字符b的AS CⅡ代码。
第7行是将c1,c2按5d的格式输出,所以输出两个十进制整数。
○2如果将程序第4,5行改为c1=197;c2=198;运行时会输出由于Visual C++6.0字符型数据是作为signed char类型处理,它存字符的有效范围为0~127,超出此范围的处理方法,不痛的系统得到的结果不痛,因而用“%d”格式输出,结果是不可预期的。
用“%d”格式输出时,输出c1=-59,c2=-58.这是按补码形式输出的,内存字节中第1位为1时,作为负数。
59和197之和等于256,58与198之和也等于256.○3如果将程序第3行改为int c1,c2;运行时会输出因为97和98在int类型的有效范围。
(2)输入第3章第5题得程序。
即:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
运行时分别按一下方式输入数据,观察输出结果,分析原因。
1,a=3,b=7,x=8.5,y=71.82,A,a↙2,a=3 b=7 x=8.5 y=71.82 A a↙3,a=3 b=7 8.5 71.82 A a↙4,a=3 b=7 8.5 71.82Aa↙5,3 7 8.5 71.82Aa↙6,a=3 b=7↙8.571.82↙A↙a↙7,a=3 b=7↙8.571.82↙Aa↙8,a=3 b=7↙8.671.82Aa↙12345678(3)输入以下程序○1编译和运行程序,注意i,j,m,n各变量的值。
实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。
可以。
(2)整数的占用长度与其数值大小有关吗?答:有。
(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。
(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。
(5)整数的存储形式是什么?答:二进制补码。
2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。
(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。
(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。
(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI(2)写出用“常变量”方式定义PI值的语句。
实验二探究弹力和弹簧伸长的关系【实验原理】弹簧受到拉力会伸长,平衡时弹簧产生的弹力和外力大小相等,弹簧的伸长越大;弹力也就越大。
【实验目的】1、探索弹力与弹簧伸长的定量关系2、学习通过对实验数据的数学分析(列表法和图像法),把握弹簧产生的弹力与弹簧伸长之间的变化规律【实验器材】:弹簧一根,相同质量的砝码若干,铁架台一个(用来悬挂弹簧)。
实验中除了上述器材外,需要的器材还有:。
【实验步骤】(1)将铁架台放在实验桌上,将弹簧悬挂在铁架台上。
弹簧竖直静止时,测出弹簧的原长l0,并填入实验记录中。
(2)依次在弹簧下挂上一个砝码、两个砝码、三个砝码……。
每次,在砝码处于静止状态时,测出弹簧的总长或伸长,并填入实验记录中。
(3)根据测得的数据,以力为纵坐标,以弹簧的伸长量为横坐标,根据表中所测数据在坐标纸上描点。
(4)作弹簧的F-Δl图像。
按照坐标图中各点的分布与走向,尝试作出一条平滑的曲线(包括直线)。
所画的点不一定正好在这条曲线上,但要注意使曲线两侧的点数大致相同。
(5)以弹簧的伸长为自变量,写出曲线所代表的函数,首先尝试一次函数,如果不行则考虑二次函数……(6)解释函数表达式中常数的物理意义。
【实验纪录】弹簧原长l0=弹簧F -Δl 实验图像【实验结论】弹簧弹力大小跟弹簧伸长长度的函数表达式【问题与讨论】1、上述函数表达式中常数的物理意义2、如果以弹簧的总长为自变量,所写出的函数式应为3、某同学在做实验时得到下列一组数据,他由数据计算出弹簧的劲度系数为m N l F k /781020.35.22=⨯=∆=-试分析他对数据处理的方法是否正确?为什么?。
软件测试实验二实验报告一、实验目的本次软件测试实验的主要目的是熟悉并掌握软件测试的基本方法和技术,通过对一个具体软件系统的测试,发现软件中存在的缺陷和问题,提高软件的质量和可靠性。
二、实验环境1、操作系统:Windows 102、测试工具:Jmeter、Selenium、Bugzilla3、开发语言:Java4、数据库:MySQL三、实验内容1、功能测试对软件的登录功能进行测试,包括输入正确和错误的用户名、密码,验证登录是否成功以及相应的提示信息是否准确。
测试软件的注册功能,检查输入的各项信息是否符合要求,如用户名长度、密码强度等。
对软件的搜索功能进行测试,输入不同的关键词,检查搜索结果的准确性和完整性。
2、性能测试使用 Jmeter 工具对软件的并发性能进行测试,模拟多个用户同时登录、搜索等操作,观察系统的响应时间、吞吐量等性能指标。
对软件的数据库操作性能进行测试,包括插入、查询、更新和删除数据,检查数据库的响应时间和资源占用情况。
3、兼容性测试在不同的浏览器(如 Chrome、Firefox、IE 等)上运行软件,检查界面显示和功能是否正常。
在不同的操作系统(如 Windows、Mac OS、Linux 等)上安装和运行软件,验证其兼容性。
4、安全测试对软件的用户认证和授权机制进行测试,检查是否存在未授权访问和越权操作的情况。
测试软件对 SQL 注入、XSS 攻击等常见安全漏洞的防范能力。
四、实验步骤1、功能测试步骤打开软件登录页面,输入正确的用户名和密码,点击登录按钮,观察是否成功登录并跳转到相应页面。
输入错误的用户名或密码,检查提示信息是否清晰准确。
进入注册页面,输入合法和不合法的注册信息,如用户名过短、密码强度不够等,查看系统的校验结果。
在搜索框中输入关键词,点击搜索按钮,对比搜索结果与预期是否一致。
2、性能测试步骤打开 Jmeter 工具,创建测试计划,添加线程组、HTTP 请求等元素。
实验二 线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
2.通过响应曲线观测特征参量ζ和n ω对二阶系统性能的影响。
3.熟练掌握系统的稳定性的判断方法。
二、实验内容1.观察函数step( )和impulse( )的调用格式,假设系统的传递函数模型为146473)(2342++++++=s s s s s s s G可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。
2.对典型二阶系统2222)(nn n s s s G ωζωω++= 1)分别绘出)/(2s rad n =ω,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标ss s p r p e t t t ,,,,σ。
2)绘制出当ζ=0.25, n ω分别取1,2,4,6时单位阶跃响应曲线,分析参数nω对系统的影响。
3.单位负反馈系统的开环模型为)256)(4)(2()(2++++=s s s s Ks G试判断系统的稳定性,并求出使得闭环系统稳定的K 值范围。
三、实验报告1.观察函数step( )和impulse( )的调用格式,假设系统的传递函数模型为146473)(2342++++++=s s s s s s s G 可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。
1) 程序代码如下: >> num=[1 3 7];den=[1 4 6 4 1 0]; impulse(num,den) grid曲线如下:2) 程序代码如下:num=[1 3 7 0]; den=[1 4 6 4 1 0]; step(num,den) grid曲线如下:2.对典型二阶系统2222)(nn n s s s G ωζωω++= 1)分别绘出)/(2s rad n =ω,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标ss s p r p e t t t ,,,,σ。
PAM和PCM编译码器系统一、实验目的1.观察了解PAM信号形成的过程;验证抽样定理;了解混叠效应形成的原因;2.验证PCM编译码原理;熟悉PCM抽样时钟、编码数据和输入/输出时钟之间的关系;了解PCM专用大规模集成电路的工作原理和应用。
二、实验内容和步骤1.PAM编译码器系统1.1自然抽样脉冲序列测量(1)准备工作;(2)PAM脉冲抽样序列观察;(3)PAM脉冲抽样序列重建信号观测。
1.2平顶抽样脉冲序列测量(1)准备工作;(2)PAM平顶抽样序列观察;(3)平顶抽样重建信号观测.1.3信号混叠观测(1)准备工作(2)用示波器观测重建信号输出的波形。
2.PCM编译码器系统2.1PCM串行接口时序观察(1)输出时钟和帧同步时隙信号的观察;(2)抽样时钟信号与PCM编码数据测量;2.2用示波器同时观察抽样时钟信号和编码输出数据信号端口(TP502),观测时以TP504同步,分析掌握PCM编码输数据和抽样时钟信号(同步沿、脉冲宽度)及输出时钟的对应关系;2.3PCM译码器输出模拟信号观测,定性观测解码信号与输入信号的关系:质量,电平,延时.2.4PCM频率响应测量:调整测试信号频率,定性观察解码恢复出的模拟信号电平,观测输出信号电平相对变化随输入信号频率变化的相对关系;2.5PCM动态范围测量:将测试信号频率固定在1000Hz,改变测试信号电平,定性观测解码恢复出的模拟信号的质量。
三、实验数据处理与分析1.PAM编译码器系统(1)观察得到的抽样脉冲序列和正弦波输入信号如下所示:上图中上方波形为输入的正弦波信号,下方为得到的抽样脉冲序列,可见抽样序列和正弦波信号基本同步。
(2)观测得到的重建信号和正弦波输入信号如下所示:如上图所示,得到的重建信号也为正弦波,波形并没有失真。
(3)平顶抽样的脉冲序列如下所示:上图中上方的波形为输入的正弦波信号,下方为PAM平顶抽样序列.(4)平顶抽样的重建信号波形:可见正弦波经过平顶抽样,最终重建的信号仍为正弦波。
实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。
可以。
(2)整数的占用长度与其数值大小有关吗?答:有。
(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。
(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。
(5)整数的存储形式是什么?答:二进制补码。
2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。
(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。
(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。
(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI 3.14(2)写出用“常变量”方式定义PI值的语句。
决策树实验一、实验原理决策树是一个类似于流程图的树结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输入,而每个树叶结点代表类或类分布。
数的最顶层结点是根结点。
一棵典型的决策树如图1所示。
它表示概念buys_computer,它预测顾客是否可能购买计算机。
内部结点用矩形表示,而树叶结点用椭圆表示。
为了对未知的样本分类,样本的属性值在决策树上测试。
决策树从根到叶结点的一条路径就对应着一条合取规则,因此决策树容易转化成分类规则。
图1ID3算法:■决策树中每一个非叶结点对应着一个非类别属性,树枝代表这个属性的值。
一个叶结点代表从树根到叶结点之间的路径对应的记录所属的类别属性值。
■每一个非叶结点都将与属性中具有最大信息量的非类别属性相关联。
■采用信息增益来选择能够最好地将样本分类的属性。
信息增益基于信息论中熵的概念。
ID3总是选择具有最高信息增益(或最大熵压缩)的属性作为当前结点的测试属性。
该属性使得对结果划分中的样本分类所需的信息量最小,并反映划分的最小随机性或“不纯性”。
二、算法伪代码算法Decision_Tree(data,AttributeName)输入由离散值属性描述的训练样本集data;候选属性集合AttributeName。
输出一棵决策树。
(1)创建节点N;(2)If samples 都在同一类C中then(3)返回N作为叶节点,以类C标记;(4)If attribute_list为空then(5)返回N作为叶节点,以samples 中最普遍的类标记;//多数表决(6)选择attribute_list 中具有最高信息增益的属性test_attribute;(7)以test_attribute 标记节点N;(8)For each test_attribute 的已知值v //划分samples(9)由节点N分出一个对应test_attribute=v的分支;(10令S v为samples中test_attribute=v 的样本集合;//一个划分块(11)If S v为空then(12)加上一个叶节点,以samples中最普遍的类标记;(13)Else 加入一个由Decision_Tree(Sv,attribute_list-test_attribute)返回节点值。
实验二运算器实验报告
实验二是运算器实验,旨在让我们了解计算机运算器的结构和工作原理。
在本次实验中,我们通过搭建运算器电路并进行验证,深入理解了运算器的运作过程,为我们今后学习和应用计算机原理打下了基础。
一、实验原理
运算器是计算机中重要的组成部分,用于实现各种算术和逻辑运算。
在本次实验中,我们首先学习了运算器的基本原理和功能,并了解了运算器中常用的逻辑门电路,如与门、或门、非门等。
接着,我们根据原理和逻辑门电路的特点,搭建了一个16位的运算器电路,并测试了电路的逻辑功能和运算准确性。
二、实验步骤
1. 搭建16位运算器电路,包括与门、或门、非门等逻辑电路。
2. 对搭建的运算器电路进行测试,如测试与门、或门、非门电路的逻辑输出是否正确。
3. 实现加法和减法运算功能,测试运算器的运算准确性。
4. 对搭建的运算器电路进行进一步优化,提高电路工作效率和运算速度。
三、实验结果
经过实验测试,我们成功搭建了一个16位的运算器电路,并对电路进行了多项测试和验证。
在逻辑输出方面,与门、或门、非门电路均能够正确输出逻辑值,验证了运算器电路的逻辑功能。
在加法和减法运算方面,运算器电路能够正确实现运算功能,并输出正确的运算结果,这表明运算器电路的运算准确性良好。
四、实验总结
通过本次实验,我们深入理解了计算机中运算器的工作原理和结构,掌握了运算器电路的搭建和运作方法,并初步掌握了在运算器上实现加法和减法运算的原理和方法。
此外,我们还了解了运算器电路的优化方法和技巧,提高了电路工作效率和运算速度。
这些知识和技能对我们今后学习和应用计算机原理具有重要的指导意义。
实验二模拟实现进程管理组长:李和林软件1402一、实验目的1.理解进程的概念,明确进程和程序的区别。
2.理解并发执行的实质。
3.掌握进程的创建,睡眠,撤销等进程控制方法。
二、实验内容用C语言,JAVA语言,C++语言编写程序,模拟实现创建新的进程;查看运行进程,换出某个进程;杀死运行进程。
三、实验准备1.进程的定义进程是程序在一个数据集合上的运行过程,是系统资源分配和调度的一个独立单位。
一个程序在不同的数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。
2.进程的状态通常情况下,一个进程必须具有就绪,执行和阻塞三种基本情况。
1)就绪状态当进程已分配到除处理器外的所有必要资源后,只要再获得处理器就可以立即执行,这时进程的状态就为就绪状态。
在一个系统里,可以有多个进程同时处于就绪状态,通常把这些就绪进程排成一个或多个队列,称为就绪队列。
2)执行状态处于就绪状态的进程一旦获得处理器,就可以运行,进程状态也就处于执行状态,在单处理器系统中,只能有一个进程处于执行状态,在多处理器系统中,则可能有多个进程处于执行状态3)阻塞状态正在执行的进程因为发生某些事件而暂停运行,这种受阻暂停的状态称为阻塞状态,也可称为等待状态。
通常将处于阻塞状态的进程拍成一个队列,称为阻塞队列,在有些系统中,也会按阻塞原因的不同将阻塞状态的进程排成多个队列。
3.进程状态之间的转换4.进程控制块1)进程控制块的作用进程控制块是进程实体的重要组成部分,主要包含下述四个方面的信息:a)进程标示信息b)说明信息c)现场信息d)管理信息5.进程控制块的组织方式1)链接方式2)索引方式6.进程控制原语1)创建原语2)撤销原语3)阻塞原语4)唤醒原语7.程序代码#include<stdio.h>#include<iostream>using namespace std;void clrscr();void create();void run( );void exchange( );//唤出void kill( );void wakeUp( );//唤醒struct process_type{int pid;int priority;//优先次序int size;int state;//状态char info[10];};struct process_type internalMemory[20];int amount=0,hangUp=0,pid,flag=0;//数目,挂起void main( ){int n;int a;n=1;clrscr( );while(n==1){cout<<"\n********************************************";cout<<"\n* 进程演示系统 *";cout<<"\n********************************************";cout<<"\n 1.创建新的进程 2.查看运行进程 ";cout<<"\n 3.换出某个进程 4.杀死运行进程 ";cout<<"\n 5.唤醒某个进程¨ 6.退出系统 ";cout<<"\n*********************************************"<<endl;cout<<"请选择 ";cin>>a;switch(a){case 1:create( );break;case 2:run( );break;case 3:exchange();//换出break;case 4:kill();break;case 5:wakeUp();break;case 6:exit(0);default:n=0;}}}void create(){ //创建进程int i=0;if (amount>=20){cout<<" 内存已满,请先结束或换出进程";}else{for (i=0;i<20;i++){if (internalMemory[i].state==0){break;}}cout<<"请输入新进程的pid: "<<endl;cin>>internalMemory[ i ].pid;cout<<"请输入新进程的优先级: "<<endl;cin>>internalMemory[amount].priority;cout<<"请输入新进程的大小: "<<endl;cin>>internalMemory[amount].size;cout<<"请输入新进程的内容: "<<endl;cin>>internalMemory[amount].info;internalMemory[i].state=1;amount++;}}void clrscr()//清除内存空间{for (int i=0;i<19;i++){internalMemory[i].pid=0;internalMemory[i].priority=0;internalMemory[i].size=0;internalMemory[i].state=0;}amount=0;}void run(){for (int i=0;i<20;i++){if (internalMemory[i].state==1){cout<<"当前内存中的进程:\n"<<endl;cout<<"当前运行的进程: ";cout<<internalMemory[i].pid<<endl;cout<<"当前运行进程的优先级: ";cout<<internalMemory[i].priority<<endl;cout<<"当前运行进程占用的空间大小: ";cout<<internalMemory[i].size;}}}void exchange( ){//唤出优先级最小的进程if (!amount){cout<<"当前没有运行进程\n";return;}cout<<"\n输入换出进程的ID值: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){if (internalMemory[i].state==1){internalMemory[i].state=2;hangUp++;cout<<"\n已经成功换出进程\n";}else if (internalMemory[i].state==0){cout<<"\n要换出的进程不存在";}else{cout<<"\n要换出的进程已被挂起\n";}flag=1;break;}}if (flag==0){cout<<"\n要换出的进程不存在";}}void kill( ){if (!amount){cout<<"当前没有运行进程\n";return;}cout<<"请输入要杀死的进程: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){if (internalMemory[i].state==1){internalMemory[i].state=0;amount--;cout<<"此进程被杀死"<<pid;}else if (internalMemory[i].state==0){cout<<"\n要杀死的进程不存在\n";}else{cout<<"\n要杀死的进程已被挂起\n";}flag=1;break;}}if (!flag){cout<<"\n要杀死的进程不存在\n";}}void wakeUp(){if (!amount){cout<<"当前没有运行进程"<<endl;return;}if (!hangUp){cout<<"当前没有挂起进程";return;}cout<<"请输入pid: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){flag=0;if (internalMemory[i].state==2){internalMemory[i].state=1;hangUp--;cout<<"已经成功唤醒进程\n";}else if (internalMemory[i].state==0){cout<<"\n要换醒的进程不存在\n";}else{cout<<"\n要唤醒的进程已被挂起\n";}break;}}if (flag){cout<<"\n要唤醒的进程已被挂起\n"<<endl;}}8.实现的结果。
实验报告二-模拟交通灯实验实验目的:本次实验旨在通过模拟交通灯实验,了解交通灯的工作原理、设计及调节方法。
实验原理:交通灯是城市交通管理中不可缺少的部分,广泛应用于道路、路口等地方,用以调整交通流量和保障行人和车辆的交通安全。
基本上,每个交通灯系统都由信号控制器、信号球、绿地检测器组成。
信号控制器是交通灯系统的核心部分,通过控制信号球的点灯和熄灭,向车辆、行人发出指令。
实验器材:1. Arduino控制板;2. LED灯若干;3. 面包板;4. 杜邦线;5. 电阻。
实验步骤:1. 通过面包板将Arduino控制板与电阻、LED灯连接;2. 在Arduino控制板上编写程序,实现交通灯模拟;3. 连接电源,通过Arduino IDE输入程序运行。
实验结果:经过程序处理,LED灯按照交通灯的颜色进行变换,使得其能够模拟实际交通灯的工作状态,达到预期效果。
实验教训:在实验过程中,我们发现LED灯的管脚与面包板接触不良时,会出现程序不能正常运行的情况。
因此,我们在连接器件时要确保接触良好,并注意防静电。
实验思考:本次实验通过模拟交通灯,我们深刻认识到交通灯的工作原理以及对道路交通的重要意义。
合理设置交通灯,不仅能够保障行人和车辆安全,而且还能提高道路的通行效率。
因此,在今后的实践活动中,我们应该更加注重交通灯的科学研究和实际应用。
结语:通过本次实验,我们进一步认识到交通灯对于城市交通管理的重要性,同时也掌握了基本的交通灯原理和设计方法。
相信在今后的学习和研究中,我们将能够更好地提高交通管理的水平和效率。
竭诚为您提供优质文档/双击可除直线度误差的测量实验报告篇一:实验二直线度误差测量实验报告实验二直线度误差测量实验报告1.简述直线度误差测量步骤2.记录测量数据3.作图:以测点数为横坐标轴,累计误差为纵坐标。
用最小区域法判断直线度误差篇二:直线度误差的测量实验三测量直线度误差一、实验目的:1、掌握用水平仪测量垂直平面内的直线度误差的方法。
2、掌握用作图法求直线度误差,用最小区域法评定直线度误差的方法。
3、了解其他测量直线度误差的方法。
二、实验内容:测量导轨直线度误差或测量平板一对角线的直线度误差。
三、框式水平仪的结构、工作原理、读数方法:1、框式水平仪的结构框式水平仪一般是制成200mm×200mm的矩形框架,它们互相垂直平行,下方框边的上面装有一个水准器(密封的玻璃容器),本实验用i=0.02mm/l000mm框式水平仪。
水准器是一个具有一定曲率半径的圆弧形玻璃管,管内装有粘度很小的液体如乙醚或乙醇,不装满,留有一定长度的气泡,称水准气泡。
我们就利用液体往低处流,气泡往高处跑的道理进行测量的。
水准器玻璃管表面上的刻度相等,以圆弧中心相对称,其刻线间距为2mm。
2、测量工作原理:以自然水平面为测量基准(摸拟理想要素)。
用节距法(又称跨距法)对被测直线进行逐段测量,得到各段的读数然后经过数据处理,就可以用作图法或计算法求出误差值。
3、水平仪的读数方法:实验采用双向读数法。
双向读数法读数较准确。
具体方法是:把水准器的刻度分成两大区间:二基线内为负区闭,二基线外为正区间。
如下图所示。
正区间正区间读数时.看气泡左基线相距几格,气泡右端相距右基线几格,分别以n左、n右表示,并带上“十”、“一”符号。
气泡相对水平位置移动的格数由公式算出:(n左?n右)2(格)式中:n左一一气泡左端相距左基线几格n右一一气泡左端相距右基线几格n一一水平仪的实际移动格数(水平仪读数)。
绝对值前面的“+”、“-”符号的确定:我们约定,当整个气泡移向对称线的右边,绝对值前冠“+”号,反之为“-”号。
实验二独立按键试验实验报告
一、实验目的
独立按键试验是为了验证按键与单片机的连接是否正常,并测试按键
功能是否正常,通过实验掌握按键接口的使用和按键的原理。
二、实验原理
在实际应用中,常常需要使用按键来实现硬件的控制。
按键的原理是:当按键关闭时,两个按键引脚之间短接,按键关闭。
当按键打开时,两个
按键引脚之间断开,按键打开。
三、实验仪器
1.单片机开发板
2.按键
3.面包板和杜邦线
4.电源线
四、实验步骤
1.将按键连接到单片机开发板上的按键接口,并接通电源。
2.编写程序,监测按键是否被按下,并通过串口输出按键的状态。
3.烧录程序到单片机,运行程序。
4.进行按键试验。
五、实验结果与分析
按下按键后,通过监测按键引脚的电平变化,可以判断按键是否被按下。
根据不同的按键连接方式,可能需要使用上拉电阻或下拉电阻来连接按键。
六、实验结论
通过独立按键试验,我们验证了按键与单片机的连接是否正确,并测试了按键的功能。
在实际应用中,可以根据需要使用按键来实现硬件的控制。
七、实验心得
通过本次实验,我掌握了按键接口的使用方法和按键的原理。
在实际应用中,按键是一个常用的控制元件,有了这次实验的经验,以后在使用按键时会更加得心应手。
PAM和PCM编译码器系统
一、实验目的
1.观察了解PAM信号形成的过程;验证抽样定理;了解混叠效应形
成的原因;
2.验证PCM编译码原理;熟悉PCM抽样时钟、编码数据和输入/输出
时钟之间的关系;了解PCM专用大规模集成电路的工作原理和应用。
二、实验内容和步骤
1.PAM编译码器系统
1.1自然抽样脉冲序列测量
(1)准备工作;
(2)PAM脉冲抽样序列观察;
(3)PAM脉冲抽样序列重建信号观测。
1.2平顶抽样脉冲序列测量
(1)准备工作;
(2)PAM平顶抽样序列观察;
(3)平顶抽样重建信号观测。
1.3信号混叠观测
(1)准备工作
(2)用示波器观测重建信号输出的波形。
2.PCM编译码器系统
2.1PCM串行接口时序观察
(1)输出时钟和帧同步时隙信号的观察;
(2)抽样时钟信号与PCM编码数据测量;
2.2用示波器同时观察抽样时钟信号和编码输出数据信号端口
(TP502),观测时以TP504同步,分析掌握PCM编码输数据和抽样时钟信号(同步沿、脉冲宽度)及输出时钟的对应关系;
2.3PCM译码器输出模拟信号观测,定性观测解码信号与输入信号的
关系:质量,电平,延时。
2.4PCM频率响应测量:调整测试信号频率,定性观察解码恢复出的
模拟信号电平,观测输出信号电平相对变化随输入信号频率变化的相对关系;
2.5PCM动态范围测量:将测试信号频率固定在1000Hz,改变测试信
号电平,定性观测解码恢复出的模拟信号的质量。
三、实验数据处理与分析
1.PAM编译码器系统
(1)观察得到的抽样脉冲序列和正弦波输入信号如下所示:
上图中上方波形为输入的正弦波信号,下方为得到的抽样脉冲序列,可见抽样序列和正弦波信号基本同步。
(2)观测得到的重建信号和正弦波输入信号如下所示:
如上图所示,得到的重建信号也为正弦波,波形并没有失真。
(3)平顶抽样的脉冲序列如下所示:
上图中上方的波形为输入的正弦波信号,下方为PAM平顶抽样序列。
(4)平顶抽样的重建信号波形:
可见正弦波经过平顶抽样,最终重建的信号仍为正弦波。
(5)观察产生混叠时的重建信号的输出波形
在实验时将输入的正弦波频率调至7.5KHz,通过示波器观察得到的输入正弦波波形和输出的重建信号如下所示:
由于实验时采用的抽样频率为8KHz,所以当输入的信号频率为7.5KHz时已经不满足抽样定理的要求了,所以会产生混叠误差,导致了输出的重建波形如上图所示,不再是正弦波了。
(6)在采用抗混滤波器时的输出波形的性能,通过改变输入频率得到结果如下表所示:
从测量结果可以得出如下规律:随着输入正弦波信号的频率逐渐升高,输出重建波形的幅值逐渐降低。
这是由于在实验电路中加入了抗混滤波器,该滤波器随着频率的升高会使处理的信号的衰减逐渐变大,所以如试验结果所示,随着输入信号频率的升高,输出信号的幅值在逐渐变小。
(7)在不采用抗混滤波器时输入与输出波形之间的关系,得到的结
由于实验时采用的抽样频率为8000Hz,所以当输入信号的频率小于4000Hz时满足抽样定理,输出信号的频率与输入信号相同,所以上表结果中输入频率为1000,2500,3000Hz时输出频率与输入频率相同;当输入频率大于4000Hz时就会产生混叠误差,当根据抽样的性质可以知道,当输入频率小于8000Hz时,输出的频率会因为混叠误差变为“8000-输入频率”,而当输入频率大于8000时,输出信号的频率会变为“输出频率-8000”,所以会得到上表中的结果。
2.PCM编译码器系统
(1)输出时钟和帧同步时隙信号的观测结果如下:
上图中上方波形为抽样时钟信号的波形,下方为输出时钟信号的波形。
从波形中可以看出,PCM编码的抽样时钟信号和输出时钟信号的同步沿为上升沿,并且在抽样时钟信号为高电平时有八个输出时钟周期。
(2)PCM编码输出数据与抽样时钟信号的关系,得到结果如下:
上面五张图展示了测量结果中连续的十个PCM编码输出信号,对比可知最后一张图和第一张图中两个波形是相同的,这说明输出信号以八个抽样时钟脉冲为一个周期。
另外从图中可以看出当抽样时钟信号为高电平时,对应了一个输出数据部分,并且从图中可以看出两者的同步沿为上升沿,在抽样时钟信号为高电平时有八个输出脉冲周期(每个周期内为高电平或者低电平)。
(3)PCM译码器输出模拟信号观测,波形如下所示:
上方为输入信号波形,下方为PCM译码器输出的模拟信号波形,通过示波器测量可知输出的信号电平幅值略小于输入信号的幅值,并且相对于输入信号,输出信号具有一定的延时。
(4)PCM频率响应的测量
输入信号为1KHz时,输出波形的电平幅值为1.96V,波形如下所示:
输入信号为3000Hz时,输出的信号的电频幅值为1.92V,波形如下:
输入信号为4200Hz时输出的信号电平幅值变为0.36V,波形如下:
在实验时,连续地调节输入信号的频率,发现在逐渐调高输入信号频率的过程中,输出信号的电平幅值逐渐减小,但是最初减小幅度较小,当输入信号频率调节到大约3.5Khz时输出信号频率发生突变,减小较快,再增大输入信号频率时,输出信号幅值几乎变为0.
(5)PCM动态范围测量
固定输入信号频率为1000Hz,调节输入信号的电平,得到的几个结果如下图所示:
输入电压幅值为2.08V时,输入电压和输出电压波形:
输入电压幅值为3.08V时,输入电压和输出电压波形:
输入电压幅值为3.76V时,输入电压和输出电压波形:
输入电压幅值为9.50V时,输入电压和输出电压波形:
从上面的结果可以看出,在随着输入电压幅值增大时,输出电压逐渐出现了畸变,通过实验发现大约在输入电压幅值为3V之后,输出电压会出现畸变。
四、实验总结和收获
1.通过本次实验,对于PAM编码和译码有了深刻的了解,另外还通
过实验验证了采样定理,对于采样定理有了深刻的了解;
2.同样在PCM编码和译码实验中,观察了PCM抽样信号和输出信号
的波形,并明白了他们之间的关系;
3.了解了PCM的频率响应和PCM的动态范围。