受管代码系统中的类型铸造

文档序号:9383062阅读:342来源:国知局
受管代码系统中的类型铸造
【专利说明】受管代码系统中的类型铸造
[0001]背景
[0002]计算机操作系统性能通常由操作系统在给定时间间隔期间可维持的最大输入/输出(I/o)操作速率(也称为“I/O性能”)来表征。结果,操作系统采用各种公知机制来提升i/o性能。
[0003]传统上,操作系统是使用向系统程序员提供对如何操纵存储器的非常精细的控制的非受管语言(如汇编语言、C、C++)来编写的。未经检查的指针的使用可被用来最小化操作系统开销并允许增加的吞吐量或降低的等待时间。使用这些未经检查的指针的不利方面在于它们难以创建和推理,导致不可靠的软件和安全弱点。
[0004]用受管编程语言编写软件提供了充足的正确性益处和开发时间效率。这些受管语言防止程序员创建许多种类的软件缺陷,这造成改进的软件质量和缩短的开发时间。操作系统正确性是用于递送可靠且安全的计算体验的关键因素。因此,使用受管语言来创建操作系统是非常有说服力的主张,因为操作系统可靠性可以改进且开发成本可被降低。
[0005]为了达到这些益处,受管编程语言在由程序员编写的源代码与物理计算机系统的原始机器资源之间插入抽象层。这一抽象层一般用于约束程序员被允许写什么,并且通过这样做消除了全部的各类潜在缺陷。不幸的是,这一抽象层引入可能损害所创建的软件的性能的开销。结果,普遍假定是受管语言用正确性缺陷来换取性能缺陷。因而,用受管语言编写的软件通常被认为先天地慢于用非受管语言编写的软件。
[0006]影响受管代码操作系统的具体问题是对在数据穿过系统时在各层之间复制数据的固有需求。这是由以下事实引起的:系统的不同组件存在于不同隔离上下文中并且没有清晰的机制来摆脱这些隔离上下文。

【发明内容】

