A vehicle control system

CN115543605BActive Publication Date: 2026-09-08AUTOCHIPS
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211023537.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-23
Publication Date
2026-09-08
Estimated Expiration
2042-08-23

AI Technical Summary

Technical Problem

[0009]示例性地,由于是系统级的资源监控,所以需要照顾系统运行中各个场景的方方面面,所以不能过分苛刻的进行资源释放,因为系统资源的缓冲程度对用户交互有着非常重要的影响,所以需要不断的在这其中取平衡,所以也就无法保障关键进程启动时一定能够有充足的资源(不同关键进程对资源的需求不同);

Benefits of technology

[0026] The beneficial effects of this application are as follows: Unlike the prior art, this application adopts an auxiliary unit based on independent resources that are different from the resources of the operating system unit to obtain the resource usage of the operating system unit and the startup status of preset processes in the operating system unit. Since the resources of the auxiliary unit are independent, the operating system unit can be effectively monitored and its resources analyzed in real time, thereby enabling the operating system unit to release resources in a timely manner.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115543605B_ABST
    Figure CN115543605B_ABST
Patent Text Reader

Abstract

The application discloses a vehicle-mounted control system, which comprises an operating system unit, an auxiliary unit, and a first processor. The operating system unit is used for process management and is realized based on resources of the first processor. The auxiliary unit is connected to the operating system unit and is realized based on independent resources different from the resources of the operating system unit. The auxiliary unit is used for acquiring resource usage of the operating system unit and starting conditions of preset processes in the operating system unit. The auxiliary unit is used for sending a resource release signal to the operating system unit according to the resource usage of the operating system unit and / or the starting conditions of the preset processes. The operating system unit releases resources in response to the resource release signal. Through the system, the operating system can timely monitor system resources and perform resource analysis and processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of vehicle control systems, and in particular to the resource implementation of operating systems in vehicle control systems. Background Technology

[0002] On specialized embedded platforms such as in-vehicle infotainment systems, there's a need to support complex system functions to enable various entertainment and application features. However, critical functions (such as reversing camera display and Bluetooth caller ID) also require special attention. Since the system processes corresponding to these critical functions are affected by system operating status and load, their stability may be compromised in certain scenarios, leading to a poor user experience. For example, the following approaches might be considered:

[0003] 1. Pre-allocate system resources: Utilize software mechanisms supported by the operating system (such as the control group (CGroup) resource configuration strategy supported by Android / Linux operating systems) to pre-allocate CPU / memory resources for critical processes, so as to ensure that relevant processes have sufficient resources to start in a timely manner.

[0004] However, there are some drawbacks to pre-allocating system resources:

[0005] For example, pre-allocation can lead to a waste of system resources when critical processes are not frequently started; in addition, the pre-allocation of system resources will be significantly exacerbated when there are multiple critical processes; and if critical processes share pre-allocated resources, it will lead to resource contention and make it difficult to guarantee the real-time start of critical processes.

[0006] In addition, the need for advance allocation leads to the addition and deletion of critical processes, which involves the reallocation of the entire system resources. In particular, the addition of critical processes may cause conflicts with the system resource requirements to some extent, forcing an increase in hardware costs in some situations.

