华科_计算机系统实验报告

华科_计算机系统实验报告
华科_计算机系统实验报告

课程实验报告课程名称:计算机系统基础

专业班级:

学号:

姓名:

指导教师:

报告日期:年月日

计算机科学与技术学院

目录

实验1: (1)

实验2: (7)

实验3: (24)

实验总结 (34)

实验1:数据表示

1.1 实验概述

实验目的:更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。

实验目标:加深对数据二进制编码表示的了解。

实验要求:使用有限类型和数量的运算操作实现一组给定功能的函数。

实验语言:c。

实验环境:linux

1.2 实验内容

需要完成bits.c中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。

1)位操作

表1列出了bits.c中一组操作和测试位组的函数。其中,“级别”栏指出各函数的难度等级(对应于该函数的实验分值),“功能”栏给出函数应实现的输出(即功能),“约束条件”栏指出你的函数实现必须满足的编码规则(具体请查看bits.c中相应函数注释),“最多操作符数量”指出你的函数实现中允许使用的操作符的最大数量。

你也可参考tests.c中对应的测试函数来了解所需实现的功能,但是注意这些测试函数并不满足目标函数必须遵循的编码约束条件,只能用做关于目标函数正确行为的参考。

表1 位操作题目列表

2)补码运算

表2列出了bits.c中一组使用整数的补码表示的函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。

表2 补码运算题目列表

3)浮点数操作

表3列出了bits.c中一组浮点数二进制表示的操作函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。注意float_abs的输入参数和返回结果(以及float_f2i函数的输入参数)均为unsigned int类型,但应作为单精度浮点数解释其32 bit二进制表示对应的值。

表3 浮点数操作题目列表

1.3 实验设计

根据题目要求,选择合适的操作符来编写代码。

具体设计参考实验过程中的代码注释。

1.4 实验过程

阅读相应的函数要求,利用合适的操作符编写代码。如下:

1. lsbZero 函数:

图1.1

2. byteNot 函数:

图1.2

3. byteXor 函数:

图1.3

4. logicalAnd 函数:

图1.4

5. logicalOr 函数:

图1.5 6.rotateLeft函数:

图1.6 7.parityCheck函数:

图1.7 8.mul2OK函数:

图1.8 9.mult3div2函数:

图1.9 10.subOK函数:

图1.10 11.absVal函数:

图1.11

12.float_abs函数:

图1.12

13.float_f2i函数:

图1.13

1.5实验结果

1.使用dlc检查函数实现代码是否符合实验要求的编码规则。

a)首先./dlc bits.c直接检测是否有错误。如图1.14所示:

图1.14

由图知,输出Compilation Successful(1 warning),故bits.c文件编写无误符合要求。

b)然后用-e选项调用dlc,观察操作符数。如图1.15所示:

图1.15

2.使用 btest 检查函数实现代码的功能正确性。

a)首先使用make编译生成btest可执行程序,如图1.16所示:

图1.16

b)然后调用 btest 命令检查 bits.c中所有函数的功能正确性。如图

1.17所示:

图1.17

由图知,得分全拿到了,故bits.c文件中函数功能都实现了。

1.6实验小结

这次实验让我更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。尤其是加深对数据二进制编码表示的了解。通过使用有限类型和数量的运算操作实现一组给定功能的函数来提高了我对数据表示方面的C语言编程能力。

总之这次实验的过程整体还是很愉快的,耗时不是很长但是收获很大!

实验2:拆弹实验

2.1 实验概述

实验目的:增强对程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。

实验目标:需要拆除尽可能多的炸弹。

实验要求:使用gdb调试器和objdump来反汇编炸弹的可执行文件,并单步跟踪调试每一阶段的机器代码,从中理解每一汇编语言代码的行为或作用,进而设法“推断”出拆除炸弹所需的目标字符串。

实验语言:c。

实验环境:linux

2.2 实验内容

一个“binary bombs”(二进制炸弹,下文将简称为炸弹)是一个Linux可执行C程序,包含了6个阶段(phase1~phase6)。炸弹运行的每个阶段要求你输入一个特定的字符串,若你的输入符合程序预期的输入,该阶段的炸弹就被“拆除”,否则炸弹“爆炸”并打印输出 "BOOM!!!"字样。实验的目标是拆除尽可能多的炸弹层次。

每个炸弹阶段考察了机器级语言程序的一个不同方面,难度逐级递增:

* 阶段1:字符串比较

* 阶段2:循环

* 阶段3:条件/分支

* 阶段4:递归调用和栈

* 阶段5:指针

* 阶段6:链表/指针/结构

另外还有一个隐藏阶段,但只有当你在第4阶段的解之后附加一特定字符串后才会出现。

为了完成二进制炸弹拆除任务,你需要使用gdb调试器和objdump来反汇编炸弹的可执行文件,并单步跟踪调试每一阶段的机器代码,从中理解每一汇编语言代码的行为或作用,进而设法“推断”出拆除炸弹所需的目标字符串。这可能需要你在每一阶段的开始代码前和引爆炸弹的函数前设置断点,以便于调试。

2.2.1 阶段1 字符串比较

1.任务描述:通过phase_1的反汇编代码找出要输入的字符串。

2.实验设计:利用gdb结合断点来动态地分析。

3.实验过程:

观察phase_1的反汇编代码,如图2.1.1所示:

图2.1.1