[0007]根据本文描述的至少一个实施例,描述了受管代码系统中的类型铸造。受管代码系统包括受管存储器以及位于受管存储器之外的共享存储器。受管存储器具有多个受管存储器部分,每一受管存储器部分对应于一计算实体,诸如进程。类型系统准许使用类型铸造从共享存储器获得数据以藉此向数据指派支持类型铸造的类型。该类型是满足允许该类型被指派同时维持类型安全性的某些要求的有效类型的铸造类型。
[0008]该概述不意图标识所要求保护的主题的关键特征或基本特征,也不意图被用来帮助确定所要求保护的主题的范围。
[0009]附图简述
[0010]为了描述可获得以上记载的及其他好处和特征的方式,将参照附图呈现各个实施例的更具体描述。理解这些附图仅描述样本实施例,因此不应被视为限制本发明的范围,实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:
[0011]图1抽象地图示了其中可采用此处所述的一些实施例的计算系统;
[0012]图2示出用于提供不可变缓冲区的方法的流程图;
[0013]图3A示出填充缓冲区的过程在其中发生的环境;
[0014]图3B示出在其中使经填充的缓冲区不可变的环境;
[0015]图4示出用于使用不可变缓冲区的方法的流程图;
[0016]图5示出其中不同计算实体具有不可变缓冲区的不同视图的环境;
[0017]图6示出用于将不可变数据从一个计算实体传递到下一计算实体的方法的流程图;
[0018]图7示出其中数据流从流源提供给流缓冲区并随后从流缓冲区提供给流消费者的流传输环境;
[0019]图8示出其中第二计算实体通过第一计算实体的高速缓存来获取高速缓存的环境;
[0020]图9示出第二计算实体从第一计算实体支持的高速缓存进行第一次读取的方法的流程图;
[0021]图10示出第二计算实体从第一计算实体支持的高速缓存进行后续读取的方法的流程图;
[0022]图11示出第一计算实体(或后备高速缓存)执行逐出的方法的流程图;
[0023]图12示出示例受管代码系统;以及
[0024]图13描绘正常受管字节阵列,它具有指向它的两个不同的跨度并允许应用将该阵列的各部分看作不同的类型。
【具体实施方式】
[0025]根据本文描述的各实施例,描述了促进受管操作系统中的零复制输入/输出(I/O)语义的机制。这样的机制中的一些可被用在非受管代码操作系统中以及受管代码操作系统中。各机制不是互斥的,因为一个、一些、或甚至全部机制可被组合以进一步促进零复制I/O语义。
[0026]“零复制”指的是被设计成使数据能通过被写入存储器来进入系统并在不必复制该数据的情况下传播通过许多抽象层的体系结构。零复制体系结构不保证没有数据复制发生。相反,它仅仅使机制就位以确保大多数I/O操作可以在无需复制的情况下完成。在本说明书和权利要求书中,“存储器”被定义为任何随机存取存储器,它通常是易失性存储器,但也可包括非易失性部分或可能可完全是非易失性的。在本说明书和权利要求书中,“存储器”被定义为计算系统的主存储介质,包括可由计算系统的微处理器访问且可由硬件设备(如图形控制器或网络接口控制器)经由DMA(直接存储器访问)机制访问的可单独寻址的位置。
[0027]首先,将描述使用共享数据的不可变缓冲区的不可变可共享零复制批量数据机制。这样的机制允许在无需复制的情况下在计算系统中转移数据的大型缓冲区。该机制将被进一步扩展到数据流在计算系统内的共享使用,具有完全控制以允许高效的资源利用,这些全都在维持完整的零复制语义的同时进行。尽管受管代码系统的当前类型安全性允许更直接地实现这些机制,但这些机制也可在非受管代码系统中使用。
[0028]其次,将描述用于零复制高速缓存的机制。这样的零复制高速缓存可被用于非受管代码系统和受管代码系统两者中。零复制高速缓存使得可能创建表征进入高速缓存的数据以及从高速缓存返回的数据的零复制语义的通用高速缓存体系结构。
[0029]第三,将描述进一步增强受管代码系统的性能的若干机制,而不管这些系统是否采用不可变缓冲区或共享数据。这样的受管代码机制包括统一存储器访问和类型安全类型铸造。统一存储器访问使受管代码能够使用一致且可组合的方法均匀地访问受管存储器和非受管存储器(用于I/O缓冲区)两者。类型安全类型铸造使受管代码能够执行指针铸造以允许给定存储器区域被看作不同类型,同时维持完整的类型安全性。
[0030]将参照图1描述计算系统的一些介绍性讨论。随后将按以上参考图2-13提供的次序来描述以上列出的机制。
[0031]计算系统目前日益采取广泛的形式。计算系统可以例如是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、或者甚至是通常不被认为是计算系统的设备。在该说明书以及在权利要求书中,术语“计算系统”被宽泛地定义为包括任何设备或系统(或其组合),所述设备或系统包括至少一个物理且有形的处理器、以及能在其上具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上并且可以包括多个组成的计算系统。
[0032]如图1所示,在其最基本的配置中,计算系统100包括至少一个处理单元102和计算机可读介质104。计算机可读介质104可在概念上被认为包括物理系统存储器,它可以是易失性的、非易失性的、或这两者的某种组合。计算机可读介质104还在概念上包括非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
[0033]如此处使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在其中实施类型安全性并且其中各进程被分配了它们自己的不同存储器对象的受管环境中执行的情况下,这样的可执行模块可以是受管代码。在可执行模块用本机代码(如C或C++)编写的情况下,这样的可执行模块还可以是非受管代码。
[0034]在以下描述中,参照由一个或多个计算系统执行的动作描述了多个实施例。如果这种动作用软件来实现,则执行该动作的相关计算系统的一个或多个处理器响应于所执行的计算机可执行指令来引导计算系统的操作。例如,这种计算机可执行指令可以体现于形成计算机程序产品的一个或多个计算机可读介质上。这一操作的示例包括数据的操纵。计算机可执行指令(以及所操纵的数据)可以被存储于计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他处理器通信的通信信道108。
[0035]此处描述的实施例可以包括或利用专用或通用计算机,所述专用或通用计算机包括如以下进一步详细讨论的诸如例如一个或多个处理器和系统存储器这样的计算机硬件。此处描述的实施例也包括用于实现或存储计算机可执行指令和/或数据结构的物理及其他计算机可读介质。这种计算机可读介质可以使可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。实现计算机可执行指令的计算机可读介质是传输介质。因此,通过示例但非限制,本发明的实施例可以包括至少两种完全不同种类的计算机可读介质:计算机存储介质和传输介质。
[0036]计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形存储介质。
[0037]“网络”被定义为允许计算机系统和/或模块和/或其他电子设备间的电子数据传输的一个或多个数据链路。当信息通过网络或另一通信连接(或硬线、无线或者硬线或无线的组合)被传输或提供至计算机时,计算机将该连接正确地视为传输介质。传输介质可以包括可用于携带期望程序代码装置的网络和/或数据链路,所述期望程序代码装置的形式为可由通用或专用计算机访问的计算机可执行指令或数据结构。以上的组合也应被包括在计算机可读介质的范围内。
[0
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1