CN101627377A - 从操作系统中抽象出操作环境 - Google Patents

从操作系统中抽象出操作环境 Download PDF

Info

Publication number
CN101627377A
CN101627377A CN200880007594A CN200880007594A CN101627377A CN 101627377 A CN101627377 A CN 101627377A CN 200880007594 A CN200880007594 A CN 200880007594A CN 200880007594 A CN200880007594 A CN 200880007594A CN 101627377 A CN101627377 A CN 101627377A
Authority
CN
China
Prior art keywords
operating system
environment
abstraction
operating environment
operating
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.)
Granted
Application number
CN200880007594A
Other languages
English (en)
Other versions
CN101627377B (zh
Inventor
C·W·布鲁密
S·E·特洛布里奇
E·帕佩夫斯塔蒂洛
R·E·安德斯
A·库普萨米
G·C·亨特
E·D·拉德尔
E·D·特里布尔
R·潘德雅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101627377A publication Critical patent/CN101627377A/zh
Application granted granted Critical
Publication of CN101627377B publication Critical patent/CN101627377B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于从在操作环境中运行的操作系统中抽象出该操作环境的方法、系统和计算机程序产品。在操作环境中,操作环境抽象层抽象出操作环境资源并向操作系统展示这些操作环境资源。因此,适当配置的操作环境抽象层向操作系统提供到跨各种不同操作环境的可用资源的统一接口。每一个操作环境抽象层和操作系统都包括可调整算法,该算法可基于所展示的操作环境资源来调整以便适当地向作出请求的应用程序提供服务。抽象层可被配置成分析并变为完全知道其操作环境,包括标识其他抽象层的存在。操作系统及对应的抽象层能够以特权和非特权处理器模式的灵活组合运行。

Description

从操作系统中抽象出操作环境
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其它电子设备以形成计算机系统和其它电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
为了执行典型的计算任务,操作系统接收命令(或者从应用程序或者从用户)并将这些命令转发给适当的物理资源。这些物理资源进而实现较低级操作以执行计算任务。
大多数操作系统被设计成执行一般工作负载。然而,许多应用程序具有通用操作系统无法有效地服务的特殊要求。例如,多核处理器可能需要通用操作系统通常不支持的专用并发软件。然而,由于设备驱动程序、应用程序的大量遗留以及与许多通用操作系统相关联的有经验的开发者,用包括各种专用功能的专用操作系统来替换现有通用操作系统通常是不切实际的。
此外,在许多计算环境中,在操作系统和硬件之间存在一对一的主存关系。即,操作系统被设计成在一组特定硬件(例如,特定处理器架构)上运行。由于该对应关系,操作系统通常限于在为其设计的硬件上运行而无法在其他非对应硬件上运行。此外,大多数操作系统通常需要对系统的物理资源的完全控制。由此,难以在同一计算机系统上同时运行多个操作系统(例如,专用操作系统和通用操作系统)。
然而,某些环境的确准许一组硬件同时运行一兼容的操作系统的多个实例,或甚至不同的兼容的操作系统的各个实例。由此,该计算机系统能够利用不同操作系统的更多有利的功能来方便服务器合并、系统管理、不可信应用程序的隔离(沙箱化)等。
例如,虚拟化是用于模拟硬件功能以允许操作系统的多个实例在同一物理资源上运行的技术。通过使用虚拟化,虚拟机能够为每一个操作系统创建其拥有该计算机系统的物理资源(例如,CPU、存储器、存储、网络栈等)的幻觉。这些虚拟机多路复用多个操作系统实例和物理资源之间的通信以促进该幻觉。因此,虚拟化允许多个操作系统实例在极少(如果有的话)修改的情况下共享物理资源。然而,虚拟化也至少部分地由于操作系统实例和物理资源之间的间接层次而引入了性能开销。
此外,虚拟机通常不向操作系统实例指示其对物理资源的访问已被虚拟化。由此,在虚拟化环境中,操作系统实例通常不知道其正在通过虚拟机且并非直接与物理资源交互。另外,通常不保证虚拟机将在一对一的基础上映射到物理资源。通过抽象,物理资源功能的各部分可变得对操作系统实例不可用。由此,阻止了操作系统实例使用物理资源功能,即使这一功能可使该操作系统实例受益。
此外,虚拟化通常将操作系统实例彼此隔离开。由此,在大多数虚拟化环境中,  (同一或不同操作系统的)不同操作系统实例彼此不知道或甚至不知道其他操作系统正在运行。因此,虽然可利用不同操作系统的个别功能,但阻止了操作系统实例协同行动以执行计算任务。
简要概述
本发明涉及用于从在操作环境中运行的操作系统中抽象出该操作环境的方法、系统和计算机程序产品。本发明的各实施例包括可在各种不同的底层操作环境之上运行的操作系统。在操作环境中,操作环境抽象层抽象出操作环境资源并向操作系统展示这些操作环境资源。因此,适当配置的操作环境抽象层向操作系统提供到跨各种不同操作环境的可用资源的统一接口。该操作环境抽象层和操作系统包括可调整算法,该算法可基于所展示的操作环境资源来调整以便适当地向作出请求的应用程序提供服务。
在某些实施例中,执行操作系统功能。操作环境抽象层检测底层操作环境的可用操作环境资源。该底层操作环境可以是例如,计算机系统硬件、系统管理程序或甚至另一操作系统。该操作环境抽象层基于检测到的操作环境资源中所表示的功能来调整用于向作出请求的操作系统提供操作环境资源的抽象算法。
操作环境抽象层向操作系统展示所检测到的底层操作环境的操作环境资源以便向该操作系统标识所检测到的该底层操作环境的操作环境资源。由此,例如,操作环境抽象层可向另一操作系统(在该操作环境抽象层之上运行)展示一个操作系统(提供底层操作环境)的资源。
该操作系统基于向该操作系统展示的检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法。操作系统接收对操作系统服务的应用程序请求。该操作系统根据经调整的服务算法和经调整的抽象算法,通过专用接口来与操作环境抽象层接口以实现对于作出请求的应用程序的操作系统服务。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对下文中所述的本发明的实践来获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1A示出方便从操作系统中抽象出操作环境的示例计算机体系结构。
图1B示出描绘对从其操作环境中抽象出的操作系统的服务调用的执行流程的示例计算机体系结构。
图2A-2C示出从操作系统中抽象出不同操作环境的示例计算机体系结构。
图3A-3D示出跨不同处理器模式的从操作系统中抽象出不同操作环境的示例计算机体系结构。
图4示出用于执行操作系统功能的示例方法的流程图。
图5示出用于处理异步操作的中断模型中的示例上下文信息流。
详细描述
本发明涉及用于从在操作环境中运行的操作系统中抽象出该操作环境的方法、系统和计算机程序产品。本发明的各实施例包括可在各种不同的底层操作环境之上运行的操作系统。在操作环境中,操作环境抽象层抽象出操作环境资源并向操作系统展示这些操作环境资源。因此,适当配置的操作环境抽象层向操作系统提供到跨各种不同操作环境的可用资源的统一接口。该操作环境抽象层和操作系统包括可调整算法,该算法可基于所展示的操作环境资源来调整以便适当地向作出请求的应用程序提供服务。
在某些实施例中,执行操作系统功能。操作环境抽象层检测底层操作环境的可用操作环境资源。该底层操作环境可以是例如,计算机系统硬件、系统管理程序或甚至另一操作系统。该操作环境抽象层基于检测到的操作环境资源中所表示的功能来调整用于向作出请求的操作系统提供操作环境资源的抽象算法。
操作环境抽象层向操作系统展示所检测到的底层操作环境的操作环境资源以便向该操作系统标识所检测到的该底层操作环境的操作环境资源。由此,例如,操作环境抽象层可向另一操作系统(在该操作环境抽象层之上运行)展示一个操作系统(提供底层操作环境)的资源。
该操作系统基于向该操作系统展示的检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法。操作系统接收对操作系统服务的应用程序请求。该操作系统根据经调整的服务算法和经调整的抽象算法,通过专用接口来与操作环境抽象层接口以实现对于作出请求的应用程序的操作系统服务。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各个实施例还包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括物理(或可记录类型的)计算机可读存储介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。
在本说明书和所附权利要求书中,“网络”被定义为允许在计算机系统和/或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,作为示例而非限制,计算机可读介质还可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,可以在具有许多类型的计算机系统配置的网络计算环境中实践本发明,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1A示出了方便从操作系统中抽象出操作环境的示例计算机体系结构100。如图所示,计算机体系结构100包括操作系统101、操作环境抽象层102、操作环境103和应用程序111和112。操作系统101可包括用于与应用程序互操作的API 181。应用程序111和112可被配置成通过API 181来与操作系统互操作。因此,应用程序111和112可通过API 181来对操作系统101进行调用以请求操作系统服务。服务算法107可处理应用程序请求并响应于应用程序请求来提供操作系统服务。
操作系统101可包括用于与操作环境抽象层102互操作的API 182。API182可包括各种不同类型的API,诸如例如,初始化API、中断管理API、定时器API、传输API(例如,与管道、套接字、共享存储器等相关)、服务扩展API、多处理器API、线程本地存储API等。
操作环境抽象层102被配置成通过API 182来与操作系统101互操作。操作环境抽象层102还被配置成通过各种操作环境专用接口183来与操作环境103互操作。因此,操作环境抽象层102可通过操作环境专用接口183来访问操作环境103的资源。抽象算法106可用于确定将向操作系统101展示资源107的什么部分以及确定将如何向操作系统101展示资源107的各部分。操作环境抽象层102然后可根据抽象算法106的判定通过API 182来向操作系统101展示资源107的各部分。例如,操作环境102可向操作系统101展示资源部分107P。
抽象算法106是可调整的。操作环境抽象层103可基于资源107中所表示的操作环境103的功能来自动调整抽象算法106。例如,算法106可包括用于展示资源的多个不同抽象算法。基于资源107中所表示的功能,操作环境抽象层102可转换为使用适用于更有效地展示所表示的功能的抽象算法106的指定子集。
因此,可定制抽象算法106以便与操作环境103互操作。例如,操作系统103可展示完整服务以及可被组合成该完整服务的各个资源。因此,操作环境抽象层102可调整抽象算法106以便展示完全服务但未必展示各个资源。操作环境抽象层102可向操作系统101提供对各种不同服务的支持,包括页表、设备驱动程序、电源管理、存储器分配、网络通信传输、处理器对象(例如,中断管理)等。
服务算法104也是可调整的。操作系统101可基于资源部分107P中所表示的功能来自动调整服务算法104。例如,算法107可包括用于提供操作系统服务的多个不同服务算法。基于资源部分107P中所表示的功能,操作系统101可转换为使用适用于向作出请求的应用程序提供操作系统服务的服务算法107的指定子集。操作系统101可调整服务算法107以更有效地利用资源部分107P。
因此,可定制抽象算法107以与操作环境103的所展示的部分互操作。例如,资源部分107P可指示操作环境103可提供通信栈功能。因此,操作系统101可调整服务器算法107以便用所提供的通信栈功能而不是在操作系统101处创建通信栈功能。
图1B示出描绘对操作系统101的服务调用的执行流程的示例计算机体系结构100。操作系统101可提交并且操作环境抽象层102可处理的是各种不同类型的调用,包括同步调用、生产者-消费者调用以及异步调用。
例如,操作系统101可向操作环境抽象层102发出同步调用。同步调用包括诸如例如打开网络套接字或在控制台上显示文本串等操作。为了发起同步调用,进程111向包装函数112提交调用151,该包装函数112提供到底层操作环境抽象层调用的接口。包装函数112通过从进程111中抽象出操作环境抽象层102的底层机制来隐藏实现细节。例如,用于传递服务的包装器可独立于操作环境抽象层102展示的底层传输来提供基于网络传输的接口。该基于网络传输的接口在底层传输是共享存储器和事件时可被实现为环形缓冲区或者可以是用于命名管道传输的包装器。然而,包装函数从操作系统101中抽象出这些细节。
包装函数112向服务调用启用114提交调用152。由此,包装函数112启用包装操作环境抽象层102的源代码中所主存的操作环境抽象层函数的类中所定义的操作环境抽象层102的服务。该包装类可以为服务包装函数的启用定义特定属性。另外,该类可包括其他定义,诸如由该服务使用的错误代码和标志等。
服务调用启用114接收调用152。服务调用启用向启用服务118发出启用153。服务118可通过操作环境抽象层102的源代码中所主存的启用模型来执行。对服务118的调用可禁用中断并调用作为API 182的API结构中的函数指针来展示的服务118。
服务118响应于服务启用来返回适当的数据154(状态信息和结果),诸如例如,指向通信信道的指针等。
在某些实施例中,服务启用被分发给操作环境抽象层服务扩展。操作环境抽象层102可以加载动态链接库(“DLL”)形式的服务扩展,诸如例如,操作环境抽象层服务扩展121。操作环境抽象层102可将操作环境抽象层扩展121绑定到操作系统101。由此,操作系统可提交可利用的、在环境抽象层服务扩展121处服务的调用。例如,如调用153A和数据154A所示,服务122可被启用并返回适当的数据。因此,操作环境抽象层的功能可通过扩展来扩展而不必显著地修改操作环境抽象层。
服务启用114然后向包装函数122返回结果155(至少包括适当的数据154)。包装函数112处理结果155并向进程111返回结果156(也至少包括适当的数据154)。如果检测到错误情况,则包装函数112可引发对于进程111的异常。
生产者-消费者调用在操作环境抽象层102中的工作者线程(生产者)处产生,该线程使用中断通知机制来将操作完成通知给操作系统101(消费者)。这一服务的示例是在每一次键被按下并由操作系统101来处理时创建通知事件的键盘。
例如,工作者线程117可产生对中断线程116的调用157。工作者线程可用于API 182中的异步API或遵循生产者-消费者模型的服务。在任一种情况下,该工作者线程都可以是捕捉诸如例如I/O调用完成或键盘事件等系统事件的通知的循环。每一个工作者线程都可以与类似中断线程116的中断线程相关联。工作者线程创建关于事件的上下文信息并设置唤醒中断线程116的事件。以下代码示出了工作者线程循环的骨架示例:
while(1)
{
  //等待下一事件
  ...
  //创建中断上下文
  ...
  //发信号通知中断线程并等待中断分派完成
  ::SignalObjectAndWait(
      //发信号通知InterruptWorker
      processor->ioscomm.waitHandle,
      //等待中断分派
      processor->ioscomm.completionHandle,
      //没有超时
      INFINITE,
      //不适用
      FALSE
    );
}
中断线程116提交调用158以引发中断分派函数113。中断分派函数检索中断上下文,调用服务中断调用(例如,主存在操作系统101的包装类中)并清除该中断上下文。以下是键盘中断分派调用的示例:
if(interrupt==Kernel.ABSTRACTION_LAYERKeyboardInterrupt)
{
  //检索中断上下文(按下键)
    uint key=(uint)GetABSTRACTION_LAYERInterruptContext(interrupt);
  //调用包装类
  EnlightenedKeyboard.SetKeyAvailable(key);
  ClearABSTRACTION_LAYERInterrupt(interrupt);
}
中断分派113可向进程111提交将引发唤醒正在等待异步或生产者-消费者操作的结果的包装函数(例如,包装函数112)的事件的调用159。
操作系统101也可向操作环境抽象层102提交异步调用。例如,调用151可以是异步调用。异步调用使用中断通知机制来处理,该中断通知机制用于在操作的执行已完成时通知操作系统101。异步调用的示例包括操作环境抽象层102的通信服务中所提供的读和写命名管道操作。生产者-消费者调用具有阻塞的可能性。由此,在某些实施例中,操作环境抽象层可将生产者-消费者调用作为异步操作来实现。
中断模型可用作用于通知异步操作的范例。图5示出了用于处理异步操作的中断模型中的示例上下文信息流500。操作系统包装函数(例如,类似于包装函数112)接收异步调用以执行操作。例如,操作系统包装函数512可接收请求执行操作532的异步操作调用531。响应于该异步调用,操作系统包装函数创建包括关于该特定请求的上下文信息的上下文结构。该上下文信息可包括对将在操作完成时发信号通知的事件的引用。例如,操作系统包装函数512可创建引用将在操作532完成时调用的事件的调用上下文521。
包装函数将该上下文传递给操作环境抽象层服务(例如,类似于服务118)。例如,系统包装函数512可将调用上下文521传递给抽象层服务518。该抽象层服务还可创建其自己的服务上下文,从而从包装函数中捕捉具有附加信息的上下文,这些附加信息诸如例如,操作类型或对于在完成时处理操作结果可能是有用的(或必需的)的其他信息。例如,抽象层服务518可创建服务上下文522,其指示操作532的操作类型和/或对应于操作532的其他结果处理信息。
当该操作完成时,工作者线程使用该服务上下文来后处理该操作的结果。例如,当操作532完成时,工作者线程117可使用服务上下文522来后处理操作532的结果。该工作者线程然后分派中断,同时将调用上下文和服务上下文传递给中断分派函数。例如,工作者线程117可将调用上下文521和服务上下文522传递给操作系统中断分派函数513。
中断分派函数用调用上下文来调用操作系统中断分派函数。例如,操作系统中断分派函数513可用调用上下文521来调用所有操作系统包装中断服务器函数519。操作系统中断分派函数可存储包装函数的上下文中的操作的结果和状态,并且然后引发唤醒操作系统线程的事件以指示该操作已完成。例如,操作系统包装中断服务器函数519可存储操作532的结果和状态并引发事件以便向发送异步操作调用531的线程指示操作532已完成。以下是通信服务分派代码的示例:
//分派已完成的异步操作
public static unsafe void Dispatch(void*context,ulong err)
{
    AsyncOpContext*pContext=(AsyncOpContext*)context;
    //将返回状态代码存储在本地上下文中
    pContext->err=err;
    //发信号通知客户机操作已完成
    AutoResetEvent signal=SignalList[pContext->signal];
    if(signal!=null)
    signal.Set();
}
操作系统中断分派函数还可在抽象层处调用中断清除函数(例如,来自fClearInterrupt类)以解除分配服务上下文信息并执行任何其他清理操作。例如,操作系统中断分派函数513可调用抽象层中断清除模块520来解除分配服务上下文522并执行与操作532的完成相关的清理操作。以下是用于通信服务的中断清除代码的的示例:
void Win32ClearInterrupt(int interrupt)
  {
    Processor*processor=GetSEALProcessor();
    if(interrupt==SEALIoscommInterrupt)
    {
            //自由动态分配的上下文
            SEALSComFreeContext(processor->ioscomm.pContext);
            //通知中断分派完成
            ::SetEvent(processor->ioscomm.completionHandle);
}
...
在以上代码中,存在中断上下文已被分派的事件通知。为了避免工作者线程(例如,517)和中断分派函数(例如,513)之间的竞争情况,该中断工作者线程可在该工作者线程循环结束时引发,并且代码在继续下一循环迭代之前等待分派操作已完成的信号。中断清除函数发信号通知该工作者线程继续。该工作者线程可类似于以上参考进程-消费者调用描述的骨架循环而循环。
通过使用各种启用方法,不同的操作环境抽象层可被配置成抽象出多个不同的操作环境以提供统一的功能集。统一的功能集可通过例如类似于抽象算法106的解决操作环境中的差异的抽象算法来提供。因此,利用统一的功能集的操作系统能够在该多个不同操作环境中的任一个中运行。
此外(例如,在初始化期间),抽象层可被配置成分析并变为完全知道其操作环境,包括标识其他抽象层的存在。由此,抽象层可被特别设计成利用对应的操作环境的特性。抽象层还可被配置成访问由其他标识的抽象层的操作环境提供的服务。
图2A-2C示出从操作系统中抽象出不同操作环境的示例计算机体系结构。如图2A所示,操作环境抽象层202(对应于硬件)利用硬件专用接口来抽象硬件203(例如,裸机)。在图2B中,操作环境抽象层222(对应于系统管理程序)利用系统管理程序专用接口284来抽象系统管理程序223。在图2C中,操作环境抽象层242(对应于主机操作系统)利用操作系统专用接口286来抽象主机操作系统243(例如,Windows NT、Windows CE、Linux)然而,操作环境抽象层202(对应于硬件)、操作环境抽象层222(对应于系统管理程序)和操作环境抽象层242(主机操作系统)中的每一个都支持经由API 282来与操作系统201进行通信。
因为操作环境的资源由对应的抽象层来访问并展示给操作系统201,所以操作系统201知道其执行环境的特性。因此,可针对操作系统201和正在运行的工作负载的要求来定制资源管理。由此,可调整抽象算法和服务算法(例如类似于服务器算法104的操作系统201中的算法)以便在操作环境中更有效地操作。例如,当操作系统201在系统管理程序223上运行时,可向操作系统201展示系统管理程序调度程序。因此,操作系统201的CPU调度程序可调整其策略以满足系统管理程序调度程序的要求。
设备驱动程序和操作系统服务可由操作系统201来本地实现或可被转发以便在操作环境(例如,在主机操作系统243)中执行。
在某些实施例中,操作系统201是操作环境。例如,主机操作系统243可以是操作系统201的实例。由此,操作系统201的一个实例可在操作系统201的另一个实例之上递归地运行。这种类型的递归可用于创建例如用于自主存和实现类似应用域的公共语言运行时环境(“CLR”)的隔离的执行环境。
操作系统及对应的抽象层能够以特权和非特权处理器模式(有时被称为执行环)的灵活组合来运行。图3A-3D示出跨不同处理器模式的从操作系统中抽象出不同操作环境的示例计算机体系结构。图3A描绘了主机操作系统环境343。在图3A的主机操作系统环境343中,操作系统301和操作环境抽象层342(对应于主机操作系统)两者都以用户模式311(环3)运行。
图3B也描绘了主机操作系统环境343。然而,在图3B的主机操作系统环境343中,操作系统301和操作环境抽象层342(对应于主机操作系统)两者都以内核模式312(环0)运行。图3B中所描绘的实施例准许在主机操作系统环境343中存在单独的执行环境。该单独的执行环境可用于例如主存设备驱动程序。操作系统301执行环境将驱动程序的执行与内核隔离开以允许优雅的设备驱动程序故障恢复。
图3C描绘了硬件环境303(例如,裸机)。在硬件环境303中,操作系统301以用户模式311(环3)运行而操作系统抽象层302(对应于硬件)以内核模式312(环0)运行。
图3D描绘了在系统管理程序323之上运行的来自图3A的主机操作系统环境343的实例。图3D还描绘了在操作环境抽象层322(对应于系统管理程序)之上、以内核模式312(环0)运行的操作系统301的实例。在图3D中,操作环境抽象层322(对应于系统管理程序)知道主机操作系统环境343的存在并且可利用由主机操作系统环境343提供的服务。操作系统301和操作环境抽象层342(对应于主机操作系统)的组合可担当对于由主机操作系统环境343提供的服务(例如,设备驱动程序)的代理。或者,操作系统301和操作环境抽象层322(对应于系统管理程序)的组合可直接与主机操作系统环境343的服务进行通信。
图4示出用于执行操作系统功能的示例方法400的流程图。方法400将参考计算机体系结构100中所描绘的组件和数据来描述。
方法400包括操作环境抽象层检测底层操作环境的可用操作环境资源的动作(动作401)。例如,操作环境抽象层103可检测操作环境103的资源107。方法400包括操作环境抽象层基于检测到的操作环境资源中所表示的功能来调整用于向作出请求的操作系统提供操作环境资源的抽象算法的动作(动作402)。例如,操作环境抽象层102可基于资源107中所表示的功能来调整抽象算法106。
方法400包括操作环境抽象层向操作系统展示所检测到的底层操作环境的操作环境资源以便向该操作系统标识所检测到的该底层操作环境的操作环境资源的动作(动作403)。例如,操作环境抽象层102可向操作系统101展示资源部分107P。方法400包括操作系统基于向该操作系统展示的、所检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法的动作(动作404)。例如,操作系统101可基于资源部分107P中所表示的所展示的功能来调整服务算法107。
方法400包括操作系统接收对操作系统服务的应用程序请求的动作(动作405)。例如,操作系统101可从应用程序111或112接收对操作系统服务的请求。方法400包括操作系统根据经调整的服务算法和经调整的抽象算法,通过专用接口来与操作环境抽象层接口以实现对于作出请求的应用程序的操作系统服务的动作(406)。例如,操作系统101和操作环境抽象层102可根据经调整的服务算法104和经调整的抽象算法106,通过API 182来接口以实现对于应用程序111或112的操作系统服务。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (20)

1.一种在计算机系统处的用于执行操作系统功能的方法,所述计算机系统包括操作系统、底层操作环境以及位于所述操作系统和所述底层操作环境之间的操作环境抽象层,所述底层操作环境被配置成向其他软件模块提供操作环境资源,所述底层操作环境是能够向其他软件模块提供操作环境资源的多个不同操作环境中的一个,所述操作系统被配置成使用多个不同的可调整服务算法中的任一个来向作出请求的应用程序提供操作系统服务,所述操作系统基于从所述多个不同底层操作环境中标识的底层操作环境的展示的操作环境资源来提供操作系统服务,所述操作系统具有用于与其他软件模块接口的专用接口,所述操作环境抽象层通信地耦合到所述操作系统和所述底层操作环境,所述操作环境抽象层被特别设计成从所述操作系统中抽象出所述底层操作环境并且使用多个不同的可调整抽象算法中的任一个,通过所述专用接口来可调整地与所述操作系统接口以使得所述操作系统可通过所述操作环境抽象层来与所述底层操作环境接口,所述方法包括:
所述操作环境抽象层检测所述底层操作环境的可用操作环境资源的动作;
所述操作环境抽象层基于所检测到的操作环境资源中所表示的功能来调整用于向作出请求的操作系统提供操作环境资源的抽象算法的动作;
所述操作环境抽象层向所述操作系统展示所检测到的所述底层操作环境的操作环境资源以便向所述操作系统标识所检测到的所述底层操作环境的操作环境资源的动作;
所述操作系统基于向所述操作系统展示的、所检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法的动作;
所述操作系统接收对操作系统服务的应用程序请求的动作;以及
所述操作系统根据经调整的服务算法和经调整的抽象算法,通过所述专用接口来与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务的动作。
2.如权利要求1所述的方法,其特征在于,所述操作环境抽象层检测所述底层操作环境的可用操作环境资源的动作包括硬件抽象层检测底层硬件的可用资源的动作。
3.如权利要求1所述的方法,其特征在于,所述操作环境抽象层检测所述底层操作环境的可用操作环境资源的动作包括系统管理程序抽象层检测底层系统管理程序的可用资源的动作。
4.如权利要求1所述的方法,其特征在于,所述操作环境抽象层检测所述底层操作环境的可用操作环境资源的动作包括操作系统抽象层检测底层操作系统的可用资源的动作。
5.如权利要求1所述的方法,其特征在于,所述操作环境抽象层检测所述底层操作环境的可用操作环境资源的动作包括操作系统抽象层检测在所述计算机系统处运行的一个或多个其他操作环境抽象层的动作。
6.如权利要求1所述的方法,其特征在于,所述操作环境抽象层调整用于向作出请求的操作系统提供操作环境资源的抽象算法的动作包括定制所述抽象算法以便与所述底层操作环境互操作的动作。
7.如权利要求1所述的方法,其特征在于,所述操作环境抽象层向所述操作系统展示所检测到的所述底层操作环境的操作环境资源的动作包括所述操作环境抽象层使用API来调用所述操作系统的动作。
8.如权利要求1所述的方法,其特征在于,所述操作系统调整用于向作出请求的应用程序提供操作系统服务的服务算法的动作包括定制所述服务算法以便与所检测到的操作环境资源的所展示的功能互操作的动作。
9.如权利要求1所述的方法,其特征在于,所述操作系统与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务的动作包括所述操作系统向所述操作环境抽象层提交调用的动作,所述调用的类型选自同步调用和异步调用。
10.如权利要求1所述的方法,其特征在于,所述操作系统与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务的动作包括所述操作环境抽象层将所述底层操作环境的资源分配给所述操作系统的动作。
11.如权利要求1所述的方法,其特征在于,所述操作系统与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务的动作包括所述操作环境抽象层将所述应用程序请求转发给所述底层操作环境的动作。
12.如权利要求1所述的方法,其特征在于,所述操作系统与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务的动作包括所述操作系统本地地实现所述操作系统服务的动作。
13.如权利要求1所述的方法,其特征在于,所述操作系统以选自用户模式和内核模式的处理器模式运行。
14.如权利要求12所述的方法,其特征在于,所述操作环境抽象层以选自用户模式和内核模式的处理器模式运行。
15.如权利要求1所述的方法,其特征在于,所述底层操作环境是所述操作系统的实例。
16.一种供在计算机系统处使用的计算机程序产品,所述计算机系统包括操作系统、底层操作环境以及位于所述操作系统和所述底层操作环境之间的操作环境抽象层,所述底层操作环境被配置成向其他软件模块提供操作环境资源,所述底层操作环境是能够向其他软件模块提供操作环境资源的多个不同操作环境中的一个,所述操作系统被配置成使用多个不同的可调整服务算法中的任一个来向作出请求的应用程序提供操作系统服务,所述操作系统基于从所述多个不同底层操作环境中标识的底层操作环境的展示的操作环境资源来提供操作系统服务,所述操作系统具有用于与其他软件模块接口的专用接口,所述操作环境抽象层通信地耦合到所述操作系统和所述底层操作环境,所述操作环境抽象层被特别设计成从所述操作系统中抽象出所述底层操作环境并且使用多个不同的可调整抽象算法中的任一个,通过所述专用接口来可调整地与所述操作系统接口以使得所述操作系统可通过所述操作环境抽象层来与所述底层操作环境接口,所述计算机程序产品用于实现一种执行操作系统功能的方法,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机可读介质,所述指令当在处理器处执行时使得所述计算机系统执行所述方法,所述方法包括:
检测所述底层操作环境的可用操作环境资源;
基于所检测到的操作环境资源中所表示的功能来调整用于向作出请求的操作系统提供操作环境资源的抽象算法;
向所述操作系统展示所检测到的所述底层操作环境的操作环境资源以便向所述操作系统标识所检测到的所述底层操作环境的操作环境资源;
基于向所述操作系统展示的、所检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法;
接收对操作系统服务的应用程序请求;以及
根据经调整的服务算法和经调整的抽象算法,通过所述专用接口来与所述操作环境抽象层接口以实现对于所述作出请求的应用程序的操作系统服务。
17.一种计算机系统,所述计算机系统包括:
一个或多个处理器;
系统存储器;
底层操作环境;
存储有一种计算机可执行指令的一个或多个计算机可读介质,所述指令表示操作环境抽象层和操作系统,并且所述操作环境抽象层被配置成:
检测所述底层操作环境的可用操作环境资源;
基于所检测到的操作环境资源中所表示的功能来调整用于向作出请求的计算机系统提供操作环境资源的抽象算法;以及
向所述操作系统展示所检测到的所述底层操作环境的操作环境资源以便向所述操作系统标识所检测到的所述底层操作环境的操作环境资源;
所述操作系统被配置成:
基于向所述操作系统展示的、所检测到的操作环境资源中所表示的展示的功能来调整用于向作出请求的应用程序提供操作系统服务的服务算法;
接收对操作系统服务的应用程序请求;以及
根据经调整的服务算法和经调整的抽象算法,通过所述专用接口来与所述操作环境抽象层接口以实现对于作出请求的应用程序的操作系统服务。
18.如权利要求17所述的系统,其特征在于,所述底层操作环境是选自硬件、系统管理程序、所述操作系统的实例以及第二不同的操作系统的实例的操作环境。
19.如权利要求17所述的系统,其特征在于,所述经调整的抽象算法提供针对所述操作系统的工作负载要求定制的资源管理。
20.如权利要求17所述的系统,其特征在于,所述操作环境抽象层还被配置成:
检测所述计算机系统处的其他操作环境抽象层;以及
向所述操作系统提供来自另一操作环境抽象层的底层操作环境的资源。
CN2008800075941A 2007-03-09 2008-02-15 从操作系统中抽象出操作环境 Expired - Fee Related CN101627377B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/684,404 US20080222659A1 (en) 2007-03-09 2007-03-09 Abstracting operating environment from operating system
US11/684,404 2007-03-09
PCT/US2008/054156 WO2008112386A1 (en) 2007-03-09 2008-02-15 Abstracting operating environment from operating system

Publications (2)

Publication Number Publication Date
CN101627377A true CN101627377A (zh) 2010-01-13
CN101627377B CN101627377B (zh) 2011-12-28

Family

ID=39742962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800075941A Expired - Fee Related CN101627377B (zh) 2007-03-09 2008-02-15 从操作系统中抽象出操作环境

Country Status (6)

Country Link
US (1) US20080222659A1 (zh)
EP (1) EP2132640B1 (zh)
JP (1) JP5496683B2 (zh)
CN (1) CN101627377B (zh)
TW (1) TW200847026A (zh)
WO (1) WO2008112386A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329141A (zh) * 2011-04-29 2013-09-25 北京中天安泰信息科技有限公司 数据安全存储方法及装置
CN103620549B (zh) * 2011-06-20 2017-08-15 微软技术许可有限责任公司 用于统一数据存储的存储介质抽象
CN109644197A (zh) * 2016-09-01 2019-04-16 微软技术许可有限责任公司 支持跨多个操作环境的异常检测的检测字典系统
CN110275757A (zh) * 2018-03-16 2019-09-24 北京忆恒创源科技有限公司 利用系统抽象层提供多协议存储设备
CN110716510A (zh) * 2018-07-11 2020-01-21 西门子股份公司 用于自动化应用的抽象层
CN113297566A (zh) * 2020-05-15 2021-08-24 阿里巴巴集团控股有限公司 沙箱实现方法、装置、设备和存储介质
CN116016749A (zh) * 2019-03-25 2023-04-25 质子世界国际公司 电子系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US20090222491A1 (en) * 2008-02-28 2009-09-03 Michael Larkin Systems and Methods for Layered Resource Management
US8676938B2 (en) 2011-06-28 2014-03-18 Numecent Holdings, Inc. Local streaming proxy server
US8863141B2 (en) 2011-12-14 2014-10-14 International Business Machines Corporation Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history
US8694995B2 (en) * 2011-12-14 2014-04-08 International Business Machines Corporation Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
US9386057B2 (en) 2012-01-18 2016-07-05 Numecent Holdings, Inc. Application streaming and execution system for localized clients
US9485304B2 (en) * 2012-04-30 2016-11-01 Numecent Holdings, Inc. Asset streaming and delivery
WO2014043277A2 (en) 2012-09-11 2014-03-20 Numecent Holdings Ltd. Application streaming using pixel streaming
US9661048B2 (en) 2013-01-18 2017-05-23 Numecent Holding, Inc. Asset streaming and delivery
CN105543082A (zh) * 2015-12-15 2016-05-04 路博超 一种基于osal的固态发酵控制系统
KR102111991B1 (ko) * 2018-08-17 2020-05-18 주식회사 한컴엠디에스 운영체제 시스템의 자원 관리 장치 및 방법
US11182182B2 (en) * 2019-07-24 2021-11-23 Vmware, Inc. Calling arbitrary functions in the kernel via a probe script
EP4064053A1 (en) 2021-03-26 2022-09-28 Aptiv Technologies Limited Managing inter-service communication

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664537B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ処理システム
US5640562A (en) * 1995-02-27 1997-06-17 Sun Microsystems, Inc. Layering hardware support code on top of an existing operating system
US6687762B1 (en) * 1996-10-10 2004-02-03 Hewlett-Packard Development Company, L.P. Network operating system adapted for simultaneous use by different operating systems
US5812852A (en) * 1996-11-14 1998-09-22 Kuck & Associates, Inc. Software implemented method for thread-privatizing user-specified global storage objects in parallel computer programs via program transformation
US6286130B1 (en) * 1997-08-05 2001-09-04 Intel Corporation Software implemented method for automatically validating the correctness of parallel computer programs
US6671882B1 (en) * 1998-07-25 2003-12-30 General Instrument Corporation System for distributing and handling electronic program guide information using CORBA-wrapped objects
US6808111B2 (en) * 1998-08-06 2004-10-26 Visa International Service Association Terminal software architecture for use with smart cards
CA2395468A1 (en) * 1999-12-21 2001-06-28 General Instrument Corporation Abstract device driver model for the portability of device drivers across different operating system platforms
US6763327B1 (en) 2000-02-17 2004-07-13 Tensilica, Inc. Abstraction of configurable processor functionality for operating systems portability
US6880158B1 (en) * 2000-04-10 2005-04-12 International Business Machines Corporation Network processor services architecture that is platform and operating system independent
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7032180B2 (en) * 2000-08-14 2006-04-18 Twin Communications Of America, Inc. User interface rendering component environment
FR2814257B1 (fr) * 2000-09-20 2002-12-06 Palmware Architecture de microprocesseur virtuel multiplate-forme et son systeme d'exploitation complementaire, notamment pour le domaine de l'informatique embarquee et mobile
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US6907610B2 (en) * 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US7080284B1 (en) * 2002-07-19 2006-07-18 Newisys, Inc. Computer server architecture and diagnostic framework for testing same
US7149918B2 (en) * 2003-03-19 2006-12-12 Lucent Technologies Inc. Method and apparatus for high availability distributed processing across independent networked computer fault groups
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
WO2005031572A2 (en) * 2003-09-22 2005-04-07 Jaluna Sa Operating systems
CN1922576A (zh) * 2003-09-30 2007-02-28 扎鲁纳股份有限公司 操作系统
US8914606B2 (en) * 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system
US7966485B2 (en) * 2004-12-01 2011-06-21 Igt Universal operating system to hardware platform interface for gaming machines
US7458066B2 (en) * 2005-02-28 2008-11-25 Hewlett-Packard Development Company, L.P. Computer system and method for transferring executables between partitions
US20060233174A1 (en) * 2005-03-28 2006-10-19 Rothman Michael A Method and apparatus for distributing switch/router capability across heterogeneous compute groups
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US8032899B2 (en) * 2006-10-26 2011-10-04 International Business Machines Corporation Providing policy-based operating system services in a hypervisor on a computing system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329141A (zh) * 2011-04-29 2013-09-25 北京中天安泰信息科技有限公司 数据安全存储方法及装置
CN103329141B (zh) * 2011-04-29 2017-05-03 中天安泰(北京)信息技术有限公司 数据安全存储方法及装置
CN103620549B (zh) * 2011-06-20 2017-08-15 微软技术许可有限责任公司 用于统一数据存储的存储介质抽象
CN109644197A (zh) * 2016-09-01 2019-04-16 微软技术许可有限责任公司 支持跨多个操作环境的异常检测的检测字典系统
CN109644197B (zh) * 2016-09-01 2021-10-29 微软技术许可有限责任公司 支持跨多个操作环境的异常检测的检测字典系统
CN110275757A (zh) * 2018-03-16 2019-09-24 北京忆恒创源科技有限公司 利用系统抽象层提供多协议存储设备
CN110716510A (zh) * 2018-07-11 2020-01-21 西门子股份公司 用于自动化应用的抽象层
CN110716510B (zh) * 2018-07-11 2023-12-22 西门子股份公司 用于自动化应用的抽象层
CN116016749A (zh) * 2019-03-25 2023-04-25 质子世界国际公司 电子系统
CN113297566A (zh) * 2020-05-15 2021-08-24 阿里巴巴集团控股有限公司 沙箱实现方法、装置、设备和存储介质
CN113297566B (zh) * 2020-05-15 2024-04-02 阿里巴巴集团控股有限公司 沙箱实现方法、装置、设备和存储介质

Also Published As

Publication number Publication date
TW200847026A (en) 2008-12-01
WO2008112386A1 (en) 2008-09-18
EP2132640A4 (en) 2010-04-28
US20080222659A1 (en) 2008-09-11
CN101627377B (zh) 2011-12-28
EP2132640B1 (en) 2017-04-26
EP2132640A1 (en) 2009-12-16
JP2010521034A (ja) 2010-06-17
JP5496683B2 (ja) 2014-05-21

Similar Documents

Publication Publication Date Title
CN101627377B (zh) 从操作系统中抽象出操作环境
Kotni et al. Faastlane: Accelerating {Function-as-a-Service} Workflows
CN101268445B (zh) 用于向多核环境中的应用程序提供实时线程服务的方法、装置
CN100570565C (zh) 在管理程序中提供基于策略的操作系统服务的方法和系统
Sun et al. Analyzing, modeling and evaluating dynamic adaptive fault tolerance strategies in cloud computing environments
CN109522087B (zh) 基于国产申威处理器的虚拟机构建方法和系统
CN101233489B (zh) 自适应进程分派的方法和系统
JP2018077846A (ja) 仮想マシン再配置プロトコルの生成を含む方法、仮想マシン再配置を容易にするためのシステムおよびプログラム
KR102140730B1 (ko) Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법
CN102077209A (zh) 受保护模式操作调度
CN100553214C (zh) 移动虚拟环境系统
CN112104723A (zh) 一种多集群的数据处理系统及方法
US20180136941A1 (en) Bootstrapping Profile-Guided Compilation and Verification
CN103582879A (zh) 管理耦合设施中的操作员消息缓冲器
US20180210747A1 (en) Computing devices
CN109117253B (zh) 一种微内核调度的方法和装置
CN100538649C (zh) 用于分发分派窗内的未使用的处理器循环的方法和系统
CN103279387A (zh) 对相关资源分区重定位
CN105677481A (zh) 一种数据处理方法、系统及电子设备
CN108304248A (zh) 一种多系统虚拟化的移动设备
Sung et al. An interface test model for hardware-dependent software and embedded OS API of the embedded system
Vallee et al. Process migration based on gobelins distributed shared memory
US20230029920A1 (en) Optimizing performance of a computing device in a mixed workload environment
CN108762891A (zh) 一种云平台资源调度方法和装置
CN103631648A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111228

Termination date: 20190215

CF01 Termination of patent right due to non-payment of annual fee