《表1 元数据类型定义:面向多线程程序的内存安全运行时验证》

《表1 元数据类型定义:面向多线程程序的内存安全运行时验证》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《面向多线程程序的内存安全运行时验证》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

全局变量包含两个哈希桶元素数组指针是因为我们需要创建两个哈希表,一个存放函数元数据,一个存放指针元数据。哈希表是通过数组桶和无锁链表组成的。由于每个线程需要有私有的pre,pcur,pnext去独立的访问哈希表,所以每个线程都独自创建了私有的三个变量。我们在包装线程创建函数时,创建每个线程对应的私有值并记录每个线程的线程ID。每个线程通过自己创建的3个MarkPtrType类型去独立的访问哈希表中存储信息的无锁链表,避免线程之间访问时,对访问变量的竞争。哈希表中存放了void**value变量。通过定义二级指针的方式用来存储指针元数据和函数元数据,通过二级指针强制类型转化的方式,将void**分别转化为PREFIXpmd**和PREFIXfmd**。表1所示定义指针元数据和函数元数据.