A pre-allocation-based priority fixed priority reliability-aware energy consumption optimization method

By employing a reliability-aware energy consumption optimization method with pre-allocated priority and fixed priority in embedded systems, and adjusting task execution speed during idle time, the problem of combining energy consumption and reliability in existing technologies is solved, thereby achieving reduced system energy consumption and improved reliability.

CN116339943BActive Publication Date: 2025-12-12HUAQIAO UNIVERSITY
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310224006.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-09
Publication Date
2025-12-12
Estimated Expiration
2043-03-09

AI Technical Summary

Technical Problem

Existing technologies in embedded systems fail to fully utilize idle time to adjust task execution speed to reduce energy consumption, neglecting the combination of reliability and energy consumption, resulting in decreased system performance and increased costs.

Method used

A reliability-aware energy consumption optimization method based on pre-allocation priority and fixed priority is adopted. By establishing a periodic task model, task arrival prediction, static idle time allocation, energy consumption calculation and idle time utilization, the task execution speed is adjusted to optimize energy consumption.

Benefits of technology

This resulted in a 22.89% reduction in system energy consumption, improved system reliability, and lower production costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116339943B_ABST
    Figure CN116339943B_ABST
Patent Text Reader

Abstract

This invention discloses a reliability-aware energy consumption optimization method based on pre-allocation priority and fixed priority, comprising: establishing a periodic task model and scheduling a task set using a dual-priority monotonic rate strategy; proposing a task arrival prediction method and updating the arrival prediction array; and pre-allocating the static idle time SSTi to the periodic task T before scheduling the task set. i Adjusting the cycle task T i The execution speed, computation cycle task T i Pre-optimized speed S i ; Calculate the execution cycle task T before and after pre-allocation. i Energy consumption difference ΔE i The periodic task corresponding to the maximum energy consumption difference is selected as the offline best pre-allocated scaling task T. a ;Calculate the periodic task T i Available idle time AST i Intergroup idle time IST i Using AST i or IST i Calculate the scaling task execution speed S l This invention effectively reduces system energy consumption while ensuring system reliability.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to improving system reliability by task re-execution and reducing system power consumption by optimizing the speed of computing energy consumption, and particularly relates to a pre-allocated priority fixed priority reliability-aware energy consumption optimization method. BACKGROUND

[0002] High heat generated by high energy consumption will gradually reduce the system performance, which will increase the cost of the product and cannot guarantee that the system can correctly respond to the changes of external physical processes within the specified time range, therefore, solving the power consumption optimization problem becomes a key factor to further improve the system performance. The performance of embedded systems is affected by energy consumption, reliability and other factors, and the existing low-energy real-time scheduling algorithm usually only targets a certain aspect of energy consumption, reliability, resource sharing and other problems, therefore, it has important theoretical significance and application value to study the energy consumption, reliability and resource sharing of embedded systems as a whole and make full use of the idle time of the system.

[0003] Currently, the energy consumption optimization algorithm that uses system idle time to adjust the execution speed of tasks often ignores the impact of speed on reliability, and there are few studies that combine the two. Only a few studies consider both reliability and energy consumption, but they do not fully consider the idle time, i.e. directly using traditional low-power technology to put the processor into a low-power state when the processor is idle, ignoring the possibility of adjusting the execution speed of tasks to make the energy consumption lower. In the method of selecting scaled tasks and constructing recovery tasks to improve system reliability, the idle time generated by the cancellation of recovery tasks due to the success of scaled tasks is also ignored. The existing reliability-aware algorithm usually specifies the selection strategy of scaled tasks in advance, such as selecting the task with the longest execution time or the task with the smallest task utilization rate, which depends too much on the task set. SUMMARY

[0004] The present application aims to overcome the shortcomings of the prior art and provide a pre-allocated priority fixed priority reliability-aware energy consumption optimization method that can improve system reliability and reduce system energy consumption.

[0005] To achieve the above-mentioned purpose, the technical solution of the present application is a pre-allocated priority fixed priority reliability-aware energy consumption optimization method, comprising:

[0006] Establish a periodic task model to schedule the task set with a double-priority single-rate strategy;

