通过通信网络连接的操作系统间存储器服务的制作方法

文档序号:28320289发布日期:2022-01-04 22:23阅读:100来源:国知局
通过通信网络连接的操作系统间存储器服务1.相关申请2.本技术要求于2019年5月28日提交的且题为“通过通信网络连接的操作系统间存储器服务”的美国专利申请序列号16/424,411的优先权,所述美国专利申请的全部公开内容特此以引用的方式并入本文中。
技术领域
:3.本文所公开的至少一些实施例涉及由操作系统提供的存储器服务。
背景技术
::4.在一些计算机系统中,操作系统允许应用程序使用存储器的虚拟地址来将数据存储在计算机系统的一或多个存储器子系统的存储器组件中或从计算机系统的一或多个存储器子系统的存储器组件中检索数据。操作系统定义连接到计算机系统的中央处理单元(cpu)和/或图形处理单元(gpu)和/或片上系统(soc)的一或多个存储器子系统的虚拟存储器地址与物理存储器地址之间的映射。此种映射可以通过使用页表来定义。页表条目指定虚拟存储器页的虚拟存储器地址集合与物理存储器页的对应的物理存储器地址集合之间的映射。页表可以用于通过将虚拟存储器地址转译成存储器子系统的对应的物理存储器地址来实施针对虚拟存储器地址请求的存储器存取。5.计算机处理器可以具有被配置成根据由操作系统所定义的页表执行将虚拟存储器地址转译成物理存储器地址的存储器管理单元(mmu)。存储器管理单元(mmu)可以具有被配置成高速缓存最近使用的页表条目的转译后备缓冲器(tlb)。存储器管理单元(mmu)可以执行其它存储器相关任务,如高速缓存控制和/或存储器保护。6.通常,计算机中用于存储器的虚拟地址空间可以划分为预定大小的页。虚拟存储器的页由虚拟存储器地址的集合表示;虚拟存储器地址可以映射到存储器子系统中的物理存储器的页的物理存储器地址;页表条目定义虚拟存储器的页与物理存储器的页之间的地址映射。7.在一些计算机系统中,操作系统可以使用分页技术以通过存储器模块中的存储器的页对存储装置或存储器装置中的数据的页进行存取。在不同的时间实例处,存储器模块中的存储器的同一页可以用作代理服务器来对存储装置或存储器装置或计算机系统中的另一个存储装置或存储器装置中的存储器的不同页进行存取。8.远程直接存储器存取(rdma)是一种允许在不涉及所涉及的计算机的操作系统中的任何操作系统的情况下(例如,在为了协商和设置用于rdma操作的存储器资源而执行操作系统之后)进行从一台计算机到另一台计算机的直接存储器存取的技术。在rdma操作(例如,读取或写入)之前,执行命令以通过一或多个联网装置在两台计算机之间建立存储器映射。当在计算机上运行的应用程序执行rdma操作时,直接在计算机网络上传递应用程序数据,从而减少延迟并且实现快速数据传送。rdma使用网络适配器向应用程序存储器或从应用程序存储器传送数据,从而消除了在应用程序存储器与操作系统中的数据缓冲器之间复制数据的需要。附图说明9.在附图的图中通过实例而非限制的方式展示了实施例,在附图中,相同的附图标记指示类似的元件。10.图1示出了一种系统,其中计算装置或服务器计算机可以从另一个计算装置和/或另一台服务器计算机借入存储器和/或将存储器出租给另一个计算装置和/或另一台服务器计算机。11.图2展示了根据一个实施例的通过通信网络连接实施操作系统间存储器服务的承租方装置和出租方装置。12.图3展示了根据一个实施例的使用借入存储器的技术。13.图4展示了根据一个实施例的物理存储器区域的用于促进对不同的借入存储器区域的存取的用途。14.图5展示了根据一个实施例的物理存储器区域的用于促进对不同的借入存储器区域的存取的另一个用途。15.图6展示了计算系统中的承租方‑出租方存储器层次结构。16.图7示出了用于通过通信网络连接实施操作系统间存储器服务的方法。17.图8示出了根据一个实施例的用于为借入存储器的页提供服务的方法。具体实施方式18.本文所公开的至少一些实施例提供了通过通信网络连接的操作系统间存储器服务的技术,使得承租方装置可以通过使用通信链路和出租方装置的存储器来扩展所述承租方装置的存储器容量。承租方装置和/或出租方装置的操作系统可以被配置成无缝地桥接通信链路之上的间隙,使得在承租方装置上运行的应用程序可以无区别地使用所述承租方装置的本地存储器和借入存储器。本地存储器物理地安装在承租方装置中;并且借入存储器物理地安装在通过通信连接连接到承租方装置的出租方装置中。19.任选地,承租方装置中的借入存储器和/或本地存储器的一部分可以通过计算机网络借出给另一个装置。承租方装置可以具有多个出租方装置。因此,承租方‑出租方装置层次结构可以形成于装置之间的通信链路的层次结构上。20.承租方装置的操作系统可以使用虚拟存储器到物理存储器的映射来桥接本地存储器与借入存储器的差异。例如,承租方装置的操作系统可以响应于承租方装置的转译后备缓冲器(tlb)中的可能导致页错误的判定的未命中而操纵页表条目(pte),以在通过通信链路对借入存储器进行存取时使用承租方装置的本地存储器的一部分作为孔(aperture)、代理服务器和/或高速缓存。出租方装置和承租方装置之间的高速缓存一致性可以放宽以提高带宽利用率。由于本地存储器与借入存储器区域之间的差异被承租方装置的操作系统屏蔽免于在承租方装置上运行的应用程序的干扰,因此在承租方装置上运行的应用程序可以以与对配置在承租方装置中的本地随机存取存储器进行存取相同的方式对借入存储器进行字节存取。21.操作系统的存储器服务可以用于在多个操作系统通过非相干通信链路共享的统一地址空间下在计算机系统中构建多级字节可寻址存储器。例如,可穿戴计算装置可以通过个域网或局域网从移动计算装置借入存储器。可穿戴计算装置可以是智能手表、运动跟踪装置或智能眼镜,并且移动计算装置可以是智能电话、触摸板计算机或笔记本计算机等。可穿戴计算装置和/或移动计算装置可以通过局域网从计算器件借入存储器。例如,计算器件可以是袖珍服务器、台式计算机、存储器器件或存储器件等。移动计算装置和/或计算器件可以通过互联网和/或通过云计算从服务器计算机或服务器场借入存储器。22.在存储器资源的出租方‑承租方的多级层次结构中,每个随后的较高层级装置(例如,移动计算装置、计算器件、服务器计算机或服务器场)都可以使用其存储器容量来按需增加较低层级装置(例如,可穿戴计算装置、移动计算装置、计算器件)和/或相同层级的装置的存储器容量。iot装置将构成环境,如建筑材料(混凝土墙、道路等)。可能是低密度但体积大的廉价存储器技术将允许以非常低的成本在构造中集成低密度存储器(以及进行计算)。因此,将会使某种“存储器物质”(或可能是计算物质)作为任何装置都可以使用的环境的一部分。23.任选地,可以跳过层次结构中的某些层级,这取决于某些装置和/或网络连接的可用性。例如,可穿戴计算装置可以在不通过移动计算装置的情况下从计算器件借入存储器;并且移动计算装置可以在不通过局域网中的计算器件的情况下通过互联网从服务器计算机或服务器场借入存储器。24.在器件层级和云层级处,可以提供存储器资源作为具有存储器即服务(maas)的实用程序。此种布置可以按需提供具有巨大持久性存储器容量和存储资源的低层级计算装置,如可穿戴计算装置、移动计算装置和/或物联网的计算装置。在低层级计算装置上运行的应用程序可以使用由操作系统所提供的存储器服务以透明的方式使用借入存储器,就如同借入存储器是承租方装置的本地存储器的一部分一样。因此,在应用程序中不需要进行专用编程来使用借入存储器。25.在承租方装置上运行的应用程序可以使用借入存储器来持久地存储数据,并且因此消除或减少对用于通过文件系统存储数据的操作的需要。例如,出租方器件/服务器可以提供持久性随机存取存储器或存储容量,以向承租方装置提供存储器资源并管理存储在所提供的存储器资源中的数据的持久性和/或冗余性,使得借入存储器可以被视为承租方装置中的虚拟非易失性随机存取存储器。26.任选地,作为服务提供的存储器可以包含客户端/承租方、加锁机制、超时机制等之间的存储器页共享的语义。27.作为一个实例,电话可以作为承租方装置通过无线局域网(wlan)(例如,通过家庭wi‑fi接入点促进)从充当出租方装置的存储器器件获得8万亿字节(tb)的可观察存储器。在电话的操作系统下运行的应用程序可以与在具有8tb的本地存储器的电话上运行的应用程序相同的方式观察到8tb的存储器。可替代地,电话可以通过蜂窝通信网络从被配置为出租方装置的服务器或云计算基础设施获得8tb的可观察存储器。任选地,电话可以从存储器器件借入8tb的可观察存储器的一部分并且可以从服务器或云计算基础设施借入8tb可观察存储器的一部分。即使电话可能仅具有8兆字节(mb)的物理本地存储器,也可以通过电话的操作系统使8tb的可观察存储器可虚拟地在电话上使用,使得在电话上运行的应用程序可以使用虚拟/远程存储器。8tb的借入存储器将电话的存储器容量耗费到超过8tb;并且对于在具有借入存储器的电话上运行的应用程序来说,所述电话的存储器容量似乎与具有多于8tb的本地随机存取存储器的电话相同。28.由于承租方装置在借入存储器时通常不会立即使用借入存储器,因此出租方装置不必在存储器借入时阻止分配借出给借入装置的存储器。出租方装置可以实施存储器的精简配置(例如,精简配置存储器),并且响应于承租方装置而使用增加量的借入存储器量来递增地分配存储器。29.在承租方装置的操作系统下运行的应用程序可以按需读取和写入从出租方装置借入的存储器页。出租方装置中的物理页分配和/或承租方装置中的对应的分配可以被配置成响应于对页的写入操作来执行。承租方装置的本地存储器的一部分在对借入页进行存取时可以被配置为高速缓存、代理服务器和/或孔。当在承租方装置上运行的应用程序对虚拟页进行存取时,承租方装置的操作系统可以将存取的虚拟页的内容迁移到本地存储器。当本地存储器页在一段时间内未被存取和/或要用于托管另一个页的内容时,承租方装置的操作系统可以将本地存储器中的虚拟页的内容驱逐或迁移到出租方装置上的借入存储器。任选地,承租方装置的操作系统可以使用承租方装置的本地随机存取存储器的一部分作为用于关键数据的快速缓冲器,并且使用物理地驻留在远程出租方装置中的借入存储器来保持不太重要的数据。当需要时,可以将不太重要的数据和/或不太频繁使用的数据迁移到承租方装置的本地随机存取存储器。30.通常,层次结构中的较低层级装置的出租方装置本身可以是承租方‑出租方装置层次结构中的较高层级的承租方装置。例如,电话作为承租方装置可以从作为出租方装置的存储器器件借入8tb的存储器。存储器器件作为承租方装置可以从服务器借入4tb的存储器,并且将从服务器借入的4tb的存储器和4tb的所述存储器器件的本地存储器合并为借出给电话的8tb的存储器。在一些实施方案中,从服务器借入的4tb的存储器可以由电话标识出,使得当电话与器件之间的连接不可用时,电话可以使用到服务器的替代性连接在不通过存储器器件的情况下继续使用4tb的存储器。然而,由于存储器器件可能比远程服务器更紧密靠近电话,因此替代性连接可能比到所述器件的连接慢。31.出租方装置的操作系统和承租方装置的操作系统可以彼此进行通信,以促进跨出租方装置与承租方装置之间的通信链路进行无缝存储器存取。因此,在承租方装置上运行的应用程序开始使用存储器之前,没有必要在出租方装置中预分配物理存储器。随着在承租方装置上运行的应用程序的占用空间增加,页驱逐流量和出租方装置存储器可用性判定出借入存储器的使用量的大小。消除对针对应用程序在出租方装置中预分配物理存储器的需求(例如,如在rdma协议的情况下所需要的)排除了专用编程(例如,通过rdma的消息传递接口(mpi))的必要性并且允许应用程序在不同配置的装置中以所述装置的原始代码、但就像所述装置在rdma等情况下那样利用横向扩展应用程序容量的所有益处来运行。32.通常,出租方装置可以被配置成针对特定的承租方装置以被动模式或主动模式进行操作。出租方装置可以针对不同的承租方装置以不同的模式进行操作。33.在被动模式下,出租方装置的操作系统观察由承租方装置的操作系统通过链路高速缓存或迁移的存储器页并且相应地修改所述操作系统自身的与这些页相对应的页表条目。例如,出租方操作系统对页移动进行的观察可以通过总线窥探或硬件监测来进行。34.承租方装置的操作系统被配置成维护用于承租方装置的本地存储器和物理地驻留在出租方装置中的借入存储器的页表。通常,当借入存储器的页正在由在承租方装置上运行的应用程序进行存取时,所述页的内容当前可以存储或可以不存储在承租方装置的本地存储器的页中。35.当承租方装置对承租方装置的本地存储器中不存在的页进行存取时,页错误发生。出于目的,认为页错误在以下两种情况下发生:1)存取的页根本不存在;和2)存取的页存在,但不在本地存储器中。36.如果页不存在,则所述页从未被写入或读取。不存在针对所述页的页表条目(pte)。这是所述页第一次被存取。如果对此种页执行的是读取操作,则没有必要分配实际页。一些操作系统(例如,linux)可以提供用零填充的假页,因为所述页从未被写入并且因此不含任何数据。因此,对此种页执行读取操作得到的结果为零。在这种情况下,os会针对这种页错误执行处理程序:tlb未命中会导致页走步,这判定出对没有pte的页执行了读取操作。因此,返回了到零页的映射。37.如果第一次对页执行的是写入操作,则所述页为真错误。真错误会导致本地存储器中的新的pte和页分配。针对这种情况的页错误处理程序的实例:tlb未命中会导致页走步,这判定出对没有pte的页执行了写入操作。因此,操作系统分配新的页、生成pte并将pte安装在页表中。在pte高速缓存在tlb中后,错误得到解决。38.当页错误在对借入页进行存取时发生并且页的内容当前不在承租方装置的本地存储器中时(例如,在借入页的内容已经迁移/驱逐到出租方装置之后),承租方装置的操作系统可以通过承租方装置与出租方装置之间的通信链路与出租方装置进行通信以检索或迁移借入页的内容。39.高速缓存操作可以与上文讨论的两种情况中的处理结合来执行。例如,出租方装置可以保留页副本。如果承租方装置不进一步修改页(例如,仅对页执行读取操作),则所述副本可能是有用的。在此种情形下,因为页的真实副本已经存在于出租方装置上,所以不需要驱逐。类似地,当承租方装置与出租方装置之间的通信链路可自由使用时,承租方装置可以执行对页的投机驱逐。40.任选地,出租方装置和/或承租方装置可以配置有使在出租方装置与承租方装置之间迁移内容的操作加速的固件/硬件。41.任选地,出租方装置的操作系统可以被配置成维护和操作其自身的页表集合和相关联资源,如页表巡行器(pagetablewalker)、转译后备缓冲器(tlb)、内容可寻址存储器(cam)、查找表等。42.出租方装置的操作系统监测来自从出租方装置借入存储器的承租方装置中的任何承租方装置的存储器存取请求。所述操作系统可以被配置成提供承租方装置之间的页共享的语义(例如,原子学、锁定器、信号量、标志、超时设定等)。因此,借入存储器的地址空间会根据出租方装置中的页表在承租方装置之间进行统一。分布式应用程序可以通过与在不同的承租方装置上运行的不同的实例应用程序通过出租方装置共享借入存储器来利用统一的地址空间。43.任选地,出租方装置可以被配置成接受来自承租方装置的请求,以产生关于借出给承租方装置的存储器的某些区域的计算结果。因此,出租方装置不仅提供存储器资源,而且提供用于处理借出给承租方装置的存储器中的数据的计算能力。44.由承租方装置和出租方装置的操作系统所提供的存储器服务允许在出租方装置上运行的应用程序在错误按页粒度得到解决的情况下按字节粒度寻址借入存储器。45.承租方装置的操作系统可以通过承租方装置与出租方装置之间的通信链路将页从本地存储器驱逐或迁移到出租方装置。承租方装置的操作系统可以基于以下来标识用于从承租方装置的本地随机存取存储器驱逐或迁移到所述承租方装置的借入存储器的页:所述页不频繁使用和/或所述页相较于其它页最近使用较少或关键度或任何其它可能的可测量系统参数。承租方装置的操作系统可以决定驱逐或迁移借入页以释放本地存储器用于其它用途,如用于新的本地页分配或用于页从出租方装置的迁移。作为这种方法的结果,当前的页拥有者(承租方或出租方)拥有所述页的真实副本。其它装置可能仍然会高速缓存所述页,以防在拥有者释放所述页之后,页仍然没有得到修改。例如,当承租方从出租方得到页时,出租方不再具有所述页。然而,出租方可以不删除页副本,而是保留所述页副本:如果页在驱逐时未经修改,则将没有必要通过链路将所述页传送回到出租方。假使出租方也想要修改所述页或将所述页提供给其它出租方会怎么样?在这种情况下,所有写入都必须在出租方上发生,以便将来自不同承租方的写入请求合并。46.为了驱逐或迁移页,承租方装置的操作系统将页的内容传送到出租方装置,从而使得出租方装置将所述页存储在出租方装置的存储器中。承租方装置的操作系统然后可以更新页表,以指示所述页现在位于出租方装置中并且不位于承租方装置的本地存储器中。47.在主动模式下,出租方装置的操作系统可以被配置成:监测承租方装置上的页表;标识未使用的页;并且将所述未使用的页重新目的化用于其它存储器用户。48.出租方装置与承租方装置之间的交互可以通过虚拟化来实施,这允许出租方装置监测承租方装置中的页表使用量。49.例如,承租方装置的操作系统可以为了出租方装置的操作系统中的操作而部分地被虚拟化。承租方装置的操作系统的存储器管理代码/子例程中的一些存储器管理代码/子例程可以通过虚拟化被配置成在出租方装置上运行和/或被配置为出租方装置的操作系统的一部分。在此种实施方案中,承租方装置的操作系统可以将存储器存取请求扩展到出租方装置的操作系统以执行可以在出租方装置的操作系统的层级处被硬件/固件加速的此类子例程。50.例如,出租方装置的操作系统可以创建虚拟存储器装置并且将所述虚拟存储器装置提供给承租方装置。承租方装置可以按需请求所述虚拟存储器装置并且使所述虚拟存储器装置可用于为在承租方装置上运行的应用程序的存储器资源需求提供服务。51.在一些实例中,如果在承租方装置上运行的应用程序可以容忍或接受由承租方装置与出租方装置之间的通信链路引起的延迟,则可以在无需将整个页迁移到出租方的情况下直接通过通信链路进行对借入页的存取。在其它实施方案中,内容迁移可以被配置在子页层级处;并且仅迁移正在被存取和/或预测要被存取的页的一部分。任选地,操作系统可以在实施直接存储器存取时使用远程直接存储器存取(rdma)技术。任选地,此种直接存储器存取可以在存储器控制器和/或存储器管理单元处实施,并且因此避免了标准rdma协议和所述协议的开销。52.在一些实施方案中,承租方装置的操作系统被配置成动态地调整虚拟存储器页的物理位置。虚拟存储器的页由所述页的虚拟存储器地址指定。虚拟存储器页可以初始地位于承租方装置的本地存储器中,随后移动到由出租方装置借出给承租方装置的存储器,并且随后移动到承租方装置的另一个本地页。53.为了将虚拟页从出租方装置迁移到承租方装置,承租方装置从出租方装置获取页的内容,将所述内容存储在所述承租方装置的本地存储器中,并且更新相关页表以建立本地物理页与虚拟页之间的映射。一旦虚拟页迁移到承租方装置,出租方装置就可以释放先前用于虚拟页的物理存储器和/或擦除存储在那里的数据。任选地,出租方装置的操作系统可以保留先前用于虚拟页的页,并且将所述页的内容作为虚拟页的备份副本保留。54.在反转方向上,承租方装置的操作系统可以将虚拟页从承租方装置迁移到出租方装置。例如,承租方装置的操作系统可以请求在出租方装置中分配借入页,并且传输虚拟页的内容以将所述内容存储在出租方装置上的借入存储器中。一旦虚拟页的内容存储在出租方装置上,承租方装置的操作系统就可以针对虚拟页更新所述承租方装置的页表,以标识虚拟页与所述虚拟页在借入存储器中的物理位置之间的映射,以完成页到出租方装置的迁移。在迁移虚拟页之后,先前用于托管虚拟页的本地存储器可以用于托管另一个虚拟页。在此种实施方案中,没有必要静态地将虚拟存储器或虚拟存储器地址空间的预定部分映射到出租方装置中的借入存储器。55.此外,虚拟页不必托管在预定的出租方装置中。例如,承租方装置的操作系统可以将虚拟页从第一出租方装置迁移到承租方装置,并且然后将虚拟页从承租方装置迁移到第二出租方装置。在一些实例中,承租方装置的操作系统可以请求在无需将虚拟页的内容下载到承租方装置并且然后将这个内容上传到第二出租方装置的情况下将所述页从第一出租方装置迁移到第二出租方装置。56.使用存储器即服务(maas)的技术,移动装置供应商可以出售在操作系统层级处的存储器容量为万亿字节的移动装置,这将由包含云计算基础设施在内的出租方装置上的新兴存储器提供支持。例如,当智能电话连接到计算机网络或互联网或实施本文所描述的maas概念的本地存储器器件或任何其它装置时,配置有128mb的本地存储器的所述电话中的应用程序可以存取64tb的随机存取存储器。57.图1示出了一种系统,其中计算装置或服务器计算机可以从另一个计算装置和/或另一台服务器计算机借入存储器和/或将存储器出租给另一个计算装置和/或另一台服务器计算机。58.图1展示了作为通过计算机网络和/或互联网(109)连接的承租方装置和出租方装置的计算装置(101和103)和服务器计算机(105和107)的实例,所述计算机网络和/或互联网可以包含蜂窝通信网络,如第五代蜂窝网络。59.计算装置(101和103)中的每个计算装置和服务器计算机(105和107)中的每个服务器计算机可以从另一个装置借入存储器和/或将存储器出租给另一个装置。计算装置(101和103)中的每个计算装置和服务器计算机(105和107)中的每个服务器计算机可以具有一或多个通信装置(例如,117、137、157和177)以建立与彼此或系统中的另一个计算装置或服务器计算机的一或多个通信链路。计算装置(101和103)中的每个计算装置和服务器计算机(105和107)中的每个服务器计算机可以具有被配置成执行指令如操作系统(例如,113、133、153和173)的指令以及在操作系统下运行的应用程序或程序的一或多个处理器(例如,115、135、155和175)。60.计算装置(101和103)中的每个计算装置和服务器计算机(105和107)中的每个服务器计算机可以具有(例如,通过存储器总线)耦接到相应处理器(例如,115、135、155和175)的本地随机存取存储器(例如,111、131、151和171)。61.在一些实例中,装置a(101)或装置b(103)可以是可穿戴计算装置、物联网的计算装置、移动计算装置等。62.在一些实例中,服务器p(105)或服务器q(107)可以是袖珍服务器、个人计算机、存储器器件、存储器件、网络存储装置、服务器计算机、服务器场等。63.在一个实例中,装置a(101)可以使用有线连接、无线个域网(wpan)、无线局域网(wlan)和/或无线广域网(wwan)连接到装置b(105)、服务器p(105)和/或服务器q(107)。64.在另一个实例中,装置b(105)可以使用有线连接、无线局域网(wlan)和/或无线广域网(wwan)连接到服务器p(105)和/或服务器q(107)。65.在另一个实例中,服务器p(105)可以使用有线连接、局域网、无线局域网(wlan)、无线广域网(wwan)和/或互联网连接到服务器q(107)。66.服务器p(105)可以从服务器q(107)借入存储器,并且将借入存储器和/或本地存储器出租给装置(101和103)(和/或类似装置)。装置b(103)可以从服务器p(105)和/或服务器q(107)借入存储器,并且将借入存储器和/或本地存储器出租给装置a(101)(和/或类似装置)。67.通常,计算装置可以将存储器借出给一或多个承租方装置并且从一或多个出租方装置借入存储器。68.操作系统(113、133、157和173)被配置成向应用程序和程序提供存储器服务,使得应用程序和程序可以在不知道虚拟存储器的物理分配的情况下使用所述虚拟存储器,使得这个虚拟存储器可以部分地分配在借入存储器中并且部分地分配在本地存储器(111、131、151和171)中。操作系统和支持硬件承担了应用程序和程序用管理虚拟存储器分配的负担,这为应用程序和程序提供了便利,使其不必具有被设计成处理本地存储器分配与借入存储器分配的差异的专用代码段或指定的指令。69.在一个实例中,服务器q(107)的本地存储器(171)的一部分借出给服务器p(105)。服务器p(105)将借入存储器的一部分和/或所述服务器p的本地存储器(151)的一部分借出给装置b(103),所述装置b进而将所述装置b的借入存储器的一部分和/或所述装置b的本地存储器(131)的一部分借出给装置a(101)。因此,由操作系统(113)分配给在装置a(101)的处理器(115)上运行的应用程序的虚拟存储器可以部分地驻留在装置a(101)的本地存储器(111)中、部分地驻留在装置b(103)的本地存储器(131)中、部分地驻留在服务器p(105)的本地存储器(151)中和/或部分地驻留在服务器q(107)的本地存储器(171)中。操作系统(113、133、157和173)被配置成彼此协作以提供存储器服务和/或由应用程序所使用的虚拟存储器在各个装置的本地存储器(例如,111、131、151和/或171)之间的物理分配,使得被编程为在装置a和所述装置a的本地存储器(101)上运行的应用程序也可以在所述应用程序的虚拟存储器部分地分配在由装置b(103)、服务器p(105)和/或服务器q(107)借出给装置a(101)的借入存储器(131、151和/或171)中的情况下不加修改地运行。70.图2展示了通过通信网络连接,如通过局域网、广域网和/或如第五代蜂窝网络等蜂窝通信网络的有线或无线连接(205)来实施操作系统间存储器服务的承租方装置(201)和出租方装置(203)。71.在图2中,承租方装置(201)从出租方装置(203)借入存储器;并且出租方装置(203)将存储器(202)借出给承租方装置(201)。例如,承租方装置(201)可以是图1的系统中的装置a(101)、装置b(103)或服务器p(105);并且出租方装置(203)可以是图1的系统中的装置b(103)、服务器p(105)或服务器p(105)。进一步地,出租方装置功能可以在承租方装置(201)中实施,使得所述出租方装置能够将存储器借出给另一个装置。类似地,承租方装置功能可以在出租方装置(203)中实施,使得所述承租方装置能够从另一个装置借入存储器。72.在图2中,承租方装置(201)具有通信装置(217)、具有存储器管理单元(mmu)(216)的一或多个处理器(215)以及本地随机存取存储器(211)。在一些实施例中,处理器(215)和本地存储器(211)可以在单独的计算机芯片中和/或形成于单独的集成电路管芯上,并且在其它实施例中,可以封装在同一计算机芯片中和/或形成于同一集成电路管芯上(例如,在片上系统(soc)中)。73.承租方装置(201)的操作系统(213)包含被配置成维护存储器映射(207)的存储器服务模块(209)。存储器映射(207)标识虚拟存储器与物理存储器之间的映射,其中物理存储器可以部分地位于承租方装置(201)中的本地存储器(211)中并且部分位于出租方装置(203)中的借出存储器(202)中。操作系统(213)向在承租方装置(201)上运行的一或多个应用程序(例如,212)提供虚拟存储器服务。处理器(215)可以通过执行应用程序代码(212)的指令来运行应用程序(212)。应用程序存储器读取和写入指令可以使用虚拟存储器。存储器管理单元(mmu)(216)根据存储器映射(207)将虚拟存储器地址转译成物理存储器地址。74.当承租方装置(201)从出租方装置(203)借入存储器时,借入存储器(204)虚拟地位于承租方装置(201)中并且所述借入存储器物理地位于出租方装置(203)中作为本地随机存取存储器(231)中的借出存储器(202)。任选地,出租方装置(203)可以将借出存储器(202)的一部分或整个所述借出存储器配置在通过外围总线和/或装置控制器耦接到出租方装置(203)的处理器(235)的存储装置(234)中。例如,出租方装置(203)的操作系统(233)可以将所述出租方装置的存储器资源的一部分作为虚拟存储器以类似于将存储器资源作为虚拟存储器分配给在出租方装置(203)上运行的应用程序(例如,232)的方式分配给承租方装置(201)的操作系统(213)。因此,由承租方装置(201)的操作系统(213)所使用的借入存储器(204)可以位于统一的虚拟存储器地址空间中作为由应用程序(232)所使用的虚拟存储器和/或由出租方装置(203)的其它承租方所使用的借入存储器。可替代地,出租方装置(203)的操作系统(233)可以针对借入存储器(204)创建虚拟存储器组件;并且承租方装置(201)的操作系统(213)可以使承租方装置(201)中的虚拟存储器组件可存取。用于虚拟存储器组件的虚拟存储器控制器可以在操作系统(213)中实施以对承租方装置(201)可存取的虚拟存储器组件进行存取。mmu216可以实施硬件块以加速虚拟存储器控制器,并且通过这样做,可以提高虚拟存储器组件存取的速度。75.在一些实例中,借入存储器(204)是隐式的,使得所述借入存储器与在承租方装置201上运行的应用程序的虚拟存储器的其余部分不能区别开来。区别仅在通过读取存储器映射207来将虚拟页地址转译为物理地址时才显现,并且在所述转译时,所述物理地址似乎位于借出存储器202中。在其它实例中,如果虚拟存储器属于出租方装置(203)所提供的借入存储器(204),则操作系统(213)存储所述虚拟存储器的部分的显式标识。在所有情况下,操作系统213将存储器映射(207)配置成对出租方装置(203)进行存取以从作为物理地位于出租方装置(203)中的借出存储器(202)中或在迁移到承租方装置(201)之后位于所述装置中的借入存储器(204)的虚拟存储器读取和向所述虚拟存储器写入。76.存储器映射(207)可以通过页表来实施。页表的一部分高速缓存在存储器管理单元(mmu)(216)中,使得当在处理器(215)中执行的指令对高速缓存在存储器管理单元(mmu)(216)中的页表的一部分中所定义的虚拟地址进行存取时,存储器管理单元(mmu)(216)将虚拟地址转译成物理地址。成功的地址转译允许处理器(215)在无需执行操作系统(213)的代码的情况下继续进行存储器存取。77.当存储器管理单元(mmu)(216)无法使用高速缓存在存储器管理单元(mmu)(216)中的页表成功地转译虚拟存储器地址时,页表条目高速缓存未命中生成,这使得处理器(215)执行操作系统(213)的存储器服务(209)的指令来解决这个高速缓存未命中。在一些实施方案中,mmu含有被架构化成解决mmu(216)的高速缓存中的页表条目高速缓存未命中的硬件ip。这个ip作为mmu的一部分从存储在物理存储器211中的页表中提取所需的页表条目。如果所需的条目不存在,或者如果所需的条目存在,但所述条目将虚拟页地址转译为物理借出存储器202中的地址,则会生成针对这个页的页错误。这个错误可以由mmu216和通信装置217直接在硬件中进行解决。可替代地,这个错误可以由操作系统213和存储器服务209在由以下硬件块辅助的软件中进行解决:mmu216、处理器215、通信装置217。78.当操作系统(213)的存储器服务(209)或mmu216确定正在被存取的虚拟存储器地址位于借入存储器(204)中时,存储器服务(209)或mmu216可以分配本地物理存储器211的物理页,通过通信装置217和237和计算机网络连接205与出租方装置(203)进行通信以将借入存储器(204)的页从物理借出存储器202迁移到物理本地存储器211中,生成将虚拟页映射到分配的本地物理页的页表条目,并将所述页表条目加载到存储器管理单元(mmu)(216)中。因此,在页错误之前,借入存储器(204)的虚拟页物理地位于出租方装置(203)中的借出存储器(202)中。在处理页错误之后,虚拟页位于本地存储器中(211)。出租方装置203的借出存储器202中的页的内容仍可以保存以供将来使用和用于其它目的。79.当不存在可用于迁移的空闲本地页时,存储器服务(209)可以将当前位于本地存储器(211)中的所选择的虚拟页驱逐到借出存储器(202)。当将所选择的虚拟页驱逐到出租方装置(203)时,存储器服务(209)与出租方装置(203)进行通信以将虚拟页的内容从本地存储器(211)传输到借出存储器(202),并且更新存储器映射(207)。在将所述虚拟页从本地存储器(211)驱逐之后,本地存储器(211)中用于所驱逐的虚拟页的空间可以得到释放。80.例如,存储器服务(209)可以被配置成驱逐最不频繁使用的虚拟页或最近最少使用的虚拟页。81.在图2中,出租方装置(203)具有通信装置(237)、具有存储器管理单元(mmu)(236)的一或多个处理器(235)以及本地随机存取存储器(231)。任选地,出租方装置(203)包含通过外围总线和/或计算机网络连接到处理器(235)的一或多个存储装置(234)。例如,存储装置(234)可以是固态驱动器(ssd)或硬盘驱动器(hd)。82.出租方装置(203)的操作系统(233)包含被配置成维护存储器映射(227)的存储器服务模块(229)。存储器映射(227)标识虚拟存储器与物理存储器之间的映射。存储器映射可以存储在存储器231中或专用于所述存储器映射的存储器,如内容可寻址存储器或专用高速缓存。操作系统(233)以类似于承租方装置(201)向所述承租方装置的应用程序(212)提供服务的方式向在出租方装置(203)上运行的一或多个应用程序(232)提供虚拟存储器服务。83.任选地,出租方装置(203)在统一的虚拟存储器空间中向承租方装置(201)提供借出存储器(202)。承租方装置(201)的存储器服务(209)以与应用程序(232)使用由存储器服务(229)所提供的虚拟存储器相同的方式使用借入存储器(204)。例如,出租方装置(203)的存储器服务(229)可以向在出租方装置(203)上运行的应用程序(232)分配虚拟存储器,并且将虚拟存储器分配作为由承租方装置(201)的存储器服务(209)所使用的借入存储器(204),就如同存储器服务(209)是在出租方装置上运行的应用程序一样。因此,在出租方装置(203)上运行的应用程序(232)和承租方装置(201)(和从出租方装置(203)借入存储器的其它装置)可以在统一的虚拟地址空间中进行操作。协作计算可以基于统一的虚拟地址空间来配置。进一步地,当出租方装置(203)从另一个装置/服务器(例如,105或107)借入存储器时,借入存储器也可以提供在统一的虚拟地址空间中。统一的地址空间可以促进计算装置之间的数据共享和协作计算。84.出租方装置(203)的存储器服务(229)可以维护存储器映射(227),所述存储器映射包含与由借入装置(201)所存取的借入存储器(204)相对应的借出存储器(202)的虚拟地址与借出存储器(202)的物理地址之间的映射。例如,由承租方装置(201)在对借入页进行存取时标识出的虚拟页的页表条目可以加载到存储器管理单元(mmu)(236)中,以促进虚拟页的地址与借出存储器(202)的物理地址之间的转译,以供出租方装置(203)的处理器代表承租方装置(201)执行计算。任选地,出租方装置(203)可以包含类似于存储器管理单元(236)的硬件,以使用标识承租方装置(201)已知的借入存储器(204)与出租方装置(203)中可物理存取的借出存储器(202)之间的映射的存储器映射(227)促进出租方装置(203)与承租方装置(201)之间的数据传送得以优化和/或加速。85.图3展示了根据一个实施例的实施借入存储器的技术。例如,图3的技术可以在图2中所展示的承租方装置(201)中实施。86.图3展示了存储器(211)、被配置成使用物理地址(例如,257)对存储器(211)进行存取的存储器管理单元(mmu)(216)以及定义虚拟地址区域(例如,261、263、265、……)与虚拟存储器区域映射到的地址区域如物理地址区域(例如,281、283、……)与借入存储器区域(例如,273、275、……)之间的映射的存储器映射(207)。87.例如,借入存储器地址区域(例如,273、……、275)可以被配置成将由出租方装置(203)所分配的虚拟地址区域标识为提供/借出给借入装置(201)的存储器。88.例如,虚拟地址区域a(261)在存储器映射(207)中与物理地址区域(281)相关联,以指示虚拟存储器的区域当前直接映射到本地物理存储器(211)的对应的区域。89.例如,虚拟地址区域b(263)在存储器映射(207)中与借入存储器地址区域x(273)和物理地址区域s(283)相关联,以指示虚拟地址区域b(263)映射到借入存储器地址区域x(273)并且物理地驻留在物理地址区域s(283)中。因此,对虚拟地址区域b(263)的存取可以通过对本地存储器(211)中的物理地址区域s(283)进行存取来实现。虚拟地址区域c(265)在存储器映射(207)中与借入存储器地址区域y(275)相关联并且在存储器映射(207)中不与任何物理地址区域相关联。因此,为了对虚拟地址区域c(265)进行存取,承租方装置需要与出租方装置进行通信。90.物理地址区域s(283)中的内容可以驱逐到出租方装置以释放物理地址区域s(283)。一旦物理地址区域s(283)得到释放,所述物理地址区域可以用于另一个借入存储器地址区域如借入存储器地址区域y(275)的物理放置。一旦借入存储器地址区域y(275)的内容从出租方装置迁移到承租方装置到达物理地址区域s(283),物理地址区域s(283)可以用于提供对如图4所展示的映射到统一的地址空间的借入存储器地址区域y(275)并且物理地位于承租方装置的物理地址区域s(283)中的虚拟地址区域c(265)的存取。91.在图5中,存储器管理单元(mmu)(例如,类似于图3中所展示的216)具有可以存储虚拟存储器到物理存储器的映射(253)(例如,由承租方装置(201)的操作系统(213)维护的存储器映射(207)的一部分)的转译后备缓冲器(tlb)(例如,类似于图3中所展示的251)。当承租方装置(201)的处理器(215)执行使用虚拟地址(255)的指令时,tlb(251)使用虚拟存储器到物理存储器的映射(253)来将虚拟地址(255)转译成物理地址(257);并且存储器管理单元(mmu)(216)可以使用物理地址(257)(例如,通过存储器总线)对存储器(211)中的存储器页(259)进行存取。92.加载在tlb(251)中的虚拟存储器到物理存储器的映射(253)通常是由承租方装置(201)的操作系统(213)管理的存储器映射(207)的一部分。当承租方装置(201)的处理器(215)执行使用在tlb(251)中的虚拟存储器到物理存储器的映射(253)中未覆盖的虚拟地址的指令时,存储器管理单元(mmu)(216)可以使处理器(215)执行操作系统(213),所述操作系统被编程为替换tlb(251)中的虚拟存储器到物理存储器的映射(253)的一部分,使得tlb(251)中的经过更新的虚拟存储器到物理存储器的映射(253)包含用于将虚拟地址(例如,255)转译为物理地址(例如,257)的数据。93.存储器管理单元(mmu)(216)通常被配置成通过耦接在承租方装置(201)的存储器管理单元(mmu)(216)与承租方装置(201)的本地存储器(211)之间的存储器总线对存储器(211)进行存取。当虚拟地址(255)初始地位于映射到借入存储器地址区域(例如,275)的虚拟地址区域(例如,265)中时,操作系统(213)可以将这个区域的内容从出租方装置的借出存储器迁移到存储器(211)中的物理地址区域(例如,283),并且更新tlb(251)中的虚拟存储器到物理存储器的映射(253)以允许在不将虚拟地址(255)转译为借入存储器地址区域(例如,275)的情况下直接将所述虚拟地址转译成与虚拟地址(255)相对应的物理地址(257)。94.在一些实施例中,存储器管理单元(mmu)(216)被进一步配置成在没有显式迁移的情况下通过计算机网络连接(例如,205)使用通信装置(217)对借入存储器(204)进行存取。在此种情形下,对于操作系统(213)来说没有必要迁移虚拟地址区域(例如,265)的内容。借入存储器(204)的物理地址(257)可以包含用于通信装置(217)对出租方装置(203)中的借出存储器(202)中的存储器页(260)进行存取的信息。使用物理地址(257)并通过通信装置(217)做出的存储器存取请求可以在出租方装置(203)中通过所述出租方装置的操作系统(233)进行处理。可替代地,通信装置(237)和/或存储器管理单元(mms)(236)可以被配置成在不执行操作系统(233)的情况下(例如,基于高速缓存在出租方装置(203)的mms(236)的tlb中的虚拟存储器到物理存储器的映射或配置在出租方装置(203)中用于执行类似操作的硬件加速组件)处理对借出存储器(202)的此种存取请求(例如,以进行读取或写入)。95.虚拟存储器到物理存储器的映射(253)可以以页表条目的形式实施。96.图6展示了计算系统中的承租方‑出租方存储器层次结构。97.在图6中,出租方装置(203)可以以类似于图2中承租方装置(201)从出租方装置(203)借入存储器的方式从一或多个出租方服务器(245)借入存储器。出租方装置(203)至少将所述出租方装置的本地物理存储器(例如,图2中所展示的231)中的一些本地物理存储器和/或所述出租方装置从出租方服务器(例如,245)借入的存储器中的一些存储器汇集作为可用存储器(239)以借出给承租方装置(201)。一或多个承租方装置(201)可以从出租方装置(203)借入存储器。98.典型的承租方存储器(204)可以具有多个借入存储器区域(295、297、……、299)和多个本地存储器区域(291、293、……)。承租方装置(201)中的借入存储器区域(295、297、……、299)可以通过从出租方装置的借出存储器到承租方装置的本地存储器区域(291、293、……)的迁移来进行存取。当借入存储器区域(295、297、……、299)没有在承租方装置(201)中使用时,可以将所述借入存储器区域驱逐回到出租方装置(203),如图4和图5中所展示的。99.类似地,出租方装置(203)可以将借出给承租方装置(201)的区域(例如,299)托管在所述承租方装置的本地存储器或从出租方服务器(245)借入的本地存储器中。100.通常,多于一个出租方装置(203)可以用于向承租方装置(201)提供存储器服务;并且多于一个出租方服务器(245)可以被配置在层次结构中。101.任选地,层次结构中作为服务提供的存储器(例如,295、297、……、299)被配置在统一的虚拟地址空间中。因此,承租方装置(201)、出租方装置(203)和出租方服务器(245)可以通过参考统一的虚拟地址空间中的虚拟地址来协作处理存储器中的数据。102.例如,图6中的承租方装置(201)可以是图1的系统中的装置a(101)或装置b(103)。103.例如,图6中的出租方装置(203)可以是图1的系统中的装置b(103)或服务器p(105)。104.例如,图6中的出租方服务器(245)可以是图1的系统中的服务器p(105)或服务器q(107)。105.图7示出了用于通过通信网络连接实施操作系统间存储器服务的方法。例如,图7的方法可以用图2中所展示的承租方‑出租方配置和/或图6中所展示的承租方‑出租方存储器层次结构在图1的系统中实施。106.在框301处,建立从承租方装置(201)到出租方装置(203)的通信连接(205)。107.在框303处,承租方装置(201)与出租方装置(203)进行通信以从出租方装置(203)借入一定量的存储器。出租方装置(203)可以将由承租方装置(201)借入的借出存储器(203)分配为可由借入存储器(204)用作虚拟存储器的借入存储器(204)。通过借入/借出存储器,装置(201和203)建立一种配置,其中承租方装置(201)的处理器可以读取借入存储器(204)/借出存储器(202)和/或写入到所述借入存储器/所述借出存储器中。在一些实例中,借出存储器(202)本身是从另一个出租方装置(例如,245)借入的存储器。108.在框305处,承租方装置(201)的操作系统(213)扩展承租方装置(201)的虚拟/逻辑地址空间以覆盖借入存储器(204)。在处理器(215)承租方装置(201)上运行的应用程序(例如,212)可以在没有对借入存储器(204)和本地存储器(211)进行区别的情况下使用空间中的虚拟地址。109.在框307处,承租方装置(201)的操作系统(213)生成将逻辑地址空间的扩展部分映射到借入存储器(204)的存储器映射(207)(例如,以页表的形式)。110.在框309处,承租方装置(201)的操作系统(213)向应用程序(212)分配逻辑地址空间的扩展部分。111.在框311处,承租方装置(201)的操作系统(213)通过对承租方装置(201)的物理存储器(211)的一部分进行存取来为对借入存储器(212)进行的存取提供服务。112.图8示出了根据一个实施例的用于为借入存储器的页提供服务的方法。例如,图8的方法可以用图2中所展示的承租方‑出租方配置和/或图6中所展示的承租方‑出租方存储器层次结构在图1的系统中实施。例如,图8的方法可以用于实施图7的方法的框311。113.在框331处,承租方装置(201)针对借入存储器页(204)保留承租方装置(201)的物理存储器(211)的页。114.在框333处,承租方装置(201)的处理器存取与借入存储器(204)中的存储器页(260)相对应的虚拟存储器地址(255)。借入存储器页(204)可以物理地位于出租方装置(203)的借出存储器(202)中。115.在框335处,承租方装置(201)的存储器管理单元(mmu)(216)确定在转译后备缓冲器(tlb)(251)中没有可用的页表条目以将虚拟存储器地址(255)转译为本地物理存储器地址。此种确定(例如,tlb未命中)导致承租方装置(201)运行所述承租方装置的操作系统(213)以在存储器映射中搜索页表条目。116.在框337处,在承租方装置(201)上运行的操作系统(213)在存储器映射中标识将页的虚拟存储器地址转译为所述页的借入存储器地址的页表条目。117.在框339处,在承租方装置(201)上运行的操作系统(213)与出租方装置进行通信,并且将具有借入存储器地址的借入页的物理内容迁移到本地存储器,并且将所述内容放置在本地存储器的可用物理地址处。当没有足够的本地存储器用于将借入页从出租方装置迁移到承租方装置时,可能需要对不同的借入页执行从承租方装置到出租方装置的借入页驱逐。118.在框341处,在承租方装置(201)上运行的操作系统(213)生成将借入页的虚拟地址(例如,255)映射到本地存储器中的物理地址(257)的页表条目。119.在框343处,在承租方装置(201)上运行的操作系统(213)将页表条目加载到转译后备缓冲器(tlb)(251)中,这允许处理器使用经过转译的物理存储器地址(257)继续存取虚拟存储器地址(255)。120.通常,上文所讨论的装置或服务器中的每个装置或服务器(例如,101、103、105、107、201、203)可以被实施为一或多个数据处理系统。121.典型的数据处理系统可以包含互连件(例如,总线和系统核心逻辑),所述互连件将微处理器和存储器互连。微处理器也可以具有片上高速缓存层次结构。122.互连件将微处理器和存储器互连在一起并且还通过输入/输出(i/o)控制器将所述微处理器和所述存储器互连到i/o装置。i/o装置可以包含显示装置和/或外围装置,如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机和本领域已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,i/o装置中的一些i/o装置如打印机、扫描仪、鼠标和/或键盘是任选的。123.互连件可以包含通过各种桥接器、控制器和/或适配器彼此连接的一或多个总线。在一个实施例中,i/o控制器包含用于控制usb(通用串行总线)外围设备的usb适配器和/或用于控制ieee‑1394外围设备的ieee‑1394总线适配器。124.存储器可以包含以下中的一或多个:rom(只读存储器)、易失性ram(随机存取存储器)和非易失性存储器,如硬盘驱动器、闪存等。125.易失性ram通常实施为动态ram(dram),所述dram持续需要电力以刷新或维护存储器中的数据。非易失性存储器通常是磁性硬盘驱动器、磁性光学驱动器、光学驱动器(例如,dvdram)、闪存、3d交叉点或即使在电力从系统移除后仍维护数据的其它类型的存储器系统。非易失性存储器也可以是随机存取存储器。126.非易失性存储器可以是直接耦接到数据处理系统中的其余组件的本地装置。也可以使用远离系统的非易失性存储器,如通过网络接口如调制解调器或以太网接口耦接到数据处理系统的网络存储装置。127.在本公开中,为了简化描述,一些功能和操作被描述为由软件代码执行或由软件代码导致。然而,此类表达也用于指定功能是因如微处理器或sos(片上系统)的任何ip块等处理器执行代码/指令而产生的。128.可替代地或组合地,可以在有或没有软件指令的情况下使用专用电路系统如使用专用集成电路(asic)或现场可编程门阵列(fpga)实施如本文所描述的功能和操作。可以在没有软件指令的情况下使用硬连线电路系统或与软件指令组合地实施实施例。因此,所述技术既不限于硬件电路系统和软件的任何具体组合,也不限于由数据处理系统执行的指令的任何特定源。129.尽管一个实施例可以在功能完备的计算机和计算机系统中实施,但是各个实施例能够以各种形式作为计算产品分布,并且无论用于实际影响分布的特定类型的机器或计算机可读媒体如何,所述各个实施例均能够应用。130.所公开的至少一些方面可以至少部分地在软件中体现。也就是说,可以响应于计算机系统或其它数据处理系统的处理器如微处理器执行如rom、易失性ram、非易失性存储器、高速缓存或远程存储装置等存储器中含有的指令序列在计算机系统或其它数据处理系统中执行技术。131.为实施实施例而执行的例程可以实施为操作系统或者特定的应用程序、组件、程序、对象、模块或被称为“计算机程序”的指令序列的一部分。计算机程序通常包含一或多个指令,所述一或多个指令在计算机中的各个存储器和存储装置中在各个时间设置并且当由计算机中的一或多个处理器读取和执行时使计算机执行执行涉及各个方面的元件所必需的操作。132.机器可读媒体可以用于存储软件和数据,当由数据处理系统执行时,所述软件和数据使系统执行各种方法。可执行软件和数据可以存储在各个地方,包含例如rom、易失性ram、非易失性存储器和/或高速缓存。此软件和/或数据的各部分可以存储在这些存储装置中的任何一个存储装置中。进一步地,可以从集中式服务器或对等网络获得数据和指令。可以在不同的时间并且在不同的通信会话中或在同一通信会话中从不同的集中式服务器和/或对等网络获得数据和指令的不同部分。可以在执行应用程序之前整体获得数据和指令。可替代地,可以在执行需要时及时动态地获取数据和指令的各部分。因此,数据和指令不需要在特定时间的实例处整体上处于机器可读媒体上。133.计算机可读媒体的实例包含但不限于非易失性、可记录和非可记录类型媒体,如易失性和非易失性存储器装置、只读存储器(rom)、随机存取存储器(ram)、闪存装置、软盘和其它可移除盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(cdrom)、数字多功能盘(dvd)等)等等。计算机可读媒体可以存储指令。134.指令还可以体现在用于电、光学、声学或其它形式的传播信号如载波、红外信号、数字信号等的数字和模拟通信链路中。然而,如载波、红外信号、数字信号等传播信号不是有形的机器可读媒体并且未被配置成存储指令。135.通常,机器可读媒体包含以机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)可存取的形式提供(即,存储和/或传输)信息的任何机构。136.在各个实施例中,硬接线电路系统可以与软件指令组合使用以实施所述技术。因此,所述技术既不限于硬件电路系统与软件的任何具体组合,也不限于用于由数据处理系统执行的指令的任何特定源。137.以上描述和附图是说明性的并且不应被解释为限制性的。描述了许多具体细节以提供透彻理解。然而,在某些情况下,未对公知的或常规的细节进行描述,以避免模糊所述描述。在本公开中对一个(one/an)实施例的引用不一定是对相同实施例的引用;并且,此类引用意指至少一个。138.在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开。将显而易见的是,在不脱离如以下权利要求中阐述的更广泛的精神和范围的情况下,可以对本公开进行各种修改。因此,说明书和附图应被视为说明性意义的,而不是限制性意义的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1