CN117762576A - Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle - Google Patents

Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle Download PDF

Info

Publication number
CN117762576A
CN117762576A CN202211177504.1A CN202211177504A CN117762576A CN 117762576 A CN117762576 A CN 117762576A CN 202211177504 A CN202211177504 A CN 202211177504A CN 117762576 A CN117762576 A CN 117762576A
Authority
CN
China
Prior art keywords
task
core
data communication
tasks
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211177504.1A
Other languages
Chinese (zh)
Inventor
王定华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Co Wheels Technology Co Ltd
Original Assignee
Beijing Co Wheels Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Co Wheels Technology Co Ltd filed Critical Beijing Co Wheels Technology Co Ltd
Priority to CN202211177504.1A priority Critical patent/CN117762576A/en
Publication of CN117762576A publication Critical patent/CN117762576A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

The disclosure provides a scheduling method, a scheduling device, electronic equipment, a storage medium and a vehicle for a vehicle-mounted task, which are realized by a multi-core processor and comprise a first core and a second core; the method comprises the following steps: executing a first task in a first task queue through a first core; executing the second task in the second task queue through the second core; when any first task stops executing, acquiring the periods of all the first tasks to be executed, taking the first task with the shortest period as the current first task, and executing the current first task; wherein the first task has a higher priority than the second task. In the method, the tasks are divided into the first task and the second task according to the priority, wherein the first task and the second task are executed through different cores, the first task is not interfered by the second task, the completion time limit of the first task is guaranteed, on the basis, the first task with a shorter period is preferentially executed, and the completion time limit of the first task with a shorter period is further guaranteed.

