# US 2018/0321982 A1 · Modular Electronic Devices with Contextual Task Management and Performance

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

- Number: US 2018/0321982 A1
- Document ID: US20180321982A1
- Status: Published application
- Kind: A1
- Application number: 16/022,760
- Filed: 2018-06-29
- Published: 2018-11-08
- Earliest claimed: 2016-04-15
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Eric HC Liu; Kevin D. Brune; Yoshimichi Matsuoka; Gilbert Cabillic; Gaurav Shah
- Web page: https://patentgrep.com/patent/US20180321982A1

## CPC

- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06Q 30/00: Commerce
- G06F 2209/5019: Workload prediction
- G06F 2209/503: Resource availability
- G06F 2209/548: Queue
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

The present disclosure provides modular electronic devices that are capable of managing task performance based on a particular context of computing resources currently available from the ad hoc combination of devices.

## Claims

### Claim at position 1

-20. (canceled)

### Claim 21

A computer-implemented method for contextual task management, the method comprising:
identifying, by an electronic device, a plurality of computing tasks to be performed, wherein the electronic device is physically movable between a plurality of different locations by a user of the electronic device, and wherein a plurality of different and dynamically-changing ad hoc combinations of devices are respectively available at the plurality of different locations;
determining, by the electronic device, a plurality of required sets of computing resources respectively required to perform the plurality of computing tasks; and
for each of two or more locations of the plurality of different locations and while the electronic device is respectively present at each of the two or more locations:
determining, by the electronic device, a current set of computing resources that are currently available to the electronic device at such location via the respective dynamically-changing ad hoc combination of devices available at such location;
comparing, by the electronic device, the current set of computing resources to the plurality of required sets of computing resources;
identifying, by the electronic device, at least one computing task that is currently performable based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
causing, by the electronic device, performance of the at least one performable computing task by the respective dynamically-changing ad hoc combination of devices available at such location.

### Claim 22 (depends on 21)

The computer-implemented method of claim 21, further comprising:
providing, by the electronic device, a notification to a user of the electronic device that identifies the at least one performable computing task; and
receiving, by the electronic device, data descriptive of a user input that instructs performance of the at least one performable computing task;
wherein causing, by the electronic device, performance of the at least one performable computing task by the ad hoc combination of devices comprises causing, by the electronic device, performance of the at least one performable computing task by the ad hoc combination of devices in response to the user input that instructs performance of the at least one performable computing task.

### Claim 23 (depends on 21)

The computer-implemented method of claim 21, wherein:
identifying, by the electronic device, the at least one performable computing task comprises identifying, by the electronic device, a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources;
the method further comprises:
providing, by the electronic device, a notification to a user of the electronic device that identifies the plurality of performable computing tasks; and
receiving, by the electronic device, data descriptive of a user input that selects a first performable task of the plurality of performable computing tasks and that instructs performance of the first performable task; and
causing, by the electronic device, performance of the at least one performable computing task comprises causing, by the electronic device, performance of the first performable task by the ad hoc combination of devices in response to the user input that instructs performance of the first performable task.

### Claim 24 (depends on 21)

The computer-implemented method of claim 21, wherein:
identifying, by the electronic device, the plurality of computing tasks to be performed comprises predicting, by the electronic device, a first computing task that a user of the electronic device will request to be performed in at least one future time period; and
identifying, by the electronic device, at least one computing task that is currently performable comprises determining, by the electronic device, that the predicted first computing task is currently performable.

### Claim 25 (depends on 21)

The computer-implemented method of claim 21, wherein:
identifying, by the electronic device, the at least one performable computing task comprises identifying, by the electronic device, a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
the method further comprises:
assigning, by the electronic device, a priority to each of the plurality of computing tasks; and
after identifying, by the electronic device, the plurality of performable computing tasks, selecting, by the electronic device, at least one of the plurality of performable computing tasks for performance based at least in part on the respective priority assigned to each of the plurality of performable computing tasks.

### Claim 26 (depends on 21)

The computer-implemented method of claim 21, further comprising:
assigning, by the electronic device, the plurality of computing tasks into a plurality of queues, the plurality of queues respectively associated with the plurality of required sets of computing resources;
wherein identifying, by the electronic device, at least one performable computing task comprises identifying, by the electronic device, at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
wherein causing, by the electronic device, performance of the at least one performable computing task comprises causing, by the electronic device, performance of at least one of the computing tasks assigned to the at least one performable queue.

### Claim 27 (depends on 26)

The computer-implemented method of claim 26, further comprising:
assigning, by the electronic device, an intra-queue priority to each of the plurality of computing tasks; and
after identifying, by the electronic device, the at least one performable queue, selecting, by the electronic device, the at least one of the computing tasks assigned to the at least one performable queue for performance based at least in part on the respective intra-queue priority assigned to each of the computing tasks assigned to the at least one performable queue.

### Claim 28 (depends on 26)

The computer-implemented method of claim 26, further comprising:
assigning, by the electronic device, an inter-queue priority to each of the plurality of queues;
wherein identifying, by the electronic device, at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources comprises:
identifying, by the electronic device, a plurality of performable queues based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
selecting, by the electronic device, at least a first performable queue of the plurality of performable queues for performance based at least in part on the inter-queue priorities respectively assigned to the plurality of performable queues; and
wherein causing, by the electronic device, performance of at least one of the computing tasks assigned to the at least one performable queue comprises causing, by the electronic device, performance of at least one of the computing tasks assigned to the selected first performable queue.

### Claim 29 (depends on 21)

