# US 11,029,998 B2 · Grouping of tasks for distribution among processing entities

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

- Number: US 11,029,998 B2
- Document ID: US11029998B2
- Status: Granted
- Kind: B2
- Application number: 15/172,846
- Filed: 2016-06-03
- Published: 2017-12-07
- Granted: 2021-06-08
- Earliest claimed: 2016-06-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Seamus J. Burke; Trung N. Nguyen; Louis A. Rasor
- Web page: https://patentgrep.com/patent/US11029998B2

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A plurality of processing entities are maintained. A plurality of task control block (TCB) groups are generated, wherein each of the plurality of TCB groups are restricted to one or more different processing entities of the plurality of processing entities. A TCB is assigned to one of the plurality of TCB groups, at TCB creation time.

## Claims

### Claim 1

A method, comprising:
maintaining a plurality of processing entities;
generating a plurality of task control block (TCB) groups, wherein each of the plurality of TCB groups are restricted to one or more different processing entities of the plurality of processing entities;
assigning a TCB to one of the plurality of TCB groups, at TCB creation time, wherein TCBs assigned to a TCB group reserve a common set of locks, wherein processing speed of TCBs assigned to the TCB group improves up to a predetermined number of processing entities allocated for processing of the TCBs in the TCB group, and processing speed of TCBs assigned to the TCB group slows down if a greater number of processing entities beyond the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group, and wherein no more than the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group;
indicating, for the TCB, a primary processing entities group and a secondary processing entities group; and
in response to determining that the secondary processing entities group has processing cycles available for processing additional TCBs, moving the TCB from the primary processing entities group to the secondary processing entities group for processing.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising:
associating a TCB category attribute with each of a plurality of TCBs;
in response to determining that restrictions are to be placed on allocations of processing entities for a newly created TCB, indicating in corresponding TCB category attributes that the newly created TCB is a special type of TCB; and
in response to determining that restrictions are not to be placed on allocations of processing entities for the newly created TCB, indicating in the corresponding TCB category attributes that the newly created TCB is a standard type of TCB.

### Claim 3 (depends on 2)

The method of claim 2, the method further comprising:
determining that a selected TCB has to be dispatched for processing;
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the special type of TCB, determining the TCB group of the selected TCB and dispatching the selected TCB in accordance with the restrictions on processing entities of the TCB group; and
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the standard type of TCB, dispatching the selected TCB to a processing entity that is either allocated or not allocated for processing special type of TCBs.

### Claim 4 (depends on 1)

The method of claim 1, wherein a first group of the plurality of TCB groups includes TCBs associated with a first type of operations comprising copy services operations in a storage system, and wherein a second group of the plurality of TCB groups includes TCBs associated with a second type of operations comprising cache management operations in the storage system.

### Claim 5 (depends on 4)

The method of claim 4, the method further comprising:
allocating a first set of processing entities for the first group; and
allocating a second set of processing entities for the second group.

### Claim 6 (depends on 1)

The method of claim 1, wherein allocation of the plurality of processing entities is balanced among the plurality of TCB groups, wherein a selected TCB group is restricted to a maximum number of processing units, wherein beyond the maximum number of processing units there is a slowdown in processing of TCBs of the selected TCB group, wherein a selected TCB group is allocated specifically identified processing units that are resident on a same module, and wherein each module includes a plurality of chips having a plurality of cores.

### Claim 7

A system, comprising:
a memory; and
a processor coupled to the memory, wherein the processor performs operations, the operations comprising:
maintaining a plurality of processing entities;
generating a plurality of task control block (TCB) groups, wherein each of the plurality of TCB groups are restricted to one or more different processing entities of the plurality of processing entities;
assigning a TCB to one of the plurality of TCB groups, at TCB creation time, wherein TCBs assigned to a TCB group reserve a common set of locks, wherein processing speed of TCBs assigned to the TCB group improves up to a predetermined number of processing entities allocated for processing of the TCBs in the TCB group, and processing speed of TCBs assigned to the TCB group slows down if a greater number of processing entities beyond the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group, and wherein no more than the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group;
indicating, for the TCB, a primary processing entities group and a secondary processing entities group; and
in response to determining that the secondary processing entities group has processing cycles available for processing additional TCBs, moving the TCB from the primary processing entities group to the secondary processing entities group for processing.

### Claim 8 (depends on 7)

