20145224&20145238 《信息安全系统设计基础》第二次实验

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

班级:1452

姓名:陈颢文 荆玉茗

学号:20145224 20145238

指导教师:娄嘉鹏

实验日期:2016.11.10

实验时间:10:00-12:30

实验序号:2

实验目的与要求:

1.熟悉 linux 开发环境,学会基于 S3C2410 的 linux 开发环境的配置和使用。

2.使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。

3.正确使用连接线等实验仪器,并注意保护实验箱。实验结束之后将实验箱送回。

实验原理

1、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。

2、了解多线程程序设计的基本原理。

3、学习pthread库函数的使用。

线程相关函数

线程创建函数:

int pthread_create (pthread_t * thread_id, __const pthread_attr_t * __attr,void *(*__start_routine) (void *),void *__restrict __arg)

获得父进程 ID:

pthread_t pthread_self (void)

测试两个线程号是否相同:

int pthread_equal (pthread_t __thread1, pthread_t __thread2)

线程退出:

void pthread_exit (void *__retval)

等待指定的线程结束:

int pthread_join (pthread_t __th, void **__thread_return)

互斥量初始化:

pthread_mutex_init (pthread_mutex_t *,__const pthread_mutexattr_t *)

销毁互斥量:

int pthread_mutex_destroy (pthread_mutex_t *__mutex)

再试一次获得对互斥量的锁定(非阻塞) :

int pthread_mutex_trylock (pthread_mutex_t *__mutex)

锁定互斥量(阻塞) :

int pthread_mutex_lock (pthread_mutex_t *__mutex)

解锁互斥量:

int pthread_mutex_unlock (pthread_mutex_t *__mutex)

条件变量初始化:

int pthread_cond_init (pthread_cond_t *__restrict __cond,__const pthread_condattr_t *__restrict __cond_attr)

销毁条件变量 COND:

int pthread_cond_destroy (pthread_cond_t *__cond)

唤醒线程等待条件变量:

int pthread_cond_signal (pthread_cond_t *__cond)

等待条件变量(阻塞) :

int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex)

在指定的时间到达前等待条件变量:

int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime)

实验内容与步骤

1、开发环境的配置同实验一。

2、将实验所需代码02_pthread和03_tty拷贝到共享文件夹bc中

3、进入虚拟机,可通过ls命令查看所属文件夹下的文件,确保所需文件拷贝成功

4、对于多线程相关的代码,编译时需要先添加-lpthread的库,输入以下命令,运行make产生 pthread 可执行文件

5、下载调试,进入超级终端,在xp环境的超级终端中将共享文件夹挂载好,建立开发板与虚拟机之间的通讯,输入命令/host/02_pthread/pthread运行可执行文件 pthread,观察运行结果的正确性,运行程序最后一部分结果如下:

6、按照同样的方法运行03_tty的可执行文件term, 如果在执行./term时出现下面的错误No such file or directory,可以通过方法建立一个连接来解决,输入命令ln –sf /dev/tts/0 /dev/ttyS0(注意空格和字母大小写)

7、运行结果后半部分如下,可按ctrl+c终止

实验体会

实验二在实验一配置完试验环境后就完成的很快,只需添加使用多线程程序相关的库,产生可执行文件后在超级终端中运行即可。

20145224&20145238 《信息安全系统设计基础》第二次实验的更多相关文章

  1. 20145224&20145238 《信息安全系统设计基础》 第一次实验

    20145224&20145238 <信息安全系统设计基础>第一次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  2. 20135328信息安全系统设计基础第二周学习总结(vim、gcc、gdb)

    第三周学习笔记 学习计时:共8小时 读书:1 代码:5 作业:1 博客:7 一.学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 ...

  3. 《信息安全系统设计基础》第一次实验报告--Linux 基础入门

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

  4. LINUX信息安全系统设计基础第二周学习总结

    1 Linux命令 2 man命令 1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal ...

  5. 20145224&20145238《信息安全系统设计基础》实验一 开发环境的熟悉

    20145224陈颢文20145238荆玉茗 <信息安全系统设计基础>第一次实验报告 课程:信息安全系统设计基础 班级: 1452 姓名:荆玉茗 陈颢文 学号:20145238 20145 ...

  6. 信息安全系统设计基础实验一:Linux开发环境的配置和使用

    北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础    班级:1353 姓名:芦畅 傅冬菁 学号:20135308 20135311 成绩:       指导教师:娄家鹏      ...

  7. 20145224&20145238 《信息安全系统设计基础》 第五次实验

    20145224&20145238 <信息安全系统设计基础>第五次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  8. 20145224&20145238 《信息安全系统设计基础》 第四次实验

    20145224&20145238 <信息安全系统设计基础>第四次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  9. 20145224&20145238 《信息安全系统设计基础》 第三次实验

    20145224&20145238 <信息安全系统设计基础>第三次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

随机推荐

  1. (copy) Shell Script to Check Linux System Health

    source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...

  2. Inside Flask - flask 扩展加载过程

    Inside Flask - flask 扩展加载过程 flask 扩展(插件)通常是以 flask_<扩展名字> 为扩展的 python 包名,而使用时,可用 import flask. ...

  3. ios - block数据的回调

    block在代理,kvo中传递数据效率最高 实现原理 控制器B想传递数据给控制器A.通过在B控制器中创建Block类型的类,创建方法,方法参数是刚才创建的block类型的变量.在方法实现的内部调用参数 ...

  4. Linux下安装APache

    1:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.tar.gz 源码安装包,地址是http://httpd.apache.org/download.cgi 2:用:gzip ...

  5. 【selenium 3】 Mac 下测试环境搭建 Firefox 47+ gecko driver Mac

    错误代码如下:File "/usr/local/lib/python2.7/dist-packages/selenium-3.0.0b2-py2.7.egg/selenium/webdriv ...

  6. CentOS-6 yum安装nginx php53 mysql55 搭建LNMP环境

    1.导入外部软件库 01.rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noa ...

  7. oauth协议

    微博 : 新浪 腾讯 OAuth 新浪微博   APP开发 步骤:1.注册新浪开发者账号 获取以下信息 client_id  123456  标示应用身份的  唯一的  有的也叫App Key sec ...

  8. busybox-1.12.2编译提示“混合的隐含和普通规则”错误解决

    编译环境:CentOs 7.1 Ubuntu 12.0.4 都可以 交叉编译工具:gcc -4.3.2 (博创6410平台) 问题描述:执行make menuconfig命令的时候,提示Makefil ...

  9. webservice调用服务端数据时给soapenv:Envelope 添加自定义的命名空间

    最近做第三方接口,服务端需要 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu ...

  10. 二叉树JAVA实现

    为了克服对树结构编程的畏惧感和神秘感,下定决心将二叉树的大部分操作实现一遍,并希望能够掌握二叉树编程的一些常用技术和技巧.关于编程实现中的心得和总结,敬请期待!~ [1]  数据结构和表示: 二叉树的 ...