# US 2013/0160023 A1 · Scheduler, multi-core processor system, and scheduling method

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

- Number: US 2013/0160023 A1
- Document ID: US20130160023A1
- Status: Published application
- Kind: A1
- Application number: 13/761,866
- Filed: 2013-02-07
- Published: 2013-06-20
- Earliest claimed: 2010-08-10
- Assignees: Fujitsu Limited
- Inventors: Takahisa SUZUKI; Koichiro Yamashita; Hiromasa Yamauchi; Koji Kurihara
- Web page: https://patentgrep.com/patent/US20130160023A1

## CPC

- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4812: {by interrupt, e.g. masked}
- G06F 9/4887: {involving deadlines, e.g. rate based, periodic}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In an embodiment, a scheduler coordinates timings at which cores execute processes, for any two sequential processes to consecutively be executable. The processes are executed in order scheduled by the scheduler by concentrating on a specific core processes obstructing the consecutive execution such as an external interrupt and an internal interrupt. The scheduler does not always cause processes of another application to be executed during all standby time periods while the scheduler determines whether a length of a standby time period is shorter than a predetermined value, and does not cause any process of the other application to be executed when the length is shorter than that.

## Claims

### Claim 1

A scheduler causing a specific core in a multi-core processor to execute a process comprising:
first detecting from a group of processes constituting a program to be executed, a group of unset scheduling processes whose group of subsequent processes is common;
second detecting for each of the unset scheduling processes of the detected group of unset scheduling processes and from group of preceding processes for the unset scheduling processes, a preceding process belonging to a group to which the unset scheduling processes belong, the group being among groups formed by grouping the processes that share same or related data to be accessed;
allocating the unset scheduling processes respectively to a core in the multi-core processor and to which the detected preceding process is allocated;
calculating, for each of the unset scheduling processes, elapsed time of an execution time period of the unset scheduling process from an execution ending time at which the group of preceding processes for the unset scheduling processes completely ends; and
setting, for each of the allocated unset scheduling processes, an execution starting time of the unset scheduling process at an allocation destination core to be a difference of a most recent calculated elapsed time less an execution time period of the unset scheduling process.

### Claim 2 (depends on 1)

The scheduler according to claim 1, wherein
the setting includes setting, when the detected preceding process ends at an execution ending time at which the group of preceding processes of the unset scheduling process completely ends, the execution ending time to be the execution starting time of the unset scheduling process.

### Claim 3 (depends on 1)

The scheduler according to claim 1, wherein
the allocating includes allocating, when no preceding process belonging to a group to which the unset scheduling process belongs is detected, the unset scheduling process for which no preceding process is detected, to a core that is in the multi-core processor and to which no preceding process is allocated.

### Claim 4 (depends on 3)

The scheduler according to claim 3, wherein
the allocating includes allocating, when no preceding process belonging to the group to which the unset scheduling process belongs is detected and the preceding processes have been allocated to all cores in the multi-core processor, the unset scheduling process for which no preceding process is detected is allocated to a core that is in the multi-core processor and whose execution time period of the preceding process allocated thereto is shortest.

### Claim 5 (depends on 1)

The scheduler according to claim 1, wherein
the allocating includes allocating, when a priority level concerning order of execution is set for the unset scheduling process and the priority level is set high among the unset scheduling processes, the unset scheduling process is allocated preferentially to the core to which the detected preceding process is allocated.

### Claim 6 (depends on 1)

The scheduler according to claim 1, wherein
the allocating includes allocating an interrupt process consequent to the program to be executed and a second program is allocated, to a core for which no preceding process belonging to the group to which the unset scheduling process belongs is detected at the second detecting.

### Claim 7 (depends on 6)

The scheduler according to claim 6, wherein
the allocating includes allocating, when the preceding processes have been allocated to all cores in the multi-core processor, the interrupt process to a core whose execution time period of the preceding process already allocated thereto is shortest.

### Claim 8 (depends on 1)

The scheduler according to claim 1, wherein
the allocating includes allocating a process that is in the groups of processes constituting the program to be executed and does not have information identifying the group of subsequent processes and the group of preceding processes, to a core for which no preceding process belonging to the group to which the unset scheduling process belongs is detected at the second detecting.

### Claim 9 (depends on 8)

The scheduler according to claim 8, wherein
the allocating includes allocating, when the preceding processes have been allocated to all cores in the multi-core processor, the process not having information identifying the group of subsequent processes and the group of preceding processes, to a core whose execution time period of the preceding process already allocated thereto is shortest.

### Claim 10 (depends on 1)

The scheduler according to claim 1, wherein
the setting includes setting, when a standby time period from the ending time of the preceding process of the detected unset scheduling process to the set execution starting time of the unset scheduling process is greater than or equal to a threshold value, the ending time of the preceding process of the unset scheduling process to be an execution starting time of a process whose execution time period is less than or equal to the standby time period, among processes of a second program.

### Claim 11

A multi-core processor system comprising a core configured to:
detect from a group of processes constituting a program to be executed, a group of unset scheduling processes whose group of subsequent processes is common;
detect for each of the unset scheduling processes of the detected group of unset scheduling processes and from group of preceding processes for the unset scheduling processes, a preceding process belonging to a group to which the unset scheduling processes belong, the group being among groups formed by grouping the processes that share same or related data to be accessed;
allocate the unset scheduling processes respectively to a core in the multi-core processor and to which the detected preceding process is allocated;
calculate, for each of the unset scheduling processes, elapsed time of an execution time period of the unset scheduling process from an execution ending time at which the group of preceding processes for the unset scheduling processes completely ends; and
set, for each of the allocated unset scheduling processes, an execution starting time of the unset scheduling process at an allocation destination core to be a difference of a most recent calculated elapsed time less an execution time period of the unset scheduling process.

### Claim 12

A scheduling method executed by a specific core in a multi-core processor, the scheduling method comprising:
first detecting from a group of processes constituting a program to be executed, a group of unset scheduling processes whose group of subsequent processes is common;
second detecting for each of the unset scheduling processes of the detected group of unset scheduling processes and from group of preceding processes for the unset scheduling processes, a preceding process belonging to a group to which the unset scheduling processes belong, the group being among groups formed by grouping the processes that share same or related data to be accessed;
allocating the unset scheduling processes respectively to a core in the multi-core processor and to which the detected preceding process is allocated;
calculating, for each of the unset scheduling processes, elapsed time of an execution time period of the unset scheduling process from an execution ending time at which the group of preceding processes for the unset scheduling processes completely ends; and
setting, for each of the allocated unset scheduling processes, an execution starting time of the unset scheduling process at an allocation destination core to be a difference of a most recent calculated elapsed time less an execution time period of the unset scheduling process.