Description

Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle
Technical Field
The disclosure relates to the technical field of vehicles, and in particular relates to a scheduling method and device for vehicle-mounted tasks, electronic equipment, a storage medium and a vehicle.
Background
This section is intended to provide a background or context to the embodiments of the disclosure recited in the claims. The description herein is not admitted to be prior art by inclusion in this section.
The intelligent driving is a new technological development direction of the automobile industry, promotes the rapid transformation and upgrading of the traditional automobile industry, is a development trend of automobiles in the future, is beneficial to improving the traffic safety of the automobiles, improving the transportation efficiency, realizing energy conservation and emission reduction, promoting industry transformation and the like, and relates to environment sensing technology, high-precision positioning, decision making, planning, control and execution, and the landing of each technology requires real-time operation system support, namely the system needs to process information acquired from the outside in time.
However, in the related art, for the multi-core processor, under the high load condition, the stability of task scheduling is low, and the completion time limit of the task cannot be guaranteed.
Disclosure of Invention
In view of the foregoing, an object of the present disclosure is to provide a method and apparatus for scheduling an in-vehicle task, an electronic device, a storage medium, and a vehicle.
In view of the above object, an exemplary embodiment of the present disclosure provides a scheduling method for a vehicle-mounted task, which is implemented by a multi-core processor, where the multi-core processor includes a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and a priority of the first task is higher than that of the second task;
the method comprises the following steps:
executing, by the first core, the first task in the first task queue;
executing, by the second core, the second task in the second task queue;
when any first task stops executing, acquiring the periods of all the first tasks to be executed in the first task queue, taking the first task with the shortest period in all the first tasks to be executed as a current first task, and executing the current first task.
Based on the same inventive concept, the exemplary embodiments of the present disclosure further provide a scheduling device for vehicle-mounted tasks, which is implemented by a multi-core processor, where the multi-core processor includes a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and a priority of the first task is higher than that of the second task;
The device comprises:
a first task execution module configured to execute the first task in the first task queue through the first core;
a second task execution module configured to execute the second task in the second task queue through the second core;
the first task execution module is further configured to obtain periods of all the first tasks to be executed in the first task queue when any one of the first tasks stops executing, take the first task with the shortest period in all the first tasks to be executed as a current first task, and execute the current first task.
Based on the same inventive concept, the exemplary embodiments of the present disclosure also provide an electronic device including a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor implementing the method according to any one of the above when executing the program.
Based on the same inventive concept, the present disclosure exemplary embodiments also provide a non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform any of the methods described above.
Based on the same inventive concept, the exemplary embodiments of the present disclosure also provide a vehicle including the scheduling apparatus of the on-vehicle task as described above, the electronic device as described above, and the non-transitory computer-readable storage medium as described above.
From the above, it can be seen that the scheduling method, the device, the electronic device, the storage medium and the vehicle for the vehicle-mounted task provided by the embodiments of the present disclosure are implemented by a multi-core processor, and include a first core and a second core; the method comprises the following steps: executing a first task in a first task queue through a first core; executing the second task in the second task queue through the second core; when any first task stops executing, acquiring the periods of all the first tasks to be executed, taking the first task with the shortest period as the current first task, and executing the current first task; wherein the first task has a higher priority than the second task. In the method, the tasks are divided into the first task and the second task according to the priority, wherein the first task and the second task are executed through different cores, the first task is not interfered by the second task, the completion time limit of the first task is guaranteed, on the basis, the first task with a shorter period is preferentially executed, and the completion time limit of the first task with a shorter period is further guaranteed.
Drawings
In order to more clearly illustrate the technical solutions of the present disclosure or related art, the drawings required for the embodiments or related art description will be briefly described below, and it is apparent that the drawings in the following description are only embodiments of the present disclosure, and other drawings may be obtained according to these drawings without inventive effort to those of ordinary skill in the art.
Fig. 1 is a schematic flow chart of a scheduling method of a vehicle task according to an embodiment of the disclosure;
FIG. 2 is a schematic diagram of a red-black tree data structure provided by an embodiment of the present disclosure;
FIG. 3 is a schematic diagram of a second task schedule provided by an embodiment of the present disclosure;
FIG. 4 is another schematic diagram of a second task schedule provided by an embodiment of the present disclosure;
fig. 5 is another flow chart of a scheduling method of a vehicle-mounted task according to an embodiment of the disclosure
FIG. 6 is a schematic diagram of a first task scheduling timing provided by an embodiment of the disclosure;
fig. 7 is another schematic diagram of a first task scheduling timing provided by an embodiment of the disclosure;
FIG. 8 is another schematic diagram of a first task scheduling timing provided by an embodiment of the disclosure;
FIG. 9 is a schematic diagram of inter-core communication provided by an embodiment of the present disclosure;
fig. 10 is a schematic structural diagram of a scheduling device for vehicle tasks according to an embodiment of the present disclosure;
fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the disclosure.
Detailed Description
For purposes of making the objects, technical solutions, and advantages of the present disclosure more apparent, the principle and spirit of the present disclosure will be described below with reference to several exemplary embodiments. It should be understood that these embodiments are presented merely to enable one skilled in the art to better understand and practice the present disclosure and are not intended to limit the scope of the present disclosure in any way. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
According to an embodiment of the disclosure, a scheduling method and device of a vehicle-mounted task, electronic equipment, a storage medium and a vehicle are provided.
In this document, it should be understood that any number of elements in the drawings is for illustration and not limitation, and that any naming is used only for distinction and not for any limitation.
The principles and spirit of the present disclosure are explained in detail below with reference to several representative embodiments thereof.
The inventor of the present disclosure finds that, in the related art, for a multi-core processor, stability of task scheduling is low under a high load condition, and a completion time limit of a task cannot be guaranteed.
In order to solve the above problems, the present disclosure provides a scheduling scheme of a vehicle-mounted task, which is implemented by a multi-core processor, and includes a first core and a second core; the method comprises the following steps: executing a first task in a first task queue through a first core; executing the second task in the second task queue through the second core; when any first task stops executing, acquiring the periods of all the first tasks to be executed, taking the first task with the shortest period as the current first task, and executing the current first task; wherein the first task has a higher priority than the second task. In the method, the tasks are divided into the first task and the second task according to the priority, wherein the first task and the second task are executed through different cores, the first task is not interfered by the second task, the completion time limit of the first task is guaranteed, on the basis, the first task with a shorter period is preferentially executed, and the completion time limit of the first task with a shorter period is further guaranteed.
Having described the basic principles of the present disclosure, various non-limiting embodiments of the present disclosure are specifically described below.
The scheduling method of the vehicle-mounted task is achieved through a multi-core processor, wherein the multi-core processor comprises a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and the first task has a higher priority than the second task.
The first task queue comprises a plurality of first tasks, and the second task queue comprises a plurality of second tasks.
In specific implementation, the first task may be a hard real-time domain task, and the second task may be a soft real-time domain task. The hard real time domain tasks can comprise tasks with high real-time requirements such as longitudinal control, transverse control, driving control and braking control of the vehicle; soft real-time domain tasks may include tasks with low real-time requirements, such as big data records. It can be appreciated that tasks with higher real-time requirements have higher priority than tasks with lower real-time requirements.
In the method, the tasks are divided into the first task and the second task according to the priorities, wherein the first task and the second task are executed through different cores, namely, physical isolation is carried out, the first task with higher priority is not interfered by the second task with lower priority, and the completion time limit of the first task is ensured.
In particular, for a multi-core processor, in order to reduce mutual exclusion between cores and improve certainty of the whole system, a first task (such as a hard real-time domain task) and a second task (such as a soft real-time domain task) are physically isolated and respectively allocated to different cores, a ready queue is defined by a scheduling system for each core, as an example, the queue of the first task (such as the hard real-time domain task) is a core_ready_rbtree (i.e. a first task queue), and the queue of the second task (such as the soft real-time domain task) is a core_rt_ready_queue (i.e. a second task queue), so that the multi-core operation takes the task with the highest priority from the respective ready queue. If a task is executed on a first core and on a second core, cache flushing and resetting due to task transitions on an SMP system can have a significant impact on system performance. Therefore, when the task is scheduled, the task is bound to a certain core to run when the first task (such as a hard real time domain task) is corresponding to budget planning, and the core used in the last execution is still used when the task is scheduled next time, so that the execution time of the task can be ensured to be deterministic relatively.
Further, in the present disclosure, not only the first task and the second task are executed by different cores, but also the first task and the second task are executed by different policies.
Referring to fig. 1, the scheduling method of the vehicle-mounted task includes the following steps:
step S110, executing the first task in the first task queue through the first core; when any one of the first tasks stops executing, acquiring periods of all the first tasks to be executed in the first task queue, taking the first task with the shortest period in all the first tasks to be executed as a current first task, and executing the current first task.
In some exemplary embodiments, the first task is a hard real-time domain task. The tasks are divided into hard real time domain tasks and soft real time domain tasks according to the real time requirements, and the hard real time domain tasks have higher priority than the soft real time domain tasks.
In specific implementation, for the first task (such as a hard time domain task), a preemptive and static priority strategy is adopted to schedule, for the periodic first task (such as the hard time domain task), the scheduling system operates the task with the shortest period each time, as long as the task with the shorter period has budget and needs to operate, the task with the longer period is preempted immediately, and the task with the longer period must wait for all the tasks with the shorter period to operate after the budget of the task is ended, as an example, the period and the budget of the task can be set through mksys_set_scheduled_time.
In some exemplary embodiments, the system may select a red-black tree (ready_rbtree) data structure according to a set period, insert tasks into corresponding ready red-black trees from short to long according to the period, and select the leftmost node of the red-black tree as a candidate scheduling task to participate in hard real-time scheduling each time. Through the red black tree data structure, operations such as searching, adding and deleting can be completed within the time of the time complexity O (log N), and the efficiency is good.
Referring to FIG. 2, as an example, where 50 and 100 represent the number of cycles of a task, nil represents no value, and any variable has a value of nil before it has not been assigned.
Step S120, executing, by the second core, the second task in the second task queue.
In some exemplary embodiments, the second task is a soft real-time domain task. The tasks are divided into hard real time domain tasks and soft real time domain tasks according to the requirements on real time, and the requirements of the soft real time domain tasks on real time are lower than those of the hard real time domain tasks.
In specific implementation, for a second task (such as a soft real-time domain task), a priority and RR polling algorithm are adopted for scheduling, each task is given a fixed execution time slice, the task is executed in a unit time slice according to the task priority, the next task is scheduled to be executed after the execution is completed, and the time slice round robin scheduling does not consider the task waiting time and the execution time and belongs to preemptive scheduling.
Referring to fig. 3, as an example, the priority of the second task (e.g., soft real-time domain task) may be a number of 0-255, the higher the number, the higher the priority, the system sets the priority of the task through mksys_set_policy, inserts the task into the corresponding ready queue rt_ready_queue according to the set priority, and records the priority of the current task with sche_map_rt for the second task (e.g., soft real-time domain task) with the highest priority selected for execution during scheduling. Where T represents a task and p represents a priority.
In some exemplary embodiments, a third core is further included in the multi-core processor, and a third task in a third task queue is executed through the third core, wherein the third task has a priority lower than that of the first task;
the method further comprises the steps of:
and stopping executing the current third task being executed when the current second task being executed is determined to be associated with the target third task, and executing the target third task.
In some exemplary embodiments, the third task is also a soft real-time domain task. The tasks are divided into hard real time domain tasks and soft real time domain tasks according to the requirements on real time, and the requirements of the soft real time domain tasks on real time are lower than those of the hard real time domain tasks.
In practice, there is a correlation between different tasks, for example, some tasks are preceding tasks of some tasks or some tasks need to be performed simultaneously, in which case the tasks are regarded as associated tasks.
In particular, the third task may include tasks with low real-time requirements, such as big data records.
Referring to fig. 4, as an example, there is a correlation between the current second task T5 executed by the second core and the third task T11 to be executed by the third core, that is, when the second core executes T5, T11 on the third core is woken up, that is, T11 is the target third task, in this case, the priority of T11 on the third core is adjusted to be high, so as to preempt the resource of the current third task being executed by the third core, and execution of T11 is started by the third core.
It should be noted that, in the above embodiment, the task that is awakened by the cross-core is taken as an example to necessarily preempt the resources of other tasks, however, the disclosure is not limited thereto, and in some possible embodiments, it may be further determined whether the task that is to be preempted the resources is a critical task, and if it is a critical task, no preemption is performed to ensure that the critical task is completed.
In some exemplary embodiments, after determining that the current second task being executed is associated with the target third task, the method further comprises:
further judging whether the current third task is a preset second key task or not;
when the current third task is determined to be the second critical task, continuing to execute the current third task, and executing the target third task after the current third task is executed;
and stopping executing the current third task and executing the target third task when the current third task is determined not to be the second critical task.
In some exemplary embodiments, a user may freely configure whether any third task is the second critical task, and in other exemplary embodiments, the system may configure, according to the order of the third task from high to low for real-time performance, a preset number of third tasks as the second critical tasks.
In some example embodiments, the second task is configured to be executable by the third core, the third task being configured to be executable by the second core; the method further comprises the steps of:
When it is determined that a first difference value obtained by subtracting the number of third tasks in the third task queue from the number of second tasks in the second task queue is larger than a preset first difference value threshold, subtracting the first difference value threshold from the first difference value to obtain a second difference value, configuring the second difference value number of the second tasks in the second task queue into the third task queue as the third task, and deleting the second tasks configured into the third task queue in the second task queue;
when it is determined that a third difference value obtained by subtracting the number of the second tasks in the second task queue from the number of the third tasks in the third task queue is larger than a preset third difference value threshold, subtracting the third difference value threshold from the third difference value to obtain a fourth difference value, configuring the fourth difference value number of the third tasks in the third task queue into the second task queue as the second tasks, and deleting the third tasks configured into the second task queue in the third task queue.
For soft real-time domain tasks such as the second task and the third task, the balanced allocation of tasks across cores can be realized, namely when the number of tasks waiting to be executed on any one of the second core or the third core is more than the number of tasks waiting to be executed on the other core, the tasks on the cores with more tasks can be allocated to the cores with fewer tasks, so that the conditions that some cores are busy and congested and some cores are idle can be avoided, the overall efficiency can be improved, and the waiting time of the tasks can be reduced to a certain extent.
The first difference threshold and the third difference threshold can be freely configured according to actual requirements, and the disclosure is not limited.
In particular, for the characteristic that the tasks in the soft real-time domain are easy to block, when the system performs task scheduling, the balanced load needs to be considered, if there are 0,1,2 and 3 cores in total, the bound bit domain is 0x5, which means that the tasks can be executed on core 0 and core 2, and in normal cases, to which core the executable task is scheduled, the task is completed by the operating system. If all the tasks bound by the core 1 are in a blocking state, the core 1 executes a core idle task, the operating system recognizes that the core 1 is idle, if the task 1 is running on the core 2 and the core 1 and the core 2 are bound, but now, because the core resource of the core 2 is in a busy state, the system wakes up the task 1, so that the task 1 transitions to the core 1 to run, the task 1 can be added into a ready queue of the core 1, and inter-core interrupt IPI can be triggered to reschedule, so that the task 1 which is woken up is executed as soon as possible on the core 1, the multi-core rescheduling needs to be performed according to the core bound by the wake-up task and the core which is woken up and the core which is activated, so that the core which is triggered to reschedule is recognized, and for balanced load processing, the core which is idle state or the core which is relatively little is active is recognized, so that the corresponding core rescheduling is selected.
Referring to fig. 5, the scheduling method of the vehicle-mounted task further includes the following steps:
step S510, executing, by the first core, the first task in the first task queue.
The step S510 may be implemented by any of the above embodiments, and will not be described herein.
Step S520, determining whether the execution time of the current first task is greater than or equal to a preset execution time threshold corresponding to the current first task.
For each task, an execution time threshold is corresponding, where the execution time threshold characterizes a preset time required for executing the task, and is generally a predicted time required for executing the task plus a certain reserved amount, so as to ensure that the task can be completed with enough time as much as possible.
When it is determined that the execution time of the current first task is greater than or equal to a preset execution time threshold corresponding to the current first task, step S530 is executed;
when it is determined that the execution time of the current first task is less than the preset execution time threshold corresponding to the current first task, step S540 is executed.
Step S530, determining whether the current first task is a preset first critical task.
Wherein, when it is determined that the current first task is the first critical task, step S540 is performed;
when it is determined that the current first task is not the first critical task, step S550 is performed.
Step S540, continuing to execute the current first task.
And when the execution time of the current first task is determined to be smaller than a preset execution time threshold corresponding to the current first task, or when the execution time of the current first task is determined to be larger than or equal to a preset execution time threshold corresponding to the current first task and the current first task is determined to be the first key task, continuing to execute the current first task.
Step S550, stopping executing the current first task.
And stopping executing the current first task when determining that the execution time of the current first task is greater than or equal to a preset execution time threshold corresponding to the current first task and determining that the current first task is not the first critical task.
In some exemplary embodiments, a user may freely configure whether any first task is a first critical task, and in other exemplary embodiments, the system may configure, according to the order of the first tasks from high to low for real-time requirements, a preset number of first tasks as first critical tasks.
In some exemplary embodiments, the method further comprises:
and continuing to execute the first task stopped executing in the next period.
In practice, when a first task (e.g., a hard real time domain task) is preset as a critical task, if the critical task needs to be executed, if the task has a budget, it directly uses its budget; if a task has not been pre-calculated, but another task has a budget, then it will take the budget of the other task for the processing of the critical task. Typically, the maximum time it takes to complete a task is allocated based on the critical task execution frequency and the worst execution time (WCET) time of the task, however, due to some anomaly, a response is required after the budget has been consumed and not yet executed.
In order to solve the problem of the timeout of the critical task, in the present disclosure, a user may enable the critical task to continue to process by configuring a timeout processing policy (i.e., a policy that the critical task continues to execute when the critical task executes the timeout), i.e., if the user configures the timeout processing policy for the critical task, the scheduling system identifies that when the critical task is timeout, a message is sent to the server, and the server wakes up the critical task to restart to execute continuously; if the server side does not configure a timeout processing strategy for the critical task, the system executes according to the original budget, and continues to execute the critical task after the next period has the budget.
As one example, an example of the scheduling timing for scheduling core 0 for a scheduling system hard real-time scheduling of multiple cores is analyzed as follows:
referring to table 1 and fig. 6, hard real time domain example 1: tasks are performed within the budget.
Table 1 hard time domain example 1
Task Budget time Cycle time Processing time Timeout processing strategy
T1 20ms 50ms 20ms Switching to thread execution
T2 35ms 100ms 35ms Switching to thread execution
The scheduling system firstly executes the task T1, and is switched to the task T2 to run through scheduling, and the DDL of the task T1 and the task T2 always keeps the period thereof because the task execution time is within the budget range.
Referring to table 2 and fig. 7, hard real time domain example 2: the hard time domain task exceeds the preset maximum time and the user policy is not processed.
Table 2 hard time domain example 2
Task Budget time Cycle time Processing time Timeout processing strategy
T1 20ms 50ms 30'ms Switching to thread execution
T2 35ms 100ms 35ms Switching to thread execution
The scheduling system monitors the time-out of the T1 task (the budget time is already executed) every 100ms, and switches to other task operation through scheduling, and finally the scheduling period of the T1 task and the period of 50ms are in a multiple relation. T1 exceeds a preset worst execution time, namely after overtime: the deadline of the task is lengthened to 100ms, the deadline of the hard real time domain task T2 is not affected, and the task T2DDL is always kept as its period.
Referring to table 3 and fig. 8, hard real time domain example 3: the hard time domain task exceeds the preset maximum time and the user policy continues to execute.
Table 3 hard time domain example 3
Task Budget time Cycle time Processing time Timeout processing strategy
T1 20ms 50ms 30'ms Critical task timeout continued execution
T2 35ms 100ms 35ms Switching to thread execution
The kernel monitors that the critical task of the T1 is overtime (the budget time is already executed) every 50ms, and the kernel is switched to the operation of the server through scheduling, and the server wakes up the T1 to continue to execute. T1 exceeds a preset worst execution time, namely after overtime: the readline of the task would still be 50ms, with no impact on the readline of the hard real time domain task T2.
In some exemplary embodiments, the method further comprises:
the method comprises the steps that a sending buffer zone and a receiving buffer zone are configured, wherein the sending buffer zone comprises a first data communication zone and a second data communication zone, and the receiving buffer zone comprises a third data communication zone and a fourth data communication zone; wherein the transmit buffer and the receive buffer are configured to enable communication between the first core and the second core, the first data communication zone being associated with the third data communication zone, the second data communication zone being associated with the fourth data communication zone.
Referring to fig. 9, the method further comprises the steps of:
step S910, when a request for transmitting the target data from the first core to the second core is received, determining whether the second core is reading the third data communication area or the fourth data communication area;
step S920, when it is determined that the second core is reading the third data communication area, transmitting the target data from the first core to the second data communication area;
step S930, when it is determined that the second core is reading the fourth data communication area, transmitting the target data from the first core to the first data communication area;
step S940, when it is determined that the second core does not read the third data communication area and the fourth data communication area, transmitting the target data from the first core to either the first data communication area or the second data communication area.
In some exemplary embodiments, the sending the target data from the first core to the second data communication zone includes:
configuring a locking identifier in the second data communication area, and sending the target data from the first core to the second data communication area;
When the target data is determined to be sent completely, canceling the locking identifier;
the sending the target data from the first core to the first data communication area includes:
configuring the locking identifier in the first data communication area, and sending the target data from the first core to the first data communication area;
and canceling the locking identifier when the target data is determined to be sent completely.
In some exemplary embodiments, after the transmitting the target data from the first core to either the first data communication zone or the second data communication zone, the method further comprises:
configuring first record information or second record information; wherein the first record information characterizes the transmission of the target data from the first core to the first data communication area, and the second record information characterizes the transmission of the target data from the first core to the second data communication area;
transmitting the target data from the third data communication area to the second core according to the first record information;
and transmitting the target data from the fourth data communication area to the second core according to the second record information.
In specific implementation, when the soft real time domain of the core 1 and the hard real time domain of the core 0 are communicated, two buffer areas are set, one is a sending buffer area and the other is a receiving buffer area, each buffer area opens up two data communication areas, and asynchronous communication between the two areas can be processed by setting a flag bit in a fixed storage unit. For example, when the core 0 transmits data to the core 1, before each time the core 0 accesses the data communication area, it must inquire whether the communication area is being read by the core 1, if the core 1 is not reading the data communication area 1, then the writing locking flag is set in the data communication area 1, after writing, the flag is cleared again, and the current latest data is recorded in the data communication area 1 in the fixed storage unit; otherwise, the data communication area 1 is being read by the core 1, the core 0 writes the data into the data communication area 2, the data communication area 2 is provided with a writing locking mark, the mark is cleared after the writing is finished, the current latest data is recorded in the data communication area 2 in the fixed storage unit, and the core 1 decides which data communication area to access to acquire the data according to the state of the mark bit of the fixed storage unit. The method and the device can ensure the integrity of communication data among the multiple cores and reduce the mutual influence of data communication among the cores.
The lock mark is used for representing that the current data communication area is being used, and the data in the data communication area is being changed so as to prevent other cores from reading data with incomplete updating and prevent other cores from updating the data simultaneously, so that updated data with different versions exist.
In some exemplary embodiments, when a hard real-time domain task and a soft real-time domain task are deployed at a core at the same time, the hard real-time domain task has a higher priority than the soft real-time domain task, which means that even the highest priority soft real-time domain task is delayed in execution by the hard real-time domain task. The hard real-time domain task does not need to consider interference from the soft real-time domain task, but the soft real-time domain task must consider interference from the hard real-time domain task. In the multi-core SMP scheduling system, different scheduling strategies are set according to different task types, 3 scheduler classes, rms_scheduled_class, rt_scheduled_class and idle_scheduled_class are realized, and when a hard real time domain task core and a soft real time domain task on a certain core are blocked, the system runs idle tasks, namely the idle_scheduled_class is used.
From the above, it can be seen that the scheduling method of the vehicle-mounted task provided by the embodiment of the present disclosure is implemented by a multi-core processor, and includes a first core and a second core; the method comprises the following steps: executing a first task in a first task queue through a first core; executing the second task in the second task queue through the second core; when any first task stops executing, acquiring the periods of all the first tasks to be executed, taking the first task with the shortest period as the current first task, and executing the current first task; wherein the first task has a higher priority than the second task. In the method, the tasks are divided into the first task and the second task according to the priority, wherein the first task and the second task are executed through different cores, the first task is not interfered by the second task, the completion time limit of the first task is guaranteed, on the basis, the first task with a shorter period is preferentially executed, and the completion time limit of the first task with a shorter period is further guaranteed.
Further, the method and the system have the advantages that the critical degree of the tasks of the system is comprehensively analyzed by the WCET, the tasks are distributed to each core through reasonable combination, the execution of the critical tasks can be guaranteed according to the strategy, the time constraint of the system is met by the hard time domain tasks, the scheduling of the soft real-time domain tasks meets the expectations, the jitter caused by task switching and interaction between the tasks is reduced, and the certainty of the whole system is guaranteed. Specifically, according to different key degrees of system tasks and WCET time, the execution strategy, the hard cut-off time and the budget of the tasks are reasonably arranged, and on the basis of guaranteeing the schedulability analysis of a key task system under a multi-core system, the certainty of the whole system can be guaranteed as much as possible, the influence caused by the jitter of the system is reduced, and therefore the time constraint of the system is met.
It should be noted that the method of the embodiments of the present disclosure may be performed by a single device, such as a computer or a server. The method of the embodiment can also be applied to a distributed scene, and is completed by mutually matching a plurality of devices. In the case of such a distributed scenario, one of the devices may perform only one or more steps of the methods of embodiments of the present disclosure, the devices interacting with each other to accomplish the methods.
It should be noted that the foregoing describes some embodiments of the present disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments described above and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
Based on the same inventive concept, the present disclosure also provides a scheduling device for vehicle-mounted tasks, corresponding to the method in any embodiment.
The scheduling device of the vehicle-mounted tasks is realized by a multi-core processor, wherein the multi-core processor comprises a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and the first task has higher priority than the second task.
Referring to fig. 10, the scheduling device for the vehicle-mounted task includes:
A first task execution module 1010 configured to execute the first task in the first task queue through the first core;
a second task execution module 1020 configured to execute the second task in the second task queue through the second core;
the first task execution module 1010 is further configured to, when any one of the first tasks stops executing, obtain periods of all the first tasks to be executed in the first task queue, take the first task with the shortest period of all the first tasks to be executed as a current first task, and execute the current first task.
In some exemplary embodiments, the first task execution module 1010 is further configured to:
when the execution time of the current first task is determined to be greater than or equal to a preset execution time threshold corresponding to the current first task, further judging whether the current first task is a preset first key task or not;
when the current first task is determined to be the first critical task, continuing to execute the current first task;
and stopping executing the current first task when the current first task is determined not to be the first critical task.
In some exemplary embodiments, a third core is further included in the multi-core processor, and a third task in a third task queue is executed through the third core, wherein the third task has a priority lower than that of the first task.
The vehicle-mounted task scheduling device further includes a third task execution module (not shown in the figure), where the third task execution module is configured to:
and stopping executing the current third task being executed when the current second task being executed is determined to be associated with the target third task, and executing the target third task.
In some exemplary embodiments, the third task execution module, after determining that the current second task being executed is associated with a target third task, is further configured to:
further judging whether the current third task is a preset second key task or not;
when the current third task is determined to be the second critical task, continuing to execute the current third task, and executing the target third task after the current third task is executed;
and stopping executing the current third task and executing the target third task when the current third task is determined not to be the second critical task.
In some example embodiments, the second task is configured to be executable by the third core, the third task being configured to be executable by the second core;
the second task execution module 1020 is further configured to:
when it is determined that a first difference value obtained by subtracting the number of third tasks in the third task queue from the number of second tasks in the second task queue is larger than a preset first difference value threshold, subtracting the first difference value threshold from the first difference value to obtain a second difference value, configuring the second tasks with the number of second difference values in the second task queue into the third task queue as the third tasks, and deleting the second tasks configured into the third task queue in the second task queue.
The third task execution module is further configured to:
when it is determined that a third difference value obtained by subtracting the number of the second tasks in the second task queue from the number of the third tasks in the third task queue is larger than a preset third difference value threshold, subtracting the third difference value threshold from the third difference value to obtain a fourth difference value, configuring the fourth difference value number of the third tasks in the third task queue into the second task queue as the second tasks, and deleting the third tasks configured into the second task queue in the third task queue.
In some exemplary embodiments, a transmission buffer zone and a receiving buffer zone are configured, wherein the transmission buffer zone comprises a first data communication zone and a second data communication zone, and the receiving buffer zone comprises a third data communication zone and a fourth data communication zone; wherein the transmit buffer and the receive buffer are configured to enable communication between the first core and the second core, the first data communication zone being associated with the third data communication zone, the second data communication zone being associated with the fourth data communication zone;
the vehicle task scheduling device further includes a communication module (not shown in the figure), where the communication module is configured to:
when a request for transmitting target data from the first core to the second core is received, judging whether the second core is reading the third data communication area or the fourth data communication area;
transmitting the target data from the first core to the second data communication area when it is determined that the second core is reading the third data communication area;
transmitting the target data from the first core to the first data communication area when it is determined that the second core is reading the fourth data communication area;
And when the second core is determined not to read the third data communication area and the fourth data communication area, transmitting the target data from the first core to any one of the first data communication area or the second data communication area.
In some exemplary embodiments, the communication module is further configured to:
configuring a locking identifier in the second data communication area, and sending the target data from the first core to the second data communication area;
when the target data is determined to be sent completely, canceling the locking identifier;
the sending the target data from the first core to the first data communication area includes:
configuring the locking identifier in the first data communication area, and sending the target data from the first core to the first data communication area;
and canceling the locking identifier when the target data is determined to be sent completely.
In some exemplary embodiments, after the transmitting the target data from the first core to either the first data communication zone or the second data communication zone, the communication module is further configured to:
configuring first record information or second record information; wherein the first record information characterizes the transmission of the target data from the first core to the first data communication area, and the second record information characterizes the transmission of the target data from the first core to the second data communication area;
Transmitting the target data from the third data communication area to the second core according to the first record information;
and transmitting the target data from the fourth data communication area to the second core according to the second record information.
For convenience of description, the above devices are described as being functionally divided into various modules, respectively. Of course, the functions of the various modules may be implemented in the same one or more pieces of software and/or hardware when implementing the present disclosure.
The device of the foregoing embodiment is used to implement the corresponding scheduling method of the vehicle-mounted task in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiment, which is not described herein again.
Based on the same inventive concept, the present disclosure also provides an electronic device corresponding to the method of any embodiment, which includes a memory, a processor, and a computer program stored on the memory and capable of running on the processor, where the processor implements the method for scheduling a vehicle task according to any embodiment when executing the program.
Fig. 11 is a schematic diagram showing a hardware structure of a more specific electronic device according to the present embodiment, where the device may include: a processor 1110, a memory 1120, an input/output interface 1130, a communication interface 1140, and a bus 1150. Wherein processor 1110, memory 1120, input/output interface 1130, and communication interface 1140 implement communication connections among each other within the device via bus 1150.
The processor 1110 may be implemented by a general-purpose core (Central Processing Unit ), a microprocessor, an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits, etc. for executing relevant programs to implement the technical solutions provided in the embodiments of the present disclosure.
The Memory 1120 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory ), static storage device, dynamic storage device, or the like. Memory 1120 may store an operating system and other application programs, and when the embodiments of the present specification are implemented in software or firmware, the associated program code is stored in memory 1120 and executed by processor 1110.
The input/output interface 1130 is used to connect with an input/output module to achieve information input and output. The input/output module may be configured as a component in a device (not shown in the figure) or may be external to the device to provide corresponding functionality. Wherein the input devices may include a keyboard, mouse, touch screen, microphone, various types of sensors, etc., and the output devices may include a display, speaker, vibrator, indicator lights, etc.
The communication interface 1140 is used to connect a communication module (not shown) to enable communication interaction between the present device and other devices. The communication module may implement communication through a wired manner (such as USB, network cable, etc.), or may implement communication through a wireless manner (such as mobile network, WIFI, bluetooth, etc.).
Bus 1150 includes a path to transfer information between components of the device (e.g., processor 1110, memory 1120, input/output interface 1130, and communication interface 1140).
It should be noted that although the above-described device only shows the processor 1110, the memory 1120, the input/output interface 1130, the communication interface 1140, and the bus 1150, the device may include other components necessary to achieve normal operation in the implementation. Furthermore, it will be understood by those skilled in the art that the above-described apparatus may include only the components necessary to implement the embodiments of the present description, and not all the components shown in the drawings.
The electronic device of the foregoing embodiment is configured to implement the corresponding scheduling method of the vehicle-mounted task in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiment, which is not described herein.
Based on the same inventive concept, corresponding to any of the above embodiments of the method, the present disclosure further provides a non-transitory computer readable storage medium storing computer instructions for causing the computer to perform the method for scheduling a vehicle-mounted task according to any of the above embodiments.
The non-transitory computer readable storage media described above can be any available media or data storage device that can be accessed by a computer, including, but not limited to, magnetic storage (e.g., floppy disks, hard disks, magnetic tapes, magneto-optical disks (MOs), etc.), optical storage (e.g., CD, DVD, BD, HVD, etc.), and semiconductor storage (e.g., ROM, EPROM, EEPROM, nonvolatile storage (NAND FLASH), solid State Disk (SSD)), etc.
The storage medium of the foregoing embodiments stores computer instructions for causing the computer to execute the scheduling method of the on-vehicle task according to any one of the foregoing exemplary method portions, and has the beneficial effects of the corresponding method embodiments, which are not described herein.
Those skilled in the art will appreciate that embodiments of the present disclosure may be implemented as a system, method, or computer program product. Accordingly, the present disclosure may be embodied in the following forms, namely: all hardware, all software (including firmware, resident software, micro-code, etc.), or a combination of hardware and software, is generally referred to herein as a "circuit," module, "or" system. Furthermore, in some embodiments, the present disclosure may also be embodied in the form of a computer program product in one or more computer-readable media, which contain computer-readable program code.
Any combination of one or more computer readable media may be employed. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples (a non-exhaustive example) of the computer-readable storage medium could include, for example: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, including an object oriented programming language such as Java, smalltalk, C ++ and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer, for example, through the internet using an internet service provider.
It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Based on the same inventive concept, the exemplary embodiments of the present disclosure further provide a vehicle including the scheduling apparatus of the on-vehicle task, the electronic device and the non-transitory computer readable storage medium as described above, and have the advantages of the corresponding embodiments, which are not described herein.
Furthermore, although the operations of the methods of the present disclosure are depicted in the drawings in a particular order, this is not required to or suggested that these operations must be performed in this particular order or that all of the illustrated operations must be performed in order to achieve desirable results. Rather, the steps depicted in the flowcharts may change the order of execution. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step to perform, and/or one step decomposed into multiple steps to perform.
It should be noted that unless otherwise defined, technical or scientific terms used in the embodiments of the present disclosure should be given the ordinary meaning as understood by one of ordinary skill in the art to which the present disclosure pertains. The terms "first," "second," and the like, as used in embodiments of the present disclosure, do not denote any order, quantity, or importance, but rather are used to distinguish one element from another. The word "comprising" or "comprises", and the like, means that elements or items preceding the word are included in the element or item listed after the word and equivalents thereof, but does not exclude other elements or items. The terms "connected" or "connected," and the like, are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "upper", "lower", "left", "right", etc. are used merely to indicate relative positional relationships, which may also be changed when the absolute position of the object to be described is changed.
While the spirit and principles of the present disclosure have been described with reference to several particular embodiments, it is to be understood that this disclosure is not limited to the particular embodiments disclosed nor does it imply that features in these aspects are not to be combined to benefit from this division, which is done for convenience of description only. The disclosure is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