The system of claim 7, the operations further comprising:
associating a TCB category attribute with each of a plurality of TCBs;
in response to determining that restrictions are to be placed on allocations of processing entities for a newly created TCB, indicating in corresponding TCB category attributes that the newly created TCB is a special type of TCB; and
in response to determining that restrictions are not to be placed on allocations of processing entities for the newly created TCB, indicating in the corresponding TCB category attributes that the newly created TCB is a standard type of TCB.

### Claim 9 (depends on 8)

The system of claim 8, the operations further comprising:
determining that a selected TCB has to be dispatched for processing;
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the special type of TCB, determining the TCB group of the selected TCB and dispatching the selected TCB in accordance with the restrictions on processing entities of the TCB group; and
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the standard type of TCB, dispatching the selected TCB to a processing entity that is either allocated or not allocated for processing special type of TCBs.

### Claim 10 (depends on 7)

The system of claim 7, wherein a first group of the plurality of TCB groups includes TCBs associated with a first type of operations comprising copy services operations in a storage system, and wherein a second group of the plurality of TCB groups includes TCBs associated with a second type of operations comprising cache management operations in the storage system.

### Claim 11 (depends on 10)

The system of claim 10, the operations further comprising:
allocating a first set of processing entities for the first group; and
allocating a second set of processing entities for the second group.

### Claim 12 (depends on 7)

The system of claim 7, wherein allocation of the plurality of processing entities is balanced among the plurality of TCB groups, wherein a selected TCB group is restricted to a maximum number of processing units, wherein beyond the maximum number of processing units there is a slowdown in processing of TCBs of the selected TCB group, wherein a selected TCB group is allocated specifically identified processing units that are resident on a same module, and wherein each module includes a plurality of chips having a plurality of cores.

### Claim 13

A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:
maintaining a plurality of processing entities;
generating a plurality of task control block (TCB) groups, wherein each of the plurality of TCB groups are restricted to one or more different processing entities of the plurality of processing entities;
assigning a TCB to one of the plurality of TCB groups, at TCB creation time, wherein TCBs assigned to a TCB group reserve a common set of locks, wherein processing speed of TCBs assigned to the TCB group improves up to a predetermined number of processing entities allocated for processing of the TCBs in the TCB group, and processing speed of TCBs assigned to the TCB group slows down if a greater number of processing entities beyond the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group, and wherein no more than the predetermined number of processing entities are allocated for processing the TCBs assigned to the TCB group;
indicating, for the TCB, a primary processing entities group and a secondary processing entities group; and
in response to determining that the secondary processing entities group has processing cycles available for processing additional TCBs, moving the TCB from the primary processing entities group to the secondary processing entities group for processing.

### Claim 14 (depends on 13)

The computer program product of claim 13, the operations further comprising:
associating a TCB category attribute with each of a plurality of TCBs;
in response to determining that restrictions are to be placed on allocations of processing entities for a newly created TCB, indicating in corresponding TCB category attributes that the newly created TCB is a special type of TCB; and
in response to determining that restrictions are not to be placed on allocations of processing entities for the newly created TCB, indicating in the corresponding TCB category attributes that the newly created TCB is a standard type of TCB.

### Claim 15 (depends on 14)

The computer program product of claim 14, the operations further comprising:
determining that a selected TCB has to be dispatched for processing;
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the special type of TCB, determining the TCB group of the selected TCB and dispatching the selected TCB in accordance with the restrictions on processing entities of the TCB group; and
in response to determining that a TCB category attribute of the selected TCB indicates that the selected TCB is of the standard type of TCB, dispatching the selected TCB to a processing entity that is either allocated or not allocated for processing special type of TCBs.

### Claim 16 (depends on 13)

The computer program product of claim 13, wherein a first group of the plurality of TCB groups includes TCBs associated with a first type of operations comprising copy services operations in a storage system, and wherein a second group of the plurality of TCB groups includes TCBs associated with a second type of operations comprising cache management operations in the storage system.

### Claim 17 (depends on 16)

The computer program product of claim 16, the operations further comprising:
allocating a first set of processing entities for the first group; and
allocating a second set of processing entities for the second group.

### Claim 18 (depends on 13)

The computer program product of claim 13, wherein allocation of the plurality of processing entities is balanced among the plurality of TCB groups, wherein a selected TCB group is restricted to a maximum number of processing units, wherein beyond the maximum number of processing units there is a slowdown in processing of TCBs of the selected TCB group, wherein a selected TCB group is allocated specifically identified processing units that are resident on a same module, and wherein each module includes a plurality of chips having a plurality of cores.