[0007] 2. Monitor available system resources: Utilize operating system mechanisms to monitor available system resources (such as Android's Low memory killer), promptly release processes that are no longer needed, and forcibly release lower-priority processes when system resources are scarce, so as to ensure that higher-priority processes can use system resources.

[0008] However, monitoring the available resources of the system also has some drawbacks:

[0009] For example, since it is system-level resource monitoring, it needs to take into account all aspects of various scenarios in the operation of the system. Therefore, it cannot release resources too harshly, because the buffering level of system resources has a very important impact on user interaction. Therefore, it is necessary to constantly find a balance between these factors. As a result, it is impossible to guarantee that there will be sufficient resources when critical processes start up (different critical processes have different resource requirements).

[0010] In addition, since the monitoring and release of system resources is based on priority, and the process priority of the operating system takes into account the user's operation and experience, processes that are more related to the current user interaction usually have a high priority. This can easily lead to the system not being able to release enough resources for higher priority processes to use in some special operating scenarios (such as critical processes in this case).

[0011] In addition, due to software-level monitoring, when system resources are scarce, status detection, resource release, and scheduling may experience severe delays due to excessive system load, thus failing to guarantee the timely start of critical processes. Summary of the Invention

[0012] The main technical problem addressed by this application is to provide an on-board control system that can monitor and release system resources in a timely manner.

[0013] To solve the above-mentioned technical problems, one technical solution adopted in this application is: providing an in-vehicle control system, which includes: an operating system unit, implemented based on the resources of a first processor, the operating system unit being used to run various processes; and an auxiliary unit, connected to the operating system unit, the auxiliary unit being implemented based on independent resources different from those of the operating system unit, the auxiliary unit being used to obtain the resource usage of the operating system unit, and / or to obtain whether a preset process in the operating system unit has started, and / or to obtain the start timeout status of a preset process in the operating system unit, so as to achieve the purpose of monitoring the resources of the operating system unit; wherein, the auxiliary unit is used to send a resource release signal to the operating system unit according to the resource usage of the operating system unit, and / or whether the preset process has started, and / or the start timeout status, and the operating system unit responds to the resource release signal to release resources.

[0014] The auxiliary unit is further configured to: send a resource release signal to the first processor when the resource stress level of the operating system unit is less than or equal to the system preset resource stress level threshold; wherein the resource stress level is positively correlated with the remaining resources of the first processor.

[0015] The auxiliary unit is further configured to: when a preset process starts and the resource stress of the operating system unit is greater than the preset resource stress threshold, determine the timeout time based on the expected time to complete the startup and the resource stress of the operating system unit, and send a resource release signal to the first processor so that the first processor can release the resources.

[0016] The auxiliary unit is specifically used to: calculate the timeout time T according to the formula T = E * L when the preset process starts, and send a resource release signal to the first processor at time T, where E is the expected time to complete the startup and L is the resource tension of the operating system unit.

[0017] The auxiliary unit is also used to: acquire the resources required to start a preset process in the operating system unit, and when the remaining resources in the operating system unit are less than the resources required to start the preset process, send a resource release signal to the first processor so as to release the resources through the first processor.

[0018] The operating system and auxiliary units are implemented on different cores in a heterogeneous multi-core architecture, or the operating system and auxiliary units are implemented on different cores in a homogeneous multi-core processor architecture.

[0019] In response to the fact that the operating system and the auxiliary unit are implemented on different cores in a heterogeneous multi-core architecture, the auxiliary unit runs a resource monitoring program to monitor the resources of the operating system unit; before calling the resource monitoring program to monitor the resources of the operating system unit, the auxiliary unit also checks the remaining resources of the operating system, and starts the resource monitoring program when it is determined that the remaining resources are not less than the resources required to start the resource monitoring program; when it is determined that the remaining resources are less than the resources required to start the resource monitoring program, a resource release signal is sent to the first processor to release the resources through the first processor.

[0020] The operating system unit constructs a process resource management program, and the auxiliary unit sends a first interrupt signal to the process resource management program of the operating system unit at a preset frequency to obtain the resource usage of the operating system unit, and constructs a resource-scarce program state machine of the operating system unit based on the resource usage to determine the corresponding resource scarcity level parameters.

[0021] The auxiliary unit adjusts the preset frequency for sending the first interrupt signal based on the resource scarcity parameter, and the preset frequency is positively correlated with the resource scarcity parameter.

[0022] Specifically, when the operating system unit starts a preset process, it obtains the startup information of the preset process and sends the startup parameter information to the auxiliary unit; and when the preset process finishes starting, it sends the startup completion information to the auxiliary unit; the auxiliary unit performs timeout monitoring based on the startup parameter information so that it can send a resource release signal to the operating system unit in advance when the preset process is about to time out; the auxiliary unit is also used to cancel the timeout monitoring of the startup parameter information when it receives the startup completion information sent by the operating system unit.

[0023] The operating system unit is used to: obtain information about the process to be processed in response to a resource release signal; determine whether the information about the process to be processed is in a preset whitelist; and release resources for the process to be processed when the information about the process to be processed is not in the preset whitelist.

[0024] The operating system unit is also used to: determine whether all processes in the whitelist have been processed; when not all processes in the whitelist have been processed, repeat the step of obtaining information on processes to be processed until all processes in the whitelist have been processed.

[0025] The vehicle-mounted system includes an interconnected operating system unit and an auxiliary unit. The operating system unit is implemented based on the resources of the first processor and is used to run various processes. The auxiliary unit is implemented based on independent resources different from those of the operating system unit. The control method includes: obtaining the resource usage of the operating system unit, and / or obtaining whether a preset process in the operating system unit has started, and / or obtaining the start timeout status of a preset process in the operating system unit through the auxiliary unit; sending a resource release signal to the operating system unit through the auxiliary unit based on the resource usage of the operating system unit, and / or whether the preset process has started, and / or the start timeout status; and releasing resources based on the resource release signal by the operating system unit.

[0026] The beneficial effects of this application are as follows: Unlike the prior art, this application adopts an auxiliary unit based on independent resources that are different from the resources of the operating system unit to obtain the resource usage of the operating system unit and the startup status of preset processes in the operating system unit. Since the resources of the auxiliary unit are independent, the operating system unit can be effectively monitored and its resources analyzed in real time, thereby enabling the operating system unit to release resources in a timely manner. Attached Figure Description

[0027] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. Wherein:

[0028] Figure 1 This is a schematic diagram of the structure of the vehicle control system provided in this application;

[0029] Figure 2 This is a schematic diagram of the state machine constructed by the auxiliary unit in the vehicle control system provided in this application;

[0030] Figure 3 This is a flowchart illustrating the process management process of the process resource management program provided in this application;

[0031] Figure 4 This is a schematic diagram of the structure of the first processor provided in this application, which is a multi-core processor;

[0032] Figure 5 This is a schematic diagram of the vehicle control system provided in this application, which includes a second processor.

[0033] Figure 6 This is a flowchart illustrating the control method of the vehicle-mounted system provided in this application. Detailed Implementation

[0034] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.

[0035] In the following description, specific details such as particular system structures, processes, and technologies are presented for illustrative purposes rather than for limiting purposes, in order to provide a thorough understanding of this application.

[0036] The technical solutions of the embodiments of this disclosure will be clearly and completely described with reference to the accompanying drawings. It is understood that the specific embodiments described herein are for illustrative purposes only and are not intended to limit the scope of this disclosure. Furthermore, it should be noted that, for ease of description, only the parts relevant to this disclosure are shown in the accompanying drawings, not all structures. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure.

[0037] In this disclosure, the reference to "embodiment" means that a particular feature, process, or characteristic described in connection with an embodiment may be included in at least one embodiment of this disclosure. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0038] The steps in the embodiments of this disclosure are not necessarily processed in the order described. The steps can be selectively rearranged, deleted, or added as needed. The step descriptions in the embodiments of this disclosure are only optional combinations of sequences and do not represent all possible combinations of steps in the embodiments of this disclosure. The order of steps in the embodiments should not be considered as a limitation of this disclosure.

