2018-2019-1 20165231 實驗三 實時系統
阿新 • • 發佈:2018-11-17
分析 image 查詢 分享圖片 使用方法 編程 -o 統計 9.png
實驗報告封面
課程:信息安全系統設計基礎 班級:1652班 姓名:王楊鴻永 學號:20165231
指導教師:婁嘉鵬 實驗日期:2018年11月14日
實驗時間:15:25 - 17:50 實驗序號:實驗三
實驗名稱:實時系統
實驗內容
實驗三-並發程序-1
學習使用Linux命令wc(1)
基於Linux Socket程序設計實現wc(1)服務器(端口號是你學號的後6位)和客戶端
客戶端傳一個文本文件給服務器
服務器返加文本文件中的單詞數
wc命令參數
- -c 統計字節數。
- l統計行數。
- m 統計字符數。這個標誌不能與-c 標誌一起使用。
- w統計字數。一個字被定義為由空白、跳格或換行字符分隔的字符串。
- L 打印最長行的長度
客戶端和服務器互傳文件
對服務器和客戶端的代碼分別進行編譯:
gcc server.c -o server
gcc client.c -o client
先運行服務器,再運行客戶端,然後是輸入文件名
實驗三-並發程序-2
使用多線程實現wc服務器並使用同步互斥機制保證計數正確
上方提交代碼
下方提交測試
對比單線程版本的性能,並分析原因
多線程的優點:
- 第一,將原來在一個大流程中實現的功能放到了多個小流程中,程序更加的簡潔和易於閱讀。
- 第二,將不同的功能放到不同的線程中,提高了程序的執行效率。
- 第三,“多線程”使得程序的模塊化更強,有利於追蹤程序執行過程和排查問題。
重新編寫支持多線程的服務器程序,然後編譯,執行同上步
實驗中的問題及解決過程
- 問題1:在實驗第二項時編譯新的服務器代碼pthread報錯。
- 問題1解決方案:pthread並非Linux系統的默認庫,而要在Linux中將其作為一個庫來使用,就需要加上“-lpthread”或“-pthread”以顯式鏈接該庫。
感悟
通過本次實驗,明白了wc命令的使用方法和功能,對單線程和多線程有了進一步的了解和學習,對pthread也有了進一步的使用。通過編程也更深入學習了服務器與客戶端。也學會常用man
命令查詢。
2018-2019-1 20165231 實驗三 實時系統