# US 2017/0286153 A1 · Managing Container Pause And Resume

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286153 A1
- Document ID: US20170286153A1
- Status: Published application
- Kind: A1
- Application number: 15/189,557
- Filed: 2016-06-22
- Published: 2017-10-05
- Earliest claimed: 2016-04-05
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Yevgeniy M. Bak; Lars Reuther; Kevin M. Broas; Mehmet Iyigun; Hari R. Pulapaka; Morakinyo Korede Olugbade; Benjamin M. Schultz
- Web page: https://patentgrep.com/patent/US20170286153A1

## CPC

- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5022: {Mechanisms to release resources}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An operating system running on a computing device uses containers for hardware resource partitioning. Using the techniques discussed herein, pausing and resuming of containers is managed to reduce the pressure a container exerts on system resources when paused. Resuming of containers can further be managed to reduce the startup time for containers. This managing of containers can implemented various different techniques, such as stopping scheduling of virtual processors, stopping scheduling of processes or threads, compressing memory, swapping pages of memory for the container to a page file on a hard drive, and so forth.

## Claims

### Claim 1

A method comprising:
receiving a first request to pause one of multiple containers of a computing device;
suspending, in response to the first request, the container by no longer scheduling processes in the container for execution;
receiving, subsequent to suspending the container, a second request to resume the container; and
resuming, in response to the second request, scheduling of processes in the container for execution.

### Claim 2 (depends on 1)

The method as recited in claim 1, the container comprising a process container for which an operating system of the computing device isolates the container from others of the multiple containers using namespace isolation.

### Claim 3 (depends on 1)

The method as recited in claim 1, the container comprising a virtualized container that is run as a virtual machine, the virtualized container including one or more virtual processors, and the suspending the container comprising suspending the container by no longer scheduling the one or more virtual processors for execution.

### Claim 4 (depends on 3)

The method as recited in claim 3, further comprising prepopulating, in response to the second request, a second level address table (SLAT) for the container.

### Claim 5 (depends on 1)

The method as recited in claim 1, further comprising automatically performing one or more operations to reduce resource usage of the container in the computing device.

### Claim 6 (depends on 1)

The method as recited in claim 1, further comprising reducing memory resource contention in the computing device resulting at least in part from the container by removing a working set of the container from physical memory to a page file on a persistent storage medium.

### Claim 7 (depends on 1)

The method as recited in claim 1, further comprising swapping, while the container is suspended, memory pages of the container to a page file on a persistent storage medium sequentially.

### Claim 8 (depends on 1)

The method as recited in claim 1, further comprising decompressing, in response to the second request, memory pages of the container using all available processor resources of the computing device.

### Claim 9 (depends on 1)

The method as recited in claim 1, the computing device supporting multiple different levels of pause, the method further comprising presenting an interface to allow different ones of the multiple different levels of pause to be elected on a per container basis.

### Claim 10 (depends on 1)

The method as recited in claim 1, the computing device supporting multiple different levels of pause, the method further comprising implementing the suspending and the resuming by a system of the computing device, the system further determining on its own an appropriate level of pause for a given container based on at least one factor including one or a combination of container idle time, container resource usage, and system resource utilization.

### Claim 11

A system in a computing device, the system comprising:
a container scheduler configured to schedule processes in multiple containers of the computing device for execution;
a host compute service configured to receive, from a command interface, an indication of a request to pause a particular container of the multiple containers, the host compute service being further configured to communicate a first notification to the container scheduler to cease scheduling processes of the particular container for execution in response to the request to pause the particular container;
the container scheduler being further configured to cease scheduling processes in the particular container for execution in response to the first notification from the host compute service;
the host compute service further configured to receive, after receipt of the indication of the request to pause the particular container, from the command interface an indication of a request to resume the particular container, the host compute service being further configured to communicate a second notification to the container scheduler to resume scheduling processes of the particular container for execution in response to the request to resume the particular container; and
the container scheduler being further configured to resume scheduling processes in the particular container for execution in response to the second notification from the host compute service.

### Claim 12 (depends on 11)

The system as recited in claim 11, further comprising a memory manager configured to monitor resource utilization in the computing device, and determine, based on the resource utilization in the computing device, one or more container working sets to move from active physical memory of the computing device to a compressed store in physical memory of the computing device.

### Claim 13 (depends on 12)

The system as recited in claim 12, the memory manager further configured to allow the particular container and one or more additional containers to share one or more compressed pages of memory in the compressed store.

### Claim 14 (depends on 11)

The system as recited in claim 11, the host compute service being further configured to communicate a notification to the container scheduler to cease scheduling processes of the particular container for execution in response to determining that a first trigger or criteria is satisfied, and further configured to subsequently communicate a notification to resume scheduling processes in the particular container for execution in response to determining that a second trigger or criteria is satisfied.

### Claim 15 (depends on 11)

The system as recited in claim 11, the computing device supporting multiple different levels of pause, the command interface further configured to receive an indication of different ones of the multiple different levels of pause on a per container basis.

### Claim 16

A computing device comprising:
one or more processors; and
a computer-readable storage medium having stored thereon multiple instructions that, responsive to execution by the one or more processors, cause the one or more processors to:
receive a first request to pause one of multiple containers of the computing device;
suspend, in response to the first request, the container by ceasing scheduling processes in the container for execution;
receive, after suspending the container, a second request to resume the container; and
resume, in response to the second request, scheduling of processes in the container for execution.

### Claim 17 (depends on 16)

The computing device as recited in claim 16, the container comprising a process container for which an operating system of the computing device isolates the container from others of the multiple containers using namespace isolation.

### Claim 18 (depends on 16)

The computing device as recited in claim 16, wherein the multiple instructions further cause the one or more processors to remove memory pages of a suspended one of the multiple containers from physical memory of the computing device and write the removed memory pages to a page file on a persistent storage medium of the computing device.

### Claim 19 (depends on 18)

The computing device as recited in claim 18, wherein the multiple instructions further cause the one or more processors to compress the memory pages of the suspended one of the multiple containers, and to write the compressed memory pages to the persistent storage medium.

### Claim 20 (depends on 19)

The computing device as recited in claim 19, wherein the multiple instructions further cause the one or more processors to write the compressed memory pages of the suspended one of the multiple containers sequentially to a page file on the persistent storage medium.
