CN101317171A - 应用程序的延迟启动 - Google Patents

应用程序的延迟启动 Download PDF

Info

Publication number
CN101317171A
CN101317171A CNA2006800447593A CN200680044759A CN101317171A CN 101317171 A CN101317171 A CN 101317171A CN A2006800447593 A CNA2006800447593 A CN A2006800447593A CN 200680044759 A CN200680044759 A CN 200680044759A CN 101317171 A CN101317171 A CN 101317171A
Authority
CN
China
Prior art keywords
priority
container object
application program
computer
described container
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
CNA2006800447593A
Other languages
English (en)
Other versions
CN101317171B (zh
Inventor
C·厄冈
D·李
M·R·福特恩
R·杰斯
R·L·莱伊诺尔
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 CN101317171A publication Critical patent/CN101317171A/zh
Application granted granted Critical
Publication of CN101317171B publication Critical patent/CN101317171B/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/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

某些应用程序的启动延迟可以导致系统总体性能的改善。被延迟的应用程序可被置于容器对象或箱中,从而可以追踪它们且可以适当地处理依赖于该延迟应用程序的其他应用程序。

Description

应用程序的延迟启动
背景
当计算机接通电源或用户登录时,计算机操作系统提供多种方法注册将要运行的应用程序。这些启动应用程序在启动(接通电源)和登录时可能是性能问题的主要原因。在安装时,软件应用程序通常将其自己注册为启动应用程序而不考虑这对用户而言是否是必需的。用户经常被搞糊涂且不知道如何关闭这一选项,结果是在普通用户的机器上出现需要花很长时间来初始化的大量启动应用程序。在此初始化期间,虽然对用户而言它们不是立即需要或想要的且可以慢些再启动,但是它们消耗了机器上的系统资源。因为这个问题,大量Microsoft Windows顾客在登录之后不得不等很长时间才能开始使用其计算机。当然,存在必要的且重要的启动应用程序,如即时消息通信应用程序、反病毒或反间谍软件应用程序。
概述
启动某些应用程序中的延迟可以导致改善所感知的系统性能。这可通过延迟这些进程运行的时间、和/或通过对诸如处理器、I/O或存储器资源等各系统资源减少这些进程的优先级来完成。这允许用户更迅速地获得这些资源而不管用户所需目的是什么,而非必须等待启动应用程序结束初始化。此外,公开了用于允许用户调整启动优先级的用户界面。
附图
图1是可以根据权利要求来操作的计算系统的框图;
图2可以是根据权利要求的方法的一个高级说明;以及
图3可以示出根据权利要求的方法的另一实施例。
描述
虽然以下文本阐明了许多不同实施例的详细描述,但是应当理解,本描述的合法范围由本专利所附权利要求书的文字来定义。本详细描述应仅被理解为示例性的,且不描述全部可能的实施例,因为描述全部可能的实施例是不实际的(如果不是不可能的话)。可以使用现有技术或本专利的申请日后开发的技术实现许多替换实施例,它们仍落入权利要求书的范围。
还应当理解,除非在此专利中使用句子“如此处所使用,术语‘____’特此定义为意指......”或类似句子明确地定义一术语,否则不存在明确地或通过暗示将该术语的意思限制在其平常或普通意思之外的意图,并且这样的术语不应被理解为限于基于本专利的任何章节中的任何语句(除了权利要求书的语言)的范围中。就本专利所附的权利要求书所叙述的任何术语在本专利中按与单数意思一致的方式被引用来说,这么做是为了清楚以至于不使读者迷惑,并且不旨在通过暗示或其他方式将权利要求术语限于该单数意思。最后,除非通过单词“意指”以及在没有叙述任何结构的情况下叙述功能来定义权利要求元素,否则不旨在基于申请35U.S.C§112的第6段来解释任何权利要求元素的范围。
图1示出了其上可以实现用于所要求保护的方法的步骤和装置的合适计算系统环境100的示例。计算系统环境100只是合适计算环境的一个示例,且不旨在对权利要求的方法和装置的使用或功能的范围提出任何限制。计算环境100也不应理解为对示例性操作环境100中示出的任何一个组件或其的结合有任何依赖或要求。
所要求保护的方法的步骤和装置可与许多其他通用或专用计算系统环境或配置一起操作。可适用于与权利要求书的方法或装置一起使用的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等等。
可以在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述所要求保护的方法的步骤和装置。一般而言,程序模块包括执行特定任务或实现特定数据结构类型的例程、程序、对象、组件、数据结构等。也可以在分布式计算环境中实现方法和装置,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参见图1,用于执行所要求保护的方法的步骤和装置的示例性系统包括计算机110形式的通用计算设备。计算机110的组件包括但不限于:处理单元120、系统存储器130和将包括系统存储器在内的各个系统组件耦合到处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任何一种的局部总线。作为例子而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、外围部件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。
计算机100通常包括各种计算机可读介质。计算机可读介质可以是能由计算机100访问的任何可用介质,且包括易失性和非易失性介质、以及可移动和不可移动介质。作为例子而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质可以包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据这样的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多功能盘(DVD)或者其它光盘存储、磁带盒、磁带、磁盘存储或者其它磁存储设备、或者能够用来存储所需信息并且能够由计算机100访问的任何其它介质。通信介质通常以诸如载波或者其它传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或者其它数据,并且包括任何信息传递介质。术语“已调制数据信号”是指以在该信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为例子而非限制,通信介质包括有线介质,诸如有线网络或者直接线连接,以及无线介质,诸如声学、射频(RF)、红外以及其它无线介质。任何上述组合都应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机可读存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)一般被存储在ROM 131中,BIOS包含有助于例如在启动过程中在计算机110内部的元件之间传输信息的基本例程。RAM 132一般包含可由处理单元120立即访问和/或当前正由处理单元120进行操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其他程序模块136和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅仅作为示例,图1示出了从不可移动、非易失性磁介质读取或向其写入的硬盘驱动器140,从可移动、非易失性磁盘152读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156读取或向其写入的光盘驱动器155。能在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150等可移动存储器接口连接到系统总线121。
以上讨论且示于图1中的驱动器及其相关联计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块及其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。应当注意,这些组件可以和操作系统134、应用程序135、其他程序模块136和程序数据137相同或者相异。操作系统144、应用程序145、其他程序模块146和程序数据147在此处被给予了不同的编号以示出至少,它们是不同的副本。用户可以经由输入设备,诸如键盘162和通常称之为鼠标、跟踪球或者触摸垫的指示设备161将命令和信息输入到计算机20中。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其它输入设备经常经由耦合到系统总线的用户输入接口160耦合到处理单元120,但是可以通过其它接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)进行连接。监视器191或其他类型的显示设备也通过诸如视频接口190等接口耦合到系统总线121。除了监视器之外,计算机100还可以包括诸如扬声器197和打印机196等其他外围输出设备,它们可以通过输出外围接口190进行连接。
计算机110可以利用与诸如远程计算机180等一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其它常见的网络节点,而且通常包括许多或者所有以上相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1中描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这种网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
当在LAN网络环境中使用时,计算机110经由网络接口或适配器170耦合到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或者用于经由如因特网等WAN 173建立通信的其他装置。可以是内置或者外置的调制解调器172可经由用户输入接口160或者其他适当的机制连接到系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可存储在远程存储器设备中。作为示例而非限制,图1将远程应用程序185示为驻留在存储器设备181上。应当明白,所示网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
详细的应用程序启动
向用户提供通过将启动应用程序从诸如“运行(RUN)”注册表项等各个注册点移除来将它们从启动进程中“移除”的选项是有用的,但这一特征有几个问题。首先,启动应用程序经常监视这些注册点且将它们添加回来。其次,通过从启动序列中完全地移除应用程序,可能会不利地破坏或丢失某些功能。
“延迟”启动应用程序的方法是一种解决方案且在以下描述,它允许用户在登录时收回对其计算机的控制且无需从启动中完全移除启动应用程序。可以通过降低启动应用程序用于CPU、I/O以及存储器等的各自优先级来限制这些进程对这类系统资源的消耗,这样以减少这些进程对用户系统的影响。在运行启动应用程序时,该方法可以降低它们的CPU、I/O和页面优先级,并且将它们置于某些跟踪对象中。这种方法被称为“装箱(boxing)”。在可配置时间段之后,该方法可以将其优先级还原为初始设置。
图2可以是根据权利要求的方法的高级说明。在方框200处,用户可以使用用户界面来设置要延迟的某个应用程序。在方框205处,该方法可以存储所选应用程序被存储在存储器中。在方框210处,操作系统可以开始。在方框215处,该方法可以运行启动应用程序。在方框220处,该方法可以判定特定应用程序是否在方框210处被存储为要被延迟的进程。如果该判定为否,则在方框225处,该方法可以正常运行且该方法结束。如果方框220处的判定为是,则该方法可以挂起用于特定应用程序230的创建进程。在方框235处,该方法可以将要被延迟的特定应用程序添加到作业容器对象。在方框240处,该方法可以降低用于特定应用程序的进程优先级,且该方法可以限制一工作集。在方框245处,可以启动一计时器,并且在方框250处,该计时器会期满。在方框255处,可以还原特定应用程序的优先级,且该方法可以解除对工作集的限制。
在一实施例中,系统注册表中的受保护项包含允许基于每个图象路径来打开或关闭装箱的例外列表。例如,未列在该例外列表上的所有应用程序可被装箱或置于容器对象中。
操作系统需要跟踪被装箱的初始和派生进程。例如,如果一启动应用程序被装箱,且给定应用程序进程运行了一子进程,该子进程也应被装箱,且当父(初始)进程被解除装箱时,该子进程也应被解除装箱。在Microsoft Windows中,可使用作业(Job)对象来完成此任务。
如果该方法可以在启动应用程序应被解除装箱前防止它们重新提升其优先级(这将大大地减少该方法的好处),那么该方法将是最有效的。在MicrosoftWindows中,可以使用作业对象来对进程施加进程无法逃避的优先级约束,除非作业对象(即箱,且因此为操作系统)的初始创建者主动决定撤销约束,如在对给定应用程序解除装箱时。
该方法可以使用系统注册表来存储关于如果进程(通过其可执行图象文件的名称)运行为启动应用程序那么它是否应被装箱的每个图象文件名称设置。在Windows系统中,需要特别关注可以执行许多不同特征的如“rundll32.exe”的通用机制,且因此,如果存在与对“rundll32.exe”的普遍约束相比对这些特征的更精细粒度的控制,就可以最佳地反映用户的意图。该方法可能需要对项进行访问控制限制(“ACL”),从而普通启动应用程序将不能修改该项中的其自已的设置。
一旦该方法运行了所有启动应用程序,该方法可以在某个可配置超时(如30秒)之后设置箱对象以释放作业(即从对进程的约束中释放进程且还原其优先级)。
该方法还可以与操作系统的其他部分有联系以便检测用户是否正与装箱的应用程序交互,且使用该信息来在该应用程序的装箱超时期满之前解除对给定应用程序的装箱。这不仅允许操作系统减少通常情况下的不想要启动应用程序成本,而且也允许操作系统动态地检测应用程序何时变为用户想要的,此时优先级约束对用户就系统的体验是不利的。为这些应用程序检测用户活动的方法应该防止应用程序的哄骗活动,因为这些活动将破坏该方法的有效性。也可以将启动应用程序正被交互地使用的知识保留为历史数据,且可使用这些数据来防止其在将来被装箱,这或许可以改善用户的体验。确定用户何时正与启动应用程序交互的一个简单示例方法就是重复地检查是否有任何启动应用程序的窗口变为前景窗口,且鼠标光标是否位于该窗口内。
图3示出根据权利要求书的方法的另一实施例。在方框300处,该方法可以允许对进程的优先级类、I/O优先级、优先级页面、工作集和网络能力中的一个分配优先级。在方框305处,该方法可以将进程置于一作业对象中,从而可以跟踪该进程和从属进程。在方框310处,该方法可以允许优先级在启动时被调低,且在方框315处,该方法可以允许优先级在启动之后的延迟时段之后被调高。在方框320处,该方法可以允许优先级在高度使用期间被调低。在方框325处,在高度使用期间之后,该方法可以允许优先级被调高。在方框330处,该方法可以创建所有启动应用程序都将加入的会话范围作业对象。在方框335处,该方法可以将进程装箱为组且不允许单个进程被单独解除装箱。在方框340处,该方法可以使用线程级存储器来向系统传递装箱被请求的信息。这可通过创建“运行启动应用程序线程(Run Startup Apps Thread)”中的(Cbox)对象以及保留指向邻接的(Cbox)的线程级存储器指针来完成。在方框345处,该方法可以使用修改的API栈来向系统传递装箱被请求的信息。在方框350处,该方法可以在进程创建时从线程级存储发出(Cbox)对象,并确定是否要对进程装箱或不装箱。在方框355处,该方法可以使用作为引用计数的指针。在方框360处,该方法可以将引用计数器递增到由线程级存储槽所指向的箱对象。在方框365处,该方法可以设置成在可设置时间段之后从箱对象中释放作业。在方框370中,该方法可以使用注册表来存储关于如果图象作为启动应用程序运行的,则它是否应被装箱的每个图象查看器设置。在方框375处,该方法可以使注册表项受访问控制列表的管辖,从而通用的启动应用程序就不能修改该项中其自己的设置。在方框375中,在运行进程时,该方法可以将该进程置于约束作业对象中,使得装箱的应用程序就不能打破优先级设置,在作业对象被破坏之前与作业的关联不能被打破,并且由作业对象设置的约束也不能被装箱进程重写。在方框380处,该方法可以创建控制I/O和页面优先级限制的作业对象限制结构。
虽然前述文本阐明了许多不同实施例的详细描述,但是应当理解,本专利的范围是由本专利所附的权利要书的文字来定义的。本详细描述应仅被理解为示例性的,且不描述全部可能实施例,因为描述全部可能实施例是不实际的(如果不是不可能的话)。可以使用现有技术或本专利申请日后开发的技术来实现许多替换实施例,它们仍落入本权利要求书的范围。
因此,可以对此处所描述和示出的技术和结构作出许多修改和变更,而不脱离本权利要求书的精神和范围。因此,应当理解,此处所描述的方法和装置仅是说明性的,且并不是对本权利要求书的范围的限制。