[0039] The term "and / or" in this disclosure is merely a description of the relationship between associated objects, encompassing any and all possible combinations of one or more of the associated listed items. It indicates that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this disclosure generally indicates that the preceding and following associated objects are in an "or" relationship. Furthermore, "many" in this disclosure indicates two or more. Furthermore, the term "at least one" in this disclosure indicates any combination of at least two of any one or more of a plurality of objects; for example, including at least one of A, B, and C can represent including any one or more elements selected from the set consisting of A, B, and C. It should also be noted that when used in this specification, "including / comprising" specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, and / or components and / or groups thereof.

[0040] The terms “first,” “second,” etc., used in this disclosure are used to distinguish different objects, not to describe a particular order. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such processes, methods, products, or apparatus.

[0041] Furthermore, although the terms "first," "second," etc., are used repeatedly in this disclosure to describe various operations (or various components, or various applications, or various instructions, or various thresholds), these operations (or components, or applications, or instructions, or thresholds) should not be limited by these terms. These terms are only used to distinguish one operation (or component, or application, or instruction, or threshold) from another operation (or component, or application, or instruction, or threshold). For example, a first interactive object can be called a second interactive object, and a second interactive object can be called a first interactive object; the only difference is the scope they encompass, but this does not depart from the scope of this disclosure. Both the first interactive object and the second interactive object can be collections of various interactive objects, but they are not the same collection of interactive objects.

[0042] The following is a description of the vehicle control system provided in this application.

[0043] Please see Figure 1 , Figure 1 This is a schematic diagram of the structure of the vehicle control system provided in this application. The vehicle control system 10 includes:

[0044] Operating system unit 100 is implemented based on the resources of the first processor. The operating system unit is used to run various processes.

[0045] For example, the various processes can be resource management programs in a homogeneous multi-core environment or resource management programs in a heterogeneous multi-core environment.

[0046] The auxiliary unit 200 is connected to the operating system unit. The auxiliary unit is implemented based on independent resources that are different from those of the operating system unit. The auxiliary unit is used to obtain the resource usage of the operating system unit, and / or obtain whether a preset process in the operating system unit has started, and / or obtain the start timeout status of a preset process in the operating system unit, so as to achieve the purpose of monitoring the resources of the operating system unit.

[0047] The auxiliary unit is used to send a resource release signal to the operating system unit based on the resource usage of the operating system unit, and / or whether the preset process has started, and / or the start timeout. The operating system unit responds to the resource release signal by releasing resources.

[0048] Among them, the preset process can be a process corresponding to some relatively critical functions in the vehicle system (referred to as critical process), for example, it can be reversing image display, Bluetooth caller ID display, etc.

[0049] It is important to note that the auxiliary unit in this application is implemented using independent resources, which are different from those of the operating system unit. In other words, the auxiliary unit's resources are independent. Therefore, it can effectively monitor and analyze the operating system unit's resources in real time, enabling the operating system unit to release resources promptly. This allows for monitoring and timely release of system resources, ensuring the startup of preset processes. This avoids the problems that can arise from using system-level resource monitoring (where the auxiliary unit shares the same resources as the operating system unit), which can lead to untimely notifications from the auxiliary unit or insufficient resources for critical processes to start.

[0050] In some embodiments, the auxiliary unit is further configured to: send a resource release signal to the first processor when the resource stress level of the operating system unit is less than or equal to a preset resource stress level threshold; wherein the resource stress level is positively correlated with the remaining resources of the first processor.

[0051] For example, suppose that the system presets the resource stress threshold to Tr = 0.5 for all critical processes, and the current system resource stress is L = 0.4. If Bluetooth caller ID and reverse start are activated at this time, the auxiliary unit will immediately intervene in the system resources according to the needs of reverse start and Bluetooth caller ID activation. That is, it will immediately send a resource release signal to the first processor so that the operating system unit can release resources in time to reserve enough resources to meet the activation requirements of reverse start and Bluetooth caller ID.

[0052] Alternatively, suppose there are corresponding system preset resource tension thresholds Tr for different critical processes. For example, there are system preset resource tension thresholds Tr1 = 0.3 for reversing start and system preset resource tension thresholds Tr2 = 0.5 for Bluetooth caller ID start. If the currently obtained system resource tension is L = 0.3, the auxiliary unit will only intervene in the system resources immediately according to the need for reversing start, but will not intervene in the system resources immediately according to Bluetooth caller ID start.

[0053] However, it's important to note that the current system resource scarcity level L can change at any time. Therefore, when the current system resource scarcity level L changes to less than or equal to the system's preset resource scarcity threshold Tr, the auxiliary unit will immediately intervene in the system's resources based on the actual startup needs. For example, when the current acquired resource scarcity level L = 0.5 changes to L = 0.3, the auxiliary unit will immediately intervene in the system's resources to release resources in a timely manner, ensuring sufficient resources to guarantee the startup of Bluetooth caller ID.

