北京电子科技学院(BESTI)

              

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

姓名:池彬宁 贺邦

学号:20135212 20135208

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

实验密级:         预习程度:                               实验时间:15:30~18:20

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

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

实验目的与要求:

1.了解多线程程序设计的基本原理。

2.学习pthread库函数的使用。

3.了解在Linux环境下串行程序设计的基本方法。

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

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

实验仪器:

名称

型号

数量

ARM开发板

UP-NETARM2410-CL

1

PC

Windows Xp

1

实验步骤

实验2.2

  1.  路径配置,工具包导入等见实验一,这里不做详细说明。

  2.  阅读源代码及编译应用程序

    进入02_pthread所在目录,运行make产生pthread可执行文件

   3.  到超级终端,进入/host目录运行pthread 结果如下。

实验2.3

  1. 路径配置,工具包导入等见实验一,这里不做详细说明。
  2. 进入03_tty所在目录,运行make产生term可执行文件
  3. 到超级终端窗口,进入/host目录,进入03_tty所在目录,运行term.

实验原理

1)多线程应用程序设计

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

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

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

(2)串行端口程序设计

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

实验感想

本次实验是第一次实验的延续与拓展,在实验的终端配置阶段的操作明显比在做实验一的时候熟练多了,有的甚至可以不需要查看指导书即可完成,并且实验一所遇到的问题也没有再犯,事实证明经验是积累的。

Linux实验二报告的更多相关文章

  1. 20172301 《Java软件结构与数据结构》实验二报告

    20172301 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

  2. 20172329 2018-2019-2 《Java软件结构与数据结构》实验二报告

    20172329 2018-2019-2 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 王文彬 学号:2017232 ...

  3. 20145316《Java程序设计》实验二报告

    20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...

  4. 20145301《Java程序设计》实验二报告:Java面向对象程序设计

    20145301<Java程序设计>实验二报告:Java面向对象程序设计 课程:Java程序设计 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握 ...

  5. 201843 2019-2020-2 《Python程序设计》实验二报告

    201843 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师:王 ...

  6. 20192113 2020-2021-2 《Python程序设计》实验二报告

    20192113 2020-2021-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...

  7. 201922904李龙威 2019-2020-2 《Python程序设计》实验二报告

    20192204 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...

  8. “Linux内核分析”实验二报告

    张文俊 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.第二周学习内 ...

  9. 20145204&20145212实验二报告

    实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...

随机推荐

  1. Visual Studio发布Web项目报错:Unable to add 'xxx' to the Web site. Unable to add file 'xxx'. The specified file could not be encrypted.

    背景 Visual Studio下的Web项目 现象 发布时遇到Unable to add 'xxx' to the Web site.  Unable to add file 'xxx'. The ...

  2. Eclipse 一直提示 loading descriptor for 的解决方法

    启动eclipse之后,进行相关操作时,弹出界面,提示:loading descriptor for xxx 解决方法: 在Eclipse左侧的Project Explorer 最右上角有一个小钮,鼠 ...

  3. 【原创】大众点评监控平台cat的性能分析

    由于工作的原因,或者说我们之前内部监控设计和实现有点不满足现有的研发需求,所以调研了一下大众点评开源出来的cat这一套监控系统. 今天我们就来实验一把,cat的客户端埋点在我们的程序流程中上报数据到c ...

  4. jQuery Form 表单提交插件-----ajaxSubmit() 的应用

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.ajaxSubmit() 介绍  立即通过AJ ...

  5. 精----Java读取xml文件的四种方法

    xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VA ...

  6. Excel Sheet Column Number

    Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...

  7. FDTD扩展到所有频率

  8. 项目回顾3-再谈图片上传-FormData+ajax上传

    上次在纠结图片上传用base64还是form表单,现在感觉好蠢,因为又开辟了第三条道路. 其实也根本用不到form 只需要一个上传文件的input就好了 <input id="file ...

  9. ZOJ 3659 & HDU 4424 Conquer a New Region (并查集)

    这题要用到一点贪心的思想,因为一个点到另一个点的运载能力决定于其间的边的最小权值,所以先把线段按权值从大到小排个序,每次加的边都比以前小,然后合并集合时,比较 x = findset(a) 做根或 y ...

  10. [3D跑酷] DataManager

    DataManager管理游戏中数据,当然这个类中大部分的属性和方法都是Public 函数列表