Claims (20)

1.一种管理系统优先级的方法,包括:
允许对进程的CPU(处理器)优先级类、I/O优先级、存储器页面优先级、存储器工作集、网络能力中的至少一个分配优先级;
将所述进程置于一容器对象中,以便可以跟踪所述进程和从属进程;
允许所述优先级在应用程序启动时被调低;
允许所述优先级在启动之后的延迟时段之后被调高。
2.如权利要求1所述的方法,其特征在于,还包括允许所述优先级在高度使用时段期间被调低。
3.如权利要求1所述的方法,其特征在于,还包括在高度使用时段之后,允许所述优先级被调高。
4.如权利要求1所述的方法,其特征在于,还包括创建所有启动应用程序都将加入的会话范围容器对象。
5.如权利要求1所述的方法,其特征在于,还包括将进程添加到所述容器对象中作为一组。
6.如权利要求1所述的方法,其特征在于,还包括设置成在可配置时段之后从所述容器对象释放所述进程。
7.如权利要求1所述的方法,其特征在于,还包括检测用户与所述容器对象中的进程的交互、以及动态地移除其约束、和/或使用历史信息来防止它们在将来被置于所述容器对象中。
8.如权利要求1所述的方法,其特征在于,还包括使用所述注册表来存储关于如果给定进程作为启动应用程序运行则它是否应被置于所述容器对象中的每个图像文件名称设置。
9.如权利要求1所述的方法,其特征在于,还包括使所述注册表项受一访问控制列表的管辖,从而通用启动应用程序将不能修改所述项中其自己的设置。
10.如权利要求1所述的方法,其特征在于,还包括当运行所述进程时,将所述进程置于一约束容器对象中,使得:
所述容器对象中的所述应用程序不能打破所述优先级设置;
在所述容器对象被破坏之前,与一进程的关联不能被打破;以及
由所述容器对象设置的所述约束不能被所述容器对象中的所述进程重写。
11.如权利要求1所述的方法,其特征在于,还包括创建控制I/O和页面优先级限制的作业对象限制结构。
12.一种包括用于管理系统优先级的计算机可执行指令的计算机可读介质,包括用于以下各项的计算机可执行指令:
允许对进程的CPU优先级类、I/O优先级、存储器页面优先级、存储器工作集、网络能力中的至少一个分配优先级;
将所述进程置于所有启动应用程序都将加入的某一容器对象中,以便可以跟踪所述进程和从属进程;
允许所述优先级在启动时被调低;
允许所述优先级在启动之后的延迟时段之后被调高。
13.如权利要求12所述的计算机可读介质,其特征在于,还包括用于以下各项中至少之一的计算机可执行指令:
允许所述优先级在高度使用时段期间被调低;
在所述高度使用时段之后,允许所述优先级被调高;
创建所有启动应用程序都将加入的会话范围容器对象;
将进程添加到所述容器中作为一组;以及
设置成在一可配置时段之后,从所述容器对象中释放所述进程。
14.如权利要求12所述的计算机可读介质,其特征在于,还包括用于检测用户与所述容器对象中的进程的交互,以及动态地移除其约束,和/或使用历史信息来防止它们在将来被置于所述容器对象中的计算机可执行指令。
15.如权利要求12所述的计算机可读介质,其特征在于,还包括用于使用所述注册表来存储关于如果所述进程是作为启动应用程序运行的则所它是否应被置于所述容器对象中的每个图象文件名称设置的计算机可执行指令。
16.如权利要求12所述的计算机可读介质,其特征在于,还包括用于使所述注册表项受一访问控制列表的管辖从而通用启动应用程序将不能修改所述项中其自己的设置的计算机可执行指令。
17.如权利要求12所述的计算机可读介质,其特征在于,还包括用于在运行所述进程时,将所述进程置于一约束作业对象中的计算机可执行指令,使得:
所述容器对象中的所述应用程序不能打破所述优先级设置;
在所述容器对象被破坏之前,与一进程的关联不能被打破;以及
由所述容器对象设置的所述约束不能被所述容器对象中的所述进程重写。
18.如权利要求12所述的计算机可读介质,其特征在于,还包括用于创建控制I/O和页面优先级限制的进程对象限制结构的计算机可执行指令。
19.一种计算机系统,包括处理器、存储器以及输入/输出设备,所述处理器适于执行包括用于以下各项的指令的指令:
允许对进程的CPU优先级类、I/O优先级、存储器页面优先级、存储器工作集、网络能力中的至少一个分配优先级;
将所述进程置于所有启动应用程序都将加入的容器对象中,以便可以跟踪所述进程和从属进程;
允许所述优先级在启动时被调低;
允许所述优先级在启动之后的延迟时段之后被调高。
20.如权利要求19所述的计算机系统,其特征在于,还包括在运行所述进程时将所述进程置于一约束作业对象中的指令,使得:
所述容器对象中的所述应用程序不能打破所述优先级设置;
在所述进程对象被破坏之前,与进程的关联不能被打破;以及
由所述容器对象设置的所述约束不能被所述容器对象中的所述进程重写。
CN2006800447593A 2005-11-30 2006-11-29 应用程序的延迟启动 Active CN101317171B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/290,105 US7500091B2 (en) 2005-11-30 2005-11-30 Delay start-up of applications
US11/290,105 2005-11-30
PCT/US2006/045708 WO2007064717A1 (en) 2005-11-30 2006-11-29 Delay start-up of applications

