UML
2017-03-26 22:04:38 0 举报
UML(统一建模语言)是一种用于软件系统分析和设计的可视化建模语言。它提供了一套标准化的符号和图形表示法,用于描述系统的结构和行为。UML包括多种图表类型,如类图、用例图、活动图等,每种图表类型都有其特定的用途和规则。通过使用UML,开发人员可以更好地理解系统的组成部分、它们之间的关系以及系统的功能和行为。此外,UML还支持从需求分析到设计、实现和维护的整个软件开发过程,有助于提高开发效率和质量。总之,UML是一种强大而灵活的工具,可以帮助开发人员更好地理解和管理复杂的软件系统。
作者其他创作
大纲/内容
Block(块信息)
blo_list: struct Block*blo_id:Intblo_disk: Intkey: Int
1
n
RUN(运行类)
io_gen: IO_Gen实例io_router: IO_Router实例
RUN(Storage):exec():循环读取请求,路由并进行cache读取或替换show():结果
algorithm(算法)
map_operation():操作cache内容,虚函数,具体由实例函数指定block_div(): 分块kernel(): 分块后,进行读写操作read(): write():
Stat(输出信息)
total_num:Inthit_num: Intread_num: Intcache_write:
show();
Storge(存储层,包括N个cache,以及相应的配置信息)
CacheN: cache*block_size: Intblock_num: Intwrite_alg: IntoutFile: FILE*stat: Stat(统计信息)
1.create 一个Storage2. 根据配置文件修改参数,包括实例化对应的cache算法3.分配缓存空间(使用内存池)4.使用Storage创建RUN对象5.运行RUN.exec(),循环读取trace,并路由,在相应的cache中选择是否替换6. 读取结束,显示结果
Cache(具体cache)
replacement_alg: IntAlg: algorithm*(不同的算法对应不同的派生类)cache_blk(缓存空间): list_entry*
IOGen
ti_cur:TraceInfofilename: String
IOGen():~IOGen():open_file():return FILE*close_file():get_ti(): 获取每一个请求get_ti_block();计算每个请求对应的blockget_ti_blo_key();md5计算每个block对应的key
List_entry(metadata list)双向链表其成员也和算法相关,不同算法会增加新的成员
access_cnt: Int(访问次数)lbn: cache中的逻辑地址block_key: block的key值next:List_entry*pre:List_entry*
LRU(派生的算法类)
list_lru:list_entry*list_mru:list_entry*相关数据结构
map_operation():操作cache内容,使用LRU算法
main
TarceInfo(读取的trace信息)
1. timeStemp:String2. offset:Long long3. size:Int4. RWType:0/15. disk_id:String6. provery_IP:(\\)7. IO_latancy:Double8. block_list: struct Block9. trace_stat:
IORouter
IORouter():初始化hash环设置节点~IORouter():GetNode(): return int 获取每一个key对应的hash所需要发送的节点
0 条评论
下一页