基于服务体/执行流结构的操作系统技术方案

技术编号:2859681 阅读:189 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于服务体/执行流模型的操作系统,该模型由服务体和执行流两类机制构成;每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;所述执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的一条轨迹,该执行流是连续的;所述服务体用于实现操作系统中所有功能组件的功能,执行流只有通过小端口才能进入服务体;系统中其他系统软件和用户程序也以服务体形式加载到操作系统上;所述若干服务体中设置一个核心服务体,用于引导执行流通过服务体的小端口进入服务体并提供基础服务。该模型在实时性、多处理机支持、可扩展性与可维护性以及对分布式处理和对主动网络支持上具有明显优势。

【技术实现步骤摘要】

本专利技术涉及用于计算机系统中的基础软件,特别涉及一种基于服务体/执行流模型的操作系统。
技术介绍
目前操作系统均采用进程/线程模型,如图1所示,其一个线程对应一个虚拟CPU,从而对用户隐藏了物理CPU的相关信息,提供了一个清晰的编程模型,当系统增加物理CPU的个数时可以得到较好的加速比。但是,由于进程/线程模型将数据的存储和对数据的计算紧密耦合在一起,而且采用了虚拟CPU的概念,从而导致了如下主要的缺点(1)线程之间的通讯是异步的,不可避免的会带来信息处理的延时或丢失,延时的不确定性又限制了系统的实时性。当发生事件的重入时,由于通讯是异步的,线程无法感知该事件被再次激活,从而会造成事件的丢失或延迟。在现有操作系统的进程/线程模型下很难有效的解决这个问题。(2)线程/进程抽象忽略了线程之间大量的同步关系,一律采用异步方式,通过共享内存的方法来运行逻辑上的同步,其结果是给系统造成大量不必要的睡眠、唤醒以及调度等复杂的操作,增加了运行开销,降低了系统的效率,还使得分布式系统中的进程的迁移成为难以解决的问题。(3)进程/线程模型屏蔽了物理CPU的相关信息,不利于编写高效的程序,特别是对于多处理器系统,用户编程时不知道系统中真实处理器的数量,从而丧失了对线程调度的参与机会,线程调度只能靠调度器采用预测方法决定,而预测方法使系统更复杂而很难得到预期的效率。基于进程/线程模型构造操作系统的具体方法可分为单一大内核和微内核两种构造方法。如图2所示,单一大内核结构的操作系统在内核部分通过函数调用表达执行流,而在内核之外用户程序使用的则仍是进程/线程模型,单内核强调的是引导物理CPU执行内核代码,并通过简单的函数调用而不是通过进程/线程间通讯使执行流在模块间流动。单一大内核操作系统的显著优点是高效率,因此被广泛使用,但其缺点也日益显露出来,主要表现在(1)由于系统模块间高度耦合,而且进程间缺乏有效的交互手段,所以功能的扩充只能通过在内核中增加相应的模块实现,这就要求系统开发人员深入掌握内核的数据结构和算法,而这是普通用户很难做到的,因此这种操作系统的可扩展性很差。(2)所有内核模块都运行在核心态,都处于同一个内核空间,各部分缺乏保护,因此,内核模块中的错误可以导致整个系统崩溃,难以保证系统的高可靠性,而且,难以实现内核的升级。(3)由于内核模块之间不具备隔离性,因此一个模块所造成的错误很有可能以一种不易察觉的方式传播给其他模块,这种错误可能在发生后经过相当长的时间以多种形式反映出来,错误的排查、定位十分困难,因此,系统的健壮性较差。(4)由于所有的模块通过连接器相互连接,所以当一方的参数、语义发生变化时往往要影响系统的很多部分都要进行相应的改变,否则就容易造成难以排查的错误,构造一个系统只有约定了版本号的组件才可能一起正常的协作,这给内核组件的归档、维护、发布、移植等都带来很大的困难,因此,系统的可维护性较差。(5)由于内核各部分的通讯是基于函数调用的方式,在实现分布式处理上难以将一个模块提供的服务透明的传播给其他的处理机,因此,系统难以有效的支持分布式服务。如图3所示,微内核模型是卡耐基梅隆大学针对单内核结构的上述缺点,尤其是在支持分布式计算等方面遇到的困难提出的,与单内核模型相比,微内核模型在结构上也有一个为系统内所有进程所共享的内核,所不同的是几乎所有的系统服务都从内核中移出,由内核外的用户级进程实现。微内核结构在可扩展性、可维护性等方面具有明显的优越性,并可通过位置无关的进程间通讯机制将服务透明扩展到分布环境中。其缺点是,由于引发了频繁的进程间通讯导致了运行的低效率,尽管采用诸如Hand-off调度、高速IPC、调用门等技术可以在一定程度上提高效率,但这些技术都因破坏了执行流、进程/线程间的层次关系,又无法摆脱进程/线程模型的约束,无法实现所期望的目的。学术界已经认识到了进程/线程模型的内在缺陷,为克服或弥补该缺陷所做的主要研究工作已有(1)CMU的mach研究组提出了续体(Continuations)的概念,以减少线程切换和堆栈的开销,并采用优化IPC以加快消息的传递。在一定程度上将进程间通讯同步化,减少了通讯开销。但续体只能用在内核中,而且只能在某些特殊的环境下才能实现优化,也无法满足分布式计算的性能需求。(2)主动消息(Active Message)的提出旨在降低大型并行机中的通讯开销。其方法是将通讯过程和计算过程连接起来,以避免线程调度所带来的延迟、数据的缓存和拷贝。但这种方法受到如下限制1)处理例程在运行的过程中不能阻塞;2)可能引起死锁;3)处理例程的运行时间不能过长,否则可能阻塞其他网络上发来的消息。(3)跨地址空间调用已发展为微内核模型下的过程式IPC。其基本原理是通过由服务进程提供调用点,客户程序可直接进入服务进程,从而可有效地降低线程模型所带来的系统开销。但为了维护线程模型不被破坏,必须付出的额外代价是1)线程/进程的从属关系必须随着进出调用点而改变,以免破坏原有线程模型的语义。2)跨地址空间的同步调用只能通过上层协议的异步功能实现。这些代价不但给程序员带来困难,也不利于错误处理。澳大利亚Adelaide大学和悉尼大学联合提出的Container/Loci概念取代了传统的线程概念,以Container为唯一代表数据存储的抽象、以Loci为执行的抽象。Container/Loci模型已抛弃了进程/线程模型中的很多内容,实现了存储和计算的分离,但他们仍停留在永久存储和单地址空间的研究上,而使用虚拟性的Loci,显然仍会影响系统效率。
技术实现思路
本专利技术的目的在于,提出一种更合理的新型操作系统,以克服当前操作系统发展遇到的障碍,解决其依赖的构造模型——进程/线程模型的内在缺陷所导致的系统在效率、实时性、结构灵活性等方面的限制。本专利技术的基于服务体/执行流模型的操作系统,采用服务体/执行流结构,该结构由服务体和执行流两类机制构成;每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;所述执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的轨迹,该执行流是连续的;所述服务体按照相同规范构造,包括功能代码、数据集合、端口以及端口所包含的若干小端口,用于实现操作系统中所有功能组件的功能,执行流只有通过小端口才能进入服务体;系统中其他系统软件和用户程序也以服务体形式加载到操作系统上;所述服务体的端口均采用统一的规范设计,用于支持系统中各服务体之间的通信;所述服务体中设置一个核心服务体,用于引导执行流通过服务体的小端口进入服务体并提供对服务体与执行流的管理、服务体之间通信的管理、中断与异常的处理以及并发控制基础服务。本专利技术是以图4所示的服务体/执行流结构作为基础结构、以消息推动通信为关键技术、以一系列相关的具体构造方法为辅助方法而综合构成的操作系统构造方法。所述操作系统中的服务体自底向上划分为基本机制层、服务层、运行环境层三个层次,所述基本机制层是系统运行的基础机制;所述服务层,用于提供系统主要的服务功能;所述运行环境层,用于提供用户程序的编程模型和运行环境。上述功能层次的划分用来指导操作系统的设计实现者进行系统功能组件服务体的分划和设计。在所述运行环境层中,还可以构造模拟本文档来自技高网
...