Publications (2)

Publication Number Publication Date
CN101317171A true CN101317171A (zh) 2008-12-03
CN101317171B CN101317171B (zh) 2010-09-15

Family

ID=38087430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800447593A Active CN101317171B (zh) 2005-11-30 2006-11-29 应用程序的延迟启动

Country Status (10)

Country Link
US (1) US7500091B2 (zh)
EP (1) EP1955200B1 (zh)
JP (1) JP5127722B2 (zh)
KR (1) KR101312819B1 (zh)
CN (1) CN101317171B (zh)
AU (1) AU2006320589B2 (zh)
BR (1) BRPI0618430A2 (zh)
CA (1) CA2628416C (zh)
RU (1) RU2419840C2 (zh)
WO (1) WO2007064717A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019706A (zh) * 2012-11-29 2013-04-03 北京奇虎科技有限公司 针对启动项目的处理方法和装置
CN109213537A (zh) * 2018-08-16 2019-01-15 Oppo广东移动通信有限公司 应用程序的启动控制方法、装置、存储介质及终端
CN109753209A (zh) * 2018-06-21 2019-05-14 北京字节跳动网络技术有限公司 一种应用程序启动方法、装置及设备

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1944690A3 (de) * 2006-12-19 2009-05-20 Continental Automotive GmbH Verfahren, Vorrichtung und System
US8176314B2 (en) * 2008-02-22 2012-05-08 International Business Machines Corporation System startup with applications using configurable options
CN101296199A (zh) * 2008-06-27 2008-10-29 腾讯科技(深圳)有限公司 一种即时通讯工具调度任务的方法和即时通讯工具
US8370613B1 (en) * 2009-06-30 2013-02-05 Symantec Corporation Method and apparatus for automatically optimizing a startup sequence to improve system boot time
JP5590114B2 (ja) * 2010-03-11 2014-09-17 富士通株式会社 ソフトウェア制御装置、ソフトウェア制御方法、およびソフトウェア制御プログラム
NL2004913C2 (en) * 2010-06-17 2011-12-20 Sytse S Professional Ict Solutions Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.
JP5631112B2 (ja) * 2010-08-23 2014-11-26 キヤノン株式会社 画像形成装置
JP2012058879A (ja) * 2010-09-07 2012-03-22 Toshiba Corp オペレーティングシステム起動管理装置
US8677158B2 (en) 2011-08-10 2014-03-18 Microsoft Corporation System and method for assigning a power management classification including exempt, suspend, and throttling to an process based upon various factors of the process
US8935697B2 (en) 2011-08-10 2015-01-13 Microsoft Corporation Suspension and/or throttling of processes for connected standby
US8788863B2 (en) * 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
JP5831324B2 (ja) * 2012-03-27 2015-12-09 富士通株式会社 制御装置,制御方法,プログラム及び分散処理システム
TW201416979A (zh) * 2012-10-29 2014-05-01 Acer Inc 開機加速方法與電腦系統裝置
CA2890000A1 (en) * 2012-10-31 2014-05-08 Volcano Corporation Dependency-based startup in a multi-modality medical system
US9959187B2 (en) * 2014-04-25 2018-05-01 Lenovo (Singapore) Pte. Ltd. Decoalescing resource utilization at boot
CN104142828A (zh) * 2014-07-30 2014-11-12 北京奇虎科技有限公司 应用加速方法及装置
JP5862722B2 (ja) * 2014-07-31 2016-02-16 富士通株式会社 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
DE102015205378A1 (de) * 2015-03-25 2016-09-29 Volkswagen Aktiengesellschaft Informations- und Unterhaltungssystem für ein Fahrzeug
CN107220077B (zh) * 2016-10-20 2019-03-19 华为技术有限公司 应用启动的管控方法和管控设备
KR20200125258A (ko) * 2019-04-26 2020-11-04 삼성전자주식회사 어플리케이션 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732266A (en) * 1994-09-02 1998-03-24 Compaq Computer Corporation Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium
US5968173A (en) * 1996-10-01 1999-10-19 Texas Instruments Incorporated Method and system for maximizing the apparent initial processing capability of a computer
US6091414A (en) * 1996-10-31 2000-07-18 International Business Machines Corporation System and method for cross-environment interaction in a computerized graphical interface environment
US5867160A (en) * 1996-10-31 1999-02-02 International Business Machines Corporation System and method for task prioritization in computerized graphic interface environments
JPH10283084A (ja) * 1997-04-10 1998-10-23 Canon Inc 情報処理装置及びその制御方法及び記憶媒体
US6275932B1 (en) * 1997-10-08 2001-08-14 Sony Corporation Program startup apparatus and program startup method for use in electronic machine, and medium
US6564318B1 (en) * 1997-12-10 2003-05-13 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation and post-boot under normal OS control
US6122677A (en) * 1998-03-20 2000-09-19 Micron Technology, Inc. Method of shortening boot uptime in a computer system
US6324546B1 (en) * 1998-10-12 2001-11-27 Microsoft Corporation Automatic logging of application program launches
US6367074B1 (en) * 1998-12-28 2002-04-02 Intel Corporation Operation of a system
US6697851B1 (en) * 1999-09-02 2004-02-24 International Business Machines Corporation Method and apparatus for identifying clients using incoming option data
WO2001057658A2 (en) * 2000-02-04 2001-08-09 Insyde Software, Inc A system and method for altering an operating system start-up sequence prior to operating system loading
JP2001265598A (ja) * 2000-03-15 2001-09-28 Matsushita Electric Ind Co Ltd 情報処理装置
JP4132623B2 (ja) * 2000-09-29 2008-08-13 株式会社リコー 電源投入後に立上制御を行う装置及びその立上制御方法並びにその立上制御プログラムを書き込んだ記憶媒体
US6631653B2 (en) * 2000-12-06 2003-10-14 Caterpillar Inc. System for definable single lever control shift pattern joint
US20020147967A1 (en) * 2001-02-14 2002-10-10 Ncr Corporation Operating software scheduling priority recorder
US20020147966A1 (en) * 2001-02-14 2002-10-10 Ncr Corporation Operating software performance monitor
US6948165B1 (en) * 2001-02-28 2005-09-20 Western Digital Ventures, Inc. Method for installing an application program, to be executed during each bootload of a computer system for presenting a user with content options prior to conventional system startup presentation, without requiring a user's participation to install the program
JP2002259010A (ja) * 2001-03-05 2002-09-13 Fujitsu Ltd ショートカットアイコンの自動作成・削除プログラム
GB0107639D0 (en) * 2001-03-27 2001-05-16 Marconi Comm Ltd Network tunnelling
US7814532B2 (en) * 2001-05-02 2010-10-12 Lenovo (Singapore) Pte. Ltd. Data processing system and method for password protecting a boot device
DE10220341C1 (de) * 2002-05-07 2003-10-30 Siemens Ag Verfahren zur Ermittlung der prioritätsabhängigen Rechenzeitverteilung in einem prioritätsgesteuerten MehrProzess-Rechensystem
US7299346B1 (en) * 2002-06-27 2007-11-20 William K. Hollis Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing
TW588284B (en) * 2002-11-12 2004-05-21 Mitac Technology Corp Computer real-time power-on system and method
JP4187151B2 (ja) * 2003-01-08 2008-11-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7243245B2 (en) * 2003-06-20 2007-07-10 International Business Machines Corporation Method and system for performing automatic startup application launch elimination
KR101017372B1 (ko) * 2003-12-23 2011-02-28 삼성전자주식회사 작업 스케쥴러를 이용한 다수의 디바이스 초기화 방법
US7275150B2 (en) * 2004-03-15 2007-09-25 International Business Machines Corporation Method and system for adding frequently selected applications to a computer startup sequence
JP2005284491A (ja) * 2004-03-29 2005-10-13 Mitsubishi Electric Corp 計算機の起動時間短縮方式
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
US7735085B2 (en) * 2004-05-26 2010-06-08 Qualcomm Incorporated System for application priority based on device operating mode

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019706A (zh) * 2012-11-29 2013-04-03 北京奇虎科技有限公司 针对启动项目的处理方法和装置
CN109753209A (zh) * 2018-06-21 2019-05-14 北京字节跳动网络技术有限公司 一种应用程序启动方法、装置及设备
CN109213537A (zh) * 2018-08-16 2019-01-15 Oppo广东移动通信有限公司 应用程序的启动控制方法、装置、存储介质及终端