[0054] Additionally, it should be noted that when multiple system preset resource stress thresholds Tr are set, it is not necessary to set a corresponding resource stress threshold Tr for each critical process individually. Multiple levels of Tr can be set to correspond to resource release for different levels of preset processes in the system. For example, the first, second, and third preset processes could correspond to a first-level system preset resource stress threshold Tr1 = 0.5; the fourth, fifth, and sixth preset processes could correspond to a second-level system preset resource stress threshold Tr2 = 0.4, and so on. This is just one example; in actual applications, the number of preset processes corresponding to each level of system preset resource stress threshold Tr can be set according to the actual situation, and this application does not impose any limitations.

[0055] In some embodiments, the auxiliary unit is further configured to: when a preset process starts and the resource stress level of the operating system unit is greater than a preset resource stress level threshold, determine a timeout time based on the expected time for startup completion and the resource stress level of the operating system unit, and send a resource release signal to the first processor so as to release resources through the first processor.

[0056] Specifically, in some embodiments, when a preset process starts, the timeout time T can be calculated according to the formula T = E * L, and a resource release signal can be sent to the first processor at time T, where E is the expected time for startup completion and L is the resource stress level of the system.

[0057] For example, assuming the system's preset resource stress threshold Tr = 0.3, and the car is now starting in reverse, the expected start time E is 2 seconds, and the currently acquired system resource stress L is 0.8, then the auxiliary unit initially calculates the timeout T = 2 * 0.8 = 1.6 seconds. If the currently acquired system resource stress L = 0.8 does not decrease to 0.3, that is, if the system resource stress L is always greater than the system's preset resource stress threshold Tr, then the auxiliary unit will only intervene in the operating system unit to release resources after 2 * 0.8 = 1.6 seconds (that is, before the expected 2 seconds).

[0058] At this point, if the current system resource tension level L=0.8 decreases to 0.5, the auxiliary unit will recalculate the timeout T=2*0.5=1 second. In other words, the auxiliary unit will start intervening in the operating system unit after 1 second (not waiting for the original 1.6 seconds) to release resources.

[0059] Alternatively, if the current system resource stress level L = 0.8 is found to decrease directly to 0.3, which means that the system's preset resource stress level threshold Tr = 0.3 has been reached, then the auxiliary unit will directly start intervening in the operating system unit at the current time (0 seconds) instead of waiting for the timeout T to intervene in the operating system unit in order to release resources.

[0060] Additionally, it's important to note that the expected time E for different preset processes to complete can vary. For example, the expected time E for completing reverse start can be 2 seconds, and the expected time E for completing Bluetooth call display start can be 3 seconds.

[0061] Optionally, in some embodiments, the auxiliary unit is further configured to: acquire the resources required to start a preset process in the operating system unit, and when the remaining resources in the operating system unit are less than the resources required to start the preset process, send a resource release signal to the first processor to release the resources through the first processor.

[0062] For example, if the system's preset resource scarcity threshold Tr1 = 0.2 for reversing start, and the currently acquired system resource scarcity level is L = 0.3, since Tr1 = 0.2 is less than L = 0.3, the remaining resources in the operating system unit can be less than the resources required to start the reversing process. Therefore, the auxiliary unit sends a resource release signal to the first processor according to the needs of reversing start, so that the first processor can release resources. This allows the operating system unit to release resources in a timely manner, ensuring the start of the preset process.

[0063] Optionally, in some embodiments, the operating system and auxiliary units are implemented on different cores in a heterogeneous multi-core architecture, or the operating system and auxiliary units are implemented on different cores in a homogeneous multi-core processor architecture.

[0064] Optionally, in some embodiments, in response to the operating system and auxiliary unit being implemented on different cores in a heterogeneous multi-core architecture, the auxiliary unit runs a resource monitoring program to monitor the resources of the operating system unit; before the auxiliary unit calls the resource monitoring program to monitor the resources of the operating system unit, it also detects the remaining resources of the operating system, and starts the resource monitoring program when it is determined that the remaining resources are not less than the resources required to start the resource monitoring program; when it is determined that the remaining resources are less than the resources required to start the resource monitoring program, it sends a resource release signal to the first processor to release the resources through the first processor.

[0065] In some embodiments, the operating system unit constructs a process resource management program, and the auxiliary unit sends a first interrupt signal to the process resource management program of the operating system unit at a preset frequency to obtain the resource usage of the operating system unit, and constructs a resource-scarce program state machine of the operating system unit based on the resource usage to determine the corresponding system resource scarcity parameters.

[0066] Specifically, the auxiliary unit can construct a resource-scarce state machine for the operating system unit based on the obtained resource usage information of the operating system unit, in order to determine the corresponding system resource scarcity parameter. The value of the aforementioned system resource scarcity level L can be defined based on a pre-defined array of system resource conditions (i.e., determining the corresponding resource scarcity parameter), for example:

[0067] The system's resource stress value of 1 is equal to the corresponding system resource stress level of L = 1;

[0068] The system's resource stress value of 2 is greater than the corresponding system resource stress level of L = 0.8;

[0069] The system's resource stress value of 3 corresponds to a system resource stress level of L = 0.6; ......

[0071] The resource stress figures for the aforementioned system are derived from data such as system load and memory usage.

[0072] In addition, the auxiliary unit can also construct a mirror image of the resource status of the operating system unit based on the obtained resource usage information of the operating system unit, and analyze and judge the system's resources independently of the operating system unit.

