CN105940375B - 针对多操作***设备的动态再分配 - Google Patents

针对多操作***设备的动态再分配 Download PDF

Info

Publication number
CN105940375B
CN105940375B CN201580007511.9A CN201580007511A CN105940375B CN 105940375 B CN105940375 B CN 105940375B CN 201580007511 A CN201580007511 A CN 201580007511A CN 105940375 B CN105940375 B CN 105940375B
Authority
CN
China
Prior art keywords
operating system
foreground
background
kernel
equipment
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.)
Active
Application number
CN201580007511.9A
Other languages
English (en)
Other versions
CN105940375A (zh
Inventor
J.纳卡吉马
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN105940375A publication Critical patent/CN105940375A/zh
Application granted granted Critical
Publication of CN105940375B publication Critical patent/CN105940375B/zh
Active 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
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请指向针对多OS设备的动态再分配。示例设备可以包括装备、至少两个操作***、用以提供OS和装备之间的接口的针对每个OS的内核以及虚拟机管理器(VMM)。每个OS中的OS选择代理可以与VMM中的内核模式控制器(KMC)交互。例如,OS选择代理可以传输指示KMC将前台OS转变到后台并将后台OS转变到前台的消息。KMC可以向前台和后台操作***的内核传输使得前台OS内核中的至少一个驱动器保存当前装备状态并释放对装备的控制同时还使得后台OS内核中的至少一个驱动器恢复装备状态并采取对装备的控制的信号。

Description

针对多操作***设备的动态再分配
技术领域
本公开涉及电子设备,并且更特别地涉及能够在不同的操作***之间快速地移动而不必重启设备的设备。
背景技术
设备可以包括用以促进设备中的装备的操作的操作***(OS)。例如,OS可以包括用于装备的各种驱动器、文件处置和处理实用程序(utility)、可以促进与设备的用户交互的用户接口软件等。设备传统上仅包括一个OS,因为这是对于设备运转而言需要的全部。然而,来自多种源的多种不同类型的操作***的引入已经产生了对多操作***设备的兴趣。例如,移动计算设备的用户在以固定的方式(例如,利用外部电力和有线网络)使用设备时可能期望采用较稳健的OS,并在设备是移动的时可能切换成较流线型、电力高效等的OS。以该方式,用户可以在完全不同的操作场景中利用设备的能力中的全部。
虽然在设备中采用多于一个OS在其表面上看可能是有益的,但是此类***的实际实现当前是有问题的。存在的解决方案没有虑及以适宜的方式从一个OS转变到另一OS。这些解决方案可能要求例如重启设备以从一个OS改变成另一OS,以在移动到另一OS时完全地挂起一个OS的活动等。结果,用户被呈现有延迟和/或不期望的限制,其使得多于一个OS的使用繁重。还可能的是一个操作***的实例实际上在另一OS内运行,从而允许多于一个OS在设备中是并行地活动的。虽然此类解决方案可以提供在不同操作***之间快速地移动的灵活性,但是实现该解决方案使得所有操作***以可接受的方式执行所需的处理和电力资源使得其不适于其中处理能力和/或电池寿命是关注点(concern)的某些实现(例如,移动通信和/或计算设备)。
附图说明
随着以下具体描述进行并且在参考图时,所要求保护的主题的各种实施例的特征和优势将变得显然,在图中同样的数字指示同样的部分,并且其中:
图1图示了根据本公开的至少一个实施例的被配置用于针对多OS设备的动态再分配的示例设备;
图2图示了根据本公开的至少一个实施例的用于可用设备的示例配置;
图3图示了根据本公开的至少一个实施例的动态再分配的示例;以及
图4图示了根据本公开的至少一个实施例的用于针对多OS设备的动态再分配的示例操作。
尽管以下具体描述将随着参考说明性实施例而进行,但是所述说明性实施例的许多替代、修改和变型将对本领域那些技术人员而言是显然的。
具体实施方式
本申请指向针对多OS设备的动态再分配。在一个实施例中,设备可以包括例如用于支持设备操作的装备、至少两个操作***、用以提供OS和装备之间的接口的针对每个OS的内核以及虚拟机管理器(VMM)。每个OS中的OS选择代理可以进一步与VMM中的内核模式控制器(KMC)交互。在操作的示例中,前台OS中的OS选择代理可以接收将后台OS移动到前台的指令。OS选择代理然后可以向KMC传输指示前台OS应该转变到后台并且后台OS应该转变到前台的消息。KMC可以向前台和后台操作***的内核发送信号(例如,虚拟电力按钮信号)以发起改变。信号可以例如使得前台OS内核中的至少一个驱动器保存当前装备状态并释放对装备的控制同时还使得后台OS内核中的至少一个驱动器恢复所保存的装备状态并控制装备。前台OS然后可以在后台中继续运行同时后台OS移动到前台。
在一个实施例中,多OS设备可以包括例如用以支持设备中的操作的装备、至少两个操作***、对应于至少两个操作***中的每个的内核以及VMM。至少两个操作***中的每个可以包括OS选择代理。内核可能要促进装备和至少两个操作***之间的交互。VMM至少可以包括KMC以基于从OS选择代理接收的指令来控制至少两个操作***中的至少一个的操作状态。
在一个实施例中,至少两个操作***至少包括被加载在设备中的前台OS和后台OS。至少一个OS选择代理可能要感测用以改变前台操作***的触发,触发通过事件、命令、基于硬件的用户接口或基于软件的用户接口中的至少一个产生。至少一个OS选择代理可以进一步要至少向KMC传输指令以使得前台OS转变到后台且后台OS转变到前台。要控制操作状态的KMC包括要向至少一个内核传输信号的KMC。信号可以是例如虚拟电力按钮信号。
在相同或不同的实施例中,对应于前台OS的内核可以包括至少一个驱动器,对应于前台OS的内核要在接收信号时使得至少一个驱动器保存当前装备状态并释放对装备的控制。对应于前台OS的内核可以进一步要使得前台OS在后台中维持活动的。对应于后台OS的内核可以包括至少一个驱动器,对应于后台OS的内核要在接收信号时使得至少一个驱动器恢复所保存的装备状态并控制装备。对应于后台OS的内核可以进一步要使得后台操作***移动到前台。在一个实施例中,至少一个内核可以包括用于访问装备的由至少两个操作***共享的驱动器。与本公开一致的用于在设备上的多个操作***之间移动的示例方法可以包括在至少包括KMC的VMM中接收用以从前台OS转变到后台OS的请求、从KMC向对应于前台OS的内核传输使得前台操作***解激活的信号,以及从KMC向对应于前台OS的内核传输使得后台操作***激活的信号。
图1图示了根据本公开的至少一个实施例的被配置用于针对多OS设备的动态再分配的示例设备100。设备100的示例可以包括但不限于移动通信设备,诸如基于来自谷歌公司的Android®OS、来自苹果公司的iOS®、来自微软公司的Windows®OS、来自苹果公司的Mac OS、来自Linux基金会的Tizen OS、来自Mozilla项目的Firefox OS、来自黑莓公司的Blackberry®OS、来自惠普公司的Palm®OS、来自塞班基金会的Symbian ®OS等的蜂窝式手持机或智能电话;移动计算设备,诸如比如来自苹果公司的iPad®、来自微软公司的Surface®、来自三星公司的Galaxy Tab®、来自亚马逊公司的Kindle Fire®等的平板计算机、包括由英特尔公司制造的低功率芯片组的Ultrabook®、上网本、笔记本、膝上型计算机、掌上型计算机等;通常固定的计算设备,诸如台式计算机、服务器、智能电视、比如来自英特尔公司的下一单元(next unit)计算(NUC)平台的(例如,用于空间受限应用、TV机顶盒等的)小形状因子计算解决方案等。设备100可以包括例如装备102、VMM104、多个操作***,所述多个操作***诸如OS 106A、OS 106B……OS 106n(全体是“OS 106A……n”),以及对应于多个操作***中的每个的内核,诸如对应于OS 106A的内核108A、对应于OS 106B的内核108B……对应于OS 106n的内核108n(全体是“内核108A……n”)。虽然在设备100中图示了三(3)个操作***106A……n,但是与本公开一致的实施例不限于仅三个操作***并且取决于例如设备100的性能而可能包括例如仅两个操作***或多于三个操作***。
装备102可以包括例如在设备100中或至少被耦合到设备100的硬件,其可以支持、促进等各种功能。当尝试在OS 106A……n之间切换时,某些装备102可能是较有问题的。例如,等待时间敏感的和/或性能集中的装备102可能对OS 106A……n之间的切换有抵抗力。特别地,由存在的多OS切换解决方案引起的分离、延迟、再接合等可能使得等待时间敏感的和/或性能集中的装备102出故障、引起设备100中的别处的故障等。可以驻留在设备100中或者可以被耦合到设备100的等待时间敏感的装备102的示例可以包括但不限于通信接口、存储器接口、触摸控制器、传感器等。可以驻留在设备100中或可以被耦合到设备100的性能集中的装备102的示例可以包括但不限于诸如图形控制器之类的用户接口(UI)装置、介质处理引擎、音频/视频捕捉装备等。
OS 106A……n可以包括可以被配置成管理设备100中的装备102的操作的软件的集合。OS 106A……n可以由公司制造用于销售,可以由(例如,“开源”的)用户社区编译用于***,或者可以是私有/公共模型的混合。OS 106A……n的示例可以包括但不限于微软公司的磁盘操作***(DOS)、Windows、IOs、安卓、来自开放团体的Unix OS、来自Linux基金会的Linux OS(例如,包括多种公共和出于利益的分配两者)、来自Jolicloud的JolicloudOS等。可以将OS 106A……n与内核108A……n相关联。内核108A……n包括可以充当OS106A……n和装备102之间的接口的软件资源。每个内核108A……n可以包括用于操作装备102的至少一个驱动器。在针对设备100的正常操作期间,OS 106A……n可以做出***调用以访问装备102中的各种硬件资源。内核108A……n可以管理这些调用并将调用分配到装备102内的适当硬件。
设备100 VMM 104可以被“虚拟化”,因为至少一个虚拟机(VM)可以在设备100内操作。VM可以是设备硬件的基于软件的模拟。虚拟化可以是有益的,因为多于一个VM可以能够在单个硬件平台上操作。而且,虚拟化可以使通过其OS可以访问设备上的资源的接口标准化,并且因此消除了必须基于特定设备定制通过其OS将访问设备硬件的接口。虚拟化可以进一步允许软件在物理硬件可能不可用时操作并还允许软件与设备中的其他软件隔离使得一个VM中的软件崩溃不影响设备操作整体。在一个实施例中,VMM 104可以管理在设备100上运行的至少一个VM的操作。VMM 104可以通过管理对硬件资源的访问而帮助维持设备100中的稳定和安全。VMM 104以比设备100中的OS 106A……n更高的安全水平操作,并且因此可以不易受可能在OS 106A……n中操作的任何恶意的软件(例如,恶意软件)的攻击。
在一个实施例中, OS 106A可以包括OS选择代理110A,OS 106B可以包括OS选择代理110B……OS 106n可以包括选择代理110n(全体是“OS选择代理110A……n”)。OS选择代理110A……n可以是在OS 106A……n的后台中运行以感测用以改变哪个OS 106A……n在前台中的触发的程序。在一个实施例中,OS选择代理110A……n可以包括诸如在安卓OS中存在的“唤醒锁”,用以防止在特定的OS 106A……n正在后台中操作时OS选择代理110A……n被置于S3睡眠状态(例如,完全不活动状态)中。例如,可以通过事件、命令或与设备100中的基于硬件或基于软件的用户接口的交互来产生触发。例如,用户可能期望利用后台OS(例如,当前没在前台中的OS 106A……n)来替换前台OS(例如,用户可以与其交互的另一OS106A……n),并且可以继续与基于硬件或基于软件的按钮交互以引起改变。产生事件或命令以自动地使得前台OS被改变也可以是可能的。
至少一个OS选择代理110A……n可以向VMM 104中的KMC 112传输消息。重要的是注意:VMM 104仅提供用于KMC 112驻留的适当的位置(例如,具有适当的安全水平的可访问位置),以及KMC 112可以驻留在与本公开一致的设备100内的其他位置中。KMC 112可能要通过向对应于前台OS和后台OS的内核108A……n传输信号来控制至少一个OS 106A……n的状态。在一个实施例中,信号可以是实质上模仿对设备100断电的动作的“虚拟电力按钮”信号。虚拟电力按钮信号可以模拟标准电力按钮,或者在一个实施例中可以被定制成引起与转变OS 106A……n相关联的某行为。这些信号可以使得对应于前台OS和后台OS的内核108A……n执行允许前台OS继续在后台中运行以及后台OS移动到前台的各种活动。这些活动可以包括改变内核108A……n中的至少一个驱动器的操作状态,使得前台OS可以将对装备102的控制让与移动到前台的后台OS。将关于图3进一步讨论这些活动的较具体的示例。
图2图示了根据本公开的至少一个实施例的用于可用设备100'的示例配置。特别地,设备100'可以能够执行诸如在图1中公开的示例功能。然而,设备100'仅意味着作为在与本公开一致的实施例中可用的示例装置,并不意味着将这些各种实施例限制到任何特定方式的实现。
设备100'可以包括例如***模块200,其被配置成管理设备操作。***模块200可以包括例如处理模块202、存储器模块204、电力模块206、用户接口模块208以及通信接口模块210。设备100'还可以包括通信模块212、VMM 104'和OS选择代理110A……n'。虽然通信模块212、VMM 104'和OS选择代理110A……n'被图示为与***模块200分离,但是在图2中示出的示例实现仅出于解释的目的被提供。与通信模块212、VMM 104'和OS选择代理110A……n'相关联的功能中的某些或全部可以被并入到***模块200中。
在设备100'中,处理模块202可以包括位于分离的部件中的一个或多个处理器,或替代地,被嵌入在单个部件中(例如,在片上***(SoC)配置中)的一个或多个处理核,以及任何处理器相关的支持电路(例如,桥接接口等)。示例处理器可以包括但不限于从英特尔公司可得到的各种基于x86的微处理器,包括在Pentium、Xeon、Itanium、Celeron、Atom、Core i系列产品家族、高级RISC(例如,精简指令集计算)机器或“ARM”处理器等中的那些。支持电路的示例可以包括芯片组(例如,从英特尔公司可得到的北桥、南桥等),其被配置成提供通过其处理模块202可以与可以在设备100'中以不同速度、在不同总线上等操作的其他***部件交互接口。还可以将通常与支持电路相关联的功能中的某些或全部包括在与(例如,诸如从英特尔公司可得到的沙桥(Sandy Bridge)家族处理器中的)处理器相同的物理封装中。
处理模块202可以被配置成执行设备100'中的各种指令。指令可以包括被配置成使得处理模块202执行与读取数据、写入数据、处理数据、规划(formulate)数据、转换数据、变换数据等相关的活动的程序代码。可以将信息(例如,指令、数据等)存储在存储器模块204中。存储器模块204可以包括以固定或可移除形式的随机访问存储器(RAM)或只读存储器(ROM)。RAM可以包括被配置成在设备100'的操作期间保持信息的易失性存储器,诸如例如静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括被配置成在设备100'被激活时基于BIOS、UEFI等提供指令的非易失性(NV)存储器模块、诸如电子可编程ROM(EPROM)的可编程存储器、闪存等。其他固定/可移除存储器可以包括但不限于诸如例如软盘、硬盘驱动等的磁存储器,诸如固态闪存(例如,嵌入式多媒体卡(eMMC)等)的电子存储器,例如微存储设备(uSD)、USB等的可移除存储卡或棒,诸如基于压缩盘的ROM(CD-ROM)、数字视频盘(DVD)、蓝光盘等的光存储器。
电力模块206可以包括内部电源(例如,电池、燃料电池等)和/或外部电源(例如,机电或太阳能发电机、电力网、燃料电池等)以及被配置成给设备100'供应操作所需的电力的相关电路。用户接口模块208可以包括用以允许用户与设备100'交互的硬件和/或软件,诸如例如各种输入机构(例如,麦克风,开关,按钮,旋钮,键盘,扬声器,触摸敏感表面,被配置成捕捉图像和/或感测接近、距离、运动、手势、定向等的一个或多个传感器)以及各种输出机构(例如,扬声器,显示器,发光/闪光指示器,用于震动、运动等的机电部件)。用户接口模块208中的硬件可以被并入到设备100'内和/或可以经由有线或无线通信介质被耦合到设备100'。
通信接口模块210可以被配置成管理分组路由和用于通信模块212的其他控制功能,其可以包括被配置成支持有线和/或无线通信的资源。在某些实例中,设备100'可以包括全部由集中通信接口模块210管理的多于一个通信模块212(例如,包括用于有线协议和/或无线无线电的分离的物理接口模块)。有线通信可以包括串行和并行有线介质,诸如例如以太网、通用串行总线(USB)、火线、数字视频接口(DVI)、高清晰度多媒体接口(HDMI)等。无线通信可以包括例如紧密接近的无线介质(例如,诸如基于近场通信(NFC)标准的射频(RF)、红外(IR)等)、短距离无线介质(例如,蓝牙、WLAN、Wi-Fi等)、长距离无线介质(例如,蜂窝广域无线电通信技术、基于卫星的通信等)或经由声波的电子通信。在一个实施例中,通信接口210模块可以被配置成防止在通信模块212中活动的无线通信彼此干扰。在执行该功能中,通信接口模块210可以基于例如等候传输的消息的相对优先级来调度通信模块212的活动。虽然在图2中公开的实施例图示了通信接口模块210与通信模块212分离,但是通信接口模块210和通信模块212的功能被并入在相同模块内也可以是可能的。
在图2中公开的示例中,OS选择代理110A……n'可以被配置成至少与用户接口模块208和VMM 104'中的KMC 112'交互。VMM 104'可以被配置成至少与OS选择代理110A……n'和存储器模块202交互。在操作的示例中,用户可以与用户接口模块208中的基于硬件的部件(例如,硬件按钮、开关等)或基于软件的部件(例如,屏幕按钮、图标等)交互以使得设备100'的后台中的OS 106A……n移动到前台。OS 106A……n中的至少一个OS选择代理110A……n'可以感测与用户接口模块202的用户交互并且然后可以向KMC 112'传输指令。KMC 112'然后可以将至少一个信号(例如,虚拟电力按钮信号)传输到驻留在存储器模块204中的内核108A……n以引起前台/后台OS转变。
图3图示了根据本公开的至少一个实施例的动态再分配的示例。图3公开了可能在将前台OS 106A转变到后台并将后台OS 106B转变到前台时发生的示例操作。例如,OS选择代理110A可以感测转变触发,并且然后可以向VMM 104中的KMC 112传输指示在设备100中OS 106B被转变到前台的消息。响应于接收消息300,KMC 112然后可以向内核108A'传输虚拟电力按钮信号。虚拟电力按钮可以使得设备驱动器304A在让与对装备102的控制之前保存装备102的当前状态,如在306处示出的那样。保存装备102的当前状态可以是根据正常的断电过程的习惯。KMC 112还可以向内核108B'传输虚拟电力按钮信号,如在308处示出的那样。向内核108B'的虚拟电力按钮信号308的传输可以发生例如在与虚拟电力按钮信号302基本上相同的时间处、在设定时间延迟之后、在虚拟电力按钮信号302的接收或对装备102的控制的释放被内核108A'确认之后等。虚拟电力按钮308可以使得设备驱动器304B恢复先前保存的装备102的状态,如在310处示出的那样,并发起(或再发起)对装备102的控制。如在310处示出的恢复先前保存的状态可以包括恢复对应于设备驱动器304B控制装备102的最后时间的设备驱动器304B中的设置。在设备驱动器304B的恢复之后,OS 106B可以开始(或重新开始)在设备100的前台中操作,如在312处示出的那样。OS 106A可以继续在设备100的后台中活动。特别地,OS 106A仍可以继续以可能没有对装备102的访问的程度的正常模式操作。前台和后台OS 106A……n之间的转变因此可以相对快速地进行,因为后台OS106A……n不完全休眠(例如,在睡眠状态中)。
在一个实施例中,KMC 112可以保持对前台和后台OS 106A……n的跟踪以便快速地促进从前台到后台OS 106A……n的改变。而且,可以在OS 106A……n之间共享某些设备驱动器304A和/或304B。例如,设备驱动器304A可以充当(例如,与安卓OS相关联的)原生驱动器,而设备驱动器304B可以充当(例如,与Windows操作***相关联的)透通(pass-through)驱动器。如果要求OS 106B访问装备102(例如,访问网络通信、数据存储等),则(例如,充当“前端”驱动器的)设备驱动器304B可以依赖于(例如,充当“后端”驱动器的)设备驱动器304A来促进访问。
图4图示了根据本公开的至少一个实施例的用于针对多OS设备的动态再分配的示例操作。图4中示出的示例操作可以是从设备内的VMM内部的KMC的视角。在操作400中,可以(例如,在KMC中从至少一个OS选择代理)接收用以利用后台OS替换前台OS的请求。转变请求的接收可以使得在操作402中将信号(例如,虚拟电力按钮信号)(例如,由KMC)传输到前台内核。虚拟电力按钮信号至少可以使得前台内核中的设备驱动器保存当前装备状态并释放对装备的控制。然后可以在操作404中向后台OS传输另一虚拟电力按钮信号,第二虚拟电力按钮至少使得后台OS中的设备驱动器恢复先前保存的装备并开始控制装备。作为虚拟电力按钮信号的传输的结果,前台OS可以转变到后台并且后台OS可以转变到前台。
虽然图4图示了根据实施例的操作,但是应理解的是,对于其他实施例而言不是在图4中描绘的操作中的全部都是必需的。事实上,在本文中完全地设想的是,在本公开的其他实施例中,在图4中描绘的操作和/或本文中描述的其他操作可以以没有在任何图中具体示出的方式被组合但仍完全与本公开一致。因此,指向没有在一个图中确切地示出的特征和/或操作的权利要求被认为在本公开的范围和内容内。
如在本申请中和在权利要求书中使用的那样,由术语“和/或”连结的项目的列表可以意味着所列项目的任何组合。例如,短语“A、B和/或C”可以意味着A;B;C;A和B;A和C;B和C;或A、B和C。如在本申请中和在权利要求书中使用的那样,由术语“中的至少一个”连结的项目的列表可以意味着所列术语的任何组合。例如,短语“A、B或C中的至少一个”可以意味着A;B;C;A和B;A和C;B和C;或A、B和C。
如在本文中的任何实施例中使用的那样,术语“模块”可以指被配置成执行前述操作中的任何操作的软件、固件和/或电路。可以将软件具体化为被记录在非瞬时计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。可以将固件具体化为被硬编码(例如,非易失性)在存储器设备中的代码、指令或指令集和/或数据。如在本文中的任何实施例中使用的那样,“电路”可以单独地或以任何组合地包括例如硬接线电路、诸如包括一个或多个单独的指令处理核的计算机处理器之类的可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可以被全体地或单独地具体化为形成较大***的部分的电路,所述较大***例如集成电路(IC)、片上***(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等。
可以在包括具有单独地或组合地存储于其上的指令的一个或多个存储介质(例如,非瞬时存储介质)的***中实现本文中描述的任何操作,所述指令在由一个或多个处理器执行时实行方法。这里,处理器可以包括例如服务器CPU、移动设备CPU和/或其他可编程电路。并且,意图可以本文中描述的操作跨多个物理设备(诸如在多于一个不同的物理位置处的处理结构)分布。存储介质可以包括任何类型的有形介质,例如包括硬盘、软盘、光盘、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)以及磁光盘的任何类型的盘,诸如只读存储器(ROM)、随机访问存储器(RAM)(诸如动态和静态RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁或光卡的半导体设备,或适于存储电子指令的任何类型的介质。其他实施例可以被实现为由可编程控制设备执行的软件模块。
因此,本申请指向针对多OS设备的动态再分配。示例设备可以包括装备、至少两个操作***、用以提供OS和装备之间的接口的针对每个OS的内核以及虚拟机管理器(VMM)。每个OS中的OS选择代理可以与VMM中的内核模式控制器(KMC)交互。例如,OS选择代理可以传输指示KMC将前台OS转变到后台并将后台OS转变到前台的消息。KMC可以向前台和后台操作***的内核传输使得前台OS内核中的至少一个驱动器保存当前装备状态并释放对装备的控制同时还使得后台OS内核中的至少一个驱动器恢复装备状态并采取对装备的控制的信号。
以下示例涉及进一步的实施例。如下面提供的那样,本公开的以下示例可以包括诸如设备、方法、至少一个用于存储指令的机器可读介质、用于基于方法执行动作的装置和/或用于针对多OS设备的动态再分配的***之类的主题,所述指令在被执行时使得机器基于方法执行动作。
根据示例1提供了一种多操作***设备。设备可以包括用以支持设备中的操作的装备、每个包括操作***选择代理的至少两个操作***、对应于至少两个操作***中的每个的内核以及至少包括内核模式控制器的虚拟机管理器,内核要促进装备和至少两个操作***之间的交互,所述内核模式控制器用以基于从操作***选择代理接收的指令控制至少两个操作***中的至少一个的操作状态。
示例2可以包括示例1的元素,其中至少两个操作***至少包括被加载在设备中的前台操作***和后台操作***。
示例3可以包括示例2的元素,其中至少一个操作***选择代理要感测用以改变前台操作***的触发,触发由事件、命令、基于硬件的用户接口或基于软件的用户接口中的至少一个产生。
示例4可以包括示例3的元素,其中基于硬件用户接口至少包括硬件按钮。
示例5可以包括示例3到4中的任何示例的元素,其中至少一个操作***选择代理进一步要至少向内核模式控制器传输指令以使得前台操作***转变到后台并且后台操作***转变到前台。
示例6可以包括示例2到4中的任何示例的元素,其中至少一个操作***选择代理要感测用以改变前台操作***的触发,触发由事件、命令、基于硬件的用户接口或基于软件的用户接口中的至少一个产生,并至少向内核模式控制器传输指令以使得前台操作***转变到后台并且后台操作***转变到前台。
示例7可以包括示例2到4中的任何示例的元素,其中内核模式控制器要控制操作状态包括内核模式控制器要向至少一个内核传输信号。
示例8可以包括示例7的元素,其中信号是虚拟电力按钮信号。
示例9可以包括示例7的元素,其中对应于前台操作***的内核包括至少一个驱动器,对应于前台操作***的内核要在接收信号时使得至少一个驱动器保存当前装备状态并释放对装备的控制。
示例10可以包括示例9的元素,其中对应于前台操作***的内核进一步要使得前台操作***在后台中保持活动。
示例11可以包括示例9的元素,其中内核模式控制器进一步要向前台操作***传输第一信号并向后台操作***传输第二信号。
示例12可以包括示例11的元素,其中内核模式控制器进一步要在传输第一信号之后或在接收前台操作***已释放对装备的控制的确认之后的延迟中的至少一个之后传输第二信号。
示例13可以包括示例7的元素,其中对应于前台操作***的内核包括至少一个驱动器,对应于前台操作***的内核要在接收信号时使得至少一个驱动器保存当前装备状态并释放对装备的控制以及使得前台操作***在后台中保持活动。
示例14可以包括示例7的元素,其中对应于后台操作***的内核包括至少一个驱动器,对应于后台操作***的内核要在接收信号时使得至少一个驱动器恢复所保存的装备状态并控制装备。
示例15可以包括示例14的元素,其中对应于后台操作***的内核进一步要使得后台操作***移动到前台。
示例16可以包括示例7的元素,其中对应于后台操作***的内核包括至少一个驱动器,对应于后台操作***的内核要在接收信号时使得至少一个驱动器恢复所保存的装备状态并控制装备以及使得后台操作***移动到前台。
示例17可以包括示例1到4中的任何示例的元素,其中至少一个内核包括用于访问装备的由至少两个操作***共享的驱动器。
根据示例18,提供了一种用于在设备上的多个操作***之间移动的方法。方法可以包括在至少包括内核模式控制器的虚拟机管理器中接收用以从前台操作***转变到后台操作***的请求、从内核模式控制器向对应于前台操作***的内核传输使得前台操作***解激活的信号以及从内核模式控制器向对应于前台操作***的内核传输使得后台操作***激活的信号。
示例19可以包括示例18的元素,其中信号是虚拟电力按钮信号。
示例20可以包括示例18到19中的任何示例的元素,任何可以进一步包括在对应于前台操作***的内核中接收信号,使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态以及使得至少一个驱动器释放对装备的控制。
示例21可以包括示例20的元素,并且可以进一步包括使得前台操作***在后台中保持活动。
示例22可以包括示例20的元素,并且可以进一步包括在从内核模式控制器向对应于后台操作***的内核传输信号之前延迟,延迟基于在向对应于前台操作***的内核传输信号之后或在接收前台操作***已释放对装备的控制的确认之后的持续时间中的至少一个。
示例23可以包括示例18到19中的任何示例的元素,并且可以进一步包括在对应于前台操作***的内核中接收信号,使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态、使得至少一个驱动器释放对装备的控制以及使得前台操作***在后台中保持活动。
示例24可以包括示例18到19中的任何示例的元素,并且可以进一步包括在对应于后台操作***的内核中接收信号,使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态以及使得至少一个驱动器控制装备。
示例25可以包括示例24的元素,并且可以进一步包括使得后台操作***移动到前台。
示例26可以包括示例18到19中的任何示例的元素,并且进一步包括在对应于后台操作***的内核中接收信号,使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态、使得至少一个驱动器控制装备以及使得后台操作***移动到前台。
根据示例27,提供了一种至少包括设备的***,***被布置成执行上面示例18到26中的任何示例的方法。
根据示例28,提供了一种被布置成执行上面示例18到26中的任何示例的方法的芯片组。
根据示例29,提供了至少一种机器可读介质,其包括多个指令,所述多个指令响应于在计算设备上被执行而使得计算设备实行根据上面示例18到26中的任何示例的方法。
根据示例30,提供了一种被配置用于针对多OS设备的动态再分配的设备,设备被布置成执行上面示例18到26中的任何示例的方法。
根据示例31,提供了一种用于在设备上的多个操作***之间移动的***。***可以包括用于在至少包括内核模式控制器的虚拟机管理器中接收用以从前台操作***转变到后台操作***的请求的装置、用于从内核模式控制器向对应于前台操作***的内核传输使得前台操作***解激活的信号的装置,以及用于从内核模式控制器向对应于前台操作***的内核传输使得后台操作***激活的信号的装置。
示例32可以包括示例的元素,其中信号是虚拟电力按钮信号。
示例33可以包括示例31到32中的任何示例的元素,并且可以进一步包括用于在对应于前台操作***的内核中接收信号的装置、用于使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态的装置,以及用于使得至少一个驱动器释放对装备的控制的装置。
示例34可以包括示例33元素,并且可以进一步包括用于使得前台操作***在后台中保持活动的装置。
示例35可以包括示例31到32中的任何示例的元素,并且可以进一步包括用于在对应于后台操作***的内核中接收信号的装置、用于使得内核中的至少一个驱动器保存正由驱动器控制的设备中的装备的当前状态的装置,以及用于使得至少一个驱动器控制装备的装置。
示例36可以包括示例35的元素,并且可以进一步包括用于使得后台操作***移动到前台的装置。
本文中采用的术语和表达被用作描述而不是限制的术语,并且不存在此类术语和表达的使用中排除所示出和描述的特征(或其部分)的任何等同物的意图,并且应认识到的是在权利要求书的范围内的各种修改是可能的。因此,意图权利要求书覆盖所有此类等同物。

Claims (16)

1.一种多操作***设备,包括:
用以支持所述设备中的操作的装备;
至少两个操作***,每个包括相应的操作***选择代理;
至少两个内核,每个对应于所述至少两个操作***中的相应的操作***,所述内核用以促进所述装备和所述至少两个操作***之间的交互;以及
虚拟机管理器,至少包括内核模式控制器,用以基于从操作***选择代理接收的指令来控制所述至少两个操作***中的至少一个的操作状态,
其中所述至少两个操作***至少包括被加载在所述设备中的前台操作***和后台操作***;
其中所述内核模式控制器用以控制所述操作状态包括所述内核模式控制器用以向至少一个内核传输信号;
其中对应于所述前台操作***的内核包括至少一个驱动器,所述对应于所述前台操作***的内核用以在接收到所述信号时使得所述至少一个驱动器保存当前装备状态和释放对所述装备的控制;以及
其中所述对应于所述前台操作***的内核进一步用以通过以下操作使得所述前台操作***在后台中保持活动:使得所述前台操作***继续以正常模式操作而没有对所述装备的访问。
2.根据权利要求1所述的设备,其中至少一个操作***选择代理用以感测用以改变所述前台操作***的触发,所述触发由事件、命令、基于硬件的用户接口或基于软件的用户接口中的至少一个产生。
3.根据权利要求2所述的设备,其中所述至少一个操作***选择代理进一步用以至少向所述内核模式控制器传输指令以使得所述前台操作***转变到后台和所述后台操作***转变到前台。
4.根据权利要求1所述的设备,其中所述信号是虚拟电力按钮信号。
5.根据权利要求1所述的设备,其中对应于所述后台操作***的内核包括至少一个驱动器,所述对应于后台操作***的内核用以在接收到所述信号时使得所述至少一个驱动器恢复所保存的装备状态和控制所述装备。
6.根据权利要求5所述的设备,其中所述对应于所述后台操作***的内核进一步用以使得所述后台操作***移动到前台。
7.根据权利要求1所述的设备,其中至少一个内核包括用于访问所述装备的由所述至少两个操作***共享的驱动器。
8.一种用于在设备上的多操作***之间移动的方法,包括:
在至少包括内核模式控制器的虚拟机管理器中接收从前台操作***转变到后台操作***的请求;
从所述内核模式控制器向对应于所述前台操作***的内核传输使得所述前台操作***解激活的信号;
从所述内核模式控制器向对应于所述后台操作***的内核传输使得所述后台操作***激活的信号;
在所述对应于所述前台操作***的内核中接收所述信号;
使得所述内核中的至少一个驱动器保存所述设备中的正由所述驱动器控制的装备的当前状态;
使得所述至少一个驱动器释放对所述装备的控制;以及
通过以下操作使得所述前台操作***在后台中保持活动:使得所述前台操作***继续以正常模式操作而没有对所述装备的访问。
9.根据权利要求8所述的方法,其中所述信号是虚拟电力按钮信号。
10.根据权利要求8所述的方法,进一步包括:
在所述对应于所述后台操作***的内核中接收所述信号;
使得所述对应于所述后台操作***的内核中的至少一个驱动器恢复先前所保存的所述装备的状态;以及
使得所述对应于所述后台操作***的内核中的所述至少一个驱动器控制所述装备。
11.根据权利要求10所述的方法,进一步包括:
使得所述后台操作***移动到前台。
12.一种用于在设备上的多个操作***之间移动的***,包括:
用于在至少包括内核模式控制器的虚拟机管理器中接收从前台操作***转变到后台操作***的请求的装置;
用于从所述内核模式控制器向对应于所述前台操作***的内核传输使得所述前台操作***解激活的信号的装置;
用于从所述内核模式控制器向对应于所述后台操作***的内核传输使得所述后台操作***激活的信号的装置;
用于在所述对应于所述前台操作***的内核中接收所述信号的装置;
用于使得所述内核中的至少一个驱动器保存所述设备中的正由所述驱动器控制的装备的当前状态的装置;
用于使得所述至少一个驱动器释放对所述装备的控制的装置;以及
用于通过以下操作使得所述前台操作***在后台中保持活动的装置:使得所述前台操作***继续以正常模式操作而没有对所述装备的访问。
13.根据权利要求12所述的***,其中所述信号是虚拟电力按钮信号。
14.根据权利要求12所述的***,进一步包括:
用于在所述对应于所述后台操作***的内核中接收所述信号的装置;
用于使得所述对应于所述后台操作***的内核中的至少一个驱动器恢复先前所保存的所述装备的状态的装置;以及
用于使得所述对应于所述后台操作***的内核中的所述至少一个驱动器控制所述装备的装置。
15.根据权利要求14所述的***,进一步包括:
用于使得所述后台操作***移动到前台的装置。
16.一种机器可读介质,其上存储有多个指令,当在计算设备上执行所述多个指令时,所述多个指令使得所述计算设备执行按照权利要求8至11中任一项所述的方法。
CN201580007511.9A 2014-03-06 2015-03-04 针对多操作***设备的动态再分配 Active CN105940375B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/198,685 US9830178B2 (en) 2014-03-06 2014-03-06 Dynamic reassignment for multi-operating system devices
US14/198,685 2014-03-06
PCT/US2015/018738 WO2015134614A1 (en) 2014-03-06 2015-03-04 Dynamic reassignment for multi-operating system devices

Publications (2)

Publication Number Publication Date
CN105940375A CN105940375A (zh) 2016-09-14
CN105940375B true CN105940375B (zh) 2020-12-01

Family

ID=54017455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580007511.9A Active CN105940375B (zh) 2014-03-06 2015-03-04 针对多操作***设备的动态再分配

Country Status (7)

Country Link
US (1) US9830178B2 (zh)
EP (1) EP3114562A4 (zh)
JP (1) JP6415581B2 (zh)
KR (1) KR101825561B1 (zh)
CN (1) CN105940375B (zh)
DE (1) DE202015009918U1 (zh)
WO (1) WO2015134614A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516760B (zh) * 2014-12-12 2018-01-09 华为技术有限公司 一种操作***热切换的方法、装置及移动终端
EP3553659B1 (en) * 2015-02-24 2022-11-23 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
CN106528133B (zh) * 2016-11-03 2021-04-02 成都凛冬科技有限公司 一种应用于多***的设备请求处理方法及装置
CN108255683B (zh) * 2016-12-29 2021-06-22 华为技术有限公司 终端中消息提示的方法和终端
CN107273765B (zh) * 2017-05-12 2020-06-16 杭州中天微***有限公司 基于双虚拟内核机制的处理器
CN109669723B (zh) * 2017-10-13 2023-06-13 斑马智行网络(香港)有限公司 硬件访问方法、装置、设备和机器可读介质
CN113127215B (zh) * 2019-12-30 2024-01-26 成都鼎桥通信技术有限公司 一种双操作***智能终端中管理传感器的方法和设备
CN115185442B (zh) * 2022-07-07 2024-06-04 广东明创软件科技有限公司 运行参数控制方法、处理器、终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059768A (zh) * 2006-04-17 2007-10-24 北京软通科技有限责任公司 实现操作***备用的***及方法
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
CN101561769A (zh) * 2009-05-25 2009-10-21 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
US20100162242A1 (en) * 2008-12-24 2010-06-24 Virtuallogix Sa Virtual Machine Monitor
US20110202918A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Virtualization apparatus for providing a transactional input/output interface
US20110271088A1 (en) * 2010-04-28 2011-11-03 Broadon Communications Corp. Operating system context switching

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814795B2 (ja) * 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
JP4072271B2 (ja) 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
CN100547515C (zh) 2005-07-15 2009-10-07 联想(北京)有限公司 支持可信计算的虚拟机***及在其上实现可信计算的方法
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
JP5251385B2 (ja) 2008-09-16 2013-07-31 富士通株式会社 イベント検出システム、イベント検出方法、およびプログラム
US8239667B2 (en) 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
JP5353227B2 (ja) * 2008-12-24 2013-11-27 富士通株式会社 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
JP5729146B2 (ja) 2011-06-03 2015-06-03 富士通株式会社 情報端末装置、情報端末装置の制御方法およびプログラム
US8924986B2 (en) 2011-09-01 2014-12-30 American Megatrends, Inc. Methods, devices and computer program products for confluence of multiple operating systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059768A (zh) * 2006-04-17 2007-10-24 北京软通科技有限责任公司 实现操作***备用的***及方法
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US20100162242A1 (en) * 2008-12-24 2010-06-24 Virtuallogix Sa Virtual Machine Monitor
CN101561769A (zh) * 2009-05-25 2009-10-21 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
US20110202918A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Virtualization apparatus for providing a transactional input/output interface
US20110271088A1 (en) * 2010-04-28 2011-11-03 Broadon Communications Corp. Operating system context switching

Also Published As

Publication number Publication date
US9830178B2 (en) 2017-11-28
KR101825561B1 (ko) 2018-02-05
DE202015009918U1 (de) 2021-08-06
US20150254086A1 (en) 2015-09-10
JP2017507417A (ja) 2017-03-16
CN105940375A (zh) 2016-09-14
EP3114562A4 (en) 2017-10-18
WO2015134614A1 (en) 2015-09-11
JP6415581B2 (ja) 2018-10-31
EP3114562A1 (en) 2017-01-11
KR20160106100A (ko) 2016-09-09

Similar Documents

Publication Publication Date Title
CN105940375B (zh) 针对多操作***设备的动态再分配
US10684865B2 (en) Access isolation for multi-operating system devices
US9081703B2 (en) Method and apparatuses for facilitating sharing device connections between a host and client based on the power mode of the host
CN104360900B (zh) 用于运行多操作***的方法以及相应的***和移动设备
US10445154B2 (en) Firmware-related event notification
JP2018511104A (ja) 改善されたハイブリッドスリープ電力管理のための技術
CN104516782B (zh) 用于进行智能***运行环境切换的方法及其设备
US9672055B2 (en) Information processing system having two sub-systems with different hardware configurations which enable switching therebetween
US20150033225A1 (en) Operating system switching method and apparatus
WO2017131874A1 (en) Enhanced virtual function capabilities in a virtualized network environment
US11907153B2 (en) System and method for distributed subscription management
WO2015012878A1 (en) Operating system switching method and apparatus
US11699470B2 (en) Efficient memory activation at runtime
CN103870295B (zh) 切换方法和电子设备
WO2019119438A1 (zh) 一种操作***屏幕锁定的方法、装置及电子设备
US20160170797A1 (en) Managing callback operations in emulated environments
US20130179903A1 (en) Coordinating power states in a hybrid information handling device
CN112416106A (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