发现在调用strings_not_equal对比字符串之前,有一个地址送入了堆栈,大胆猜测该地址就是正确字符串的首址,于是在phase_1处下个断点,运行至此处后,用x命令查看字符串。如图2.1.2所示:

图2.1.2

故猜测“Border relations with Canada have never been better.”就是所需字符串。重新执行该程序,直接输入该字符串,观察结果。如图2.1.3所示:

图2.1.3

4.实验结果:如图2.1.3所示,阶段一拆弹成功!

阶段一很简单,当初的找出字符串首地址就可以了,没有什么大的难点。

2.2.2 阶段2 循环

1.任务描述:通过phase_2的反汇编代码推断第二阶段要输入的数据

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

观察phase_1的前一部分反汇编代码,如图2.2.1所示:

图2.2.1

发现输入的应该是六个数字,而且要求[esp+0x18]必须大于等于0才行,于是测试输入“0 1 2 3 4 5”,观察这些数字在调用read_six_numbers后是如何存放在栈中的,如图2.2.2所示:

图2.2.2

观察到执行read_six_numbers后,输入的数字依次存放在esp+0x18、esp+0x1c、esp+0x20、esp+0x24、esp+0x28、esp+0x2c中,故对输入的数字首先就要有第一个数不能小于0。继续观察phase_2的后一部分反汇编代码,如图2.2.3所示:

图2.2.3

能容易发现这是一个循环,首先将ebx赋值为1,然后比较[esp+ebx*4+0x14]加上ebx与[esp+ebx*4+0x18]是否相等,相等就ebx加一继续执行,直到ebx 等于6后退出。

然后来分析应该输入的值。第一个数只要大于等于0就可以。

不妨就输入0。他将会被保存在esp+0x18处。所以ebx等于1时,有[esp+ebx*4+0x18]=[esp+0x1c]=[esp+ebx*4+0x14]+ebx=[esp+0x18]+1。故第二

个输入的数字应该为0+1=1。同理分析可得后面的数依次为3、6、10、15。故这六个数依次为0、1、3、6、10、15。

重新执行该程序,直接输入“0 1 3 6 10 15”,观察结果。如图2.2.4所示:

图2.2.4

4.实验结果:如图2.2.4所示,阶段二拆弹成功!

阶段二涉及到了小的循环,慢慢的依次执行很同意就能发现规律,也不是很难。

2.2.3 阶段3 条件/分支

1.任务描述:通过phase_3的反汇编代码推断第三阶段要输入的数据

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

观察phase_3的前一部分反汇编代码,如图2.3.1所示:

图2.3.1

发现输入的应该要求__isoc99_sscanf@plt的返回值大于1,于是观察调用__isoc99_sscanf@plt时格式字符串的值,在0x8048c23处下断点然后进入函数单步调试,并测试输入“0 1 2 3 4”,如图2.3.2所示:

图2.3.2

观察到格式字符串为“%d %d”,故只需输入两个数字即可。同phase_2操作可以发现输入的数字依次存放在esp+0x18、esp+0x1c中。继续观察phase_3的

后一部分反汇编代码,如图2.3.3所示:

图2.3.3

可以显然的发现一个数字要求不能比0x7大,然后就会将第一个数字送入eax中,然后跳转至[eax*4+0x804a1c0]处执行,显然是个分支程序。

重新调试程序输入“1 100”,观察执行到0x8048c86处eax的值,即第二个数应该的值。如图2.3.4所示:

图2.3.4

故第二个数为61。重新执行该程序,直接输入“1 61”,观察结果。如图2.3.5所示:

图2.3.5

4.实验结果:如图2.3.5所示,阶段三拆弹成功!

阶段三用到了分支,由于没有必要弄懂整个分支的功能,只要选择其中的某一路就可以了,所以解决起来也不是很难,单步执行下去就能很快的找到第二个输入的正确值。

2.2.4 阶段4 递归调用和栈

1.任务描述:通过phase_4以及func4的反汇编代码推断第四阶段要输入

的数据

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

观察phase_4的前一部分反汇编代码,如图2.4.1所示:

图2.4.1

发现输入的应该要求__isoc99_sscanf@plt的返回值等于2,于是同阶段三一样测试观察调用__isoc99_sscanf@plt时格式字符串的值,发现为仍然为“%d %d”,而且[esp+0x18]要求小于等于0xe。如图2.4.2所示:

图2.4.2

继续观察phase_4的后一部分反汇编代码,如图2.4.3所示:

图2.4.3

可以不难发现依次将输入的第一个数,以及0x0和0xe作为参数传给func4,要求返回值为0xf而且输入的第二个数与0xf相等才不会爆炸。所以需要输入一个正确的数来保证func4的返回值为0xf。

于是观察func4的反汇编代码,如图2.4.4所示:

图2.4.4

很快就能发现其中有递归调用,仔细分析发现,第一次调用时其中edx,eax,esi依次为x(为输入的第一个数),0x0,0xe。然后ecx=(esi-eax)/2,然后ebx=ecx+eax=(esi+eax)/2,然后根据ebx与edx比较也就是传入func4的第一个参数与后两个参数的平均值的比较结果进行相应的处理。

当第一个参数小于后两个参数的平均值时,就依次将原来的第一次参数、原来的第二个参数、原来后两个参数的平均值减一作为参数调用func4,然后将返回值以及原来的后两个参数的平均值的和作为返回值输出。即原来参数依次为a、b、c,传入参数依次为a、b、(b+c)/2-1;

