【摘要】 本发明公开了多实例应用程序在内核态地址空间冲突的解决方法及系统,解决方法为:A、创建线程实例映射表、变量地址表、实例地址映射表;B、将需要切换地址空间的变量调用接口加入到变量地址表中;C、创建实例线程,为每个线程分配线程实例映射表表项,设定表项中线程所属的实例ID,然后将该表项放入线程实例映射表;D、线程切换时,查看待调出的线程对应的实例ID与待调入的线程的实例ID,若两者不同,则进入下步;E、根据待调入与待调出线程的实例ID查找实例地址映射表,找到对应实例地址空间,完成地址空间切换。本发明解决了内核态下多实例地址空间冲突的问题,不依赖于硬件支持和对应用代码的大量修改,降低了成本,且应用可灵活配置。 【专利类型】发明授权 【申请人】中兴通讯股份有限公司 【申请人类型】企业 【申请人地址】518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部 【申请人地区】中国 【申请人城市】深圳市 【申请人区县】南山区 【申请号】CN200810065662.1 【申请日】2008-01-25 【申请年份】2008 【公开公告号】CN101226488B 【公开公告日】2010-06-02 【公开公告年份】2010 【授权公告号】CN101226488B 【授权公告日】2010-06-02 【授权公告年份】2010.0 【IPC分类号】G06F9/46 【发明人】李翌; 王继刚; 钟卫东 【主权项内容】一种多实例应用程序在内核态地址空间冲突的解决方法,其特征在于,包括以下步骤:A、系统初始化时,创建线程实例映射表、变量地址表、实例地址映射表;所述线程实例映射表用于记录各线程与实例的对应关系,每个表项包括实例ID和线程ID两项;所述变量地址表用于记录需进行切换的各变量的地址空间,每个表项包括变量的地址指针和该变量所占用的内存大小两项;所述实例地址映射表用于记录各实例用于存储变量地址空间的内存区域,每个表项包括实例ID及该实例的地址区两项;B、应用程序初始化时,通过调用地址绑定模块将需要切换地址空间的变量调用接口加入到变量地址表中;C、创建实例线程,为每个线程分配线程实例映射表表项,并设定表项中线程所属的实例ID,然后将该表项放入线程实例映射表中;D、当线程切换时,在调度器中根据线程实例映射表查看待调出的线程对应的实例ID与待调入的线程的实例ID是否相同,若不同,则进入步骤E;E、根据待调入与待调出线程的实例ID,查找实例地址映射表,找到对应表项中的实例地址空间,遍历变量地址表,根据变量地址表中各表项指示的地址和地址大小,将该变量地址表中各表项指示的地址范围内的内容拷贝到待调出线程对应的实例ID的地址空间中,并从待调入线程对应的实例ID的地址空间中,将对应内容拷贝到变量地址表中表项指示的地址范围中。 【当前权利人】中兴通讯股份有限公司 【当前专利权人地址】广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部 【专利权人类型】上市股份有限公司 【统一社会信用代码】9144030027939873X7 【引证次数】3.0 【他引次数】3.0 【家族引证次数】3.0 【家族被引证次数】15