1. 程式人生 > >2018-2019-1 20165231 實驗三 實時系統

2018-2019-1 20165231 實驗三 實時系統

分析 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 實驗三 實時系統