本文在我的博客《查理的书架》最早发布,并在第一时间更新到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,如需转载请自行联系原作者