[0073] It should be noted that the process resource management program in this embodiment can be a high-priority process resource management program, that is, the process resource management program is a process specifically for releasing resources for the startup of the preset process. The priority of this process is very high, which can ensure that when the auxiliary unit sends the resource release signal, the resources of some non-critical processes in the system are released in a timely manner, thereby ensuring the startup of the preset process (i.e., the critical process existing in the vehicle system).

[0074] While some related technical solutions monitor and release system resources based on priority when monitoring available resources, this priority is not pre-set. Instead, the system itself determines the process priority based on user operations and experience. This means the system typically selects high-priority processes that are most relevant to the current user interaction, rather than critical processes within the vehicle system (such as reversing image display, panoramic image display, Bluetooth caller ID, etc.). This can easily lead to the vehicle system not releasing enough resources for these critical processes in complex operating scenarios. This application addresses this by implementing a dedicated high-priority process resource management program that releases resources for preset processes (i.e., critical processes within the vehicle system). This prioritizes critical processes within the vehicle system, preventing the vehicle system from prioritizing processes with frequent user interaction, thus avoiding the problem of critical processes being ignored or lacking sufficient resources.

[0075] In some embodiments, the auxiliary unit adjusts the preset frequency of sending the first interrupt signal according to the resource scarcity parameter, wherein the preset frequency is positively correlated with the resource scarcity parameter.

[0076] Please see Figure 2 , Figure 2 This is a schematic diagram of the state machine constructed in the auxiliary unit.

[0077] Specifically, when the system resources are found to be relatively scarce, i.e., the system resource scarcity level L is relatively small, and the corresponding resource scarcity level parameter is relatively large, the auxiliary unit will increase the frequency of obtaining information from the system, that is, accelerate the polling of the system resource status, and thus increase the preset frequency of sending the first interrupt signal. Conversely, when the system resources are found to be relatively abundant, i.e., the system resource scarcity level L is relatively large, and the corresponding resource scarcity level parameter is relatively small, the auxiliary unit will reduce the frequency of obtaining information from the system, that is, slow down the polling of the system resource status, and thus reduce the preset frequency of sending the first interrupt signal.

[0078] In other words, when the system's resource stress value is relatively high, and the corresponding system resource stress level L is relatively low, the auxiliary unit will intervene in the operating system unit earlier and faster so that the intervening operating system unit can release resources in a timely manner.

[0079] In some embodiments, when the operating system unit starts a preset process, it obtains the startup information of the preset process and sends the startup parameter information to the auxiliary unit; and when the preset process finishes starting, it sends the startup completion information to the auxiliary unit.

[0080] The auxiliary unit performs timeout monitoring based on startup parameter information so that it can send a resource release signal to the operating system unit in advance when the preset process is about to time out.

[0081] For example, when a preset process (critical process) starts in the operating system unit, the startup information of the preset process is registered with the process resource management program in the operating system unit, and the performance requirements parameters of the preset process are given (for example, it is expected to start within 2 seconds, or no parameters are given and the system's default startup value is used). The process resource management program informs the auxiliary unit of the startup information and parameters. The auxiliary unit maintains the startup information and parameters of the preset process and performs timeout monitoring on the preset process so that when the preset process is about to time out, it sends a resource release signal to the operating system unit in advance.

[0082] It's important to note here that, theoretically, the system resource shortage should be alleviated after the auxiliary unit notifies the operating system unit in advance to release and clean up resources. However, the auxiliary unit will continue to monitor the operating system unit's resource status to perform multiple resource monitoring and notification interventions.

[0083] In some embodiments, the auxiliary unit is further configured to cancel timeout monitoring of startup parameter information when it receives startup completion information sent by the operating system unit.

[0084] In other words, by canceling timeout monitoring for processes that have already started, more resources can be freed up to maintain and monitor the startup information of other processes, thus reducing resource waste to some extent.

[0085] In some embodiments, the operating system unit is configured to:

[0086] Respond to resource release signals to obtain information about processes to be processed;

[0087] Determine whether the process information to be processed is within the preset whitelist;

[0088] When the information of the process to be processed is not in the preset whitelist, the resources of the process to be processed are released.

[0089] For example, before obtaining the process information to be processed, the operating system unit can first obtain a list of running non-real-time operating system-level processes. The preset whitelist refers to the list of running non-real-time operating system-level processes. It determines whether the process information to be processed is in the preset whitelist (i.e., the list of running non-real-time operating system-level processes). If the process information to be processed is not in the preset whitelist, the process is forcibly released, that is, the resources of the process to be processed are released. If the process information to be processed is not in the preset whitelist, the step of obtaining the process information to be processed is repeated until the obtained process information to be processed is in the preset whitelist of this application.

[0090] In some embodiments, the operating system unit is further configured to:

[0091] Determine whether all processes in the preset whitelist have been processed;

[0092] If not all processes in the preset whitelist are processed, repeat the process of obtaining information on the processes to be processed until all processes in the preset whitelist have been processed.

[0093] Specifically, after releasing resources for processes in the preset whitelist, it can also determine whether all processes in the preset whitelist have been processed. If all processes in the preset whitelist have been processed, the operation ends; if not all processes in the preset whitelist have been processed, the step of obtaining information on processes to be processed is repeated until all processes in the preset whitelist have been processed.

[0094] In other words, by releasing resources from all processes outside the preset whitelist, sufficient resources are reserved for the preset processes.

[0095] Additionally, it should be noted that the process resource management program's management of processes is not limited to a simple whitelist. It can consider hierarchical methods, such as distinguishing between system processes and application processes, and work with auxiliary units to complete hierarchical and progressive resource release.

[0096] Based on the above embodiments, this section summarizes the process management process of the process resource management program. For details, please refer to [link / reference]. Figure 3 , Figure 3 This is a flowchart illustrating the process management process of the process resource management program.

[0097] For example, the following steps may be included:

[0098] 1) The process resource management program receives a request from the auxiliary unit to release system memory (i.e., receives a request to release system memory);

