[发明专利]一种基于事务的构件交互同步的方法有效
申请号: | 200810061646.5 | 申请日: | 2008-05-26 |
公开(公告)号: | CN101295269A | 公开(公告)日: | 2008-10-29 |
发明(设计)人: | 陈文智;王宽卿;姚刚 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;H04L29/06 |
代理公司: | 杭州天勤知识产权代理有限公司 | 代理人: | 胡红娟 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 事务 构件 交互 同步 方法 | ||
技术领域
本发明属于计算机数据交互通讯领域,尤其涉及一种计算机的基于事务的构件化嵌入式操作系统的构件交互同步的方法。
背景技术
构件是系统中的可重用的部分,构件的状态及其行为被构件接口所封装。构件之间通过接口相互通信(远程方法调用)。构件之间一般通过IPC机制进行交互,具有良好的隔离错误的能力,保护受信任的构件不被干扰或攻击。IPC(Inter-Process Communication)是指共享″命名管道″的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。由于构件化操作系统在运行过程中必须频繁的使用IPC,因此必须保证IPC的效率。由于传统的构件间交互一般采用的是客户端/服务端模式的IPC,调用者将阻塞直到被调用者发回响应结果,因此,两个构件的线程间建立了某种依赖关系,由此在现有技术基础上构件在交互的过程中可能引起优先级倒置的问题。
目前,客户端/服务端模式的IPC主要用于支持构件之间的远程方法调用,由于它是基于一种同步的消息传递方式,用于实时系统时会导致一些问题。
一次典型的构件交互过程如图1所示,其中包含一个客户端和一个服务端。在一次完整的远程方法调用中,服务端应处于特定的状态,等待接收来自客户端的请求;客户端首先是作为发送者,向服务端发送一个请求。一旦服务端接受请求后,它的线程得到执行,最后计算出一个结果,在服务端将该结果返回给客户端的过程中,服务端是发送者的角色,而客户端是接收者的角色。客户端在发送请求后一直处于阻塞状态,直到服务端返回结果或者收到其它线程发起的抢占式IPC。服务端从接收到请求那一刻起离开阻塞状态,当把结果返回给客户端后再次处于阻塞状态等待新的请求。
虽然消息传递过程不涉及线程调度,其它所有线程保持原有状态不变,但是在下一个调度周期到来时,对线程进行调度后有可能发生优先级倒置问题。如图2所示,高优先级的客户端C向低优先级的服务端S发送了请求,在S的运行过程中,发生了一次调度,中等优先级的客户端X抢占S的运行,结果是,中等优先级的X导致高优先级的C不能及时得到响应。
另一种情况如图3所示,中等优先级的客户端X向服务端S发送了请求,在服务端S的处理过程中,发生了一次调度,高优先级的客户端C进入运行,并向服务端S发送请求,但是在客户端/服务端模式的IPC机制下,服务端S必须处理完客户端X的请求后才能接收客户端C的请求,导致高优先级的客户端C不能得到及时响应。
发明内容
本发明提供了一种基于事物的构件化嵌入式操作系统的构件交互同步的方法,该方法有效地解决了客户端/服务端模式下进程间通信引发的优先级倒置问题,保证了构件之间交互的高效率和低开销。
本发明还提供了一种基于事务的构件化交互模型,该模型基于事务上下文,实现构件之间准确的交互。
一种基于事务的构件交互同步的方法,该方法包括:
系统启动后,交互同步的构件的客户端向的交互同步的构件的服务端发送请求(即调用远程方法),客户端向服务器发起请求后,服务端将客户端的构件交互的事务上下文和执行上下文存入服务端的服务栈,根据所述的事务上下文确定客户端的优先级,优先级高的客户端先服务;在执行请求的过程中,若有优先级更高的客户端请求,服务端将优先级更高的客户端的构件交互的事务上下文和执行上下文存入服务端的服务栈内,创建一个新的初始上下文,保存当前的执行状态,服务端的服务栈通过状态转换,切换到所述优先级更高的客户端的构件交互的执行上下文,执行所述优先级更高的客户端的服务请求;所述优先级更高的客户端的请求执行完毕后,初始客户端的构件交互的事务上下文和执行上下文移出服务栈,服务端的服务栈恢复初始上下文,继续执行初始客户端的请求执行完毕后将结果返回给初始客户端。
本发明所述的一种基于事务的构件化交互模型由用于交互同步的构件组成,构件之间通过接口相互通信(即远程方法调用),该模型基于事务上下文,实现构件之间准确的交互。
所述的交互同步的构件包括:
服务端消息接口Ms,是由服务端接收的消息集,用于接收和处理事务请求;
客户端消息接口Mc,是服务端要求客户接收的消息集,用于发送事务请求;
消息传递的协议P;
接口API,是构件交互协议的应用程序的编程接口;
构件交互时的事务上下文TC,用于存放与调用有关的信息,包括线程的优先级、执行时间和服务质量QoS(Quality of Service);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810061646.5/2.html,转载请声明来源钻瓜专利网。