[0007] Propose a method for predicting task arrival and update the arrival prediction array;

[0008] Pre-allocate static idle time SSTi to periodic tasks Ti Adjusting the cycle task T i The execution speed, computation cycle task T i Pre-optimization speed S i ;

[0009] Calculate the execution cycle task T before and after pre-allocation. i Energy consumption difference ΔE i The periodic task corresponding to the maximum energy consumption difference is selected as the offline best pre-allocated scaling task T. a ;

[0010] Calculate the periodic task T i Available idle time AST i Intergroup idle time IST i ;

[0011] Using AST i or IST i Calculate the scaling task execution speed S l .

[0012] The establishment of the periodic task model, which schedules the task set using a dual-priority monotonic rate strategy, specifically includes:

[0013] The processor uses the RM / DPP (Rate Monotonic with Dual Priority Scheduling Policy) fixed-priority policy to schedule periodic tasks T = {T1, T2, ..., T}. n}; Each cycle task T i From the quadruple {a i ,e i ,r i ,p i The task set is composed of (1≤i≤n, where i is an integer and n is the number of tasks in the task set), where a i Represents a periodic task T i The actual execution time, because the actual execution time of a task is often lower than its worst-case execution time, and completing the execution early will create idle time; e i Represents a periodic task T i Worst execution time; r i Represents a periodic task T i The resource demand situation, r i =1 indicates a periodic task T i There is a need for resources, r i =0 indicates a periodic task T i No resource requirements indicated; p i Represents a periodic task T iRM / DPP fixed priority strategy is based on RM strategy, and initial priority is determined according to the order of task period from small to large, the execution priority of the task without resource requirement is equal to the initial priority, the execution priority of the task with resource requirement is the highest initial priority of all the tasks with resource requirement, the task with high priority is preferentially scheduled, and the task with high execution priority can preempt the task with low priority.

[0014] The method for predicting the arrival of the proposed task, updating the arrival prediction array, specifically comprising:

[0015] The arrival prediction array of the periodic task set T at a certain time is next_arrive_time={Θ1, Θ2,..., Θn} (n is an integer, and n is the number of tasks in the task set). n Each element Θ j of the prediction array next_arrive_time is composed of a binary tuple {arrive_time j , p j} (1≤j≤n, j is an integer, and n is the number of tasks in the task set), wherein arrive_time j represents the next arrival time of the periodic task T j ; p i is the period of the periodic task T j . The elements in the prediction array next_arrive_time are arranged in non-decreasing order of arrive_time j , that is, arrive_time1≤arrive_time2≤...≤arrive_time n , and if arrive_time is equal, the task with a smaller period is arranged in front. Each time the prediction array is updated, it is sorted according to this strategy to ensure that Θ1 represents the task with the next arrival time, and the updating method of the prediction array is as follows:

[0016] arrive_time j =arrive_time j +p i

[0017] The prediction array updating needs to satisfy the formula:

[0018]

[0019] The static idle time SSTi is pre-allocated to the periodic task T i to adjust the execution speed of the periodic task T i , and the pre-optimization speed S i of the periodic task T i is calculated, specifically comprising:

[0020] Before the system actually schedules tasks, when all periodic tasks are executed at the maximum speed S max , the system generates a static idle time SST i , the value of which is calculated by the following formula:

[0021] SST i = (1-S U ) × (d i -t i )

[0022] where t i and d i are the arrival time and deadline of the periodic task T i , respectively. S U represents the feasible energy optimization speed S U of scheduling periodic tasks, which is calculated by the following formula:

[0023] S U = min{S T , S H}

[0024] where S T is determined by the sum of the available speed S RT of the task set with resource requirements and the available speed S NRT of the task without resource requirements; S H is the feasible speed of scheduling the periodic task set T using the RM strategy. The static idle time SST i is allocated to the periodic task T i to adjust the execution speed of the periodic task T i , and the adjusted speed S i of T i is calculated by the following formula:

[0025]

[0026] The calculation of the energy consumption difference ΔE i of the periodic task T i before and after pre-allocation selects the periodic task corresponding to the maximum energy consumption difference as the offline best pre-allocation scaling task T a , and specifically includes:

[0027] If all tasks are executed at the maximum speed S max before pre-allocation, the energy consumption of the periodic task T i before pre-allocation is calculated by the following formula:

[0028] PE i = P maxi · (SST i + e i )

[0029] wherein P maxi is the power consumption of the processor to execute the periodic task T max at the speed S i , the value of which is related to the selected power consumption model.

[0030] The periodic task T i is executed at the adjusted speed S i , and the speed S i is guaranteed to be greater than or equal to the critical speed S crit (S crit = 0.17), and the rest of the tasks are executed at the maximum speed S max , then the power consumption E i of the periodic task T i executed after pre-allocation is calculated by the following formula:

[0031] E i = P i · (SST i + e i )

[0032] The energy consumption difference ΔE i of the periodic task T i executed before and after pre-allocation is calculated by the following formula:

[0033] △E i = PE i - E i

[0034] The periodic task corresponding to the maximum energy consumption difference ΔE i is selected as the offline best pre-allocation scaled task T a (1≤a≤n, a is an integer, and n is the number of tasks in the task set), when the maximum energy consumption difference corresponding to the adjustment of different task speeds is the same, the task with the smallest subscript is selected as the best pre-allocation scaled task, and the static idle time is always allocated to the periodic task T k .

[0035] The available idle time AST i and the inter-group idle time IST i of the periodic task T i are calculated, specifically including:

[0036] The periodic task T i with the highest priority is found, and the available idle time in each deadline of the periodic task T i is represented as AST i , which is calculated by the static idle time SST i and the dynamic idle time DST iThe composition, but static idle time can only be allocated to the best pre-assignment scaling task. If the periodic task T i satisfies e i ≤ AST i , it will be selected as the scaling task, the dynamic idle time is recycled to the available idle time, and the available idle time is allocated greedily to improve system reliability and adjust the processor speed. The available idle time AST i can be calculated by the following formula:

[0037] AST i = DST i + SST i · x i

[0038] If the periodic task T i is the best pre-assignment scaling task, i.e. i = k, x i = 1; otherwise x i = 0. DST i represents the dynamic idle time of the periodic task T i , which mainly comes from two parts: one is the idle time generated by the early completion of the task execution; the other is the idle time generated by the recovery of the task. DST i is calculated by the following formula:

[0039]

[0040] where hp(T i ) represents the set of tasks with higher priority than the periodic task T i . If the periodic task T k is a scaling task and its execution is successfully completed, y k = 1, z k = 1; otherwise y k = 0, z k = 0.

[0041] If there is only one task T i in the current ready queue, and the task satisfies e i ≤ AST i , i.e. T i is a scaling task, when the task execution is completed after the recovery task, the next periodic task has not arrived, the time from the completion of the task execution to the arrival of the next task is used to further adjust the speed of the scaling task, and the concept of inter-group idle time IST i is proposed. The inter-group idle time IST i can be calculated by the following formula:

[0042] IST i = next_arrive_time0-(current_time+ei )

[0043] wherein next_arrive_time0 represents the value of the first element in the task prediction array, i.e. the time of arrival of the next periodic task; current_time represents the current time.

[0044] The AST i or IST i is used to calculate the scaled task execution speed S l , specifically comprising:

[0045] The periodic task T i satisfies e i ≤ AST i , i.e. T i is a scaled task, a recovery task is constructed for the scaled task, the execution time of the recovery task is the same as the worst execution time of the scaled task, and the execution speed of the recovery task is set to S max , and the remaining idle time will be used to reduce the execution speed of the scaled task. Considering that the inter-group idle time and the dynamic idle time have a containing relationship, and the processor consumes the dynamic idle time when it is idle, a strategy of using the inter-group idle time is proposed:

[0046] If there is more than one task in the ready queue, the AST i is used to calculate the scaled task execution speed S l . If there is only one task in the ready queue and the task satisfies AST i ≤ IST i , the IST i is used to calculate the scaled task execution speed S l , otherwise the AST i is used to calculate the scaled task execution speed S l .

[0047] The scaled task execution speed S l can be calculated by the following formula:

[0048]

[0049] When the periodic task T i is selected as a scaled task, the condition e i ≤ AST i for constructing a recovery task is satisfied, and there is no task preemption within the next_arrive_time-current_time time, i.e. before the arrival of the next periodic task, the inter-group idle time is considered. If the inter-group idle time is greater than or equal to the dynamic idle time, i.e. the dynamic idle time will be consumed before the arrival of the next periodic task, the inter-group idle time is used to adjust the execution speed of the scaled task to reduce the energy consumption of the system.

[0050] From the above description of the present application, compared with the prior art, the present application has the following beneficial effects:

[0051] (1) The method of the present application saves about 22.89% of energy consumption compared with other reliability-aware energy-saving scheduling methods;

[0052] (2) The reduction of system energy consumption can reduce the production cost of products and improve the reliability of products;

[0053] The present application will be further described in detail below in combination with the accompanying drawings and examples, but the pre-allocation priority fixed priority reliability-aware energy consumption optimization method of the present application is not limited to the examples. BRIEF DESCRIPTION OF DRAWINGS

[0054] Figure 1 is a flowchart of the method of the present application;

[0055] Figure 2 is a graph of the energy consumption experimental results of the present application. DETAILED DESCRIPTION

[0056] The technical solutions in the examples of the present application will be described and discussed in detail below in combination with the accompanying drawings of the present application. It should be understood that the specific examples described herein are only used to explain the present application and do not limit the present application.

[0057] Referring to Figure 1 , the pre-allocation priority fixed priority reliability-aware energy consumption optimization method of the present application includes the following steps:

[0058] Step 1, establish a periodic task model to schedule the task set with a dual priority rate monotonic scheduling policy.

[0059] The periodic tasks T = {T1, T2,..., Tn} are scheduled on the processor using the RM / DPP (Rate monotonic with dual priority scheduling policy) fixed priority policy. n}; Each periodic task T i is composed of a four-tuple {a i , e i , r i , p i} (1≤i≤n, i is an integer, and n is the number of tasks in the task set), where a i represents the actual execution time of the periodic task T i , because the actual execution time of the task is often lower than its worst execution time, early completion of execution will generate idle time; e i represents the worst execution time of the periodic task T i ; ri Represents a periodic task T i The resource demand situation, r i =1 indicates a periodic task T i There is a need for resources, r i =0 indicates a periodic task T i No resource requirements indicated; p i Represents a periodic task T i The cycle; the RM / DPP fixed priority strategy is based on the RM strategy, which determines the initial priority according to the task cycle from smallest to largest. The execution priority of tasks with no resource requirements is equal to the initial priority, and the execution priority of tasks with resource requirements is the highest initial priority of all tasks with resource requirements. Higher priority tasks are scheduled first, and higher execution priority tasks can preempt lower priority tasks.