当第一个参数大于后两个参数的平均值时,就依次将原来的第一次参数、原

来后两个参数的平均值加一、原来的第三个参数作为参数调用func4,然后将返回值以及原来的后两个参数的平均值的和作为返回值输出。即原来参数依次为a、b、c,传入参数依次为a、(b+c)/2+1、c;

当第一个参数等于两个参数的平均值时,就直接将平均值直接输出。

所以通过反推,要求func4的返回值必须为0xf也就是15,显然直接输出平均值不可行。若第一个参数大于0x0与0xe的平均值也就是7的话,则下一层调用func输出的返回值必定大于(8+15)/2>8,故结果必定大于15,所以也不行。

故输入的第一个参数必定小于7,演算之后发现5正好符合要求,第一次调用平均值为7,然后传递5、0、6为参数第二次调用,平均值为3,再次传递5、4、6为参数第三次调用,平均值为5,与输入相等,故输出7+3+5=15,即0xf。

综上,重新执行该程序,直接输入“5 15”,观察结果。如图2.4.5所示:

图2.4.5

4.实验结果:如图2.4.5所示,阶段四拆弹成功!

阶段四难度开始提升,调用了别的函数,而且函数还有递归调用,这就要求必须完整的看懂递归的函数的功能,分析出来功能后才能反过来推测正确的输入。

2.2.5 阶段5 指针

1.任务描述:通过phase_5的反汇编代码推断第五阶段要输入的数据

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

观察phase_5的前一部分反汇编代码,如图2.5.1所示:

图2.5.1

发现输入的应该要求__isoc99_sscanf@plt的返回值大于1,于是同阶段三一样测试观察调用__isoc99_sscanf@plt时格式字符串的值,发现为仍然为

“%d %d”。如图2.5.2所示:

图2.5.2

继续观察phase_5的后一部分反汇编代码,如图2.5.3所示:

图2.5.3

仔细分析发现,首先将第一个输入的值送入eax后与0xf做且运算,然后在与0xf比较,相等就会爆炸,不相等就将[eax*4+0x804a1e0]的值赋给eax,然后直到eax等于0xf,比较进行该赋值的次数,赋值次数也等于0xf且输入的第二个值恰好为赋值后eax的总和,则完成这个炸弹的拆除。

于是执行到phase_5后,用x命令观察0x804a1e0后的连续15个值,如图2.5.4所示:

图2.5.4

表2.5.5

所以通过反推,要求15次后的eax值必须为0xf也就是15,则反推有15←6←14←2←1←10←0←8←4←9←13←11←7←3←12←5,所以第一个输入的值为5,第二个值为15+6+14+2+1+10+0+8+4+9+13+11+7+3+12=115。

综上,重新执行该程序,直接输入“5 115”,观察结果。如图2.5.6所示:

图2.5.6

4.实验结果:如图2.

5.6所示,阶段五拆弹成功!

阶段五用到了数组,只要正确的找到了数组中元素的值,后面的循环就很简单了。

2.2.6 阶段6 链表/指针/结构

1.任务描述:通过phase_6的反汇编代码推断第五阶段要输入的数据

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

观察phase_6的前一部分反汇编代码,如图2.6.1所示:

图2.6.1

仍然是读取六个数字,输入“0 1 2 3 4 5”测试,然后在read_six_numbers 返回后观察数字是否被存放在[esp+0x10]处,如图2.6.2所示:

图2.6.2

所以这段代码还对输入的值有一定的要求,要求减去以后必须不能大于5,即要在1、2、3、4、5、6中的数字才可以。继续看phase_6的下一段反汇编代

码,如图2.6.3所示。

图2.6.3

不难发现这是通过esi与ebx来实现的双重循环,一一比较输入的值是否相同,只要有一对相同该炸弹就会爆炸,所以输入的数据应该是1到6的一种排列才可以。继续看phase_6的下一段反汇编代码,如图2.6.4所示。

图2.6.4

发现出现了一个奇怪的地址,用x命令观察一下,如图2.6.5所示:

图2.6.5

很容易发现是一个节点,用x命令将该链表所有节点全部罗列出来,如图2.6.6所示:

图2.6.6

根据该链表并继续观察代码,仔细大胆猜测这段代码是根据输入的序列,将链表的顺序进行改排。然后再判断改排后的链表中的数据是否是从小到大进行排序的。

所以不妨大胆的猜测应该输入的排序序列应该为4(0x3e) <5(0x1bc) <2(0x263) <3(0x2bc) <6(0x37a) <1(0x3dc)。故猜测输入的字符串应该为“4 5 2 3 6 1”,重新运行程序,输入该字符串进行测试,如图2.6.7所示:

图2.6.7

4.实验结果:如图2.6.7所示,阶段六拆弹成功!

阶段六难度大大加大,由于有大量的地址的操作,所以乍一看很难看懂功能,查看相应地址后发现是个链表,在结合反汇编代码,很容易能猜测出大概的功能,从而来推测正确的输入。

2.2.7 阶段7 隐藏阶段

1.任务描述:找出隐藏阶段开启方式并且拆除隐藏阶段的炸弹。

2.实验设计:利用gdb结合断点来动态地分析

3.实验过程:

直接在反汇编代码中观察发现,只有phase_defused函数中有对secret_phase函数的调用,于是观察phase_defused函数的反汇编代码,如图2.7.1所示:

观察不难发现,要经过两个比较,以及一个字符串比较后才能开启隐藏阶段。而第一个比较是一个数与常数0x6的比较,结合隐藏阶段的开启条件,必须在阶段6完成后才能开启就很容易发现,这个数(ds:0x804c3c8)应该就是用来指示当前阶段的。于是在phase_6完成后,在phase_defused处下断点,观察ds:0x804c3c8处的值,如图2.7.2所示:

微机系统实验报告

西安电子科技大学 实验报告

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握 DOS 功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验设备 PC 机一台。 三、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。 4. 自主设计输入显示信息,完成编程与调试,演示实验结果。 四、实验源码 DA TA SEGMENT DISCHA DB'WangHan 14030188004',0AH,0DH,'$' TAB DB' ',0AH,0DH,'$' BLANK DB' $' DA TA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA,SS:STACK START: MOV AX,SEG DISCHA MOV DS,AX MOV DX,OFFSET DISCHA MOV AH,09H INT 21H NEXT: MOV AH,01H INT 21H CMP AL,'Q' JE ENDSS

CMP AL,'q' JE ENDSS MOV BL,AL MOV AX,SEG BLANK MOV DS,AX MOV DX,OFFSET BLANK MOV AH,09H INT 21H MOV BH,0AH MOV DL,BL MOV CL,04H SHR DL,CL CMP DL,BH JNL Q3 JMP Q2 Q1: ADD DL,07H Q2: ADD DL,30H MOV AH,02H INT 21H MOV DL,BL MOV DH,0FH AND DL,DH CMP DL,BH JNL Q3 JMP Q4 Q3: ADD DL,07H Q4: ADD DL,30H MOV AH,02H INT 21H MOV AX,SEG TAB MOV DS,AX MOV DX,OFFSET TAB MOV AH,09H INT 21H MOV CX,0009H LOOP NEXT

电气检测技术试验报告

本科生实验报告 实验课程电气测试技术学院名称核技术与自动化工程学院专业名称电气工程及其自动化学生姓名刘恒学生学号50504 指导教师王洪辉实验地点逸夫楼6C801 实验成绩 二O—四年十二月 填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用 A4 纸双面打印(封面双面打印)或在 A4 大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,倍行距,页边距采取默认形式(上下,左右,页 眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%间距:标准);页码用小五号字底 端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小 4 号宋体);关 键词(隔行顶格书写“关键词”三字,提炼 3-5 个关键词,用分号隔开,小 4 号黑体); 正文部分采用三级标题; 第1章XX (小二号黑体居中,段前行) XXXXX小三号黑体XXXXX(段前、段后行) 1.1.1 小四号黑体(段前、段后行) 参考文献(黑体小二号居中,段前行),参考文献用五号宋体,参照《参考文献著录规则

( GB/T 7714-2005)》。

实验一 金属箔式应变片性能 一单臂电桥 (910 型 998B 型) 1.1实验目的 (1) 了解金属箔式应变片,单臂单桥的工作原理和工作情况。 (2) 观察了解箔式应变片的结构及粘贴方式; (3) 测试应变梁变形的应变输出; (4) 熟悉传感器常用参数的计算方法。 实验原理 本实验说明箔式应变片及单臂单桥的工作原理和工作情况。应变片是最常用的测力 传感元 件。当用应变片测试时,应变片要牢固地粘贴在测试体表面,当测件受力发生形 变,应变片的敏感栅随同变形,其电阻也随之发生相应的变化,通过测量电路,转换成 电信号输出显示。 电桥电路是最常用的非电量电测电路中的一种, 当电桥平衡时,桥路对臂电阻乘积 R1、R2 R3 R4中,电阻的相对变化率分别为 2迟;用四个应变片组成二个差对工作,且 R R1=R2=R3=R4=R, R 仆 R 。 由此可知,单臂、半桥、全桥电路的灵敏度依次增大。 所需单元及部件:直流稳压电源、差动放大器、双平衡梁、测微头、一片应变片、 F/V 表、主、副电源。 旋转初始位置:直流稳压电源打到 2V 档,F/V 表打到2V 档,差动放大增益最大。 实验步骤 了解所需单元、部件在试验仪上的所在位置,观察梁上的应变片, 应变片为棕色衬 底箔式结 构小方薄片。上下二片梁的外表面各贴二片受力应变片和一片补偿应变片, 测 微头在双平行梁前面的支座上,可以上、下、前、后、左、右调节。 将差动放大器调零:用连线将差动放大器的正(+)、负(-)、地短接。将差动放大 器的输 出端与F/V 表的输入插口 Vi 相连;开启主、副电源;调节差动放大器的增益到 最大位置,然后调整差动放大器的调零旋钮使 F/V 表显示为零,关闭主、副电源。 相等,电桥输出为零,在桥臂四个电阻 R1/R1、差动状态工作,则有

华科_计算机系统实验报告

课程实验报告课程名称:计算机系统基础 专业班级: 学号: 姓名: 指导教师: 报告日期:年月日 计算机科学与技术学院

目录 实验1: (1) 实验2: (7) 实验3: (24) 实验总结 (34)