【技术保护点】
一种基于服务体/执行流模型的操作系统,其特征在于:该操作系统采用服务体/执行流结构,该结构由服务体和执行流两类机制构成;每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;所述执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的轨迹,该执行流是连续的;所述服务体按照相同规范构造,包括功能代码、数据集合、端口以及端口所包含的若干小端口,用于实现操作系统中所有功能组件的功能,执行流只有通过小端口才能进入服务体;系统中其他系统软件和用户程序也以服 务体形式加载到操作系统上;所述服务体的端口均采用统一的规范设计,用于支持系统中各服务体之间的通信;所述服务体中设置一个核心服务体,用于引导执行流通过服务体的小端口进入服务体并提供对服务体与执行流的管理、服务体之间通信的管理、 中断与异常的处理以及并发控制基础服务。

【技术特征摘要】
1.一种基于服务体/执行流模型的操作系统,其特征在于该操作系统采用服务体/执行流结构,该结构由服务体和执行流两类机制构成;每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;所述执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的轨迹,该执行流是连续的;所述服务体按照相同规范构造,包括功能代码、数据集合、端口以及端口所包含的若干小端口,用于实现操作系统中所有功能组件的功能,执行流只有通过小端口才能进入服务体;系统中其他系统软件和用户程序也以服务体形式加载到操作系统上;所述服务体的端口均采用统一的规范设计,用于支持系统中各服务体之间的通信;所述服务体中设置一个核心服务体,用于引导执行流通过服务体的小端口进入服务体并提供对服务体与执行流的管理、服务体之间通信的管理、中断与异常的处理以及并发控制基础服务。2.按照权利要求1所述的操作系统,其特征在于所述操作系统中的服务体自底向上划分为基本机制层、服务层、运行环境层三个层次,所述基本机制层是系统运行的基础机制;所述服务层,用于提供系统主要的服务功能;所述运行环境层,用于提供用户程序的编程模型和运行环境。3.按照权利要求1或2所述的操作系统,其特征在于在所述运行环境层中,还可以构造模拟其他操作系统运行环境的服务体,用来将所述其他操作系统所支持的系统软件或用户程序引导、加入到本操作系统中运行。4.按照权利要求1所述的操作系统,其特征在于,所述服务体的端口对应于一个消息处理例程,该例程所能处理的所有消息接口的集合构成端口界面;所述消息接口,用于定义该消息特定的语义和接口参数信息的类型以及消息号。5.按照权利要求4所述的操作系统,其特征在于所述服务体的端口界面有统一规范的定义;服务体的端口界面的标识由主版本号、次版本号和全局唯一标识符三部分组成,其中,主版本号和次版本号用以支持版本的升级和兼容。6.按照权利要求1所述的操作系统,其特征在于,所述服务体地址空间是多维的,包括基本空间和扩展空间;所述的基本空间包...

【专利技术属性】
技术研发人员:龚育昌陈香兰李曦李宏张晔吴明桥周学海杨文增赵振西
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:34[中国|安徽]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1