[0060] Step 2: Propose a method for predicting task arrival and update the arrival prediction array.

[0061] The arrival prediction array for a periodic task set T at a certain time is next_arrive_time = {Θ1,Θ2,...,Θ}. n}; Predict each element Θ of the array next_arrive_time. j The tuple {arrive_time j ,p j The task set consists of (1≤j≤n, where j is an integer and n is the number of tasks in the task set), where arrival_time j Represents a periodic task T j The next arrival time; p i Periodic task T j The period. Predict the elements in the array next_arrive_time according to the arrival_time. j Non-decreasing permutation, i.e., arrival_time1 ≤ arrival_time2 ≤ ... ≤ arrival_time n If the arrival_time values ​​are equal, the one with the shorter period is ranked first. Each update of the prediction array follows this strategy, ensuring that Θ1 represents the next most recently arriving task. The update method for the prediction array is as follows:

[0062] arrive_time j =arrive_time j +p i

[0063] The predicted array update must satisfy the following formula:

[0064]

[0065] Step 3, pre-allocate static idle time SSTi to periodic tasks T i to adjust the execution speed of periodic tasks T i , calculate the pre-optimization speed S i of periodic tasks T i .

[0066] Before the system actually schedules tasks, when all periodic tasks are executed at speed S max , the system will generate static idle time SST i , the value of which is calculated by the following formula:

[0067] SST i = (1-S U ) x (d i -t i )

[0068] Where t i and d i are the arrival time and deadline of periodic tasks T i , S U represents the feasible energy optimization speed S U of scheduling periodic tasks, which is calculated by the following formula:

[0069] S U = min{S T , S H}

[0070] Where S T is determined by the sum of the available speed S RT of the task set with resource requirements and the available speed S NRT of the task without resource requirements; S H is the feasible speed of scheduling periodic task set T using RM strategy. The static idle time SST i is allocated to periodic tasks T i to adjust the execution speed of periodic tasks T i , the adjusted speed S i of T i is calculated by the following formula:

[0071]

[0072] Step 4, calculate the energy consumption difference ΔE i of executing periodic tasks T i before and after pre-allocation, and select the periodic task corresponding to the maximum energy consumption difference as the offline best pre-allocation scaling task T a .

[0073] All tasks before pre-allocation are executed at maximum speed S maxIf executed, then the pre-allocated execution cycle task T will be executed. i The power consumption is calculated by the following formula:

[0074] PE i =P maxi ·(SST i +e i )

[0075] Among them, P maxi The processor is at a speed of S max Execution cycle task T i The power consumption is related to the power consumption model selected.

[0076] For periodic task T i At the adjusted speed S i Execute, and ensure speed S i Greater than or equal to the critical speed S crit (S crit =0.17), the remaining tasks are carried out at the maximum speed S max Execution will then pre-allocate and execute the cycle task T. i Power consumption E i Calculated by the following formula:

[0077] E i =P i ·(SST i +e i )

[0078] Pre-allocation of execution cycle tasks T i Energy consumption difference ΔE i Calculated by the following formula:

[0079] △E i =PE i -E i

[0080] The maximum energy consumption difference ΔE i The corresponding periodic task is selected as the offline best pre-allocated scaling task T. a (1≤a≤n, where a is an integer and n is the number of tasks in the task set), when the maximum energy consumption difference corresponding to adjusting the speed of different tasks is the same, the task with the smallest index is selected as the best pre-allocated scaling task, and static idle time is always allocated to the periodic task T. k .

[0081] Step 5, calculate the periodic task T i Available idle time AST i Intergroup idle time IST i .

[0082] Find the highest priority periodic task T iavailable slack time (AST) in each deadline i , which is composed of static slack time (SST) and dynamic slack time (DST) i in each deadline i , but static slack time can only be allocated to the best pre-allocated scaling task. If a periodic task T i satisfies e i ≤ AST i , it is selected as a scaling task, the dynamic slack time is recovered to available slack time, and the available slack time is allocated greedily to improve system reliability and adjust processor speed. The available slack time AST i can be calculated by the following formula:

[0083] AST i = DST i + SST i · x i i

[0084] If the periodic task T i is the best pre-allocated scaling task, i.e. i = k, x i = 1; otherwise x i = 0. DST i represents the dynamic slack time of the periodic task T i , which mainly comes from two parts: one is the slack time generated by the task completing execution early; the other is the slack time generated by resuming the task. DST i is calculated by the following formula:

[0085]

[0086] where hp(T i ) represents the set of tasks with higher priority than the periodic task T i . If the periodic task T k is a scaling task and it completes execution successfully, y k = 1, z k = 1; otherwise y k = 0, z k = 0.

[0087] If there is only one task T i in the current ready queue, and the task satisfies e i ≤ AST i , i.e. T i is a scaling task, when it completes execution of the resuming task, the next periodic task has not arrived, the time from when the task completes execution to when the next task arrives is used to further adjust the speed of the scaling task, and inter-group slack time IST i ​the concept of inter-group idle time IST i may be calculated by the following formula:

[0088] IST i = next_arrive_time0- (current_time+e i )

[0089] wherein next_arrive_time0represents the value of the first element in the task prediction array, i.e. the time of arrival of the next period task; current_time represents the current time.

[0090] Step 6, using AST i or IST i to calculate the scaling task execution speed S l .

[0091] Periodic task T i satisfies e i ≤ AST i , i.e. T i is a scaling task, a recovery task is constructed for the scaling task, the execution time of the recovery task is the same as the worst execution time of the scaling task, and the execution speed of the recovery task is set to S max , and the remaining idle time will be used to reduce the execution speed of the scaling task. Considering that the inter-group idle time has a containing relationship with the dynamic idle time, and the processor consumes the dynamic idle time when it is idle, a strategy of using the inter-group idle time is proposed:

[0092] If there is more than one task in the ready queue, the scaling task execution speed S i is calculated using AST l . If there is only one task in the ready queue and the task satisfies AST i ≤ IST i , the scaling task execution speed S i is calculated using IST l , otherwise the scaling task execution speed S i is calculated using AST l . The scaling task execution speed S l may be calculated by the following formula:

[0093]

[0094] When the periodic task T i is selected as the scaling task, the condition e i ≤ AST i for constructing the recovery task is satisfied, and

[0095] If the inter-group idle time is greater than or equal to the dynamic idle time, i.e., the dynamic idle time will be consumed before the next period task arrives, the inter-group idle time is used to adjust the execution speed of the scaled task to reduce the system energy consumption.

[0096] In the embodiment, the number of tasks in the task set is 17, the period of the task is randomly selected in the interval [25, 1000], the worst execution time of the task is randomly selected between 1 and the period, and the ratio of the worst execution time to the actual execution time is uniformly distributed between 1 and 10. The system utilization is set to 0.5. The simulation time of the experiment is set to 10000 time slices. The influence of the ratio of the worst execution time to the actual execution time on the energy consumption is investigated. In the experiment, four methods are compared. First, the method of the present application; second, the RM / DPP (Rate monotonic with dual priority scheduling policy) method; the periodic task set is scheduled according to the RM / DPP scheduling policy, and all tasks are executed at the maximum execution speed; third,

[0097] The MF (Maximum execution time first) method; the periodic task set is scheduled according to the RM / DPP scheduling policy, and the execution speed of the task with the longest execution time is adjusted using the static idle time; fourth, the DA (Dynamicscheme for fixed priority periodic tasks) method; the static idle time is only allocated to the scaled task with the longest execution time, and the execution speed of the scaled task is adjusted using the dynamic idle time greedily. The experimental results show that the energy saving effect is better when the ratio of the worst execution time to the actual execution time is 8. Compared with the RM / DPP method, the method of the present application saves 42.09% of the energy consumption. Compared with the MF method, the method of the present application saves 38.92% of the energy consumption. Compared with the DA method, the method of the present application saves 22.89% of the energy consumption.

[0098] The above is only a preferred embodiment of the present application. However, the present application is not limited to the above embodiment, and any equivalent changes and modifications made according to the present application, as long as the resulting functional effects do not exceed the scope of the present application, are within the scope of protection of the present application.

Claims

1. A pre-allocation based priority fixed priority reliability aware energy optimization method, characterized in that, The application relates to a method for scheduling a periodic task model, comprising the following steps: A periodic task model is established to schedule a task set by a double-priority single-rate strategy; A task arrival prediction method is provided to update an arrival prediction array; Pre-allocating static idle time SSTi to periodic task T i To adjust the execution speed of periodic task T i , the pre-optimization speed S i of periodic task T i is calculated. Calculate the execution cycle task T before and after pre-allocation. i Energy consumption difference ΔE i The periodic task corresponding to the maximum energy consumption difference is selected as the offline best pre-allocated scaling task T. a ; Computing periodic tasks T i of available slack time AST i and inter-group slack time IST i ; Utilizing AST i or IST i Computing scaling task execution speed S l ; The method for scheduling the periodic task model comprises the following steps: On a single processor, use the RM / DPP fixed priority strategy to schedule periodic tasks T={T1,T2,...,T...} n }; Each cycle task T i From the quadruple {a i ,e i ,r i ,p i Composed of}; where 1 ≤ i ≤ n, i is an integer, and n is the number of tasks in the task set; a i Represents a periodic task T i The actual execution time, because the actual execution time of a task is often lower than its worst-case execution time, and completing the execution early will create idle time; e i Represents a periodic task T i Worst execution time; r i Represents a periodic task T i The resource demand situation, r i = 1 indicates a periodic task T i There is a need for resources, r i = 0 indicates a periodic task T i No resource requirements indicated; p i Represents a periodic task T i The cycle; The task arrival prediction method comprises the following steps: The arrival prediction array for a periodic task set T at a certain time is next_arrive_time={Θ1,Θ2,...,Θ}. n }; Predict each element Θ of the array next_arrive_time. j The tuple {arrive_time j ,p j }; where 1 ≤ j ≤ n, j is an integer, and n is the number of tasks in the task set; arrival_time j Represents a periodic task T j The next arrival time; p i Periodic task T j The period; predicting the elements in the array next_arrive_time according to arrival_time. j The non-decreasing arrangement is used, and the prediction array is sorted according to this strategy each time it is updated, ensuring that Θ1 represents the next most recently arrived task; Computing periodic tasks T i Available slack time AST i and inter-group slack time IST i , in particular comprising: finding the highest priority periodic task T i the available slack time within each deadline of T is denoted as AST i which can be calculated by the following equation: ; Among them, SST i and DST i Representing periodic tasks T respectively i Static idle time (SST) within each deadline i Dynamic Idle Time (DST) i If the periodic task T i If it is the optimal pre-allocated scaling task, i.e., i = a, then x i = 1; otherwise x i = 0; If there is only one task T in the current ready queue i , and the task meets e i ≤ AST i , it is selected as the scaling task. When the task resumes the execution and the next period task has not arrived, the time from the execution of the task to the arrival of the next task is used to further adjust the speed of the scaling task. The concept of inter-group idle time IST i is proposed. The inter-group idle time IST i can be calculated by the following formula: ; Wherein, next_arrive_time0 represents the value of the first element in the task prediction array, i.e. the time of the next periodic task arrival; current_time represents the current time.

