北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全系统设计基础 班级: 201352
姓名:林涵锦 何佳
学号:20135213 20135231
成绩: 指导教师: 娄嘉鹏 实验日期: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 |
实验步骤
实验步骤按流程来说就差不多
前面按实验一来
完成图:
实验原理
(1)多线程应用程序设计
实验代码实现的是生产者、消费者之间的关系,它们共用同一段缓存区,生产者可以向内写入数据,消费者也可以从中读出数据。一个首要的问题是如何判定是生产者执行写还是消费者执行读?
方法是,首先获取一个互斥锁,有这个锁在就能保证只能进行两种行为中的一种,而不能同时进行。然后针对写入或者读出能够顺利进行,要先判断缓存区的情况,如果缓存区满则不能写入,缓存区空则不能读出。
而在实验过程中,首先先在redhat虚拟机中编译运行,然后利用NFS将可执行文件映射到arm机上即可。Arm机的配置和映射和实验1相同,需要注意的就是路径不能一味按照指导书来,而是要按照自己实际的路径去写。
(2)串行端口程序设计
这个就是区分两个线程,发送线程和接收线程,然后在主函数里完成打开串口设备、终端属性设置等等。因为已经给了代码和指导书,理解起来就相对简单,这个实验就是帮助我们熟悉串行端口的一系列设置和代码实现,比较不好理解的就是之前没有遇见过的头文件和函数,针对解释详细查看即可。
实验遇到的问题
1.一直无法成功同步
登录用户错误,应为root,没看见提示登录为bc。
实验感想
实验步骤与实验一差不多,但是首先电脑找不到本地链接然后换电脑,换电脑之后实验箱又用不了了。等别人完成之后换实验箱完成实验再换一个实验箱实验。在最后完成了之后就没有来得及验收。
所以最后的验收是和实验5一起完成的。