PARALLEL DLL TREE INITIALIZATION
    21.
    发明申请
    PARALLEL DLL TREE INITIALIZATION 有权
    并行DLL树初始化

    公开(公告)号:US20080244551A1

    公开(公告)日:2008-10-02

    申请号:US11693102

    申请日:2007-03-29

    IPC分类号: G06F9/44

    CPC分类号: G06F9/445

    摘要: A parallel processing method and apparatus for initializing libraries is disclosed. Libraries for an application are identified, an initialization order for the libraries is determined, and the libraries are initialized in asynchronous stages. The initialization order is determined by forming a library tree of the libraries' references and determining a load order for the references according to the levels of the references in the library tree. The asynchronous stages comprise a loading stage that includes a load queue, a snapping stage that includes a snap queue, and an initializing stage that includes an initialize queue.

    摘要翻译: 公开了一种用于初始化库的并行处理方法和装置。 识别应用程序的库,确定库的初始化顺序,并以异步阶段初始化库。 初始化顺序通过形成库引用的库树来确定,并根据库树中引用的级别确定引用的加载顺序。 异步阶段包括加载阶段,其包括加载队列,包括快照队列的捕捉阶段以及包括初始化队列的初始化阶段。

    MANAGING PROCESSES WITHIN SUSPEND STATES AND EXECUTION STATES

    公开(公告)号:US20130067495A1

    公开(公告)日:2013-03-14

    申请号:US13230677

    申请日:2011-09-12

    IPC分类号: G06F9/44

    CPC分类号: G06F9/485 Y02D10/24

    摘要: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon one or more wake policies, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a set of wake policies. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.

    MANAGING PROCESSES WITHIN SUSPEND STATES AND EXECUTION STATES
    23.
    发明申请
    MANAGING PROCESSES WITHIN SUSPEND STATES AND EXECUTION STATES 有权
    在暂停状态和执行状态下的管理过程

    公开(公告)号:US20130067490A1

    公开(公告)日:2013-03-14

    申请号:US13230698

    申请日:2011-09-12

    IPC分类号: G06F3/00 G06F9/46

    摘要: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon one or more wake policies, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a set of wake policies. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.

    摘要翻译: 提供一个或多个技术和/或系统来暂停与应用相关联的逻辑相关进程,基于一个或多个唤醒策略来确定是否恢复暂停的进程,和/或管理应用的应用状态,诸如定时器和 /或系统消息数据。 也就是说,可以基于进程之间的逻辑关系(例如,可以遍历逻辑容器层次结构以识别逻辑上相关的进程)来识别和暂停与诸如子进程的应用相关联的逻辑相关进程。 可以基于一组唤醒策略恢复暂停的进程。 例如,可以基于可以由尝试与暂停进程通信的应用程序触发的进程间通信呼叫策略来恢复暂停的进程。 应用程序数据可以在应用程序暂停时进行管理,以便可以在当前和/或相关状态恢复应用程序。

    MANAGING PROCESSES WITHIN SUSPEND STATES AND EXECUTION STATES
    24.
    发明申请
    MANAGING PROCESSES WITHIN SUSPEND STATES AND EXECUTION STATES 有权
    在暂停状态和执行状态下的管理过程

    公开(公告)号:US20130067475A1

    公开(公告)日:2013-03-14

    申请号:US13230714

    申请日:2011-09-12

    IPC分类号: G06F9/44

    摘要: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon a wake policy, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a wake policy. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.

    摘要翻译: 提供一个或多个技术和/或系统来暂停与应用相关联的逻辑相关进程,基于唤醒策略确定是否恢复暂停的进程,和/或管理应用的应用状态,诸如定时器和/或 系统消息数据。 也就是说,可以基于进程之间的逻辑关系(例如,可以遍历逻辑容器层次结构以识别逻辑上相关的进程)来识别和暂停与诸如子进程的应用相关联的逻辑相关进程。 可以基于唤醒策略恢复暂停的进程。 例如,可以基于可以由尝试与暂停进程通信的应用程序触发的进程间通信呼叫策略来恢复暂停的进程。 应用程序数据可以在应用程序暂停时进行管理,以便可以在当前和/或相关状态恢复应用程序。

    ONE-TIME INITIALIZATION
    25.
    发明申请

    公开(公告)号:US20110219379A1

    公开(公告)日:2011-09-08

    申请号:US13106836

    申请日:2011-05-12

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.

    Efficient detection and response to spin waits in multi-processor virtual machines
    27.
    发明申请
    Efficient detection and response to spin waits in multi-processor virtual machines 有权
    在多处理器虚拟机中有效的检测和响应自旋等待

    公开(公告)号:US20100031254A1

    公开(公告)日:2010-02-04

    申请号:US12182971

    申请日:2008-07-30

    IPC分类号: G06F9/455

    摘要: Various aspects are disclosed herein for attenuating spin waiting in a virtual machine environment comprising a plurality of virtual machines and virtual processors. Selected virtual processors can be given time slice extensions in order to prevent such virtual processors from becoming de-scheduled (and hence causing other virtual processors to have to spin wait). Selected virtual processors can also be expressly scheduled so that they can be given higher priority to resources, resulting in reduced spin waits for other virtual processors waiting on such selected virtual processors. Finally, various spin wait detection techniques can be incorporated into the time slice extension and express scheduling mechanisms, in order to identify potential and existing spin waiting scenarios.

    摘要翻译: 本文公开了用于在包括多个虚拟机和虚拟处理器的虚拟机环境中衰减自旋等待的各个方面。 选定的虚拟处理器可以被给定时间片扩展,以防止这种虚拟处理器变得不被调度(并且因此导致其他虚拟处理器必须旋转等待)。 也可以明确地调度所选择的虚拟处理器,使得它们可以被赋予更高的资源优先级,从而减少等待这些所选择的虚拟处理器的其他虚拟处理器的旋转等待。 最后,各种旋转等待检测技术可以被并入到时间片扩展中并且表达调度机制,以便识别潜在的和现有的旋转等待场景。

    COOPERATIVE DLL UNLOAD
    28.
    发明申请
    COOPERATIVE DLL UNLOAD 失效
    合作DLL卸载

    公开(公告)号:US20080243965A1

    公开(公告)日:2008-10-02

    申请号:US11693080

    申请日:2007-03-29

    IPC分类号: G06F17/30

    CPC分类号: G06F9/44563 G06F9/44594

    摘要: Loading and unloading a plurality of libraries on a computing device having a loader lock and internal and external counts for each library in the plurality of libraries is disclosed. The libraries assume an initialize state, followed by an initialized state, a pending unload state, and an unload state according to when the internal and external counts are incremented and decremented. When in the pending unload state, the functions of a library that include functions that require acquiring the loader lock exit, the internal count is decremented by one, and the loader lock is released. Prior to entering the pending unload state, a library may be placed into a reloadable state. A library in the reloadable state may be reloaded upon request until a timer times out. When the timer times out, the library in the reloadable state transitions into the pending unload state.

    摘要翻译: 公开了在具有加载器锁定的计算设备上加载和卸载多个库,并且对多个库中的每个库的内部和外部计数进行加载和卸载。 这些库根据内部和外部计数增加和减少的时间,假定初始化状态,后跟初始化状态,待处理卸载状态和卸载状态。 当处于待处理卸载状态时,包含需要获取加载器锁定退出的函数的库的函数将内部计数递减1,并释放加载程序锁。 在进入待处理卸载状态之前,库可能被置于可重新加载的状态。 可重新加载状态的库可以根据请求重新加载,直到定时器超时。 当定时器超时时,可重新加载状态的库转换为待处理卸载状态。

    Creating secure process objects
    29.
    发明申请
    Creating secure process objects 失效
    创建安全的进程对象

    公开(公告)号:US20060259487A1

    公开(公告)日:2006-11-16

    申请号:US11129872

    申请日:2005-05-16

    IPC分类号: G06F17/30

    CPC分类号: G06F21/57 G06F21/51

    摘要: A secure process may be created which does not allow code to be injected into it, does not allow modification of its memory or inspection of its memory. The resources protected in a secure process include all the internal state and threads running in the secure process. Once a secure process is created, the secure process is protected from access by non-secure processes. Process creation occurs atomically in kernel mode. Creating the infrastructure of a process in kernel mode enables security features to be applied that are difficult or impossible to apply in user mode. By moving setup actions previously occurring in user mode (such as creating the initial thread, allocating the stack, initialization of the parameter block, environment block and context record) into kernel mode, the need of the caller for full access rights to the created process is removed. Instead, enough state is passed from the caller to the kernel with the first system call so that the kernel is able to perform the actions previously performed using a number of calls back and forth between caller and kernel. When the kernel returns the handle to the set-up process, some of the access rights accompanying the handle are not returned. Specifically, those access rights that enable the caller to inject threads, read/write virtual memory, and interrogate or modify state of the threads of the process are not returned to the caller.

    摘要翻译: 可以创建不允许将代码注入其中的安全过程,不允许修改其存储器或检查其存储器。 在安全进程中保护的资源包括在安全进程中运行的所有内部状态和线程。 一旦创建了一个安全的进程,安全进程便受到非安全进程的访问保护。 进程创建在内核模式下以原子方式发生。 在内核模式下创建进程的基础架构可以应用在用户模式下难以应用的安全功能。 通过将先前发生在用户模式(如创建初始线程,分配堆栈,初始化参数块,环境块和上下文记录)的设置操作移动到内核模式,调用者需要对创建的进程进行完全访问权限 被删除。 相反,通过第一次系统调用,足够的状态从调用者传递到内核,以便内核能够使用调用者和内核之间的多个呼叫执行先前执行的操作。 当内核返回设置过程的句柄时,不会返回伴随句柄的一些访问权限。 具体来说,那些使呼叫者能够注入线程,读取/写入虚拟内存以及查询或修改进程的线程状态的访问权限不会返回给调用者。

    API namespace virtualization
    30.
    发明授权

    公开(公告)号:US10089119B2

    公开(公告)日:2018-10-02

    申请号:US12716381

    申请日:2010-03-03

    IPC分类号: G06F9/46 G06F9/445 G06F9/448

    摘要: A computer operating system with a map that relates API namespaces to components that implement an interface contracts for the namespaces. When an API namespace is to be used, a loader within the operating system uses the map to load components based on the map. An application can reference an API namespace in the same way as it references a dynamically linked library, but the implementation of the interface contract for the API namespace is not tied to a single file or to a static collection of files. The map may identify versions of the API namespace or values of runtime parameters that may be used to select appropriate files to implement an interface contract in scenarios that may depend on factors such as hardware in the execution environment, a version of the API namespace against which an application was developed or the application accessing the API namespace.