目录
2019-2020-1 20175234 20175205 20175217 实验三 实时系统
小组成员 20175205 20175217 20175234
任务一
- 实验要求
学习使用Linux命令wc(1)
基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
客户端传一个文本文件给服务器
服务器返加文本文件中的单词数
- 实验步骤
任务二
- 实验要求
使用多线程实现wc服务器并使用同步互斥机制保证计数正确
- 实验步骤
使用
man -k thread |grep creat
学习多线程的创建,找打需要学习的pthread_create
测试截图
任务三
交叉编译多线程版本服务器并部署到实验箱中
PC机作客户端测试wc服务器
- 实验步骤
- 在虚拟机中,使用
arm-none-linux-gnuenbi-gcc
对程序进行交叉编译 - NFC挂载,配置/etc/exports,即输入
sudo vim /etc/exports
- 在文件/etc/exports中末尾添加一行/home/linux/
linux中文件名
*(rw,sync,no_root_squash,no_subtree_check) - 重启服务,即在终端输入
sudo /etc/init.d/nfs-kernel-server restart
- 在超级终端中用
mkdir //arm_1
- 在超级终端中运行mount -t nfs -o nolock 192.168.0.230(宿主机IP):/home/linux/
linux中文件名
/ arm_1通过NFS把宿主机中的linux文件映射到目标机中的“/arm_1 - 超级终端中运行cd /arm_1文件并运行
超级终端中运行 ./armserver
测试截图
- 在虚拟机中,使用
遇到的问题
-
问题一: 硬件问题
- 1 连接数据线后,接口显示已连接,但超级终端呈不可操作状态;
2 更换实验箱后,发现虚拟机间可以ping通,超级终端自己可ping通自己。但超级终端与外界无法ping通。
解决措施
经尝试、分析得出结论,上述问题是硬件问题导致,数次更换实验箱后解决了上述问题。
- 问题二 :挂载失败,mount 语句出错
- 解决措施
发现是在/etc/exports文件中的修改出现错误,应将文件最后一行改为/home/你的Ubuntu中的文件名 *(rw,sync,no_root_squash,no_subtree_check)。
然后使用mount命令时用该使用命令: mount -t nfs -o nolock 192.168.0.230:/home/linux/你的文件名 /在超级终端新建的文件名
- 解决措施