[发明专利]启用状态保存的方法和系统有效
申请号: | 200810081347.8 | 申请日: | 2008-02-25 |
公开(公告)号: | CN101261593A | 公开(公告)日: | 2008-09-10 |
发明(设计)人: | 道格拉斯·W.·德威;桑格拉姆·S.·高曼;威廉·G.·西尔曼;沙查·菲恩比立特 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 | 代理人: | 李颖 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 启用 状态 保存 方法 系统 | ||
技术领域
本发明涉及数据处理系统,且更具体地,涉及一种启用状态保存和调试操作的方法和系统。
背景技术
典型地,操作系统(OS)将虚拟内存分为内核空间和用户空间。典型地,内核空间为运行内核、内核扩展和设备驱动程序而保留,而用户空间则是为用户模式应用而保留。为了跟踪并控制多个进程的执行,OS利用调用堆栈(也称为执行堆栈)存储关于计算机程序的活动子例程的信息。在活动子例程的执行已经完成之后,调用堆栈通过记住每个活动子例程应该返回控制的点来监控多个进程的执行。
可以利用协同例程促使代码移植到在OS的内核空间操作的一组微代码中,从而移植的代码无需重构,以在事件驱动(或者扫描环)环境中异步运行。当需要来自事件驱动环境中代码的异步回叫时,在不同的上下文(或者堆栈)上执行移植代码的几个协同例程包装挂起相应的操作。在回叫时,协同例程包装恢复相应的移植代码的上下文,且移植的代码继续进行,就好像已经立即执行了中断函数调用。为了便于代码移植,OS往往需要重构代码以在新环境中运行(例如,通过提供转换以启用非固有异步环境中的操作)。
发明内容
本发明公开了一种针对事件驱动环境中协同例程启用状态保存和调试操作的方法、系统和计算机程序产品。堆栈管理实用程序在缓冲区(buffer)中为包括状态域(state field)的上下文结构和堆栈指针分配空间。上下文管理实用程序初始化第一协同例程的第一上下文结构,并响应于第二协同例程的执行请求保存所述第一上下文结构的状态。所述上下文管理实用程序将与所述第二协同例程相关的第二上下文结构设置为当前上下文。当完成所述当前上下文的执行时,所述上下文管理实用程序将所述第一协同例程的第一上下文结构恢复为当前上下文。如果没有将所述状态域设置为有效值,状态保存函数“状态保存”所有要在调试中使用的已分配协同例程堆栈和上下文结构,然后将整个系统恢复为前一有效状态并重新启动操作。
本发明上述及另外的目的、特征和优点将在下面详细的书面说明中变得显而易见。
附图说明
当结合附图阅读本发明时,参考以下说明性实施例的详细描述可以最好地理解本发明自身以及优选的使用方式,进而理解其目的和优点,其中:
图1示出根据本发明的实施例数据处理系统的高级框图;
图2示出根据本发明的实施例示范性上下文数据结构的高级框图;
图3为根据本发明的实施例针对事件驱动环境中协同例程启用状态保存和其他调试操作的过程的高级逻辑流程图;
图4为根据本发明的实施例分配堆栈块的过程的高级逻辑流程图;
图5为根据本发明的实施例解除分配堆栈块的过程的高级逻辑流程图;
图6为根据本发明的实施例检索来自协同例程的上下文信息的过程的高级逻辑流程图;
图7为根据本发明的实施例设置协同例程的上下文信息的过程的高级逻辑流程图;
图8为根据本发明的实施例实现作为状态保存和紧急函数的开始部分的堆栈块可控状态保存的方法的高级逻辑流程图;以及
图9为根据本发明的实施例实现作为状态保存和紧急函数的开始部分的堆栈块可控状态保存的可选择的方法的高级逻辑流程图。
具体实施方式
本发明提供了一种针对事件驱动环境中协同例程启用状态保存和调试操作的方法、系统和计算机程序产品。
现在参照图1,该图示出根据本发明实施例通用的数据处理系统的框图。数据处理系统100包含随机存取存储器(RAM)102、处理器104和输入/输出(I/O)控制器108。系统互连118连接处理器104、RAM 102、存储器106和I/O控制器108。数据处理系统100还包括诸如硬盘驱动器或者其他直接存取存储设备的非易失存储器106。I/O控制器108通过有线或者无线连接,诸如网络线缆112为网络110提供连通性。I/O控制器108还通过I/O通信连接116(例如线缆或者无线连接)耦接于用户I/O设备114(例如,键盘、显示设备、鼠标或者打印机)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810081347.8/2.html,转载请声明来源钻瓜专利网。