[0099] 2) Obtain a list of running non-system processes;

[0100] 3) Obtain information about processes to be processed;

[0101] 4) Determine if the process information to be processed is in the preset whitelist. If so, repeat step 3); otherwise, proceed to the next step 5).

[0102] 5) Forcefully release pending processes;

[0103] 6) Determine if the whitelist has been completely processed. If yes, end the operation; otherwise, repeat step 3.

[0104] In some embodiments, the first processor is a multi-core processor, the operating system unit is implemented based on the resources of a preset number of cores of the first processor, and the auxiliary unit is implemented based on the resources of an independent core of the first processor.

[0105] Please see Figure 4 , Figure 4 This is a schematic diagram of the structure of the first processor 11, which is a multi-core processor. Figure 4 The vehicle control system 10 includes a first processor 11, which is a multi-core processor. The operating system unit 100 and the auxiliary unit 200 are both implemented based on the resources of the first processor 11.

[0106] Specifically, the auxiliary unit 100 can be an independent small core in a homogeneous multi-core system; however, the following aspects need to be considered for this independent small core:

[0107] For example, 1) it is necessary to ensure, through software configuration, that the auxiliary unit separated from the first processor has a low system load, and that the auxiliary unit cannot perform all tasks together with other cores in the first processor, so as to ensure that the resource monitoring program running on the auxiliary unit has real-time performance;

[0108] 2) The resource monitoring program (e.g., state machine) running on the auxiliary unit must be fixed on the auxiliary unit;

[0109] 3) In this embodiment, the communication between the auxiliary unit and the system can be through RTC clock interrupts, that is, the auxiliary unit completes the corresponding resource management tasks by maintaining and processing RTC clock interrupts through software.

[0110] The first processor can be a single main CPU or multiple main CPUs. The operating system running on the first processor can be Android, other operating systems, or multiple operating systems virtualized from the main CPU. When a virtualized operating system requires the startup of a critical process, the system constructs a corresponding monitoring program in the auxiliary unit using the same principle described above. Thus, the auxiliary unit simultaneously hosts monitoring programs for the startup of critical processes from multiple operating systems. When the first processor is multiple main CPUs, each operating system running on a main CPU constructs its corresponding monitoring and resource processing program in the auxiliary unit. In other words, since the auxiliary unit is based on the independent cores of the first processor, multiple operating systems can be configured according to a preset number of cores in the first processor. This allows the auxiliary unit to run multiple operating systems, i.e., monitor multiple operating systems (for example, some can be continuous or intermittent monitoring), thereby implementing relatively complex system resource management and control strategies and enriching resource management methods.

[0111] In some embodiments, the vehicle control system further includes a second processor, and the auxiliary unit is implemented based on the resources of the second processor.

[0112] Please see Figure 5 , Figure 5 This is a schematic diagram of the vehicle control system provided in this application, which includes a second processor. Figure 5 The vehicle control system 10 includes a first processor 11 and a second processor 12. The operating system unit 100 and the auxiliary unit 200 are implemented based on the resources of the first processor 11 and the second processor 12, respectively.

[0113] For example, the auxiliary unit may be a heterogeneous small core at the hardware level, which can communicate with the operating system unit through inter-core communication (e.g., hardware interrupt, memory sharing), periodically obtain the resource usage of the operating system unit and the startup status of preset processes in the operating system unit, and monitor and maintain the obtained startup information of preset processes based on the obtained resource usage of the operating system unit and / or the startup status of preset processes, and send resource release signals to the operating system unit in a timely manner.

[0114] In other words, by employing a heterogeneous little core at the hardware level, communication with the operating system unit can be achieved through hardware interrupts, enabling effective and timely monitoring of the operating system and resource analysis. This avoids the problem of traditional software-level monitoring, where, under conditions of system resource scarcity, status detection, resource release, and scheduling can experience severe delays due to high system load, thus failing to guarantee the timely startup of critical processes.

[0115] To add further, in addition to requesting a response from the operating system unit through inter-core communication—that is, obtaining the startup status of preset processes in the operating system unit—and based on the obtained resource usage information of the operating system unit and / or the startup status of preset processes, the auxiliary unit can also adopt the following methods:

[0116] For example, 1) the operating system unit actively puts the system resource status into the shared memory or registers, and the heterogeneous kernel reads it as needed; 2) the resource status of the operating system unit is analyzed by monitoring the busy level of the signal lines of the operating system unit.

[0117] This application also provides a control method for an in-vehicle system, specifically as follows: Figure 6 As shown.

[0118] This includes step 601: obtaining the resource usage of the operating system unit through the auxiliary unit, and / or obtaining whether the preset process in the operating system unit has been started, and / or obtaining the start timeout of the preset process in the operating system unit.

[0119] Among them, the preset process can be a process corresponding to some relatively critical functions in the vehicle system (referred to as critical process), for example, it can be reversing image display, Bluetooth caller ID display, etc.

[0120] Step 602: The auxiliary unit sends a resource release signal to the operating system unit based on the resource usage of the operating system unit, and / or whether the preset process has started, and / or the start timeout.

