热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

北京电子科技学院(BESTI)实验报告课程:信息安全系统设计基础班级:1352姓名:谈愈敏,闫佳歆学号:20135220,20135202成绩:指导教师:娄嘉鹏实验日期:2015.

北京电子科技学院(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.体会

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

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


推荐阅读
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • 3295:[Cqoi2011]动态逆序对Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除 ... [详细]
  • 代码:在mysql5.6,运行正常,5.7报错SELECTsum((selecta.numwherea.status1))astotalFROMmes_order_productA ... [详细]
  • vscode里的html标签导航的一系列问题
    哈喽,我今天带来的经验是,vscode在18年10月更新后的1.29以后,编辑html文档时,会发现最上面有个类似于HTML标签导航的玩意儿,可能部分同学和我一样不习惯用它们,现在 ... [详细]
  • Illustrator绘制逼真的愤怒的小鸟实例教程
    Illustrator教程: ... [详细]
  • 抓取百万知乎用户设计之实体设计
    一.实体的关系实体是根据返回的Json数据来设计的教育经历方面用户可以有很多教育经理,USER和education是一对多的关系,一个education对应一个education一 ... [详细]
  • iOS之富文本
    之前做项目时遇到一个问题:使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ... [详细]
  • Xib九宫格应用管理使用xib封装一个自定义view的步骤1新建一个继承UIView的自定义view,假设类名叫做(AppView)2新建一个AppView.xib文件来描述 ... [详细]
  • 【自制小工具】代码生成器
    【自制小工具】代码生成器陆陆续续接触过好几款代码生成工具,发现确实好用,但都会有那么点不完善的地方,所以索性就自己做一个吧。界面非常简单,反正是自己用的,简单点用起来也方便上图:左 ... [详细]
  • kepserver中文手册,kepserver使用教程,kepserver设置
    下面介绍一下KepServer模拟器的使用,以下示例使用服务器随附的Simulator驱动程序来演示创建、配置和运行项目的过程。Simulator驱动程序是基于内存的驱动程序,能为 ... [详细]
  • 论文阅读及复现 | Improved Semantic Representations From TreeStructured Long ShortTerm Memory Networks
    两种形式的LSTM变体Child-SumTree-LSTMsN-aryTree-LSTMshttps:paperswithcode.compaperimproved-semanti ... [详细]
  • 看这里,教你如何快速将pdf文件翻译成中文
    因为网上下载的PDF资料,往往掺杂着一些英文,所以中英文翻译是一件很平常的事,毕竟不是每个人的英文都那么好,轻轻松松的就能够看完一篇英文的文件,那么,我们就要寻找翻译工具来帮助我们 ... [详细]
  • 以SOA服务为导向的信息系统构建是通过有计划地构建信息系统时,一种简单而有柔性的方法,就是组件化与服务导向架构。过去的信息系统,是在使用者需要新功能时才开发的,也就是响应不同时 ... [详细]
  • 简单动态字符串redis里面很多地方都用到了字符串,我们知道redis是一个键值对存储的非关系型数据库,那么所有的key都是用字符串存储的,还有字符串类型,这些都是用字符串存储的 ... [详细]
  • 例子如Table表有性别字段,1代表男2代表女、3代表中性、还有没填就代表未说明selectid,decode(sex,'1','男', ... [详细]
author-avatar
大男孩小男淫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有