实验1:数据表示 1.1 实验概述 实验目的:更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。 实验目标:加深对数据二进制编码表示的了解。 实验要求:使用有限类型和数量的运算操作实现一组给定功能的函数。 实验语言:c。 实验环境:linux 1.2 实验内容 需要完成bits.c中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。 1)位操作 表1列出了bits.c中一组操作和测试位组的函数。其中,“级别”栏指出各函数的难度等级(对应于该函数的实验分值),“功能”栏给出函数应实现的输出(即功能),“约束条件”栏指出你的函数实现必须满足的编码规则(具体请查看bits.c中相应函数注释),“最多操作符数量”指出你的函数实现中允许使用的操作符的最大数量。 你也可参考tests.c中对应的测试函数来了解所需实现的功能,但是注意这些测试函数并不满足目标函数必须遵循的编码约束条件,只能用做关于目标函数正确行为的参考。 表1 位操作题目列表

2)补码运算 表2列出了bits.c中一组使用整数的补码表示的函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。 表2 补码运算题目列表 3)浮点数操作 表3列出了bits.c中一组浮点数二进制表示的操作函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。注意float_abs的输入参数和返回结果(以及float_f2i函数的输入参数)均为unsigned int类型,但应作为单精度浮点数解释其32 bit二进制表示对应的值。 表3 浮点数操作题目列表

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

检测技术实验报告

《检测技术实验》 实验报告 实验名称:第一次实验(一、三、五) 院(系):自动化专业:自动化 姓名:XXXXXX学号: XXXXXXXX 实验室:实验组别: 同组人员:实验时间:年月日评定成绩:审阅教师:

实验一金属箔式应变片――单臂电桥性能实验 一、实验目的:了解金属箔式应变片的应变效应,单臂电桥工作原理和性能。 二、实验仪器:应变传感器实验模块、托盘、砝码、数显电压表、±15V、±4V电源、万 用表、导线等。 三、实验原理:电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应 变效应,描述电阻应变效应的关系式为:ΔR/R=Kε,式中ΔR/R为电阻丝电阻相对变化,K为应变灵敏系数,ε=Δl/l为电阻丝长度相对变化。金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感组件,如图1-1所示,四个金属箔应变片分别贴在弹性体的上下两侧,弹性体受到压力发生形变,上面的应变片随弹性体形变被拉伸,对应为模块面板上的R1、R3,下面的应变片随弹性体形变被压缩,对应为模块面板上的R2、R4。 图2-1 应变式传感器安装示意图 图2-2 应变传感器实验模板、接线示意图图2-3 单臂电桥工作原理

通过这些应变片转换被测部位受力状态变化、电桥的作用完成电阻到电压的比例变化,如图1-2所示R5、R6、R7为固定电阻,与应变片一起构成一个单臂电桥,其输出电压 E为电桥电源电压,式1-1表明单臂电桥输出为非线性,非线性误差为 四、实验内容与步骤 1、图1-1应变传感器上的各应变片已分别接到应变传感器模块左上方的R1、R 2、R 3、 R4上,可用万用表测量判别,R1=R2=R3=R4=350Ω。 2、从主控台接入±15V电源,检查无误后,合上主控台电源开关,将差动放大器的输入 端Ui短接,输出端Uo2接数显电压表(选择2V档),调节电位器Rw4,使电压表显示为0V。Rw4的位置确定后不能改动。关闭主控台电源。 3、将应变式传感器的其中一个应变电阻(如R1)接入电桥与R5、R6、R7构成一个单 臂直流电桥,见图1-2,接好电桥调零电位器Rw1,直流电源±4V(从主控台接入),电桥输出接到差动放大器的输入端Ui,检查接线无误后,合上主控台电源开关,调节Rw1,使电压表显示为零。 4、在应变传感器托盘上放置一只砝码,调节Rw3,改变差动放大器的增益,使数显电 压表显示2mV,读取数显表数值,保持Rw3不变,依次增加砝码和读取相应的数显表值,直到200g砝码加完,计下实验结果,填入下表1-1,关闭电源。 五、实验数据处理: 利用matlab拟合出的曲线如下:

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

化工产品分析检测技术实验报告_图文.