Claims (12)

1. The scheduling method of the vehicle-mounted task is characterized by being realized by a multi-core processor, wherein the multi-core processor comprises a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and the first task has a higher priority than the second task;
the method comprises the following steps:
executing, by the first core, the first task in the first task queue;
executing, by the second core, the second task in the second task queue;
when any first task stops executing, acquiring the periods of all the first tasks to be executed in the first task queue, taking the first task with the shortest period in all the first tasks to be executed as a current first task, and executing the current first task.
2. The method according to claim 1, wherein the method further comprises:
when the execution time of the current first task is determined to be greater than or equal to a preset execution time threshold corresponding to the current first task, further judging whether the current first task is a preset first key task or not;
When the current first task is determined to be the first critical task, continuing to execute the current first task;
and stopping executing the current first task when the current first task is determined not to be the first critical task.
3. The method of claim 1, wherein the multi-core processor further comprises a third core, wherein a third task in a third task queue is executed by the third core, wherein the third task has a lower priority than the first task;
the method further comprises the steps of:
and stopping executing the current third task being executed when the current second task being executed is determined to be associated with the target third task, and executing the target third task.
4. A method according to claim 3, wherein after determining that the current second task being performed is associated with a target third task, the method further comprises:
further judging whether the current third task is a preset second key task or not;
when the current third task is determined to be the second critical task, continuing to execute the current third task, and executing the target third task after the current third task is executed;
And stopping executing the current third task and executing the target third task when the current third task is determined not to be the second critical task.
5. A method according to claim 3, wherein the second task is configured to be executable by the third core, the third task being configured to be executable by the second core; the method further comprises the steps of:
when it is determined that a first difference value obtained by subtracting the number of third tasks in the third task queue from the number of second tasks in the second task queue is larger than a preset first difference value threshold, subtracting the first difference value threshold from the first difference value to obtain a second difference value, configuring the second difference value number of the second tasks in the second task queue into the third task queue as the third task, and deleting the second tasks configured into the third task queue in the second task queue;
when it is determined that a third difference value obtained by subtracting the number of the second tasks in the second task queue from the number of the third tasks in the third task queue is larger than a preset third difference value threshold, subtracting the third difference value threshold from the third difference value to obtain a fourth difference value, configuring the fourth difference value number of the third tasks in the third task queue into the second task queue as the second tasks, and deleting the third tasks configured into the second task queue in the third task queue.
6. The method of claim 1, wherein a transmit buffer and a receive buffer are configured, the transmit buffer comprising a first data communication zone and a second data communication zone, the receive buffer comprising a third data communication zone and a fourth data communication zone; wherein the transmit buffer and the receive buffer are configured to enable communication between the first core and the second core, the first data communication zone being associated with the third data communication zone, the second data communication zone being associated with the fourth data communication zone;
the method further comprises the steps of:
when a request for transmitting target data from the first core to the second core is received, judging whether the second core is reading the third data communication area or the fourth data communication area;
transmitting the target data from the first core to the second data communication area when it is determined that the second core is reading the third data communication area;
transmitting the target data from the first core to the first data communication area when it is determined that the second core is reading the fourth data communication area;
and when the second core is determined not to read the third data communication area and the fourth data communication area, transmitting the target data from the first core to any one of the first data communication area or the second data communication area.
7. The method of claim 6, wherein said transmitting said target data from said first core to said second data communication zone comprises:
configuring a locking identifier in the second data communication area, and sending the target data from the first core to the second data communication area;
when the target data is determined to be sent completely, canceling the locking identifier;
the sending the target data from the first core to the first data communication area includes:
configuring the locking identifier in the first data communication area, and sending the target data from the first core to the first data communication area;
and canceling the locking identifier when the target data is determined to be sent completely.
8. The method of claim 6, wherein after the transmitting the target data from the first core to either the first data communication zone or the second data communication zone, the method further comprises:
configuring first record information or second record information; wherein the first record information characterizes the transmission of the target data from the first core to the first data communication area, and the second record information characterizes the transmission of the target data from the first core to the second data communication area;
Transmitting the target data from the third data communication area to the second core according to the first record information;
and transmitting the target data from the fourth data communication area to the second core according to the second record information.
9. The scheduling device of the vehicle-mounted task is characterized by being realized by a multi-core processor, wherein the multi-core processor comprises a first core and a second core, the first core is configured to execute a first task in a first task queue, the first core is configured to execute a second task in a second task queue, and the first task has a higher priority than the second task;
the device comprises:
a first task execution module configured to execute the first task in the first task queue through the first core;
a second task execution module configured to execute the second task in the second task queue through the second core;
the first task execution module is further configured to obtain periods of all the first tasks to be executed in the first task queue when any one of the first tasks stops executing, take the first task with the shortest period in all the first tasks to be executed as a current first task, and execute the current first task.
10. An electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the method of any one of claims 1 to 8 when the program is executed.
11. A non-transitory computer readable storage medium storing computer instructions for causing a computer to perform the method of any one of claims 1 to 8.
12. A vehicle comprising the scheduling apparatus of on-board tasks of claim 9, the electronic device of claim 10, and the non-transitory computer-readable storage medium of claim 11.
CN202211177504.1A 2022-09-26 2022-09-26 Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle Pending CN117762576A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211177504.1A CN117762576A (en) 2022-09-26 2022-09-26 Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211177504.1A CN117762576A (en) 2022-09-26 2022-09-26 Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle

Publications (1)

Publication Number Publication Date
CN117762576A true CN117762576A (en) 2024-03-26

Family

ID=90309171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211177504.1A Pending CN117762576A (en) 2022-09-26 2022-09-26 Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle

Country Status (1)

Country Link
CN (1) CN117762576A (en)

Similar Documents

Publication Publication Date Title
US10606653B2 (en) Efficient priority-aware thread scheduling
TWI729003B (en) Method, device, and processor-readable storage medium for efficient task scheduling in the presence of conflicts
WO2021196074A1 (en) Task scheduling method and apparatus
CN111857993B (en) Method for calling user mode function in kernel mode
CN114168271B (en) Task scheduling method, electronic device and storage medium
CN112579271A (en) Real-time task scheduling method, module, terminal and storage medium for non-real-time operating system
CN103329102A (en) Multiprocessor system
CN111679900B (en) Task processing method and device
CN111913793A (en) Distributed task scheduling method, device, node equipment and system
US11455172B2 (en) Method and apparatus for managing scheduling of services during boot-up
US7117496B1 (en) Event-based synchronization
US11301304B2 (en) Method and apparatus for managing kernel services in multi-core system
US8347045B2 (en) Using a dual mode reader writer lock
Bril et al. Best-case response times and jitter analysis of real-time tasks with arbitrary deadlines
CN109857382B (en) SoC chip software defined radio decoupling design method
CN117762576A (en) Scheduling method and device for vehicle-mounted task, electronic equipment, storage medium and vehicle
CN115858123A (en) Multithreading task scheduling processing method
CN113391821B (en) Asymmetric multiprocessor embedded operating system
US9135058B2 (en) Method for managing tasks in a microprocessor or in a microprocessor assembly
JP2008225641A (en) Computer system, interrupt control method and program
JP2008044391A (en) Method and device for managing task of on-vehicle electronic control unit
CN109976675B (en) Data updating and reading method, device, equipment and storage medium
WO2022141297A1 (en) Event processing method and apparatus
US20160135223A1 (en) Efficient scheduling in asynchronous contention-based system
CN116795490A (en) vCPU scheduling method, device, equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination