CN105793839B - 执行卸载 - Google Patents
执行卸载 Download PDFInfo
- Publication number
- CN105793839B CN105793839B CN201380081100.5A CN201380081100A CN105793839B CN 105793839 B CN105793839 B CN 105793839B CN 201380081100 A CN201380081100 A CN 201380081100A CN 105793839 B CN105793839 B CN 105793839B
- Authority
- CN
- China
- Prior art keywords
- instruction
- server
- computing device
- client computing
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims abstract description 79
- 230000015654 memory Effects 0.000 claims description 80
- 238000006243 chemical reaction Methods 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 38
- 238000013507 mapping Methods 0.000 claims description 23
- 238000013519 translation Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 35
- 238000007726 management method Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- FARHYDJOXLCMRP-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-1-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]pyrazol-3-yl]oxyacetic acid Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C=1C(=NN(C=1)CC(N1CC2=C(CC1)NN=N2)=O)OCC(=O)O FARHYDJOXLCMRP-UHFFFAOYSA-N 0.000 description 1
- MUTDXQJNNJYAEG-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-3-(dimethylamino)pyrazol-1-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C=1C(=NN(C=1)CC(=O)N1CC2=C(CC1)NN=N2)N(C)C MUTDXQJNNJYAEG-UHFFFAOYSA-N 0.000 description 1
- XYLOFRFPOPXJOQ-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-3-(piperazine-1-carbonyl)pyrazol-1-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound O=C(Cn1cc(c(n1)C(=O)N1CCNCC1)-c1cnc(NC2Cc3ccccc3C2)nc1)N1CCc2n[nH]nc2C1 XYLOFRFPOPXJOQ-UHFFFAOYSA-N 0.000 description 1
- QEZGRWSAUJTDEZ-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-3-(piperidine-1-carbonyl)pyrazol-1-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C=1C(=NN(C=1)CC(=O)N1CC2=C(CC1)NN=N2)C(=O)N1CCCCC1 QEZGRWSAUJTDEZ-UHFFFAOYSA-N 0.000 description 1
- PQVHMOLNSYFXIJ-UHFFFAOYSA-N 4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-1-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]pyrazole-3-carboxylic acid Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C=1C(=NN(C=1)CC(N1CC2=C(CC1)NN=N2)=O)C(=O)O PQVHMOLNSYFXIJ-UHFFFAOYSA-N 0.000 description 1
- MKYBYDHXWVHEJW-UHFFFAOYSA-N N-[1-oxo-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propan-2-yl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(C(C)NC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 MKYBYDHXWVHEJW-UHFFFAOYSA-N 0.000 description 1
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 1
- JAWMENYCRQKKJY-UHFFFAOYSA-N [3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-ylmethyl)-1-oxa-2,8-diazaspiro[4.5]dec-2-en-8-yl]-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]methanone Chemical compound N1N=NC=2CN(CCC=21)CC1=NOC2(C1)CCN(CC2)C(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F JAWMENYCRQKKJY-UHFFFAOYSA-N 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Abstract
用于将程序代码的执行从客户端计算设备卸载的技术包括:用于执行从客户端计算设备接收到的程序代码的服务器。服务器监控程序代码的执行以确定要执行的程序代码的指令是否要求系统调用。响应于确定该指令要求系统调用的执行,服务器将该指令发射至客户端计算设备用于执行。响应于由客户端计算设备对要求系统调用的执行的指令的执行,服务器从客户端计算设备接收一响应。
Description
背景
功耗、安全性、性能、特征及尺寸是不断演进的计算生态系统中的关键参数,特别是随着移动计算设备的日益增长的使用。例如,移动计算设备通常被设计成使功耗和设备/组件尺寸最小化,而同时使性能、安全性和特征最大化。随着诸如云计算这样的共享计算机制的出现,可能将执行从本地计算设备(例如,移动计算设备)卸载至远程计算设备(例如,云计算环境中的服务器)。一般而言,这种执行卸载包括将整个环境上下文从本地计算设备转移至远程计算设备以及/或者对要远程运行的应用的修改。
计算设备在应用的执行期间一般使用多个执行模式。例如,特定计算设备可具有非特权模式和特权模式,在非特权模式中,一般执行程序,在特权模式中,执行操作系统内核。为了访问系统资源或者执行硬件相关的服务(例如,访问硬盘数据),正在执行的程序使用系统调用来请求由操作系统执行相应的服务。
附图简述
此处描述的概念通过示例图示并且不限于附图中。为图示的简洁和清楚,附图中图示的元件不必要按比例绘制。在适当考虑时,在各附图之间重复用参考标记来指示相应的或类似的元件。
图1是用于将程序代码的执行从客户端计算设备卸载至服务器的系统的至少一个实施例的简化框图;
图2是图1的系统的环境的至少一个实施例的简化框图;
图3是由图1的服务器卸载程序代码的执行的方法的至少一个实施例的简化流程图;以及
图4是由图1的客户端计算设备卸载程序代码的执行的方法的至少一个实施例的简化流程图。
附图的详细描述
尽管本公开的概念可以有各种修改和替代形式,但其具体实施例已经在附图中通过示例示出并且将在此详细描述。然而应当理解,无意将本公开的概念限制于所公开的特定形式,而相反,本发明意图覆盖与本公开以及所附权利要求书一致的所有修改、等价物和替代物。
说明书中引用“一个实施例”、“一实施例”、“一说明性实施例”等等指示所述实施例可以包括一种特定的特征、结构或特性,但每一个实施例可以或可以不必要包括该特定的特征、结构或特性。此外,这种短语不必要指同一个实施例。而且,当结合一实施例描述一特定的特征、结构或特性时,可以认为本领域的技术人员知道结合其他实施例来实施这种特征、结构或特性,无论其他实施例是否明确描述。此外,应当理解,以“A、B和C中的至少一个”形式的列表中包括的项目可以意味着(A);(B);(C);(A和B);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”形式列出的项目可以意味着(A);(B);(C);(A和B);(B和C);或者(A、B和C)。
在一些情况下,所公开的实施例可以用硬件、固件、软件或者它们的任意组合来实现。所公开的实施例也可以被实现为由一个或多个暂态或非暂态机器可读(例如,计算机可读)存储介质携带或者存储的指令,该机器可读存储介质可由一个或多个处理器读取和执行。机器可读存储介质可以被体现为用于存储或发射信息的任何存储设备、机制或其他实体结构,所述信息的形式可由机器(例如,易失性或非易失性存储器、媒体光盘或其他媒体设备)读取。
在附图中,一些结构或方法特征可以以具体的排列和/或排序示出。然而应当理解,这种具体的排列和/或排序不是必需的。然而,在一些实施例中,这种特征可以以与图示附图中所示的方式和/或次序不同的方式和/或次序来排列。此外,在一特定附图中包括结构或方法特征不意味着意指这种特征在全部实施例中都是必需的,在一些实施例中,这种特征可以不被包括或者可以与其他特征组合。
现在参照图1,一种用于卸载程序代码的执行的系统100包括客户端计算设备102、网络104和服务器106。在使用中,如以下更详细描述,客户端计算设备102被配置为将程序代码(例如,应用)传送至服务器106用于程序代码的卸载执行。如果服务器106遇到应当由客户端计算设备102执行的要求系统调用的程序代码,则服务器106将指令传送至客户端计算设备102用于执行。在一些情况下,客户端计算设备102和服务器106两者都可以执行系统调用指令。
客户端计算设备102可以被体现为能够执行程序代码、通过网络104与服务器106通信、以及执行此处所述功能的任何类型的计算设备。例如,客户端计算设备102可以被体现为蜂窝电话、智能电话、平板电脑、上网本、笔记本、超级本TM、膝上型电脑、个人数字助理、移动互联网设备、台式电脑、混合设备和/或任何其他计算/通信设备。如图1所示,说明性的客户端计算设备102包括处理器110、输入/输出(“I/O”)子系统112、存储器114、数据存储器116、通信电路118、以及一个或多个外围设备120。当然,在其他实施例中,客户端计算设备102可以包括其他或附加组件,诸如在典型的计算设备(例如,各种输入/输出设备)中常见的那些组件。此外,在一些实施例中,说明性组件中的一个或多个可以被结合在另一组件内、或以其他方式形成另一组件的一部分。例如,在一些实施例中,存储器114或其部分可以被结合在处理器110中。
处理器110可以被体现为能够执行此处所述的功能的任何类型的处理器。例如,处理器可以被体现为单核或多核处理器、数字信号处理器、微控制器、或者其他处理器或处理/控制电路。类似地,存储器114可以被体现为能执行此处所述功能的任何类型的易失性或非易失性存储器或者数据存储器。在操作中,存储器114可以存储在客户端计算设备102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器114经由I/O子系统112在通信上耦合至处理器110,I/O子系统112可以被体现为用于促进与处理器110、存储器114以及客户端计算设备102的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统112可以被体现为、或以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等等)以及/或者其他用于促进输入/输出操作的组件和子系统。在一些实施例中,I/O子系统112可以形成片上系统(SoC)的一部分并且连同处理器110、存储器114以及客户端计算设备102的其他组件被结合在单个集成电路芯片上。
数据存储器116可以被体现为任何类型的设备或者被配置用于数据的短期或长期存储的设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或者其他数据存储设备。如图1所示,数据存储器116包括转换表122。转换表122映射客户端计算设备102和服务器106的本地存储器地址之间的对应关系,如以下更详细讨论。转换表122可以被存储于数据存储器116上作为任何适当的数据结构(例如,数据库)。
通信电路118可以被体现为能允许通过网络104在客户端计算设备102和其他远程设备(例如,服务器106)之间通信的任何通信电路、设备或其集合。为此,通信电路118可以根据例如网络类型、使用任何适当的通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、 WiMAX等)来实施这样的通信,所述网络可以被体现为能促进客户端计算设备102和远程设备间的通信的任何类型的通信网络。客户端计算设备102的外围设备120可以包括任何数量的附加的外围或接口设备。外围设备120中包括的特定设备可以取决于例如客户端计算设备102的类型和/或预期用途。
网络104可以被体现为能促进客户端计算设备102和服务器106之间的通信的任何类型的通信网络。如此,网络104可以包括一个或多个网络、路由器、交换机、计算机和/或其他中间设备。例如,网络104可以被体现为或以其他方式包括一个或多个局域网或广域网、公共可用全球网(例如,互联网)、蜂窝网络、电话网络、特设网络或者它们的任意组合。
服务器106可以被体现为能够执行此处所述的功能的任何类型的计算设备。例如,在一些实施例中,服务器106可以类似于上述的客户端计算设备102。也就是说,服务器106可以被体现为企业级服务器计算机、台式电脑、膝上型电脑、平板电脑、蜂窝电话、智能电话、个人数字助理、移动互联网设备、上网本、笔记本、混合设备以及/或者任何其他计算/通信设备。而且,服务器106可以包括与以上讨论的客户端计算设备102的组件类似的组件。例如,如图1的说明性实施例中所示,服务器106包括处理器150、I/O子系统152、存储器154、数据存储器156(例如,用于存储转换表162)、通信电路158以及一个或多个外围设备160。客户端计算设备102的那些组件的描述等价地应用于服务器106的相应组件的描述,为说明简洁起见在此不重复。而且,应当理解,服务器106可以包括在计算设备或服务器中常见的其他组件、子组件和设备,它们未在以上参照客户端计算设备102讨论并且为说明简洁起见而未在此讨论。转换表162可以实质上类似于以上讨论的转换表122,并且可以映射服务器106和客户端计算设备102的本地存储器地址之间的对应关系。尽管图1中示出两个转换表122、162,但在一些实施例中,单个转换表122、162被存储于客户端计算设备102或服务器106中的仅一者上(即,不在两个设备上)。
现在参照图2,在使用中,系统100的客户端计算设备102建立环境200,系统100的服务器106建立用于程序代码的卸载执行的环境250。如以下讨论的,服务器106执行自客户端计算设备102接收到的程序代码。如果程序代码的执行要求由客户端计算设备102执行系统调用(例如,以访问文件),则服务器106将该指令传送至客户端计算设备102供执行。
客户端计算设备102的说明性环境200包括代码管理模块204、系统调用执行模块206以及通信模块208。而且,说明性实施例中的服务器106的环境250包括代码执行模块252、系统调用管理模块254以及通信模块256。代码管理模块204、系统调用执行模块206、通信模块208、代码执行模块252、系统调用管理模块254以及通信模块256中的每一者可以被体现为硬件、软件、固件或者它们的组合。此外,在一些实施例中,说明性模块中的一者可以形成另一个模块的一部分(例如,代码执行模块252可以形成系统调用管理模块254的一部分)。
客户端计算设备102的代码管理模块204通过网络104将程序代码发射至服务器106供执行(例如,经由通信模块208)。程序代码可以被体现为例如一个或多个库应用文件或者用于执行应用202的其他程序代码。如以下讨论的,在说明性实施例中,程序代码被传送至服务器106供执行,而不对代码进行任何修改。响应于程序代码的接收,服务器106被配置为执行所传送的程序代码。如果服务器106确定程序代码的指令包括要求由客户端计算设备102来执行系统调用的程序代码,则服务器106将指令发射至客户端计算设备102用于执行。相应地,客户端计算设备102的代码管理模块204接收这样的指令(例如,用通信模块208)。
系统调用执行模块206执行从服务器106接收到的指令。也就是说,系统调用执行模块206执行由服务器106所确定的卸载程序代码的指令,以包括要求由客户端计算设备102进行执行的系统调用。系统调用执行模块206(即,结合通信模块208)基于系统调用的执行将响应(例如,系统调用和/或存储器映射数据的结果)传送至服务器106。此外,如以下进一步详细讨论的,系统调用执行模块206可以转换服务器106的存储器地址和客户端计算设备102的存储器地址之间的系统调用的地址、在客户端计算设备102的本地上下文(例如,在存储器114或数据存储器116中)中分配存储器、以及/或者更新转换表122(例如,基于存储器分配)。
通信模块208通过网络104处理客户端计算设备102和远程设备(例如,服务器106)之间的通信。如以上讨论的,代码管理模块204和系统调用执行模块206经由通信模块208与服务器106通信关于涉及系统调用的指令。
如图2所示,服务器106包括代码执行模块252、系统调用管理模块254和通信模块256。代码执行模块252加载和执行从客户端计算设备102接收到的程序代码供执行。此外,在一些实施例中,代码执行模块252初始化转换表162(例如,在程序代码的加载期间),转换表162在服务器106的存储器地址和客户端计算设备102的存储器地址之间转换地址。取决于所执行的程序代码的特定指令,代码执行模块252和/或系统调用管理模块254可以基于指令(例如,要求系统调用的指令)的执行来转换与系统调用相关联的地址和/或更新转换表162。
系统调用管理模块254监控程序代码(即,从客户端计算设备102接收到并且由代码执行模块252执行的程序代码)的执行,以确定要执行的程序代码的指令是否要求系统调用。在一些实施例中,系统调用管理模块254“捕获”或拦截发起系统调用的任何程序代码。如果系统调用被标识并且被确定为要求由客户端计算设备102执行,则系统调用管理模块254将指令以及相关内容/数据(若需要的话)传送至客户端计算设备102供执行(例如,经由通信模块256)。随后,系统调用管理模块254响应于要求由客户端计算设备102执行系统调用的指令的执行,从客户端计算设备102接收响应。
应当理解,特定系统调用、系统调用的类型或者要求由客户端计算设备102和/或服务器106执行的指令可以取决于特定实施例和/或卸载程序代码而变化。要求客户端计算设备102执行的系统调用可以包括例如读、写、打开、关闭、存储器分配以及其他系统调用。如图2所示,执行策略数据库258可以被存储于服务器106(即,作为适当的数据结构)上或者以其他方式可由服务器106访问(例如,存储于远程设备上并且通信网络104可访问)。在说明性的实施例中,执行策略数据库258标识要由客户端计算设备102处理的系统调用、要由服务器106处理的系统调用、以及/或者要由客户端计算设备102和服务器106两者处理的系统调用。在一些实施例中,执行策略数据库258可以自客户端计算设备102接收到、或以其他方式由客户端计算设备102更新。例如,要被存储于执行策略数据库258中的执行策略可以连同程序代码一起由客户端计算设备102传送至服务器106。这种执行策略可由例如程序代码的设计者所开发或定义。另外或替代地,执行策略可由服务器106确定或推断(例如,基于一般的系统调用)。无论如何,系统调用管理模块254将所标识的系统调用(或要求系统调用的指令)与执行策略数据库258相比较以确定如何处理每一个系统调用。也就是说,执行策略数据库258包括系统调用的列表并且标识每个系统调用要被本地处理(若有)还是远程处理(若有)。
服务器106的通信模块256可以类似于客户端计算设备102的通信模块208。也就是说,通信模块256通过网络104处理服务器106和远程设备(例如,客户端计算设备102)之间的通信。如以上讨论的,代码执行模块252和系统调用管理模块254经由通信模块256与客户端计算设备102通信关于涉及系统调用的指令。在一些实施例中,通信模块256和通信模块208在服务器106和客户端计算设备102之间建立安全通信链路用于传送与系统调用有关的指令和数据。
现在参照图3,在使用中,系统100的服务器106可以执行一种用于将程序代码的执行从客户端计算设备102卸载至服务器106的方法300。说明性方法300开始于图3的方框302,其中服务器106确定是否要卸载执行。应当理解,在一些实施例中,服务器106响应于从客户端计算设备102接收到用于执行的程序代码,而确定要卸载执行。如此,在方框304中,服务器106在方框304中从客户端计算设备102接收程序代码。如以上讨论的,程序代码可以被体现为一个或多个未修改的二进制应用文件。换言之,客户端计算设备102可以把客户端计算设备102将执行的应用文件在无修改的情况下传送至服务器106用于由服务器106进行远程执行。此外,如以上讨论的,在一些实施例中,在方框304中,服务器106可以连同程序代码一起接收执行策略,所述执行策略定义了要求由客户端计算设备102执行的系统调用。在这样的实施例中,服务器106将任何接收到的执行策略存储于执行策略数据库258中。
在方框306中,服务器106加载和执行自客户端计算设备102接收到的程序代码。这样做时,在方框308中,服务器106可以初始化一个或多个转换表,所述转换表用于存储与客户端计算设备102和服务器106的本地存储器地址之间的映射/对应关系有关的信息。在方框310中,服务器106确定要执行的下一个指令是否要求系统调用。如以上讨论的,在一些实施例中,服务器106监控程序代码的执行并且“捕获”该程序代码或在遇到系统调用时生成拦截,且服务器106的执行策略数据库258可以包括要捕获的指令或系统调用的列表。
在方框312中,如果服务器106确定指令不要求系统调用,则服务器106执行该指令。换言之,服务器106在遇到系统调用之前,继续执行自客户端计算设备102接收到的程序代码的指令。如果指令是系统调用,则在方框314中,服务器106确定该系统调用是否要求由客户端计算设备102执行。如上所指示,为了作出该确定,服务器106可以将指令或系统调用与服务器106的执行策略数据库258相比较。执行策略数据库258可以指示例如,特定类型的系统调用或指令是否要求由客户端计算设备102和/或服务器106执行。在方框316中,如果系统调用要求由客户端计算设备102执行,服务器106将要求该系统调用的指令传送至客户端计算设备102。此外,在方框318中,服务器106可以传送与系统调用的一个或多个参数相关联的数据(例如,存储于存储器154中并且由指针标识的文件名)以及/或者与该系统调用和/或相关系统调用(例如,后续系统调用)的执行有关的存储器154的其他数据/内容。例如,在一个实施例中,系统调用可以是采用两个参数的“open()”系统调用——到保持文件名的存储器位置的指针以及模式。如此处讨论的,服务器106和客户端计算设备102的每一者为文件名分配存储器并且在转换表122、162中建立指针映射。此外,在某一点处(例如,与包括系统调用的指令的传输同时),服务器106将文件名数据传送至客户端计算设备102,其中该客户端计算设备102将该文件名数据存储于适当的存储器位置(即,基于转换表122、162中存储的映射)。这样做时,客户端计算设备102能够访问与该系统调用和/或后续的相关系统调用(例如,访问同一个文件的系统调用)有关的适当文件。
随后,在方框320中,服务器106可以基于由客户端计算设备102对所传送的系统调用的执行,从客户端计算设备102接收响应。响应的内容可以根据特定实施例而变化,并且可以包括例如:与系统调用的执行有关的状态信息、基于系统调用从客户端计算设备102的内核返回的数据、基于客户端计算设备102上的存储器分配的存储器映射数据以及/或者服务器106和客户端计算设备102的存储器地址之间的映射、以及/或者与指令或系统调用有关的其他信息。在一些实施例中,客户端计算设备102可以执行系统调用,而不向服务器106提供响应。
如果服务器106在方框314中确定系统调用不要求由客户端计算设备102执行、或者在方框320中从客户端计算设备102接收到任何响应之后,方法300前进至方框322。在方框322中,服务器106确定系统调用是否要求由服务器106执行。应当理解,这一确定可以按实施例而变化。例如,在一些实施例中,服务器106可以在确定系统调用是否要求由客户端计算设备102执行的同时,确定系统调用是否要求由服务器106执行(例如,通过将系统调用或系统调用的类型与执行策略数据库258相比较)。
如果系统调用不要求由服务器106执行,则方法300返回至方310,其中,服务器106确定下一指令是否要求系统调用。也就是,服务器106在遇到另一系统调用之前执行程序代码。然而,如果系统调用要求由服务器106执行,则服务器106在方框324中执行系统调用。这样做时,服务器106可以在方框326中转换系统调用的地址。例如,如以上讨论的,系统调用可以要求由客户端计算设备102和服务器106两者来执行。相应地,服务器106可以转换系统调用的地址、或者与服务器106的存储器地址和客户端计算设备102的存储器地址之间的系统调用(例如,关于存储器分配)有关的地址。另外或替代地,服务器106可以在方框328中更新转换表162。例如,服务器106可以基于关于服务器106对系统调用的执行而发生的存储器或地址修改(例如,存储器分配),来更新转换表162。如果系统调用不要求由服务器106执行或者响应于服务器106对系统调用的执行,则方法300返回至方框310,其中服务器106确定下一指令是否要求系统调用。应当理解,在一些实施例中,方框302-328中的一者或多者可以并行执行(例如,方框314-320与方框322-328并行)或者以与图3所示的次序不同的次序执行。
现在返回图4,在使用中,系统100的客户端计算设备102可以执行方法400,方法400用于将程序代码的执行从客户端计算设备102卸载至服务器106。说明性方法400开始于图4的方框402,其中客户端计算设备102确定是否要卸载执行。如果是,则客户端计算设备102将程序代码传送至服务器106,用于在方框404中执行。如以上讨论的,在说明性实施例中不必要对程序代码作出任何修改、或者传送客户端计算设备102的上下文以便将程序代码的执行卸载至服务器106。此外,如以上讨论的,在方框404中,客户端计算设备102也可以连同程序代码一起发射执行策略,所述执行策略定义要求由客户端计算设备102执行的系统调用。
在某些时间后,这在图4中由双波浪线符号描绘,客户端计算设备102在方框406中确定是否已经从服务器106接收到系统调用。如以上讨论地,在客户端计算设备102将程序代码传送至服务器106供执行后,服务器106加载和执行该程序代码。如果服务器106捕获、或以其他方式标识要求系统调用要由客户端计算设备102执行的指令,则服务器106将指令和/或该系统调用传送至客户端计算设备102用于执行。
如此,如果客户端计算设备102从服务器106接收到系统调用供执行,则客户端计算设备102在方框408中确定该系统调用是否要求地址/存储器转换。在一些实施例中,客户端计算设备102可以基于接收到的特定系统调用,作出这样的确定(例如,通过将系统调用与数据库相比较,该数据库类似于服务器106的执行策略数据库258)。在其他实施例中,服务器106可以传送补充指令,该补充指令指示客户端计算设备102应当如何处理、执行或以其他方式处理程序代码指令或系统调用。
如果客户端计算设备102确定系统调用要求地址/存储器转换,则客户端计算设备102可以在方框410中转换系统调用的地址。例如,如以上讨论的,客户端计算设备102可以在服务器106的存储器地址和客户端计算设备102的存储器地址之间转换系统调用的地址(或与系统调用有关的地址)。在方框412中,客户端计算设备102可以在客户端计算设备102的本地上下文中分配存储器。客户端计算设备102可以在方框414中更新转换表122(例如,基于存储器分配)。例如,服务器106可以遇到要求存储器的分配的系统调用(例如,写一文件),服务器106执行该系统调用但也将其传送至客户端计算设备102供在客户端计算设备102上执行(即,存储器分配)。服务器106和客户端计算设备102两者都可以在相应的本地上下文中分配存储器。由于程序代码在服务器106上执行,因此程序代码将使用在服务器106上分配的存储器;然而,写操作是指在客户端计算设备102上写一文件。如此,客户端计算设备102和服务器106使用转换表122、162中的一者或两者以便在客户端计算设备102和服务器106的地址之间转换。此外,转换表122、162基于任何相关地址修改来更新。
在方框416中,客户端计算设备102执行从服务器106接收到的系统调用。应当理解,在一些实施例中,方框410-414的转换、分配和/或更新可以作为系统调用执行的一部分来执行。在方框418中,客户端计算设备102基于系统调用的执行将一系统调用响应传送至服务器106。如以上讨论的,响应的内容可以取决于特定实施例而变化,并且可以包括与客户端计算设备102对系统调用的执行有关的各种信息。响应于向服务器106传送响应,方法400返回至方框406,其中客户端计算设备102确定是否已经从服务器106接收到系统调用。也就是说,客户端计算设备102等待直到服务器106传送要求由客户端计算设备102执行的系统调用。
示例
以下提供了此处公开的技术的说明性示例。所述技术的一个实施例可以包括以下描述的各示例中的任一个或多个以及任意组合。
示例1包括一种用于从客户端计算设备卸载程序代码的执行的服务器,所述服务器包括代码执行模块以及系统调用管理模块,所述代码执行模块用于执行从所述客户端计算设备接收到的程序代码;所述系统调用管理模块用于:(i)监控程序代码的执行以确定要执行的程序代码的指令是否要求系统调用,(ii)响应于确定该指令要求系统调用的执行而将该指令传送至客户端计算设备、以及(iii)响应于要求由客户端计算设备执行系统调用的指令的执行,从客户端计算设备接收响应。
示例2包括示例1的主题,且其中系统调用管理模块还用于确定被确定为要求系统调用的指令是否要求由客户端计算设备执行,且其中将指令发射至客户端计算设备包括:响应于该指令要求由客户端计算设备执行的确定,将该指令传送至客户端计算设备用于执行。
示例3包括示例1和2中任一者的主题,且其中系统调用管理模块还用于响应于被确定为要求系统调用的指令不要求由客户端计算设备执行的确定,来确定该指令是否要求由服务器执行;以及代码执行模块还用于响应于被确定为要求系统调用的指令要求由服务器执行,来执行该指令。
示例4包括示例1-3中任一者的主题,且其中系统调用管理模块还用于响应于被确定为要求系统调用的指令要求由客户端计算设备执行的确定,来确定该指令是否要求由服务器执行;以及代码执行模块还用于响应于被确定为要求系统调用的指令要求由服务器执行,来执行该指令。
示例5包括示例1-4中任一者的主题,且其中加载程序代码包括初始化地址/存储器转换表,所述地址/存储器转换表在服务器的存储器地址和客户端计算设备的存储器地址之间转换地址。
示例6包括示例1-5中任一者的主题,且其中执行要求系统调用的执行的指令包括:在服务器的存储器地址和客户端计算设备的存储器地址之间转换与所述系统调用相关联的地址。
示例7包括示例1-6中任一者的主题,且其中执行要求系统调用的执行的指令包括:基于要求系统调用的指令的执行来更新转换表。
示例8包括示例1-7中任一者的主题,且其中代码执行模块进一步用于响应于要执行的指令不要求系统调用的确定来执行所述指令。
示例9包括示例1-8中任一者的主题,且还包括一通信模块,所述通信模块用于从客户端计算设备接收要由服务器执行的程序代码。
示例10包括一种用于将程序代码的执行从客户端计算设备卸载至服务器的方法,所述方法包括:由服务器加载从客户端计算设备接收到的程序代码用于执行;由服务器确定要执行的程序代码的指令是否要求系统调用;响应于确定所述指令要求系统调用的执行,将所述指令从服务器传送至客户机计算设备用于执行;以及响应于由客户端计算设备执行要求系统调用的执行的指令,由服务器从客户端计算设备接收响应。
示例11包括示例10的主题,且还包括:由服务器确定被确定为要求系统调用的指令是否要求由客户端计算设备执行,且其中将指令传送至客户端计算设备包括:响应于确定该指令要求由客户端计算设备执行,将该指令传送至客户端计算设备用于执行。
示例12包括示例10和11中任一者的主题,且还包括:响应于确定被确定为要求系统调用的指令不要求由客户端计算设备执行,由服务器确定该指令是否要求由服务器执行;以及响应于确定被确定为要求系统调用的指令要求由服务器执行,由服务器执行该指令。
示例13包括示例10-12中任一者的主题,且还包括:响应于确定被确定为要求系统调用的指令要求由客户端计算设备执行,由服务器确定该指令是否要求由服务器执行;以及响应于确定被确定为要求系统调用的指令要求由服务器执行,由服务器执行该指令。
示例14包括示例10-13中任一者的主题,且其中加载程序代码包括初始化一地址/存储器转换表,所述地址/存储器转换表在服务器的存储器地址和客户端计算设备的存储器地址之间转换地址。
示例15包括示例10-14中任一者的主题,且其中执行要求系统调用的执行的指令包括:在服务器的存储器地址和客户端计算设备的存储器地址之间转换与所述系统调用相关联的地址。
示例16包括示例10-15中任一者的主题,且其中执行要求系统调用的执行的指令包括:基于要求系统调用的指令的执行来更新转换表。
示例17包括示例10-16中任一者的主题,且进一步包括:响应于确定要执行的指令不要求系统调用而由服务器执行所述指令。
示例18包括示例10-17中任一者的主题,且还包括由服务器并且从客户端计算设备接收要由服务器执行的程序代码。
示例19包括一种计算设备,所述计算设备包括处理器和存储器,所述存储器中存储有多个指令,所述多个指令在由处理器执行时使所述计算设备执行示例10-18中任一者所述的方法。
示例20包括一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括其上存储的多个指令,所述多个指令响应于被执行而使计算设备执行示例10-18中任一者所述的方法。
示例21包括一种用于将程序代码的执行从客户端设备卸载的方法,所述计算设备包括:加载从客户端计算设备接收到的程序代码用于执行的装置;确定要执行的程序代码的指令是否要求系统调用的装置;响应于确定所述指令要求系统调用的执行,将所述指令传送至客户机设备用于执行的装置;以及响应于由客户端计算设备执行要求系统调用的执行的指令,从客户端设备接收响应的装置。
示例22包括示例21的主题,且还包括:用于确定被确定为要求系统调用的指令是否要求由客户端计算设备执行的装置,且其中将指令传送至客户端设备的装置包括:响应于确定该指令要求由客户端设备执行,将该指令传送至客户端设备用于执行的装置。
示例23包括示例21和22中任一者的主题,且还包括:响应于确定被确定为要求系统调用的指令不要求由客户端设备执行,确定该指令是否要求由服务器执行的装置;以及响应于确定被确定为要求系统调用的指令要求由服务器执行,由服务器执行该指令的装置。
示例24包括示例21-23中任一者的主题,且还包括:用于响应于确定被确定为要求系统调用的指令要求由客户端设备执行,确定该指令是否要求由服务器执行的装置;以及响应于确定被确定为要求系统调用的指令要求由服务器执行,执行所述指令的装置。
示例25包括示例21-24中任一者的主题,且其中加载程序代码的装置包括初始化一地址/存储器转换表的装置,所述地址/存储器转换表在服务器的存储器地址和客户端计算设备的存储器地址之间转换地址。
示例26包括示例21-25中任一者的主题,且其中执行要求系统调用的执行的指令的装置包括:在服务器的存储器地址和客户端计算设备的存储器地址之间转换与所述系统调用相关联的地址的装置。
示例27包括示例21-26中任一者的主题,且其中执行要求系统调用的执行的指令的装置包括:基于要求系统调用的指令的执行来更新转换表的装置。
示例28包括示例21-27中任一者的主题,且进一步包括:响应于确定要执行的指令不要求系统调用而执行所述指令的装置。
示例29包括示例21-28中任一者的主题,且还包括用于从客户端设备接收要由服务器执行的程序代码的装置。
示例30包括一种用于把程序代码的执行卸载至服务器的客户端计算设备,所述客户端计算设备包括代码管理模块和系统调用执行模块,所述代码管理模块用于(i)将所述程序代码发射至服务器用于卸载的执行,以及(ii)在由服务器执行程序代码期间接收由服务器确定的包括系统调用的程序代码的指令;所述系统调用执行模块用于执行被确定为包括系统调用的指令,其中通信模块还用于基于客户端计算设备对系统调用的执行,向服务器发射一响应。
示例31包括示例30的主题,且其中系统调用执行模块还用于(i)确定被确定为要求系统调用的接收到的指令是否要求地址/存储器转换,(ii)响应于系统调用要求地址/存储器转换的确定,在服务器的存储器地址和客户端计算设备的存储器地址之间转换系统调用的地址。
示例32包括示例30和31中任一者的主题,且其中系统调用执行模块用于(i)响应于系统调用要求地址/存储器转换的确定,在客户端计算设备的上下文中分配存储器、以及(ii)基于存储器分配来更新转换表。
示例33包括示例30-32中任一者的主题,且其中将响应发射至服务器包括将存储器映射数据发射至服务器;且存储器映射数据是基于服务器的存储器地址和客户端计算设备的存储器地址之间的映射。
示例34包括一种用于将程序代码的执行从客户端计算设备卸载至服务器的方法,所述方法包括:从客户端计算设备将程序代码发射至服务器用于卸载的执行;由客户端计算设备以及在服务器对程序代码的执行期间,接收由服务器确定为要求系统调用的程序代码的指令;由客户端计算设备执行被确定为要求系统调用的指令;以及基于客户端计算设备对系统调用的执行,将响应从客户端计算设备发射至服务器。
示例35包括示例34的主题,且还包括:由客户端计算设备确定被确定为要求系统调用的接收到的指令是否要求地址/存储器转换;以及响应于确定该系统调用要求地址/存储器转换,由客户端计算设备在服务器的存储器地址和客户端计算设备的存储器地址之间转换系统调用的地址。
示例36包括示例34和35中任一者的主题,且还包括:响应于确定系统调用要求地址/存储器转换,由客户端计算设备在客户端计算设备的本地上下文中分配存储器;以及由客户端计算设备基于存储器分配来更新转换表。
示例37包括示例34-36中任一者的主题,且其中将响应发射至服务器包括将存储器映射数据发射至服务器,其中存储器映射数据是基于服务器的存储器地址和客户端计算设备的存储器地址之间的映射。
示例38包括一种计算设备,所述计算设备包括处理器和存储器,所述存储器中存储有多个指令,所述多个指令在由处理器执行时使所述计算设备执行示例34-37中任一者所述的方法。
示例39包括一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括其上存储的多个指令,所述多个指令响应于被执行而使计算设备执行示例34-37中任一者所述的方法。
示例40包括一种用于将程序代码的执行卸载至服务器的计算设备,所述计算设备包括:用于将程序代码发射至服务器用于卸载执行的装置;用于在服务器对程序代码的执行期间接收由服务器确定为要求系统调用的程序代码的指令的装置;用于执行被确定为要求系统调用的指令的装置;以及基于计算设备对系统调用的执行向服务器发射一响应的装置。
示例41包括示例40的主题,且还包括:用于确定被确定为要求系统调用的接收到的指令是否要求地址/存储器转换的装置;以及响应于确定该系统调用要求地址/存储器转换,在服务器的存储器地址和计算设备的存储器地址之间转换系统调用的地址的装置。
示例42包括示例40和41中任一者的主题,且还包括:响应于确定系统调用要求地址/存储器转换,在客户端计算设备的本地上下文中分配存储器的装置;以及基于存储器分配来更新转换表的装置。
示例43包括示例40-42中任一者的主题,且其中将响应发射至服务器的装置包括将存储器映射数据发射至服务器的装置;且其中存储器映射数据是基于服务器的存储器地址和客户端计算设备的存储器地址之间的映射。
Claims (25)
1.一种用于从客户端计算设备卸载程序代码的执行的服务器,所述服务器包括:
代码执行模块,用于执行从所述客户端计算设备接收到的程序代码;以及
系统调用管理模块,用于(i)监控程序代码的执行以确定要执行的程序代码的指令是否要求系统调用、(ii)响应于确定所述指令要求系统调用的执行,将所述指令传送至所述客户端计算设备用于执行,以及(iii)响应于由所述客户端计算设备来执行要求系统调用的执行的指令,从所述客户端计算设备接收响应,
其中,从所述客户端计算设备接收响应包括从执行了所述系统调用的所述客户端计算设备接收所述客户端计算设备上的基于存储器分配的存储器映射数据,
且所述存储器映射数据基于所述服务器的存储器地址与所述客户端计算设备的存储器地址之间的映射。
2.如权利要求1所述的服务器,其特征在于,所述系统调用管理模块还用于确定被确定为要求系统调用的指令要求由客户端计算设备执行,以及
其中将所述指令发射至客户端计算设备包括:响应于确定所述指令要求由客户端计算设备执行,将所述指令发射至所述客户端计算设备用于执行。
3.如权利要求2所述的服务器,其特征在于:
所述系统调用管理模块还用于响应于确定被确定为要求系统调用的指令不要求由所述客户端计算设备执行,确定所述指令是否要求由所述服务器执行;以及
所述代码执行模块还用于:响应于确定被确定为要求系统调用的指令要求由所述服务器执行,执行所述指令。
4.如权利要求2所述的服务器,其特征在于:
所述系统调用管理模块还用于:响应于确定被确定为要求系统调用的指令要求由所述客户端计算设备执行,确定所述指令是否要求由所述服务器执行;以及
所述代码执行模块还用于:响应于被确定为要求系统调用的指令要求由所述服务器执行,执行所述指令。
5.如权利要求1所述的服务器,其特征在于,所述代码执行模块还用于加载程序代码,
其中,加载程序代码包括初始化地址/存储器转换表,所述地址/存储器转换表在所述服务器的存储器地址和所述客户端计算设备的存储器地址之间转换地址。
6.如权利要求1所述的服务器,其特征在于,执行要求系统调用的执行的指令包括:在所述服务器的存储器地址和所述客户端计算设备的存储器地址之间转换与所述系统调用相关联的地址。
7.如权利要求1所述的服务器,其特征在于,执行要求系统调用的执行的指令包括:基于要求所述系统调用的指令的执行来更新转换表。
8.如权利要求1所述的服务器,其特征在于,所述代码执行模块进一步用于响应于确定要执行的指令不要求系统调用来执行所述指令。
9.如权利要求1所述的服务器,其特征在于,还包括执行策略数据库,所述执行策略数据库包括用于多个系统调用中的每一个的指示,每个指示对相应的系统调用是要由所述服务器执行、或是要由所述客户端计算设备执行、或是要由所述客户端计算设备和所述服务器两者执行进行指示。
10.如权利要求9所述的服务器,其特征在于,所述系统调用管理模块还用于确定所述执行策略数据库中对应于与所述指令相关联的所述系统调用要由所述客户端计算设备和所述服务器两者执行的所述指示;并且
所述代码执行模块还用于响应于确定与所述指令相关联的所述系统调用要由所述客户端计算设备和所述服务器两者执行,来执行所述指令。
11.如权利要求1所述的服务器,其特征在于,所述系统调用是存储器分配。
12.一种用于将程序代码的执行从客户端设备卸载的计算设备,所述计算设备包括:
用于加载从所述客户端设备接收到的程序代码用于执行的装置;
用于确定要执行的所述程序代码的指令是否要求系统调用的装置;
用于响应于确定所述指令要求系统调用的执行,将所述指令传送至所述客户端设备用于执行的装置;以及
用于响应于由所述客户端设备对要求系统调用的执行的指令的执行,从所述客户端设备接收响应的装置,
其中,从所述客户端设备接收响应包括从执行了所述系统调用的所述客户端设备接收所述客户端设备上的基于存储器分配的存储器映射数据,
且所述存储器映射数据基于所述将程序代码的执行从所述客户端设备卸载的计算设备的存储器地址与所述客户端设备的存储器地址之间的映射。
13.如权利要求12所述的计算设备,还包括:用于确定被确定为要求系统调用的指令是否要求由所述客户端设备执行的装置,
其中所述用于将所述指令传送至所述客户端设备的装置包括:用于响应于确定所述指令要求由所述客户端设备执行,将所述指令传送至所述客户端设备用于执行的装置。
14.如权利要求13所述的计算设备,其特征在于,进一步包括:
用于响应于确定被确定为要求系统调用的指令不要求由所述客户端设备执行,确定所述指令是否要求由所述计算设备执行的装置;以及
用于响应于确定被确定为要求系统调用的指令要求由所述计算设备执行,执行所述指令的装置。
15.如权利要求13所述的计算设备,其特征在于,进一步包括:
用于响应于确定被确定为要求系统调用的指令要求由所述客户端设备执行,确定所述指令是否要求由所述计算设备执行的装置;以及
用于响应于确定被确定为要求系统调用的指令要求由所述计算设备执行,执行所述指令的装置。
16.如权利要求12所述的计算设备,其特征在于,所述用于加载程序代码的装置包括用于初始化地址/存储器转换表的装置,所述地址/存储器转换表在所述计算设备的存储器地址和所述客户端设备的存储器地址之间转换地址。
17.如权利要求12所述的计算设备,其特征在于,对要求系统调用的执行的指令的执行包括:在所述计算设备的存储器地址和所述客户端设备的存储器地址之间转换与所述系统调用相关联的地址。
18.一种用于将程序代码的执行从客户端计算设备卸载至服务器的方法,所述方法包括:
由所述服务器加载从所述客户端计算设备接收到的程序代码用于执行;
由所述服务器确定要执行的所述程序代码的指令是否要求系统调用;
响应于确定所述指令要求系统调用的执行,将所述指令从所述服务器传送至所述客户端计算设备用于执行;以及
响应于由所述客户端计算设备对要求系统调用的执行的指令的执行,由所述服务器从所述客户端计算设备接收响应,
其中,从所述客户端计算设备接收响应包括从执行了所述系统调用的所述客户端计算设备接收所述客户端计算设备上的基于存储器分配的存储器映射数据,
且所述存储器映射数据基于所述服务器的存储器地址与所述客户端计算设备的存储器地址之间的映射。
19.如权利要求18所述的方法,还包括:由所述服务器确定被确定为要求系统调用的指令是否要求由所述客户端计算设备执行,
其中将所述指令传送至所述客户端计算设备包括:响应于确定所述指令要求由所述客户端计算设备执行,将所述指令传送至所述客户端计算设备用于执行。
20.如权利要求19所述的方法,其特征在于,进一步包括:
响应于确定被确定为要求系统调用的指令不要求由所述客户端计算设备执行,由所述服务器确定所述指令是否要求由所述服务器执行;以及
响应于确定被确定为要求系统调用的指令要求由所述服务器执行,由所述服务器执行所述指令。
21.如权利要求19所述的方法,其特征在于,进一步包括:
响应于确定被确定为要求系统调用的指令要求由所述客户端计算设备执行,由所述服务器确定所述指令是否要求由所述服务器执行;以及
响应于确定被确定为要求系统调用的指令要求由所述服务器执行,由所述服务器执行所述指令。
22.如权利要求18所述的方法,其特征在于,加载程序代码包括初始化地址/存储器转换表,所述地址/存储器转换表在所述服务器的存储器地址和所述客户端计算设备的存储器地址之间转换地址。
23.如权利要求18所述的方法,其特征在于,执行要求系统调用的执行的指令包括:在所述服务器的存储器地址和所述客户端计算设备的存储器地址之间转换与所述系统调用相关联的地址。
24.一种存储指令的机器可读存储介质,当所述指令由所述机器执行时,使所述机器执行如权利要求18-23中任一项所述的方法。
25.一种计算系统,包括多个装置以用于分别执行如权利要求18-23中任一项所述的方法中的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/077199 WO2015094366A1 (en) | 2013-12-20 | 2013-12-20 | Execution offloading |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105793839A CN105793839A (zh) | 2016-07-20 |
CN105793839B true CN105793839B (zh) | 2019-08-06 |
Family
ID=53403446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380081100.5A Expired - Fee Related CN105793839B (zh) | 2013-12-20 | 2013-12-20 | 执行卸载 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160292009A1 (zh) |
EP (1) | EP3084622A4 (zh) |
JP (1) | JP6404347B2 (zh) |
CN (1) | CN105793839B (zh) |
WO (1) | WO2015094366A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10305976B2 (en) * | 2015-09-21 | 2019-05-28 | Intel Corporation | Method and apparatus for dynamically offloading execution of machine code in an application to a virtual machine |
US10355916B2 (en) * | 2016-09-27 | 2019-07-16 | Mcafee, Llc | Survivable networks that use opportunistic devices to offload services |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US10394604B2 (en) * | 2017-03-15 | 2019-08-27 | Samsung Electronics Co., Ltd. | Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
US11030013B2 (en) * | 2018-10-15 | 2021-06-08 | Verizon Patent and Licensing lnc. | Systems and methods for splitting processing between device resources and cloud resources |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509561A (zh) * | 2001-05-15 | 2004-06-30 | ��˹��ŵ�� | 环境敏感的Web服务 |
CN102109997A (zh) * | 2009-12-26 | 2011-06-29 | 英特尔公司 | 通过利用虚拟OpenCL设备作为与计算云的接口来加速OpenCL应用 |
CN102891871A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 一种虚拟终端系统及实现方法 |
CN103279445A (zh) * | 2012-09-26 | 2013-09-04 | 上海中科高等研究院 | 运算任务的计算方法及超算系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0221354A (ja) * | 1988-07-11 | 1990-01-24 | Nec Corp | コンピュータネットワークシステムにおける遠隔機能実行方式 |
US5430876A (en) * | 1989-06-27 | 1995-07-04 | Digital Equipment Corporation | Remote procedure callback system and method |
US6516342B1 (en) * | 1998-07-17 | 2003-02-04 | International Business Machines Corporation | Method and apparatus for extending memory using a memory server |
US20020029285A1 (en) * | 2000-05-26 | 2002-03-07 | Henry Collins | Adapting graphical data, processing activity to changing network conditions |
US6721943B2 (en) * | 2001-03-30 | 2004-04-13 | Intel Corporation | Compile-time memory coalescing for dynamic arrays |
US6990662B2 (en) * | 2001-10-31 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Method and system for offloading execution and resources for resource-constrained networked devices |
US7000154B1 (en) * | 2001-11-28 | 2006-02-14 | Intel Corporation | System and method for fault detection and recovery |
US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
US8065690B2 (en) * | 2005-12-01 | 2011-11-22 | Cisco Technology, Inc. | Method and system for event-based remote procedure call implementation in a distributed computing system |
JP2007220086A (ja) * | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
US7966039B2 (en) * | 2007-02-02 | 2011-06-21 | Microsoft Corporation | Bidirectional dynamic offloading of tasks between a host and a mobile device |
US8108466B2 (en) * | 2008-05-01 | 2012-01-31 | Microsoft Corporation | Automated offloading of user-defined functions to a high performance computing system |
US8572251B2 (en) * | 2008-11-26 | 2013-10-29 | Microsoft Corporation | Hardware acceleration for remote desktop protocol |
US8458466B2 (en) * | 2008-12-22 | 2013-06-04 | International Business Machines Corporation | System and method for handling cross-platform system call in a hybrid system |
JP2011076513A (ja) * | 2009-10-01 | 2011-04-14 | Olympus Corp | 分散処理システム |
EP2354980A1 (en) * | 2010-02-04 | 2011-08-10 | ST-Ericsson SA | Management of communications between a client equipment and a server equipment providing to the client equipment computer resources represented according to a file system |
US8793309B2 (en) * | 2010-09-07 | 2014-07-29 | Sap Ag (Th) | Systems and methods for the efficient exchange of hierarchical data |
US9645866B2 (en) * | 2010-09-20 | 2017-05-09 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
KR101331897B1 (ko) * | 2011-12-15 | 2013-11-21 | 숭실대학교산학협력단 | 모바일 디바이스 어플리케이션의 동적 오프로딩 장치 및 방법 |
US9110917B2 (en) * | 2013-01-11 | 2015-08-18 | Red Hat, Inc. | Creating a file descriptor independent of an open operation |
EP2979193B1 (en) * | 2013-03-28 | 2021-04-28 | Hewlett Packard Enterprise Development LP | Shared memory system |
-
2013
- 2013-12-20 WO PCT/US2013/077199 patent/WO2015094366A1/en active Application Filing
- 2013-12-20 EP EP13899806.7A patent/EP3084622A4/en not_active Ceased
- 2013-12-20 JP JP2016529456A patent/JP6404347B2/ja not_active Expired - Fee Related
- 2013-12-20 US US15/037,440 patent/US20160292009A1/en not_active Abandoned
- 2013-12-20 CN CN201380081100.5A patent/CN105793839B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509561A (zh) * | 2001-05-15 | 2004-06-30 | ��˹��ŵ�� | 环境敏感的Web服务 |
CN102109997A (zh) * | 2009-12-26 | 2011-06-29 | 英特尔公司 | 通过利用虚拟OpenCL设备作为与计算云的接口来加速OpenCL应用 |
CN102891871A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 一种虚拟终端系统及实现方法 |
CN103279445A (zh) * | 2012-09-26 | 2013-09-04 | 上海中科高等研究院 | 运算任务的计算方法及超算系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3084622A1 (en) | 2016-10-26 |
JP6404347B2 (ja) | 2018-10-10 |
JP2017504088A (ja) | 2017-02-02 |
CN105793839A (zh) | 2016-07-20 |
EP3084622A4 (en) | 2018-02-28 |
US20160292009A1 (en) | 2016-10-06 |
WO2015094366A1 (en) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105793839B (zh) | 执行卸载 | |
Varghese et al. | Challenges and opportunities in edge computing | |
EP2342628B1 (en) | Integration of an internal cloud infrastructure with existing enterprise services and systems | |
AU2010236932B2 (en) | Cloud computing for an industrial automation and manufacturing system | |
US20220391260A1 (en) | Method and Apparatus for Creating Container, Device, Medium, and Program Product | |
US9760415B2 (en) | Code service for language-independent dispatch | |
CN106464535A (zh) | 用于在虚拟化网络中管理能力的方法和系统 | |
CN109391649A (zh) | 页面加载的方法、装置和系统 | |
CN105022832B (zh) | App应用程序安全下载的方法、移动终端及下载服务器 | |
CN109921986A (zh) | 一种多协议数据接入方法、装置、智能网关及存储介质 | |
KR20210036226A (ko) | 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법 | |
CN105024839B (zh) | 一种软件版本升级的方法及装置 | |
US20210209469A1 (en) | Techniques to manage training or trained models for deep learning applications | |
CN109669787A (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN101356503B (zh) | 数据处理系统和数据处理方法 | |
US20200326998A1 (en) | Two-way clipboard exchange in virtual console | |
CN106856441A (zh) | Nfvo中的vim选择方法和装置 | |
US20230018149A1 (en) | Systems and methods for code generation for a plurality of architectures | |
CN103685066A (zh) | 一种动态分布式调度方法和系统 | |
CN107508787A (zh) | 一种任务执行方法、装置及系统 | |
CN112948118B (zh) | 边缘计算方法、平台、计算机设备和可读存储介质 | |
CN109948994A (zh) | 一种即时通信方法、装置、计算机系统及可读存储介质 | |
CN103856531A (zh) | 一种基于多协作者的局域网下载装置及方法 | |
CN110300131B (zh) | 风电场的多重服务的路由方法、装置和设备及系统 | |
CN115277750B (zh) | 一种多系统智能座舱通信组件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190806 |
|
CF01 | Termination of patent right due to non-payment of annual fee |