[0121] Step 603: Release resources using the operating system unit based on the resource release signal.

[0122] For steps 602 to 603, in some embodiments, when the resource stress level of the operating system unit is less than or equal to the system preset resource stress level threshold, the auxiliary unit sends a resource release signal to the first processor; wherein, the resource stress level is positively correlated with the remaining resources of the first processor.

[0123] For example, suppose that the system presets the resource stress threshold to Tr = 0.5 for all critical processes, and the current system resource stress is L = 0.4. If Bluetooth caller ID and reverse start are activated at this time, the auxiliary unit will immediately intervene in the system resources according to the needs of reverse start and Bluetooth caller ID activation. That is, it will immediately send a resource release signal to the first processor so that the operating system unit can release resources in time to reserve enough resources to meet the activation requirements of reverse start and Bluetooth caller ID.

[0124] Alternatively, suppose there are corresponding system preset resource tension thresholds Tr for different critical processes. For example, there are system preset resource tension thresholds Tr1 = 0.3 for reversing start and system preset resource tension thresholds Tr2 = 0.5 for Bluetooth caller ID start. If the currently obtained system resource tension is L = 0.3, the auxiliary unit will only intervene in the system resources immediately according to the need for reversing start, but will not intervene in the system resources immediately according to Bluetooth caller ID start.

[0125] However, it's important to note that the current system resource scarcity level L can change at any time. Therefore, when the current system resource scarcity level L changes to less than or equal to the system's preset resource scarcity threshold Tr, the auxiliary unit will immediately intervene in the system's resources based on the actual startup needs. For example, when the current acquired resource scarcity level L = 0.5 changes to L = 0.3, the auxiliary unit will immediately intervene in the system's resources to release resources in a timely manner, ensuring sufficient resources to guarantee the startup of Bluetooth caller ID.

[0126] Additionally, it should be noted that when multiple system preset resource stress thresholds Tr are set, it is not necessary to set a corresponding resource stress threshold Tr for each critical process individually. Multiple levels of Tr can be set to correspond to resource release for different levels of preset processes in the system. For example, the first, second, and third preset processes could correspond to a first-level system preset resource stress threshold Tr1 = 0.5; the fourth, fifth, and sixth preset processes could correspond to a second-level system preset resource stress threshold Tr2 = 0.4, and so on. This is just one example; in actual applications, the number of preset processes corresponding to each level of system preset resource stress threshold Tr can be set according to the actual situation, and this application does not impose any limitations.

[0127] In some embodiments, when a preset process starts and the resource stress level of the operating system unit is greater than the preset resource stress level threshold, a timeout time is determined based on the expected time to complete the startup and the resource stress level of the operating system unit. The auxiliary unit then sends a resource release signal to the first processor so that the resources can be released by the first processor.

[0128] Specifically, when the preset process starts, the timeout time T can be calculated according to the formula T = E * L. At time T, a resource release signal is sent to the first processor, where E is the expected time to complete the startup and L is the resource stress of the system.

[0129] For example, assuming the system's preset resource stress threshold Tr = 0.3, and the car is now starting in reverse, the expected start time E is 2 seconds, and the currently acquired system resource stress L is 0.8, then the auxiliary unit initially calculates the timeout T = 2 * 0.8 = 1.6 seconds. If the currently acquired system resource stress L = 0.8 does not decrease to 0.3, that is, if the system resource stress L is always greater than the system's preset resource stress threshold Tr, then the auxiliary unit will only intervene in the operating system unit to release resources after 2 * 0.8 = 1.6 seconds (that is, before the expected 2 seconds).

[0130] At this point, if the current system resource tension level L=0.8 decreases to 0.5, the auxiliary unit will recalculate the timeout T=2*0.5=1 second. In other words, the auxiliary unit will start intervening in the operating system unit after 1 second (not waiting for the original 1.6 seconds) to release resources.

[0131] Alternatively, if the current system resource stress level L = 0.8 is found to decrease directly to 0.3, which means that the system's preset resource stress level threshold Tr = 0.3 has been reached, then the auxiliary unit will directly start intervening in the operating system unit at the current time (0 seconds) instead of waiting for the timeout T to intervene in the operating system unit in order to release resources.

[0132] Additionally, it's important to note that the expected time E for different preset processes to complete can vary. For example, the expected time E for completing reverse start can be 2 seconds, and the expected time E for completing Bluetooth call display start can be 3 seconds.

[0133] In some embodiments, when the remaining resources in the operating system unit are less than the resources required to start a preset process, the auxiliary unit sends a resource release signal to the first processor to release the resources through the first processor.

[0134] For example, if the system's preset resource scarcity threshold Tr1 = 0.2 for reversing start, and the currently acquired system resource scarcity level is L = 0.3, since Tr1 = 0.2 is less than L = 0.3, the remaining resources in the operating system unit can be less than the resources required to start the reversing process. Therefore, the auxiliary unit sends a resource release signal to the first processor according to the needs of reversing start, so that the first processor can release resources. This allows the operating system unit to release resources in a timely manner, ensuring the start of the preset process.

[0135] By employing resource-independent auxiliary units to obtain information on the resource usage of the operating system unit and the startup status of preset processes within the operating system unit, and by sending resource release signals to the operating system unit, real-time monitoring and resource analysis of the operating system unit can be effectively performed, thereby enabling the operating system unit to release resources in a timely manner.

[0136] The above are merely embodiments of this application and do not limit the scope of this patent application. Any equivalent structural or procedural changes made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the scope of patent protection of this application.

