20135202闫佳歆、20135220谈愈敏-实验2

北京电子科技学院(BESTI)

             

课程:信息安全系统设计基础          班级:   1352

姓名:谈愈敏,闫佳歆

学号:20135220,20135202

成绩:             指导教师:娄嘉鹏     实验日期:2015.11.17

实验密级:         预习程度:             实验时间:15:30-18:00

仪器组次:          必修/选修:必修               实验序号:2

实验名称:多线程应用程序设计和串行端口程序设计

实验目的与要求:(1)了解多线程程序设计的基本原理。

(2)学习 pthread 库函数的使用。

(3)了解在 linux 环境下串行程序设计的基本方法。

(4)掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用。

(5)学习使用多线程来完成串口的收发处理。

实验仪器:


名称


型号


数量


arm


UP-TECH


1


PC机


XP


1


虚拟机


REDHAT


1

实验内容、步骤与体会:

  1. 实验过程的理解,实验指导书中知识点的理解。

(1)多线程应用程序设计

实验代码实现的是生产者、消费者之间的关系,它们共用同一段缓存区,生产者可以向内写入数据,消费者也可以从中读出数据。一个首要的问题是如何判定是生产者执行写还是消费者执行读?

方法是,首先获取一个互斥锁,有这个锁在就能保证只能进行两种行为中的一种,而不能同时进行。然后针对写入或者读出能够顺利进行,要先判断缓存区的情况,如果缓存区满则不能写入,缓存区空则不能读出。

而在实验过程中,首先先在redhat虚拟机中编译运行,然后利用NFS将可执行文件映射到arm机上即可。Arm机的配置和映射和实验1相同,需要注意的就是路径不能一味按照指导书来,而是要按照自己实际的路径去写。

(2)串行端口程序设计

这个就是区分两个线程,发送线程和接收线程,然后在主函数里完成打开串口设备、终端属性设置等等。因为已经给了代码和指导书,理解起来就相对简单,这个实验就是帮助我们熟悉串行端口的一系列设置和代码实现,比较不好理解的就是之前没有遇见过的头文件和函数,针对解释详细查看即可。

  1. 实验过程中遇到的问题以及解决方案。(下面只是例子,可以少写、可以增加其他你遇到的问题和解决方法)

(1)make无法使用

这次的实验比较简单,没有遇到什么大的难题,主要是make无法使用的问题,这个是由于Makefile中环境变量的设置和在本机中的不同导致的,两个解决方法,其一是把其中的环境变量修改一下,这个是在别人的帮助下完成的;其二是直接手动编译即可。我们选择的是直接手动编译,因为这个编译比较简单。

(2)端口设置

在第二个实验里,运行term时出现了如下错误:

/dev/ttyS0: No such file or directory

这个按照指导书的方法解决了:

[/mnt/yaffs] cd /dev

[/dev] ln –sf /dev/tts/0 ttyS0

这是因为在 Linux 下串口文件位于/dev 下,一般在老版本的内核中串口一为/dev/ttyS0 ,串口二为 /dev/ttyS1, 而在开发板中串口设备位于/dev/tts/下,因为开发板中没有ttyS0这个设备,所以我们要建立一个连接。

用另外一台主机连接串口2 进行收发测试时同样出现了类似的错误,需要建立如下的连接:

[/mnt/yaffs] cd /dev

[/dev] ln –sf /dev/tts/0 ttyS0

[/dev] ln –sf /dev/tts/1 ttyS1

3.体会

这次实验从具体实现上来看并不算难,因为指导书已经给的很详细,代码本身、代码的解释和可能遇到的问题及解决方法都已经给出,只需要按部就班的完成即可。但是对于代码内容的理解上还是有些困难,从理论到代码的延展,对多线程和串口的具体实现方法和代码本身的理解,是比实验过程一步步按图索骥走下来更加重要的。

时间: 2024-10-07 11:29:25

20135202闫佳歆、20135220谈愈敏-实验2的相关文章

20135202闫佳歆20135220谈愈敏实验一

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础                         班级: 1352 姓名:闫佳歆 谈愈敏                       学号:20135202  20135220 成绩:              指导教师:娄佳鹏          实验日期:2015.11.10 实验密级:          预习程度:                 实验时间:15:30-18:00 仪器组次:   

20135202闫佳歆、20135220谈愈敏-实验4

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础          班级:   1352 姓名:闫佳歆,谈愈敏 学号:20135202,20135220 成绩:             指导教师:娄嘉鹏     实验日期:2015.11.17 实验密级:         预习程度:             实验时间:15:30-18:00 仪器组次:          必修/选修:必修               实验序号:4 实验名称:内核驱动设

20135202闫佳歆、20135220谈愈敏——实验3

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础          班级:   1352 姓名:谈愈敏,闫佳歆 学号:20135220,20135202 成绩:             指导教师:娄嘉鹏     实验日期:2015.11.24 实验密级:         预习程度:             实验时间:15:30-18:00 仪器组次:          必修/选修:必修               实验序号:3 实验名称:绘图实验

20135220谈愈敏--信息安全系统设计基础第二周学习总结

<深入理解计算机系统>实验一 在我的理解中: 元知识:思考问题的能力 硬知识:可见的知识点 软知识:实践中的经验 后面的常用命令是老师上课中讲到的. 一边看提供的材料一边在实验楼里实践,我的实验顺序如下: vim编辑器实验1234 普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等.这也是Vim启动后的默认模式. Vim强大的编辑能来自于其普通模式命令.普通模式命令往往需要一个操作符结尾.例如普通模式命令dd删除当前行,但是第一个"d&quo

130242014060-郑佳敏-实验一

软件体系结构实验报告 课程:   软件体系结构           实验名称:  软件设计的网络支持环境 专业:     软件工程             学  号       130242014060 姓名:   郑佳敏        实验日期:  2017年 9月14 日  报告退发 (订正 . 重做) 一.实验目的                                                                                        

明佳妈妈新营销谈要做好微博营销需要注意什么?

微博营销是一个具有相当强大的传播力和裂变能力的营销方式,拥有着庞大的人群基础,许多商家为了打响品牌都会从微博中入手,那么做微博营销的时候,要注意什么才能真正做好呢?详情请参考以下内容: 1,明佳妈妈谈粉丝信任 不管是官微还是企业号或者商家的品牌,都要有粉丝的信任才能做到起步的营销,所以实名,真实的logo头像,介绍和标签一定要准确. 2,明佳妈妈谈关注他人 要取得营销的效果,高冷是不行的.一定要多去一些具有影响力的明星,大V的动态下面占据一些评论位置,慢慢的提升自己的知名度. 当然要取得评论的优

明佳妈妈新营销谈专业分工战力倍增

很多大企业也会犯像刘备这样的毛病,认为自己兵多将广,无所不能,大军所到之处,必如泰山压顶,敌人必然望风披靡,所以,我这样打也赢,那样打也赢,事实上未必.三O年代时,美国通用汽车可能曾经以「我们什幺都做」而自豪,小自螺丝,大到引擎,从头到尾,从里到外,整台车的零主件都一手包办.一辆轿车零件多达数万,如果每件都要自己制作,那表示除非拥有此数万项的最佳技术,否则,就不会做出最好的车,然而,任何一家单一企业都不可能达到这个要求. 单从这一点看,「什幺都做」就不是一个立于不败之地的好策略.现在,全球没有任

39,叶慧敏 实验四 主存空间的分配和回收模拟

一. 实验目的 为了合理地分配和使用这些存储空间,当用户提出申请主存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间和使用情况,找出足够 的空闲区域给申请者.当作业撤离归还主存资源时,则存储管理要收回占用的主存空间.主存的分配和回收的实现是与主存储器的管理方式有关的,通过本实验帮助 我们理解在不同的存储管理方式下应怎样实现主存空间的分配和回收. 用高级语言完成一个主存空间的分配和回收模拟程序,以加深对内存分配方式及其算法的理解. 二.实验内容和要求 2.1  模拟包括3部分:

20135231 —— 第十一周任务总结报告

预计学习时间:7h 实际花费时间:9h 学习目标 ·掌握进程控制 ·掌握信号处理的方法 ·掌握管道和fifo进行进程间通信的方法 学习任务 编译.运行.阅读.理解process.tar.gz压缩包中的代码 process代码 exec1 #include <stdio.h>#include <unistd.h> int main(){ char *arglist[3]; arglist[0] = "ls"; arglist[1] = "-l"