20175221-20175225-20175226 信息安全系统 实验三《实时系统》实验报告
小组成员:20175221 曾祥杰、20175225 张元瑞、20175226 王鹏雲
任务一:
实验要求:
- 学习使用Linux命令wc(1)
- 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
- 客户端传一个文本文件给服务器
- 服务器返加文本文件中的单词数
- 上方提交代码
- 附件提交测试截图,至少要测试附件中的两个文件
实验步骤
- 先使用
man wc
了解wc
命令的功能与用法
wc命令
-c 统计字节数。
l统计行数。
m 统计字符数。这个标志不能与-c 标志一起使用。
w统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
L 打印最长行的长度
- wc命令测试两个文件
- socket编程
任务二
任务要求
- 使用多线程实现wc服务器并使用同步互斥机制保证计数正确
- 上方提交代码
- 下方提交测试
- 对比单线程版本的性能,并分析原因
实验步骤
- 多个客户端一起传文件给服务器
多线程的优点:
- 第一,将原来在一个大流程中实现的功能放到了多个小流程中,程序更加的简洁和易于阅读。
- 第二,将不同的功能放到不同的线程中,提高了程序的执行效率。
- 第三,“多线程”使得程序的模块化更强,有利于追踪程序执行过程和排查问题。
实验中的问题及解决过程
-
问题一:在进行任务二时
pthread_create
编译无法通过
-
pthread
并非Linux系统的默认库,而要在Linux中将其作为一个库来使用,就需要加上-lpthread
或-pthread
以显式链接该库。
感悟