发明名称 多实例应用程序在内核态地址空间冲突的解决方法及系统
摘要 本发明公开了多实例应用程序在内核态地址空间冲突的解决方法及系统,解决方法为:A、创建线程实例映射表、变量地址表、实例地址映射表;B、将需要切换地址空间的变量调用接口加入到变量地址表中;C、创建实例线程,为每个线程分配线程实例映射表表项,设定表项中线程所属的实例ID,然后将该表项放入线程实例映射表;D、线程切换时,查看待调出的线程对应的实例ID与待调入的线程的实例ID,若两者不同,则进入下步;E、根据待调入与待调出线程的实例ID查找实例地址映射表,找到对应实例地址空间,完成地址空间切换。本发明解决了内核态下多实例地址空间冲突的问题,不依赖于硬件支持和对应用代码的大量修改,降低了成本,且应用可灵活配置。
申请公布号 CN101226488B 申请公布日期 2010.06.02
申请号 CN200810065662.1 申请日期 2008.01.25
申请人 中兴通讯股份有限公司 发明人 李翌;王继刚;钟卫东
分类号 G06F9/46(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 深圳市永杰专利商标事务所 44238 代理人 曹建军
主权项 一种多实例应用程序在内核态地址空间冲突的解决方法,其特征在于,包括以下步骤:A、系统初始化时,创建线程实例映射表、变量地址表、实例地址映射表;所述线程实例映射表用于记录各线程与实例的对应关系,每个表项包括实例ID和线程ID两项;所述变量地址表用于记录需进行切换的各变量的地址空间,每个表项包括变量的地址指针和该变量所占用的内存大小两项;所述实例地址映射表用于记录各实例用于存储变量地址空间的内存区域,每个表项包括实例ID及该实例的地址区两项;B、应用程序初始化时,通过调用地址绑定模块将需要切换地址空间的变量调用接口加入到变量地址表中;C、创建实例线程,为每个线程分配线程实例映射表表项,并设定表项中线程所属的实例ID,然后将该表项放入线程实例映射表中;D、当线程切换时,在调度器中根据线程实例映射表查看待调出的线程对应的实例ID与待调入的线程的实例ID是否相同,若不同,则进入步骤E;E、根据待调入与待调出线程的实例ID,查找实例地址映射表,找到对应表项中的实例地址空间,遍历变量地址表,根据变量地址表中各表项指示的地址和地址大小,将该变量地址表中各表项指示的地址范围内的内容拷贝到待调出线程对应的实例ID的地址空间中,并从待调入线程对应的实例ID的地址空间中,将对应内容拷贝到变量地址表中表项指示的地址范围中。
地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部