Claims

1. A vehicle-mounted control system, characterized in that, The vehicle control system includes: An operating system unit, implemented based on the resources of the first processor, is used to run various processes; An auxiliary unit is connected to the operating system unit. The auxiliary unit is implemented based on independent resources that are different from those of the operating system unit. The auxiliary unit is used to obtain the resource usage of the operating system unit, whether a preset process in the operating system unit has started, and the start timeout status of the preset process in the operating system unit, so as to achieve the purpose of monitoring the resources of the operating system unit. The auxiliary unit is used to send a resource release signal to the operating system unit based on the resource usage of the operating system unit, whether the preset process has started, and the start timeout status. The operating system unit releases resources in response to the resource release signal. The auxiliary unit is further configured to: when the preset process starts and the resource stress of the operating system unit is greater than the preset resource stress threshold, determine a timeout time based on the expected time for startup completion and the resource stress of the operating system unit, and send a resource release signal to the first processor at the timeout time so as to release resources through the first processor.

2. The vehicle control system according to claim 1, characterized in that, The auxiliary unit is also used for: When the resource stress level of the operating system unit is less than or equal to a preset system resource stress level threshold, a resource release signal is sent to the first processor; wherein, the resource stress level is positively correlated with the remaining resources of the first processor.

3. The vehicle control system according to claim 1, characterized in that, The auxiliary unit is specifically used for: When the preset process starts, the timeout time T is calculated according to the formula T=E*L, and a resource release signal is sent to the first processor at time T, where E is the expected time to complete the startup and L is the resource stress level of the operating system unit.

4. The vehicle control system according to claim 1, characterized in that, The auxiliary unit is also used for: The system acquires the resources required to start a preset process in the operating system unit. When the remaining resources in the operating system unit are less than the resources required to start the preset process, it sends a resource release signal to the first processor to release the resources through the first processor.

5. The vehicle control system according to claim 1, characterized in that, The operating system and the auxiliary unit are implemented on different cores in a heterogeneous multi-core architecture, or the operating system and the auxiliary unit are implemented on different cores in a homogeneous multi-core processor architecture.

6. The vehicle control system according to claim 5, characterized in that, In response to the fact that the operating system and the auxiliary unit are implemented on different cores in a heterogeneous multi-core architecture, the auxiliary unit runs a resource monitoring program that monitors the resources of the operating system unit; Before the auxiliary unit calls the resource monitoring program to monitor the operating system unit resources, it also detects the remaining resources of the operating system. When it is determined that the remaining resources are not less than the resources required to start the resource monitoring program, it starts the resource monitoring program. When it is determined that the remaining resources are less than the resources required to start the resource monitoring program, it sends a resource release signal to the first processor to release the resources through the first processor.

7. The vehicle control system according to claim 1, characterized in that, The operating system unit constructs a process resource management program, and the auxiliary unit sends a first interrupt signal to the process resource management program of the operating system unit at a preset frequency to obtain the resource usage status of the operating system unit, and constructs a resource-scarce program state machine of the operating system unit based on the resource usage status to determine the corresponding resource scarcity level parameters.

8. The vehicle control system according to claim 7, characterized in that, The auxiliary unit adjusts the preset frequency for sending the first interrupt signal according to the resource scarcity parameter, and the preset frequency is positively correlated with the resource scarcity parameter.

9. The vehicle control system according to claim 1, characterized in that, When the operating system unit starts the preset process, it obtains the startup information of the preset process and sends the startup parameter information to the auxiliary unit. And when the preset process is started, the startup completion information is sent to the auxiliary unit; The auxiliary unit performs timeout monitoring based on the startup parameter information so that it can send a resource release signal to the operating system unit in advance when the preset process is about to time out. The auxiliary unit is also used to cancel the timeout monitoring of the startup parameter information when it receives the startup completion information sent by the operating system unit.

10. The vehicle control system according to any one of claims 1 to 9, characterized in that, The operating system unit is used for: In response to the resource release signal, information about the processes to be processed is obtained; Determine whether the process information to be processed is within a preset whitelist; When the information of the process to be processed is not in the preset whitelist, the resources of the process to be processed are released.

11. The vehicle control system according to claim 10, characterized in that, The operating system unit is also used for: Determine whether all processes in the whitelist have been processed; If not all processes in the whitelist have been processed, repeat the step of obtaining the information of the processes to be processed until all processes in the whitelist have been processed.

12. A control method for an on-board system, characterized in that, The vehicle-mounted system includes an operating system unit and an auxiliary unit that are interconnected; the operating system unit is implemented based on the resources of the first processor and is used to run various processes. The auxiliary unit is implemented based on independent resources different from those of the operating system unit; the control method includes: The auxiliary unit obtains the resource usage of the operating system unit, the startup status of the preset process in the operating system unit, and the startup timeout status of the preset process in the operating system unit. The auxiliary unit sends a resource release signal to the operating system unit based on the resource usage of the operating system unit, whether the preset process has started, and the start-up timeout status. The operating system unit releases resources based on the resource release signal. The control method further includes: When the preset process starts, and the resource stress of the operating system unit is greater than the preset resource stress threshold, the auxiliary unit determines the timeout time based on the expected time of startup completion and the resource stress of the operating system unit, and sends a resource release signal to the first processor at the timeout time so that the first processor can release the resources.

Citation Information

Patent Citations

  • Resource management method and system in isomerization multicore system

    CN101419561A