2. The pre-allocation based priority fixed priority reliability aware energy optimization method of claim 1, wherein, The static idle time SSTi is pre-allocated to the periodic task T i The execution speed of the periodic task T i is adjusted, and the pre-optimization speed S i of the periodic task T i is calculated, specifically including: Before the system actually schedules the tasks, when all periodic tasks are at the maximum normalized speed S max When executed, the system then generates a static slack time SST i , which is pre-allocated to the periodic tasks T i , T i , T i The adjusted speed S i is calculated by the following formula: 。 3. The pre-allocation based priority fixed priority reliability aware energy optimization method of claim 1, wherein, The energy consumption difference ΔE of the periodic task T before and after pre-allocation i The energy consumption difference ΔE of the periodic task T before and after pre-allocation i The periodic task corresponding to the maximum energy consumption difference is selected as the offline best pre-allocation scaling task T a , specifically comprising: Computing the energy consumption difference ΔE i As follows: ; where PE i represents the energy consumption of performing periodic task T i before pre-allocation, and E i represents the energy consumption of performing periodic task T i after pre-allocation. When the maximum energy consumption difference corresponding to different task speeds is adjusted to be the same, the task with the smallest subscript is the best pre-allocated scaling task, and the static idle time is always allocated to the periodic task T a .

4. The pre-allocation based priority fixed priority reliability aware energy optimization method of claim 1, wherein, Utilizing AST i or IST i Computing the scaling task execution speed S l , specifically comprising: Periodic task T i Satisfies e i ≤ AST i , if there is more than one task in the ready queue, then use AST i to calculate the scaled task execution speed S l ; if there is only one task in the ready queue and that task satisfies AST i ≤ IST i , then use IST i to calculate the scaled task execution speed S l , otherwise use AST i to calculate the scaled task execution speed S l .

Citation Information

Patent Citations

  • Fixed-priority resource limitation system level energy consumption optimization method

    CN106970835A

  • Fixed priority reliability perception energy consumption optimization method suitable for numerical control system

    CN107728466A