G06F9/461

MANAGING CONTAINERS ACROSS MULTIPLE OPERATING SYSTEMS

Aspects of the disclosure provide for mechanisms for managing containers across operating systems in a computer system. A method of the disclosure includes: causing a first container management agent in a first container to run a user interface in the first container, receiving a user request to create a copy of the first container, creating a second container in view of the first container, receiving, from the user interface running in the first container, a first command to switch from the first container to the second container, and responsive to receiving the first command to switch from the first container to the second container: configuring the second container in view of one or more configurations of the first container, causing a second container management agent in the second container to run the user interface in the second container, and causing execution of the first container to stop.

Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment

An apparatus is configured to collect information related to a first activity and analyze the collected information to determine decision data. The information is stored in a first list of the source processing core for scheduling execution of the activity by a destination processing core to avoid cache misses. The source processing core is configured to transmit information related to the decision data using an interrupt, to a second list associated with a scheduler of the destination processing core, if the destination processing core is currently executing a second activity having a lower priority than the first activity.

PROCESS RUNNING METHOD AND APPARATUS
20170364449 · 2017-12-21 · ·

A process running method and apparatus is disclosed. The method is: selecting a code page from a candidate process, storing only a code page of the candidate process into a swap partition, and releasing memory space occupied by the code page; updating a physical address that is of the code page and that is stored into a page entry; and when it is determined that the candidate process to which the code page belongs needs to be run, if the code page needs to be executed, directly executing the code page in the swap partition.

MANAGING THE EXECUTION OF SOFTWARE APPLICATIONS RUNNING ON DEVICES HAVING DEVICE FUNCTIONS
20170357555 · 2017-12-14 ·

A computer-implemented method includes running a software unit in an isolation container located on a software platform. The computer-implemented method further includes allocating an instance of a device function instantiated by the software platform to the software unit. The computer-implemented method further includes storing usage data associated with the instance to a memory region logically external to the isolation container, the usage data being generated by the software unit operating the device function. The computer-implemented method further includes detecting a failure of the software unit. The computer-implemented method further includes, responsive to detecting the failure, restarting the software unit and providing the software unit with a usage context, wherein the usage context comprises at least one of identifying information and the usage data associated with the instance stored in the memory region logically external to the isolation container. A corresponding computer system and computer program product are also disclosed.

Efficient context monitoring

Disclosed are systems, methods, and non-transitory computer-readable storage media for efficiently monitoring the operating context of a computing device. In some implementations, the context daemon and/or the context client can be terminated to conserve system resources. For example, if the context daemon and/or the context client are idle, they can be shutdown to conserve battery power or free other system resources (e.g., memory). When an event occurs (e.g., a change in current context) that requires the context daemon and/or the context client to be running, the context daemon and/or the context client can be restarted to handle the event. Thus, system resources can be conserved while still providing relevant context information collection and callback notification features.

ASYNCHRONOUS SEQUENTIAL PROCESSING EXECUTION
20170351540 · 2017-12-07 ·

The described technology provides a system and method for sequential execution of one or more operation segments in an asynchronous event driven architecture. One or more operation segments may be associated and grouped into an activity of operation segments. The operation segments of an activity may be sequentially executed based on a queue structure of references to operation segments stored in a context memory associated with the activity. Any initiated operation segment may be placed on the queue structure upon completion of an associated I/O action.

DYNAMIC DEVICE VIRTUALIZATION FOR USE BY GUEST USER PROCESSES BASED ON OBSERVED BEHAVIORS OF NATIVE DEVICE DRIVERS
20230185592 · 2023-06-15 ·

A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.

COMMUNICATION BETWEEN THREADS OF MULTI-THREAD PROCESSOR
20170351518 · 2017-12-07 ·

Embodiments of the present disclosure support hardware based thread switching in a multithreading environment. The tread switching is implemented on a multithread microprocessor by utilizing thread mailbox registers and other auxiliary registers that can be pre-programmed for hardware based thread switching. A set of mailbox registers can be allocated to each thread of a plurality of threads that can be executed in the microprocessor. A mailbox register in the set of mailbox registers comprises an identifier of a next thread of the plurality of threads to which an active thread switches based on a thread switch condition further indicated in the mailbox register. The auxiliary registers in the microprocessor can be used to configure a number of threads for simultaneous execution in the microprocessor, a priority for thread switching, and to store a program counter of each thread and states of registers of each thread.

THREAD SWITCHING IN MICROPROCESSOR WITHOUT FULL SAVE AND RESTORE OF REGISTER FILE
20170351520 · 2017-12-07 ·

Certain embodiments of the present disclosure support a method and apparatus for efficient multithreading on a single core microprocessor. Thread switching in the single core microprocessor presented herein is based on a reserved space in a memory allocated to each thread for storing and restoring of registers in a register file. The thread switching is achieved without full save and restore of the register file, and only those registers referenced in the memory are saved and restored during thread switching.

Method and system for providing coordinated checkpointing to a group of independent computer applications

A system and method thereof for performing loss-less migration of an application group. In an exemplary embodiment, the system may include a high-availability services module structured for execution in conjunction with an operating system, and one or more computer nodes of a distributed system upon which at least one independent application can be executed upon. The high-availability services module may be structured to be executable on the one or more computer nodes for loss-less migration of the one or more independent applications, and is operable to perform checkpointing of all state in a transport connection.