# US 2017/0286175 A1 · Resource schedule optimization

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

- Number: US 2017/0286175 A1
- Document ID: US20170286175A1
- Status: Published application
- Kind: A1
- Application number: 15/089,864
- Filed: 2016-04-04
- Published: 2017-10-05
- Earliest claimed: 2016-04-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Vinod A. Valecha; Justin A. Zamora
- Web page: https://patentgrep.com/patent/US20170286175A1

## CPC

- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2209/503: Resource availability
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention provide methods, computer program products, and systems for evaluating expressions. Embodiments of the present invention can be used to receive a set of program instructions to be evaluated in a virtualized environment and determine an evaluation strategy based, at least in part, on an availability of CPU resources. The CPU resource include resources impacted by use of virtual machines and hypervisors. Embodiments of the present invention can, responsive to determining that there are sufficient CPU resources available, evaluate the set of program instructions according to the evaluation strategy using the CPU resources.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving a set of program instructions to be evaluated in a virtualized environment;
determining an evaluation strategy based, at least in part, on an availability of CPU resources, wherein the CPU resources include resources impacted by use of virtual machines and hypervisors; and
responsive to determining that there are sufficient CPU resources available, evaluating the set of program instructions according to the evaluation strategy using the CPU resources.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
responsive to determining that there are not sufficient CPU resources available, delaying evaluation of the set of program instructions to be executed by the CPU resources.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein delaying evaluation of the set of program instructions to be executed by the CPU resources comprises:
creating a data structure that signifies an expression to be evaluated at a later determined time.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the evaluation strategy forces or delays an evaluation of the set of program instructions based, at least in part, on the availability of CPU resources.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein determining an evaluation strategy based, at least in part, on an availability of CPU resources comprises:
identifying a classification type associated with the received program instructions, wherein the classification type is either primitive or complex; and
responsive to determining the classification type associated with the received program instructions is primitive, queuing the set of program instructions for execution.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
responsive to determining the classification type associated with the received program instructions is complex, determining whether there are sufficient CPU resources available; and
responsive to determining there are sufficient CPU resources available, queuing a portion of the set of program instructions for execution.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, further comprising:
responsive to determining there are insufficient CPU resources available, creating a data structure to signify an expression to be evaluated a later determined time.

### Claim 8

A computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:
program instructions to receive a set of program instructions to be evaluated in a virtualized environment;
program instructions to determine an evaluation strategy based, at least in part, on an availability of CPU resources, wherein the CPU resources include resources impacted by use of virtual machines and hypervisors; and
program instructions to, responsive to determining that there are sufficient CPU resources available, evaluate the set of program instructions according to the evaluation strategy using the CPU resources.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to, responsive to determining that there are not sufficient CPU resources available, delay evaluation of the set of program instructions to be executed by the CPU resources.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein the program instructions to delay evaluation of the set of program instructions to be executed by the CPU resources comprise:
program instructions to create a data structure that signifies an expression to be evaluated at a later determined time.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the evaluation strategy forces or delays an evaluation of the set of program instructions based, at least in part, on the availability of CPU resources.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein the program instructions to determine an evaluation strategy based, at least in part, on an availability of CPU resources comprise:
program instructions to identify a classification type associated with the received program instructions, wherein the classification type is either primitive or complex; and
program instructions to, responsive to determining the classification type associated with the received program instructions is primitive, queue the set of program instructions for execution.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to, responsive to determining the classification type associated with the received program instructions is complex, determine whether there are sufficient CPU resources available; and
program instructions to, responsive to determining there are sufficient CPU resources available, queue a portion of the set of program instructions for execution.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to, responsive to determining there are insufficient CPU resources available, create a data structure to signify an expression to be evaluated a later determined time.

### Claim 15

A computer system comprising:
one or more computer processors;
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:
program instructions to receive a set of program instructions to be evaluated in a virtualized environment;
program instructions to determine an evaluation strategy based, at least in part, on an availability of CPU resources, wherein the CPU resources include resources impacted by use of virtual machines and hypervisors; and
program instructions to, responsive to determining that there are sufficient CPU resources available, evaluate the set of program instructions according to the evaluation strategy using the CPU resources.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to, responsive to determining that there are not sufficient CPU resources available, delay evaluation of the set of program instructions to be executed by the CPU resources.

### Claim 17 (depends on 16)

The computer system of claim 16, wherein the program instructions to delay evaluation of the set of program instructions to be executed by the CPU resources comprise:
program instructions to create a data structure that signifies an expression to be evaluated at a later determined time.

### Claim 18 (depends on 15)

The computer system of claim 15, wherein the evaluation strategy forces or delays an evaluation of the set of program instructions based, at least in part, on the availability of CPU resources.

### Claim 19 (depends on 15)

The computer system of claim 15, wherein the program instructions to determine an evaluation strategy based, at least in part, on an availability of CPU resources comprise:
program instructions to identify a classification type associated with the received program instructions, wherein the classification type is either primitive or complex; and
program instructions to, responsive to determining the classification type associated with the received program instructions is primitive, queue the set of program instructions for execution.

### Claim 20 (depends on 19)

The computer system of claim 19, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to, responsive to determining the classification type associated with the received program instructions is complex, determine whether there are sufficient CPU resources available; and
program instructions to, responsive to determining there are sufficient CPU resources available, queue a portion of the set of program instructions for execution.