The computer-implemented method of claim 21, wherein:
the respective dynamically-changing ad hoc combination of devices available at each of the two or more of the plurality of different locations comprises an additional computing device that is communicatively coupled to the electronic device but not physically coupled to the electronic device; and
the at least one performable computing task is performed at least in part by the additional computing device.

### Claim 30

An electronic device, comprising:
at least one processor;
wherein the electronic device is physically movable between a plurality of different locations by a user of the electronic device;
wherein a plurality of different and dynamically-changing ad hoc combinations of devices are respectively available at the plurality of different locations; and
wherein the electronic device is configured to:
identify a plurality of computing tasks to be performed;
determine a plurality of required sets of computing resources respectively required to perform the plurality of computing tasks; and
for each of two or more locations of the plurality of different locations and while the electronic device is respectively present at each of the two or more locations:
sense a current set of computing resources that are currently available to the electronic device at such location via the respective dynamically-changing ad hoc combination of devices available at such location;
compare the current set of computing resources to the plurality of required sets of computing resources;
identify at least one computing task that is currently performable based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
cause performance of the at least one performable computing task by the respective dynamically-changing ad hoc combination of devices available at such location.

### Claim 31 (depends on 30)

The electronic device of claim 30, wherein the electronic device is configured to:
provide a notification to a user of the electronic device that identifies the at least one performable computing task;
receive data descriptive of a user input that instructs performance of the at least one performable computing task; and
cause performance of the at least one performable computing task by the ad hoc combination of devices in response to the user input that instructs performance of the at least one performable computing task.

### Claim 32 (depends on 30)

The electronic device of claim 30, wherein the electronic device is configured to:
identify a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources;
provide a notification to a user of the electronic device that identifies the plurality of performable computing tasks;
receive data descriptive of a user input that instructs performance of a first performable task of the plurality of performable computing tasks; and
cause performance of the first performable task by the ad hoc combination of devices in response to the user input that instructs performance of the first performable task.

### Claim 33 (depends on 30)

The electronic device of claim 30, wherein:
to identify the plurality of computing tasks to be performed, the electronic device is configured to predict a first computing task that a user of the electronic device will request to be performed in at least one future time period; and
to identify the at least one computing task that is currently performable, the electronic device is configured to determine that the predicted first computing task is currently performable in advance of the at least one future time period.

### Claim 34 (depends on 30)

The electronic device of claim 30, wherein the electronic device is configured to:
assign a priority to each of the plurality of computing tasks;
identify a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
after identifying the plurality of performable computing tasks, select at least one of the plurality of performable computing tasks for performance based at least in part on the respective priority assigned to each of the plurality of performable computing tasks.

### Claim 35 (depends on 30)

The electronic device of claim 30, wherein:
the electronic device is configured to assign the plurality of computing tasks into a plurality of queues, the plurality of queues respectively associated with the plurality of required sets of computing resources;
to identify the at least one performable computing task, the electronic device is configured to identify at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
to cause performance of the at least one performable computing task, the electronic device is configured to cause performance of at least one of the computing tasks assigned to the at least one performable queue.

### Claim 36 (depends on 35)

The electronic device of claim 35, wherein the electronic device is configured to:
assign an intra-queue priority to each of the plurality of computing tasks; and
after identifying the at least one performable queue, select the at least one of the computing tasks assigned to the at least one performable queue for performance based at least in part on the respective intra-queue priority assigned to each of the computing tasks assigned to the at least one performable queue.

### Claim 37 (depends on 25)

The electronic device of claim 25, wherein:
the electronic device is configured to assign an inter-queue priority to each of the plurality of queues;
to identify the at least one performable queue, the electronic device is configured to:
identify a plurality of performable queues based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and
select at least a first performable queue of the plurality of performable queues for performance based at least in part on the inter-queue priorities respectively assigned to the plurality of performable queues; and
to cause performance of the at least one of the computing tasks assigned to the at least one performable queue, the electronic device is configured to cause performance of at least one of the computing tasks assigned to the selected first performable queue.

### Claim 38

At least one non-transitory computer-readable medium that stores instructions that, when executed by at least one processor of an electronic device that is physically movable between a plurality of different locations that respectively have a plurality of different and dynamically-changing ad hoc device combinations available, cause the at least one processor to:
identify one or more computing tasks to be performed; and
for each of two or more locations of the plurality of different locations and while the electronic device is respectively present at the two or more locations:
determine a current set of computing resources that are currently available to the electronic device via the respective dynamically-changing ad hoc device combination available at such location, wherein the respective dynamically-changing ad hoc combination available at such location comprises at least one additional computing device that is communicatively coupled to the electronic device but not physically coupled to the electronic device;
select at least one of the computing tasks based at least in part on the current set of computing resources; and
cause performance of the at least one computing task at least in part by the at least one additional computing device.

### Claim 39 (depends on 38)

The at least one non-transitory computer-readable medium of claim 38, wherein execution of the instructions further causes the at least one processor to:
determine one or more required sets of computing resources respectively required to perform the one or more computing tasks; and
compare the current set of computing resources to the one or more required sets of computing resources; and
wherein the instructions that cause the at least one processor to select at least one of the computing tasks based at least in part on the current set of computing resources cause the at least one processor to identify at least one computing task that is currently performable based on the comparison of the current set of computing resources to the plurality of required sets of computing resources.

### Claim 40 (depends on 38)

The at least one non-transitory computer-readable medium of claim 38, wherein execution of the instructions causes the at least one processor to:
provide a notification to a user of the electronic device that identifies the at least one selected computing task;
receive data descriptive of a user input that instructs performance of the at least one selected computing task; and
cause performance of the at least one selected computing task by the ad hoc combination of devices in response to the user input that instructs performance of the at least one performable computing task.
