C_S模型在实时操作系统设计中的应用与研究.pdf
《C_S模型在实时操作系统设计中的应用与研究.pdf》由会员分享,可在线阅读,更多相关《C_S模型在实时操作系统设计中的应用与研究.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 0 9 年第1 1 期计算机系统应用C S 模型在实时操作系统设计中的应用与研究A p p l i c a t i o no fC SM o d e li nR e a l-T i m eO p e r a t i n gS y s t e m叶新栋唐志强涂时亮(复旦大学计算机学院上海2 0 0 4 3 3)摘要:良好的操作系统模型设计是一款优秀操作系统的核心和基础。首先介绍了操作系统内核设计中几种不同的设计模型理念,并在此基础上着重对如何利用C S 模型的消息传递机制来简化操作系统的设计做了深入研究。通过对Q N X 等一系列实时内核的深入研究,分析并总结了如何利用C S 模型来解决
2、实时内核设计的一系列关键技术,对实时操作系统的内核设计有一定的指导意义。关键词:操作系统C S 模型死锁同步机制Q N X2 0 世纪5 0 年代中期到后期开发的早期操作系统很少考虑到结构问题,没有人具有构造大型软件系统的经验,并且对于互相依赖和交互的问题考虑过低。因此,那些单体结构的操作系统往往代码的冗余度很高,并且移植性和可调试性都很差。层次化的设计结构的出现将模块化程序设计技术引入到操作系统的设计中,这大大提高了操作系统的性能。然而,层次化的结构设计往往存在着内核规模过大和实时性能不高等一些不足之处。基于消息传递机制的微内核设计方案有效地弥补了层次化设计方案的不足之处,非常适合那些对实时
3、性能要求极高的嵌入式系统。1层次化和微内核模型简介层次化模型是实现系统设计模块化的一种常用的方法,这种技术将操作系统分为若干个层,每一层构建在下面一层之上。最低层是硬件,最高层是用户接口。操作系统的一层是对一个抽象对象的实现,它封装了数据和对这些数据的操作。图1 描述了一个典型的操作系统层。它由数据结构和可由更高调用的一系列程序构成。N 层也能够调用更低层的操作。层次化设计最大的优点是其模块化设计。通过模块化设计,上一层次的操作或服务只会调用更低一层次的服务,因此,它对层次间的信息起到了很好的隐收稿时间:2 0 0 9-0 2-2 4图1层次化模型中的层次图藏作用。同时,当我们需要修改系统的相
4、关服务时,并不需要修改整个系统的结构,只需要修改相关的层次便能达到我们的目的。然而,在实际系统的设计中我们很难准确的对众多系统的服务进行分层。层次化设计的最后一个问题是它的效率低于其它类型的系统。例如,当一个用户程序执行一个I O 操作时,它就要执行一个自陷到I O 层的系统调用,这个调用再调用存储器管理层,再由存储器管理层调用C P U 调度层,然后C P U 调度层转到硬件。在每一层中,可能要修改参数,可能要传递数据,等等。每一层都要增加系统调用的开销,最终要比采用非分层的系统花费更多的时间。微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。在微内核外部的操作系统构建都被当做服务进
5、程实现,他们可以借助于通过内核的消息传递机制来实现互相的交互。图2 显示了当文件应用A p p l i e dT e c h n i q u e 应用技术1 6 1 万方数据计算机系统应用2 0 0 9 年第1 1 期程序想要打开一个文件所执行的一系列操作。在微内核的结构设计中,只有那些具有最基本的操作系统的功能被放到内核中,这大大简化了实时内核的设计。同时,利用消息传递机制有效的避免了层层传递带来的时间开销,对系统的实时性和稳定性都有一定的提高。不仅如此,微内核还包括一致接口、可扩展性、灵活性、可移植性、可靠性、分布式系统支持以及对面向对象操作系统的支持等一系列优点1 2 1。客户端服务器端
6、图2 客户端和服务器端交互图2C S 模型在微内核中的架构客户服务器模型是微内核设计中的核心。任何应用程序想要得到系统的服务时,只需通过管道向内核发送消息,内核负责将消息传递给相应的服务程序,而服务程序接收到消息后,负责完成相应的操作,并最终将结果通过内核返回给应用程序。l 台o#士Lr 1向c 娟由应操作图3 客户端状态机模型如何设计客户端应用程序和服务器端服务程序的状态机模型是C S 模型机制的关键问题。通过分析Q N X 实时内核的C S 模型实现机制,我们提炼出了在客户端和服务器通用的两个状态机模型。图3 显示的是客户端状态机模型,客户执行发送操作1 代表的是当服务器处在就绪态时客户程
7、序执行发送操作所发生的状态转换;客户执行发送操作2 代表的是当服务器1 6 2 应用技术A p p l i e d T e c h n i q u e处在接收阻塞态时客户程序执行该操作所发生的状态转换。图4 显示的是服务端状态机模型,服务器执行接收操作1 代表的是当客户端处在就绪态时服务端程序执行该操作时发生的状态转化;服务器执行接收操作2 代表的是当客户端处在发送阻塞态时服务端程序执行该操作时发生的状态转化。服务器执行接收操作(2 J服务器执行回应操作图4 服务端状态机模型3关键问题的解决方案C S 模型的架构方案极大的简化了内核的设计,但同时由于C S 模型采用了消息传递机制来为各种服务传
8、递信息,因此系统中大量的交互消息的存在给进程的同步、死锁的防止都带来了特殊的问题。同时,如何防止优先级逆转的发生也是C S 模型在操作系统内核设计中必需解决的关键问题。3 1 自同步的实现在C S 模型中,线程并不是直接相互通信。其必需遵循以下原则:若服务器端要接收某一消息,其必需先建立一专用通道:同时,若某一客户进程要向该服务进程发送一消息,其必需首先连接到服务器创建的通道上。图5 显示了这一过程。图5 客户和服务端通道连接图消息传递机制在C S 模型中不仅可以实现线程的通信,而且提供线程的同步。图六显示的是一个简单的自同步过程。在执行消息传递之前,服务进程P r o c e s sB 必须
9、建立相关通道,而客户进程P r o c e s sA 必需连接到该通道上。万方数据2 0 0 9 年第1 1 期计算机系统应用图6线程的自同步示意图f 3 l3 2 优先级逆转的预防优先级逆转指的是高优先级任务需要等待低优先级任务释放资源,而低优先级任务又在等待中等优先级任务的现象。这种现象会发生在进程竞争申请资源时,因此大部分R T O S 都会在互斥锁中实现相关的协议来防止优先级逆转的发生。然而,采用C S 模型设计的微内核,发生优先级逆转的可能性却大得多。图七显示了基于C S 模型的微内核发生优先级逆转的一个简单模拟。图中序号代表了进程的优先级,操作1代表的是C l i e n t l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C_S 模型 实时 操作系统 设计 中的 应用 研究
限制150内