[发明专利]持久程序执行有效
申请号: | 201480014744.7 | 申请日: | 2014-03-05 |
公开(公告)号: | CN105144103B | 公开(公告)日: | 2019-02-26 |
发明(设计)人: | S·阿巴斯;B·什亚姆桑达;R·赫瓦瓦萨姆;L·E·韦利基 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/448 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 杨丽 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 持久 程序 执行 | ||
1.一种至少部分地由计算机实现的用于持久地执行程序的方法,所述方法包括:
开始程序的执行;
执行所述程序的代码,所述代码指示第一异步操作,所述第一异步操作独立于所述程序来完成;
检查历史以确定所述历史是否指示已经接收到对所述第一异步操作的响应;
如果已经接收到所述响应,则从所述历史中获得完成数据并且将所述完成数据提供给所述程序;以及
如果尚未接收到所述响应,则
调度任务以向异步组件作出请求,并且如果所述第一异步操作是阻塞性的,则从存储器中移除所述程序;
等待所述响应被接收;
当接收到所述响应时,将对应于所述响应的完成数据置于所述历史中;
提供响应已被接收的通知,所述通知指示接收到针对其的响应的程序;
将所述程序加载到存储器中;
开始重新执行所述程序;
重新执行所述程序的代码,所述代码再次指示所述第一异步操作;以及
将所述完成数据提供给所述程序。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
执行所述程序的附加代码,所述附加代码指示另一异步操作;
检查所述历史以确定是否接收到针对所述另一异步操作的另一响应;
如果已经接收到所述另一响应,则从所述历史中获得所述另一响应并且将所述另一响应提供给所述程序;以及
如果尚未接收到所述另一响应,则调度另一任务以向异步组件作出请求,并且如果所述另一异步操作是阻塞性的,则从存储器中移除所述程序。
3.如权利要求1所述的方法,其特征在于,进一步包括:
执行所述任务以向所述异步组件作出请求;
在稍后事件,接收对所述请求的响应;以及
将对应于所述响应的完成数据联同将所述完成数据与所述异步操作相关联的标识符一起存储在所述历史中。
4.如权利要求3所述的方法,其特征在于,进一步包括:
当所述程序的代码重新执行时,搜索所述历史以寻找与所述完成数据相关联的标识符;
当所述标识符被找到时,从所述历史中检索所述完成数据;
将所述完成数据同步地提供给所述程序;以及
继续所述程序的执行,直到所述程序指示由所述程序指示的另一异步操作或所有异步操作由来自所述历史的完成数据满足。
5.一种在计算环境中的用于持久地执行程序的系统,包括:
存储,所述存储具有其中存储有代码的计算机存储元件,所述代码在被执行时,指示一个或多个异步操作;
控制器,所述控制器被结构化为调度任务以用于向能操作用于对对应于异步操作的请求作出响应的异步组件发送所述请求;
功能调用程序,所述功能调用程序被结构化为执行和重新执行所述代码并且响应于由所述代码指示的异步操作来供应完成数据,直到由所述代码指示的所有异步操作由包括在历史中的完成数据满足,所述历史从接收自一个或多个异步组件的响应填充,向所述一个或多个异步组件发送对应于由所述代码指示的异步操作的请求,其中所述功能调用程序被进一步结构化为基于确定所述代码正等待所述异步操作中的至少一个完成并且在所述代码接收到针对所述代码作出的所有异步请求的响应之前从存储器中移除所述代码;以及
事件处理程序,所述事件处理程序被结构化为通知所述功能调用程序已经接收到所述代码的新的完成数据,并指示接收到针对其的响应的程序,其中所述功能调用程序被进一步结构化为响应于所述事件处理程序通知所述功能调用程序已经接收到所述代码的新的完成数据而加载和重新执行所述代码。
6.如权利要求5所述的系统,其特征在于,所述控制器被进一步结构化为响应于接收自所述功能调用程序的命令来调度任务以向所述异步组件发送请求,所述命令通知所述控制器所述代码正在指示异步操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480014744.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:管口可变径插入式采样仪
- 下一篇:一种枇杷醋饮料的制备方法