天天看點

P2Psim分析筆記(2)-程式架構簡述

本文在我的部落格《查理的書架》最早釋出,并在第一時間更新到51CTO的《Nathan的技術空間》上。

   這是我整理P2PSim這個仿真軟體包的第二篇筆記。第一篇是《P2PSim在g++ 4.3下的編譯》,在第一篇裡面介紹了P2PSim 0.3在編譯和按照中的碰到的問題以及解決方式。本篇主要給出P2PSim的實作架構,幫助需要進行代碼分析的朋友對P2PSim能有個大體的構架了解。在些這篇時候,作者也還未完成對整體代碼的通讀,是以對全局的掌握還不充分,如有錯誤,請各位指出和包涵。

P2PSim簡述

    其次,我把kikikind老兄的類繼承圖重新貼一遍,來幫助大家了解程式架構。在這個圖裡面,我們看到從threaded類一共派生出EventQueue, Network,和EventGenerator三個類,這三個類就是程式在運作時候的3個主要并發任務。

至于圖中的其他部分,等以後的具體分析的時候再慢慢說明。

    是以,綜上所述,P2Psim是一個根據libtask所提出的架構所寫的一個程式,是以在/p2psim目錄下,main.c程式裡面沒有main函數,而是taskmain函數,這個函數會被libtask作為第一個task而調用啟動,功能類似main函數,連調用參數都差不多。然後在這個taskmain中,間接建立了上述其他幾個并發任務。

    到這裡,讀者應該對p2psim的大體構架有個簡單認識了。 下次我打算把taskmain函數裡面的初始化順序介紹一下。

     本文轉自nathanxu 51CTO部落格,原文連結:http://blog.51cto.com/nathanxu/245729,如需轉載請自行聯系原作者

繼續閱讀