[发明专利]线程主动退出方法和装置在审
申请号: | 202011403356.1 | 申请日: | 2020-12-02 |
公开(公告)号: | CN112612581A | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 董广谱;时乐;李蒙 | 申请(专利权)人: | 北京和利时系统工程有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 解婷婷 |
地址: | 100176 北京市大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 主动 退出 方法 装置 | ||
本发明公开了线程主动退出方法和装置,该方法包括:当线程将要被激活时,将内核中所述线程的入口地址设置为第一入口函数的地址;所述线程被激活从所述第一入口函数的地址开始运行,所述第一入口函数获取与用户程序对应的第二入口函数的地址,并跳转到所述第二入口函数执行;当从第二入口函数返回到第一入口函数时,第一入口函数删除所述线程。本发明提供的方法和装置在用户空间实现线程主动退出功能。
技术领域
本公开涉及计算机技术领域,尤其涉及线程主动退出方法和装置。
背景技术
PLC控制器广泛应用于过程控制领域,提高PLC控制器的安全性意义重大。和利时公司基于国产MIPS架构处理器研发了高安全的微内核操作系统内核(简称微内核),该微内核运行在操作系统的内核空间。和利时公司基于该微内核开发了PLC控制器软件,该PLC控制器软件运行在操作系统的用户空间。
根据PLC控制器软件需求,PLC必须提供一种防御机制,该防御机制可以保证当用户的IEC线程意外退出时微内核操作系统不崩溃。该需求的本质是必须实现线程主动退出功能,保证线程主动退出时微内核操作系统不崩溃。线程主动退出功能通常运行在内核空间(由内核实现),例如linux、vxworks等。该微内核在内核空间只提供线程管理、进程间通信(IPC)、虚拟内存空间、句柄空间、设备基础单元(中断对象)五项极其原始的功能,没有实现线程主动退出功能。
发明内容
本公开实施例提供了一种线程主动退出方法,包括:
当线程将要被激活时,将内核中所述线程的入口地址设置为第一入口函数的地址;
所述线程被激活从所述第一入口函数的地址开始运行,所述第一入口函数获取与用户程序对应的第二入口函数的地址,并跳转到所述第二入口函数执行;
当从第二入口函数返回到第一入口函数时,第一入口函数删除所述线程。
一种示例性的实施例中,当从第二入口函数返回到第一入口函数时,第一入口函数删除所述线程,包括:
当所述第二入口函数的地址有效时,所述线程从所述第二入口函数的地址开始运行第二入口函数;当满足预设条件需要返回时,所述线程返回到所述第一入口函数并由所述第一入口函数删除所述线程;
当所述第二入口函数的地址无效时,所述线程返回到所述第一入口函数并由所述第一入口函数删除所述线程。
一种示例性的实施例中,当线程将要被激活时,将内核中所述线程的入口地址设置为第一入口函数的地址,包括:
当线程激活函数被调用时,触发与所述线程激活函数对应的处理函数根据所述线程的标识id将内核中所述线程的入口地址设置为第一入口函数的地址;其中,所述线程激活函数被调用时携带所述线程的id。
一种示例性的实施例中,当线程激活函数被调用时,触发与所述线程激活函数对应的处理函数根据所述线程的id将内核中所述线程的入口地址设置为第一入口函数的地址,包括:
当线程激活函数被调用后,生成IPC消息并将所述IPC消息发送给管理线程并阻塞自身;所述IPC消息包括消息标志和消息内容;所述消息内容为所述线程的id;
所述管理线程接收到所述IPC消息后,根据所述IPC消息的消息标志确定线程激活函数对应的处理函数为线程激活处理函数,并调用所述线程激活处理函数;
所述线程激活处理函数根据所述线程的id将内核中所述线程的入口地址设置为第一入口函数的地址后,构建IPC应答消息返回给所述线程激活函数;
当所述线程激活函数收到IPC应答后返回到调用方。
一种示例性的实施例中,所述线程激活处理函数执行相应处理后,构建IPC应答消息返回给所述线程激活函数,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京和利时系统工程有限公司,未经北京和利时系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011403356.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用于智能家具的数据线接口
- 下一篇:一种阀片加工用移动固定装置