前言 仪器分析是一种科学实验的手段,利用它可以获取所需要的信息,仪器分析实验的目的是通过实验教学,包括严格的基本操作训练,实验方案设计,实验数据处理,谱图解析,实验结果的表述及问题分析,掌握仪器的原理、结构、各主要部件的功能及操作技能,了解各种仪器分析技术在科学研究领域的应用,培养理论联系实际、利用掌握的知识解决问题的能力,培养良好的科学作风和独立从事科学实践能力。 在这门课程的学习中,我们了解了原子吸收光谱法、紫外可见分光光度法、红外光谱法、气相色谱法、高效液相色谱法、离子色谱法等仪器分析的方法。其中,我们重点学习了离子色谱法和原子吸收光谱法,并进行了实验操作,下面介绍一下原子吸收光谱法和离子色谱法测浓度。 二、原子吸收光谱法 1.原子吸收光谱法概述: 光谱仪器的产生原子吸收光谱作为一种实用的分析方法是从1955年开始的。这一年澳大利亚的瓦尔什(A.Walsh发表了他的著名论文“原子吸收光谱在化学分析中的应用”奠定了原子吸收光谱法的基础。50年代末和60年代初, Hilger, Varian Techtron及Perkin-Elmer公司先后推出了原子吸收光谱商品仪器,发展了瓦尔西的设计思想。到了60年代中期,原子吸收光谱开始进入迅速发展的时期。电热原子吸收光谱仪器的产生1959年,苏联里沃夫发表了电热原子化技术的第一篇论文。电热原子吸收光谱法的绝对灵敏度可达到10-10g,使原子吸收光谱法向前发展了一步。原子吸收分析仪器的发展随着原子吸收技术的发展,推动了原子吸收仪器的不断更新和发展,而其它科学技术进步,为原子吸收仪器的不断更新和发展提供了技术和物质基础。近年来,使用连续光源和中阶梯光栅,结合使用光导摄象管、二极管阵列多元素分析检测器,设计出了微机控制的原子吸收分光光度计,为解决多元素同时测定开辟了新的前景。微机控制的原子吸收光谱系统简化了仪器结构,提高了仪器的自动化程度,改善了测定准确度,使原子吸收光谱法的面貌发生了重大的变化。

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

微机汇编语言编程系统实验报告

微机系统实验报告 实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握DOS功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验设备 PC机一台。 三、实验内容 (1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。 (2) 在屏幕上显示自己的学号姓名信息。 (3)循环从键盘读入字符并回显在屏幕上,然后显示

出对应字符的ASCII码,直到输入“Q”或“q”时结束。 (4)自主设计输入显示信息,完成编程与调试,演示实验结果。 考核方式:完成实验内容(1)(2)(3)通过, 完成实验内容(4)优秀。 实验中使用的DOS功能调用:INT 21H 表3-1-1 显示实验中可使用DOS功能调用

四、实验步骤 (1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。 (2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。

(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。 (4)更改数据区的数据,考察程序的正确性。 五、实验程序 DATA SEGMENT BUFFER DB '03121370konglingling:',0AH,0DH,'$' BUFFER2 DB 'aAbBcC','$' BUFFER3 DB 0AH,0DH,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov ah,09h mov DX,OFFSET BUFFER int 21h MOV SI,OFFSET BUFFER2

现代检测技术实验报告

实验一金属箔式应变片单臂电桥性能实验 一、实验目的 了解金属箔式应变片的应变效应,掌握单臂电桥工作原理和性能。 二、实验内容 将应变式传感器的其中一个应变片接入电桥作为一个桥臂,构成直流电桥,利用应变式传感器实现重量的测量。 三、实验所用仪表及设备 应变式传感器实验模板、应变式传感器、砝码(每只约20g)、数显表、±15V电源数、±4V电源、数字万用表。 四、实验步骤 1、根据图1-1,应变式传感器已装于应变传感器模板上。传感器中各应变片已接入模板左上方的R1、R 2、R 3、R4标志端。加热丝也接于模板上,可用万用表进行测量判别,R1=R2=R3=R4=350Ω,加热丝阻值约为50Ω左右。 图1-1 应变片传感器安装示意图 2、实验模板差动放大器调零,方法为: (1)接入模板电源±15V,检查无误后,合上主控台电源开关,将实验模板增益调节电位器Rw3顺时针调节到大致中间位置;(2)将差放的正、负输入端与地短接,V o1输出端与数显电压表输入端Vi相连,调节实验模板上调零电位器RW4,使数显表显示为零(数显表的切换开关打到2V档),完毕后关闭主控台电源。 3、参考图1-2接入传感器,将应变式传感器的其中一个应变片R1接入电桥作为一个桥臂,它与R5、R6、R7接成直流电桥(R5、R6、R7在模块内已连接好),检查接线无误后,合上主控台电源开关,用数字万用表测量主控台到应变式传感器模块上的±5V、±15V电压值是否稳定?若电压波动值大于10mV,应反复拔插相应的电源连接线,直至电压稳定,不再波动为止,然后粗调节Rw1,再细调RW4使数显表显示为零。 4、在传感器托盘上放置1只砝码,读取数显表显示值,依次增加砝码并读取相应的数显表数值,记下实验结果填入表1-1。

一般检查实验报告

竭诚为您提供优质文档/双击可除 一般检查实验报告 篇一:检测技术实验报告 《检测技术实验》 实验名称:院(系):姓名:实验室:同组人员:评定成绩: 实验报告 第一次实验(一、三、五)自动化专业:自动化xxxxxx 学号:xxxxxxxx实验组别:实验时间:年月日审阅教师:实验一金属箔式应变片――单臂电桥性能实验 一、实验目的:了解金属箔式应变片的应变效应,单臂电桥工作原理和性能。 二、实验仪器:应变传感器实验模块、托盘、砝码、数显电压表、±15V、±4V电源、万 用表、导线等。 三、实验原理:电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应 变效应,描述电阻应变效应的关系式为:ΔR/R=Kε,

式中ΔR/R为电阻丝电阻相对变化,K为应变灵敏系数,ε=Δl/l为电阻丝长度相对变化。金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感组件,如图1-1所示,四个金属箔应变片分别贴在弹性体的上下两侧,弹性体受到压力发生形变,上面的应变片随弹性体形变被拉伸,对应为模块面板上的R1、R3,下面的应变片随弹性体形变被压缩,对应为模块面板上的R2、R4。 图2-1应变式传感器安装示意图 图2-2应变传感器实验模板、接线示意图 图2-3单臂电桥工作原理 通过这些应变片转换被测部位受力状态变化、电桥的作用完成电阻到电压的比例变化,如图1-2所示R5、R6、R7为固定电阻,与应变片一起构成一个单臂电桥,其输出电压e为电桥电源电压,式1-1表明单臂电桥输出为非线性,非线性误差为 四、实验内容与步骤 1、图1-1应变传感器上的各应变片已分别接到应变传感器模块左上方的R1、R 2、R 3、 R4上,可用万用表测量判别,R1=R2=R3=R4=350Ω。 2、从主控台接入±15V电源,检查无误后,合上主控台电源开关,将差动放大器的输入 端ui短接,输出端uo2接数显电压表(选择2V档),

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

华中科技大学计算机操作系统实验报告

实验目的 掌握Linux操作系统的使用方法; 了解Linux系统内核代码结构; 掌握实例操作系统的实现方法。 一、实验要求 1、掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux 下的编程环境。 ●编一个C程序,其内容为实现文件拷贝的功能; ●编一个C程序,其内容为分窗口同时显示三个并发进程的运行结 果。要求用到Linux下的图形库。 2、掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。 另编写一个应用程序,调用新增加的系统调用。 实现的功能是:文件拷贝; 3、掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动 程序,其功能可以简单。 实现字符设备的驱动; 4、了解和掌握/proc文件系统的特点和使用方法 ●了解/proc文件的特点和使用方法 ●监控系统状态,显示系统中若干部件使用情况 ●用图形界面实现系统监控状态。 5、设计并实现一个模拟的文件系统(选作) 二、实验一 1、编一个C程序,其内容为实现文件拷贝的功能 要实现文件拷贝功能,主要用到的函数是fopen、fputc、fgetc。 主要用到的头文件: #include #include 设计思路:由scanf函数获取2个文件名,根据其文件名和路径分别打开该2个文件,设置一个循环,从源文件复制1个字节到目 的文件,直到源文件指针到文件尾,最后关闭2个文件。 在可能出错的地方需要加上相应的报错代码,并输出错误信息,以方便调试。 理清楚设计思路后,首先搭建linux下编程环境。 安装gcc:sudo apt-get install build-essential 安装codeblocks:sudo apt-get install codeblocks 在集成开发环境Code::Blocks IDE下根据需求写出相应的源代码copy.c,将程序编译并生成exe可执行文件。 然后手动创建一个测试文件test.txt ,运行copy.exe文件,并输入

传感器检测技术实验报告

《传感器与检测技术》 实验报告 姓名:学号: 院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员: 评定成绩:审阅教师:

传感器第一次实验 实验一 金属箔式应变片——单臂电桥性能实验 一、实验目的 了解金属箔式应变片的应变效应及单臂电桥工作原理和性能。 二、基本原理 电阻丝在外力作用下发生机械形变时,其电阻值发生变化,这就是电阻应变效应。 金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感元件,通过它反映被测部位受力状态的变化。电桥的作用是完成电阻到电压的比例变化,电桥的输出电压反映了相应的受力状态。单臂电桥输出电压 1/4o U EK ε=,其中K 为应变灵敏系数,/L L ε=?为电阻丝长度相对变化。 三、实验器材 主机箱、应变传感器实验模板、托盘、砝码、万用表、导线等。 四、实验步骤 1. 根据接线示意图安装接线。 2. 放大器输出调零。 3. 电桥调零。 4. 应变片单臂电桥实验。

由matlab 拟合结果得到,其相关系数为0.9998,拟合度很好,说明输出电压与应变计上的质量是线性关系,且实验结果比较准确。 系统灵敏度S = ΔU ΔW =0.0535V/Kg (即直线斜率),非线性误差= Δm yFS = 0.08 10.7 ×100%= 0.75% 五、思考题 单臂电桥工作时,作为桥臂电阻的应变片应选用:(1)正(受拉)应变片;(2)负(受压)应变片;(3)正、负应变片均可以。 答:(1)负(受压)应变片;因为应变片受压,所以应该选则(2)负(受压)应变片。 实验三 金属箔式应变片——全桥性能实验 一、实验目的 了解全桥测量电路的优点 二、基本原理 全桥测量电路中,将受力方向相同的两应变片接入电桥对边,相反的应变片接入电桥邻边。当应变片初始阻值R1=R2=R3=R4、其变化值1234R R R R ?=?=?=?时,其桥路输出电压 3o U EK ε=。其输出灵敏度比半桥又提高了一倍,非线性误差和温度误差都得到了改善。 三、实验器材 主机箱、应变传感器实验模板、托盘、砝码、万用表、导线等。 四、实验步骤 1.根据接线示意图安装接线。 050 100150200 x y

操作系统实验报告

实验报告 实验课程名称:操作系统 实验地点:南主楼七楼机房 2018—2019学年(一)学期 2018年 9月至 2019 年 1 月 专业: 班级: 学号: 姓名: 指导老师:刘一男

实验一 实验项目:分时系统模拟 实验学时:2实验日期: 2018-10-25 成绩: 实验目的利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程; 假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:进程名 A B C D E 到达时间0 1 2 3 4 服务时间 4 3 4 2 4 时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:BDACE

(1)修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:ADBCE (2)修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间.

顺序:ABCDE 1、思考 时间片的大小对调度算法产生什么影响?对计算机的性能产生什么影响?答:通过对时间片轮转调度算法中进程最后一次执行时间片分配的优化,提出了一种改进的时间片轮转调度算法,该算法具有更好的实时性,同时减少了任务调度次数和进程切换次数,降低了系统开销,提升了CPU的运行效率,使操作系统的性能得到了一定的提高。 A B C D E 时间片为1 周转时间12 9 14 8 13 3 3 3.5 4 3.25 带权周转 时间 时间片为2 周转时间8 12 13 7 13 2 4 3.25 3.5 3.25 带权周转 时间 时间片为4 周转时间 4 6 9 10 13 1 2 2.25 5 3.25 带权周转 时间

微机系统的组装与配置实验报告

微机系统的组装与配置实验报告

计算机学院综合性实验 实验报告 课程名称微机与外设维护维修技术 实验学期 2015 至 2016 学年第 2 学期 学生所在院系计算机学院 年级 2013 专业班级计 学生姓名学号 2013 任课教师 实验成绩 计算机学院制

一、硬件拆卸部分 1、主板的型号及功能、性能说明: 主板是电脑系统中最大的一块电路板,主板上布满了各种电子元件、插槽、接口等。它为CPU、内存和各种功能(声、图、通信、网络、TV、SCSI等)卡提供安装插座(槽);为各种磁、光存储设备、打印机和扫描仪等I/O设备以及数码相机、摄像头、调制解调器等多媒体和通讯设备提供接口,实际上电脑通过主板将CPU等各种器件和外部设备有机地结合起来形成一套完整的系统。 主板的标准结构是根据主板上各元器件的布局排列方式、主板的尺寸大小及形状、所使用的电源规格等。 目前市场上PC的主板主要有ATX、Micro ATX和BTX等结构。 2、CPU的型号及功能、性能说明: 中央处理器(CPU)是一块超大规模集成电路芯片,它是整个计算机系统的核心。CPU主要包括运算器、控制器和寄存器三个部件。这三个部件相互协调,使他们可以进行分析、判断、运算并控制计算机各部分协调工作。其中运算器主要完成各种算术运算和逻辑运算;而控制器是指挥中心,控制运算器及其他部件工作,它能对指令进行分析,作出相应的控制;寄存器用来暂时存放运算中的中间结果或数据。 CPU的性能指标: 字长或位数; 主频、外频、FSB频率; 高速缓冲存储器; 指令扩展技术; CPU的制造工艺; CPU的核心代号; 超线程技术; 多核心技术; 虚拟化技术; 可信执行技术。 3、硬盘的型号及功能、性能说明: 硬盘主要是有固定面板、控制电路板、磁头组、盘面组、主轴电机、接口、及其附件组成。其中磁头组和盘片组件是构成硬盘的核心,它们被封装在硬盘的净化腔体内,包括浮动磁头组件、磁头驱动机构、盘片组、主轴驱动装置级读写控制电路几个部分。 温切斯特硬盘的特点:磁盘旋转,磁头径向运动,磁头悬浮在磁片上方,用磁存储信息。 磁盘技术: RAID技术(廉价磁盘冗余阵列),使用磁盘驱动器的方法,是将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个大容量磁盘驱动器来使用。(RAID0、RAID1、RAID0+1、RAID3、RAID5模式);

实验报告计算机操作系统-windows7

实验报告计算机操作系统-Windows 7 班级 178 学号姓名 【实验目的】 1. 掌握Windows 7的基本操作; 2. 熟练掌握资源管理器、文件与文件夹的管理方法 3. Windows 7控制面板的使用 【实验内容和步骤】 一.Windows7基本操作和文件管理 完成实践教程第18页中的实验并回答下列问题。 1.如何新建文件或文件夹 在桌面空白处单击鼠标右键,选择“新建”--“文件夹”,键入新文件夹的名称,然后按 ENTER 键。 2.如何选定多个相邻文件或文件夹如何选定多个不相邻文件和文件夹如何选中全部文件和文件夹 选定多个相邻文件的操作是:单击第一个文件,然后按住Shift 键,再单击最后一个文件 Shift 键,就是Ctrl 键上面那个。 选定多个不相邻文件操作是:单击第一个文件,然后按住Ctrl 键的同时,单击其他待选定的文件 Ctrl 键,就是键盘最左下角那个。 如何选中全部文件和文件夹:ctrl+A 3.试列举对文件/文件夹进行复制和移动的方法

第一种方法:可以用鼠标右键进行操作。 第二种:可用ctrl+c 进行复制;ctrl+x 进行移动(也就是剪切)ctrl+v进行粘贴 4.如何对已删除的文件进行“还原” 如果没清空回收站,在回收站里还原就行。 5.如何对按照修改日期搜索文件或文件夹 我的电脑右键选搜索,打开搜索界面,在搜索选项里按日期,选中并输入日期 6.如何“隐藏”文件/文件夹如何显示被“隐藏”起来的文件/文件夹图标 把想隐藏文件的文件夹或文件,打开文件夹属性,隐藏打钩或去掉即可以选择这个文件是否隐藏或显示打开任意的文件夹的工具选项卡的文件夹选项——查看选项卡——隐藏文件和文件夹上面有2个选择,选择显示隐藏文件夹即可看到隐藏文件 二.Windows7系统设置 完成实践教程第23页中的实验并回答下列问题。 1.如何改变桌面的背景、屏幕的分辨率并设置屏幕保护程序。 开始—控制面板—外观和个性化—个性化,然后进行桌面背景、窗口颜色、屏幕保护调整。

相关文档
最新文档