Also Published As

Publication number Publication date
JP5127722B2 (ja) 2013-01-23
JP2009517784A (ja) 2009-04-30
EP1955200A1 (en) 2008-08-13
US7500091B2 (en) 2009-03-03
CA2628416A1 (en) 2007-06-07
US20070121665A1 (en) 2007-05-31
AU2006320589A1 (en) 2007-06-07
CA2628416C (en) 2014-09-02
CN101317171B (zh) 2010-09-15
EP1955200A4 (en) 2009-01-28
RU2419840C2 (ru) 2011-05-27
WO2007064717A1 (en) 2007-06-07
RU2008121719A (ru) 2009-12-10
KR20080072699A (ko) 2008-08-06
AU2006320589B2 (en) 2011-01-20
BRPI0618430A2 (pt) 2011-08-30
EP1955200B1 (en) 2018-11-14
KR101312819B1 (ko) 2013-09-27

Similar Documents

Publication Publication Date Title
CN101317171B (zh) 应用程序的延迟启动
CN102938039B (zh) 针对应用的选择性文件访问
US9600369B2 (en) Operating system recovery method and apparatus, and terminal device
KR101949998B1 (ko) 컴퓨팅 객체의 콘텍스트 히스토리
US20090103444A1 (en) Method and Apparatus for Power Throttling of Highspeed Multi-Lane Serial Links
CN103049339A (zh) 恢复应用和/或使应用免于中止
EP2905700B1 (en) Operating system recovery method, apparatus and terminal device
CN101080722A (zh) 用于过滤访问部件核心逻辑的尝试的技术
US8521950B2 (en) Booting an operating system from a virtual hard disk
CN110413432B (zh) 一种信息处理方法、电子设备及存储介质
US20130055237A1 (en) Self-adapting software system
JP5608163B2 (ja) 仮想化環境と結合されたアプリケーション実行方法
US9852029B2 (en) Managing a computing system crash
US7412597B2 (en) Computer system and booting method thereof
US20170060672A1 (en) Electronic component having redundant product data stored externally
US11086821B2 (en) Identifying file exclusions for write filter overlays
US20090240933A1 (en) Computer system architecture and operating method for the operating system thereof
JP2007011583A (ja) 情報処理装置および同装置の動作制御方法
JP2005099963A (ja) ライセンス管理システム及びライセンス管理方法並びにライセンス管理用記録媒体
JP2017049722A (ja) ジョブ管理システム、ジョブ管理方法およびプログラム
JP2008158617A (ja) アプリケーションサーバおよび性能回復方法

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: 20150505

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

Effective date of registration: 20150505

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.