Method and device for generating an optimized installation plan of a software application for a computer and method for installing said software application in the computer.

The method addresses the challenge of optimizing the scheduling of numerous PAEs in avionics computers by using a systematic approach to allocate PAEs based on weighting factors and priority rankings, resulting in an optimized installation plan that maximizes system evolution margin.

FR3148310B1Active Publication Date: 2025-06-06AIRBUS OPERATIONS (SAS)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2023004202
Authority / Receiving Office
FR · FR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-04-26
Publication Date
2025-06-06
Estimated Expiration
2043-04-26

AI Technical Summary

Technical Problem

The increasing complexity of software applications in avionics computers results in a large number of elementary application processes (PAEs) that are difficult to schedule optimally, leading to tedious and time-consuming manual allocation processes that often do not result in optimized scheduling.

Method used

A method and device for generating an optimized installation plan for software applications in computers, which involves acquiring input parameters, initializing scheduling parameters, and iteratively allocating PAEs to scheduler time units based on weighting factors and priority rankings, ultimately generating an optimized scheduling plan.

Benefits of technology

The method enables a simple, rapid, and automatic generation of an optimized scheduling of PAEs, maximizing the margin for evolution of the computer system, which can be used for future additions or corrections of functionalities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000031_0000
    Figure 00000031_0000
  • Figure 00000032_0000
    Figure 00000032_0000
  • Figure 00000032_0001
    Figure 00000032_0001
Patent Text Reader

Abstract

- Method and device for generating an installation plan (2) of a software application (3) in a computer (4) using an optimized scheduling of a plurality of elementary application processes (PAE) forming said software application (3). - The method comprises at least one acquisition step for acquiring input parameters (9), an initialization step for establishing, from the input parameters (9), parameter sets (SET1, SET2) characterizing the PAEs of the plurality of PAEs and time units (MIF) of the computer (4), a series of iterative steps for scheduling the PAEs of the plurality of PAEs, each iteration comprising a determination of a scheduling priority for each of the PAEs, a ranking of the PAEs according to the order of priority, an allocation of the first PAE of the ranking to a MIF of the computer (4) and an update of the parameter sets (SET1, SET2),said method also comprising a generation step for generating the installation plan (2) using the scheduling carried out following steps, said method making it possible to obtain, in a simple, rapid and automatic manner, an optimized scheduling of the plurality of PAEs of the software application (3), that is to say a scheduling which maximizes a margin for the evolution of the calculator (4). Figure for the abstract: Figure 1,
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Method and device for generating an optimized installation plan of a software application for a computer and method for installing said software application in the computer. Technical field

[0001] The present invention relates to a method and a device for generating an optimized installation plan of a software application for a computer, in particular for an avionics computer. It also relates to a system and a method for installing said software application using this installation plan. State of the art

[0002] Electronic systems generally comprise a set of actuators and sensors managed by computers. These computers are configured to perform certain tasks, in particular, to acquire data from sensors, to perform calculations to generate control orders intended to control electronic systems, such as actuators, or to transmit data, intended for example to be displayed by a display device. To do this, they implement software applications formed by a set of elementary application processes (also called PAE).

[0003] Installing a software application in a computer consists of allocating each PAE forming said software application to a location in the computer. For this purpose, a computer comprises a time frame called a scheduler which comprises time units (hereinafter called MIF for "MINor Frame" in English). One or more PAEs can be allocated to a MIF depending on the capacity of the latter, the execution time of the PAE(s) to be allocated, as well as the execution period of the PAE as required by the designer of the PAE.

[0004] The installation of a software application in a computer is carried out using an installation plan defining the order in which the PAEs are allocated to the MIFs. This ordering guarantees the correct functioning of the software application.

[0005] In certain fields, particularly in aeronautics, the increasing complexity of software applications results in a large number of PAEs. This increasing complexity responds to a need to provide more functions, of greater complexity, with faster and greater data transmissions. This is particularly important for avionics computers insofar as the processing speed of a physical process of an aircraft defines its efficiency. For example, the processes Improving piloting precision, passenger comfort or aircraft performance (for example by minimizing aerodynamic drag) are often rapid and dynamic processes.

[0006] The large number of PAEs to be allocated implies a significant number of combinations making it difficult to obtain a scheduling solution, in particular an optimized scheduling. Brute force evaluation of all possible combinations is not reasonable. Manual allocation is therefore often preferred, which is however tedious, time-consuming and does not always lead to an optimized scheduling.

[0007] There is therefore a need to find how to create an optimized scheduling of PAEs for a software application to be installed in a computer. Statement of the invention

[0008] The present invention has, in particular, the object of proposing a solution making it possible to obtain an optimized scheduling of a plurality of elementary application processes (hereinafter called PAE) making up a software application. The present invention relates to a method for generating an installation plan for the software application in a computer, the installation plan comprising at least one scheduling of the plurality of PAEs for a scheduler of the computer in which the software application is likely to be installed. Each PAE of the plurality of PAEs is intended to be allocated to at least one time unit (hereinafter called MIF) of a time cycle (hereinafter called MAF for "Major Frame" in English) of the scheduler of the computer.

[0009] According to the invention, the method comprises at least the following successive steps: - an acquisition step for acquiring input parameters comprising at least parameters characterizing the computer and parameters characterizing the plurality of PAEs; - an initialization step for establishing, from the input parameters, at least a first set of parameters characterizing each MIF of the calculator and a second set of parameters characterizing each PAE of the plurality of PAEs; - a series of successive steps, implemented iteratively until all the PAEs of the plurality of PAEs are scheduled, the series of steps comprising: - a weighting sub-step for assigning, to each PAE of the plurality of PAEs, a weighting factor defined from parameters of the second set of parameters of the PAE with which it is associated; - a ranking sub-step for ranking the PAEs of the plurality of PAEs according to their weighting factor in order of priority on a ranking, the priority PAE(s) being ranked first in the ranking; - an allocation sub-step for allocating the first of the PAEs of the ranking to the first MIF of the scheduler capable of receiving said first PAE; - an update sub-step for updating the parameters of the first set of parameters of each MIF and the parameters of the second set of parameters of each PAE according to the allocation carried out in the allocation sub-step; - a generation step to generate the installation plan for the calculator from the PAE scheduling carried out following steps.

[0010] Thus, thanks to the invention, it is possible to obtain, in a simple, rapid and automatic manner, an optimized scheduling of the plurality of PAEs of the software application, that is to say a scheduling which maximizes a margin for the evolution of the calculator. This margin for evolution can be used later during the life of the calculator, for example for the integration of additional PAEs corresponding to functionalities or to corrections.

[0011] In a preferred embodiment, the method comprises at least the following successive phases implemented after the initialization step: - a forward chaining phase for determining an ordering for the PAEs of the plurality of PAEs which are non-data transmitters or the PAEs of the plurality of PAEs which have at least one successor PAE; - a minimum debt phase to determine an ordering for the PAEs of the plurality of PAEs which are data transmitters and which do not have a successor PAE; - a backward chaining phase to determine a new scheduling for at least one non-data-transmitting PAE allocated to the forward chaining phase, if this new scheduling makes it possible to improve scheduling fairness.

[0012] Advantageously, the forward chaining phase comprises at least the following successive steps: - a first listing step, implemented after the initialization step, to create a first list comprising the PAEs of the plurality of PAEs which are non-data transmitters or which have at least one successor PAE; - a first series of steps corresponding to the series of steps and implemented iteratively for the PAEs in the first list and comprising the following successive steps: - a weighting sub-step to assign, to each PAE on the first list, a weighting factor indicating the number of MIFs able to receive this PAE and the number of PAEs succeeding this PAE; - a ranking sub-step to rank the PAEs from the first list in order of priority according to their weighting factor, the priority PAEs being the PAEs with the smallest number of MIFs able to receive them and / or with the largest number of successor PAEs; - an allocation sub-step for allocating the first PAE from the first list to the first MIF of the scheduler capable of receiving said first PAE; - an update sub-step for updating the parameters of the first parameter set of each MIF and the parameters of the second parameter set of each PAE of the first list according to the allocation carried out in the allocation sub-step; the first sequence of steps being implemented until all the PAEs of the first list are allocated.

[0013] Furthermore, advantageously, the minimum debt phase comprises at least the following successive steps: - a listing step for creating a second list comprising the PAEs of the plurality of PAEs which are data transmitters and which do not have a successor PAE; - a second series of steps comprising at least the following successive steps: - a weighting sub-step to assign, to each PAE in the second list, a weighting factor indicating the number of MIFs capable of receiving this PAE; - a ranking sub-step to rank the PAEs from the second list in order of priority according to their weighting factor, the priority PAEs being the PAEs with the smallest number of MIFs able to receive them; - a determination sub-step to determine, for the first PAE of the second list, an emissions absorption time for each MIF capable of receiving said first PAE; - an allocation sub-step to allocate the first PAE from the second list to the MIF capable of receiving said first PAE for which the emissions absorption time is minimum; - an update sub-step to update the parameters of the first set of parameters of each MIF and the parameters of the second set of parameters of each PAE according to the allocation carried out in the allocation sub-step, the second series of steps being implemented until all PAEs in the second list are allocated.

[0014] In addition, the minimum debt phase further comprises the following successive steps, implemented after the second series of steps: - a determination step to determine, for each MIF of the scheduler, a placement debt corresponding to a number of data transmission requests which cannot be satisfied upon execution of this MIF; - a replacement step to determine, iteratively for each PAE of the second list allocated to the second series of steps, at least one MIF capable of receiving the PAE so as to reduce the investment debt and, if such a MIF exists, to removing the PAE from the schedule and allocating it to the first MIF of the scheduler able to receive the PAE so as to reduce the placement debt, the replacement step being implemented until, for each PAE in the second list, there is no MIF of the scheduler able to receive the PAE so as to reduce the placement debt.

[0015] Furthermore, the backward chaining phase comprises at least the following successive steps: - a third listing step for creating a third list comprising the PAEs of the plurality of PAEs which are non-data transmitters; - a calculation step to determine the fairness of the ordering obtained after the forward chaining phase and the minimum debt phase; - a third series of successive steps, implemented iteratively, comprising: - a weighting sub-step to assign, to each PAE in the third list, a weighting factor indicating the number of MIFs capable of receiving this PAE and the number of PAEs preceding this PAE; - a classification sub-step to classify the PAEs from the third list in order of priority according to their weighting factor, the priority PAEs being the PAEs with the greatest number of MIFs able to receive them and / or the PAEs with the greatest number of predecessor PAEs; - a reallocation sub-step for determining at least one MIF of the scheduler capable of receiving the first PAE of the third list so as to improve the fairness of the scheduling and, if such a MIF exists, for reallocating the first PAE of the third list to the first MIF capable of receiving it so as to improve the fairness of the scheduling, otherwise for removing said first PAE from the third list; - an update sub-step to update the fairness of the current schedule as well as the parameters of the first set of parameters of each MIF and the parameters of the second set of parameters of each PAE according to the reallocation carried out in the reallocation sub-step, the third sequence of steps being implemented until the third list is empty of PAE.

[0016] Advantageously, a MIF of the scheduler is capable of receiving a PAE if the execution time of said PAE is less than or equal to an allocatable time limit forming part of the parameter set of this MIF, the allocatable time limit corresponding to an ideal allocatable time defined by the following equation: R in which: - i is a positive integer; - n is the total number of PAEs of the software application; - NMif is the number of MIFs in a scheduler MAF; ■ WPAEii) is the worst execution time of PAE(i); - NpÆ(the number of executions of the PAE(i) on a MAF; and - This is a predefined phase advance constant.

[0017] Furthermore, if at the end of a PAE allocation step no MIF of the scheduler is capable of receiving said PAE, said allocation step is implemented again with a new allocatable time limit corresponding to the maximum allocatable time of each MIF.

[0018] The present invention also relates to a method of installing a software application in a computer.

[0019] According to the invention, the method comprises at least the following successive steps: - a generation step for implementing the method as described above so as to generate the installation plan comprising an ordering of the plurality of PAEs forming the software application to be installed in the computer; - an installation step to install the software application in the calculator using the installation plan.

[0020] The present invention also relates to a device for generating an installation plan for a software application in a computer, said installation plan comprising at least one ordering of a plurality of PAEs forming said software application.

[0021] According to the invention, the device comprises at least: - a first acquisition unit configured to acquire a set of input parameters comprising at least parameters characterizing the computer and parameters characterizing the plurality of PAEs; - an initialization unit configured to establish, from the input parameters, at least a first set of parameters associated with each MIF of the scheduler of the calculator and a second set of parameters associated with each PAE of the plurality of PAEs; - a first calculation unit configured to create, iteratively, an ordering of the plurality of PAEs in: - assigning, to each PAE, at least one weighting factor defined from parameters of the second set of parameters of the PAE with which it is associated; - ranking the PAEs of the plurality of PAEs according to their weighting factor in order of priority on a ranking, the priority PAE(s) being ranked first in the ranking; - allocating the first PAE of the classification to the first MIF of the scheduler capable of receive said first PAE; - updating the parameters of the first set of parameters of each MIF and the parameters of the second set of parameters of each PAE according to the allocation made; - a second computing unit configured to generate the installation plan of the software application, using the PAE schedule created by the first computing unit.

[0022] The invention also relates to a system for installing a software application in a computer from an installation plan.

[0023] According to the invention, the system comprises at least: - a device, as described above, configured to generate the installation plan of the software application to be installed in the computer; - a second acquisition unit configured to acquire at least a plurality of PAEs forming the software application and the installation plan; - an execution unit configured to execute the installation plan so as to install the software application in the computer using the installation plan. Brief description of the figures

[0024] The attached figures will make it clear how the invention can be implemented. In these figures, identical references designate similar elements.

[0025] [Fig.l] is a schematic view of a particular embodiment of a system for installing a software application in a computer.

[0026] [Fig.2] is a block diagram of a method of installing the software application in the computer.

[0027] [Fig.3] is a block diagram of a method for generating an installation plan for installing the software application in the computer.

[0028] [Fig.4] is a block diagram of a preferred embodiment of the method comprising a forward chaining phase, a minimum debt phase and a backward chaining phase.

[0029] [Fig.5] is a block diagram of the forward chaining phase of the method of the [Fig.4],

[0030] [Fig.6] is a block diagram of the minimum debt phase of the process of [Fig.4],

[0031] [Fig.4] is a block diagram of the backward chaining phase of the method of [Fig.4],

[0032] [Fig.8] is an example of two graphs representing dependency relationships between PAEs of a software application.

[0033] [Fig.9] is a schematic view of a first example of PAE scheduling obtained by the P process.

[0034] [Fig. 10] is a schematic view of a second example of PAE scheduling obtained by the method P.

[0035] [Fig. 11] is a schematic view of a PAE schedule comprising data-transmitting PAEs.

[0036] [Fig. 12] is a schematic view of a PAE schedule obtained by implementing the forward chaining phase.

[0037] [Fig. 13] is a schematic view of a PAE schedule obtained by implementing the minimum debt phase.

[0038] [Fig. 14] is a schematic view of a PAE schedule obtained by implementing the backward chaining phase.

[0039] [Fig. 15] is a schematic view of a non-optimized PAE scheduling.

[0040] [Fig. 16] is a schematic view of an optimized PAE scheduling. Detailed description

[0041] The system 1, shown schematically in [Fig.l] in a particular embodiment, is a system for installing a software application 3, such as an aircraft flight control application, in a computer 4 (denoted PROC for “Processing Unit” in English). The system 1 comprises a device 5 for generating an installation plan. The device 5 is configured to generate an installation plan 2 intended to allow the installation of the software application 3 in the computer 4. The system 1 also comprises a device 6 configured to install the software application 3 in the computer 4 using the installation plan 2 generated by the device 5.

[0042] System 1 preferably corresponds to a computer-type electronic system comprising devices 5 and 6.

[0043] In the context of the present invention, the computer 4 may correspond to any type of electronic calculation device comprising at least one processor-type calculation unit. In a preferred embodiment, the computer 4 corresponds to an avionics computer intended to control systems of an aircraft. This may involve controlling control actuators as a function of control orders generated by the crew of the aircraft. The computer 4 may, in particular, be intended to be part of a standard integrated modular avionics-type architecture comprising several identical modular computers replicated for redundancy purposes.

[0044] Furthermore, the term “software application” means a program or a set of programs formed by a plurality of elementary application processes (hereinafter referred to as PAE). As shown schematically in [Fig.l], the plurality of PAEs comprises a number n of PAEs denoted PAE(l), PAE(2), ..., PAE(n), with n a number positive integer. For information purposes, a software application generally comprises several hundred or several thousand PAEs depending on its complexity. The installation of the software application 3 in the computer 4 designates the programming of the plurality of PAEs in the computer 4.

[0045] The programming of the plurality of PAEs in the computer 4 designates their scheduling in a scheduler 7. Indeed, for the proper functioning of the software application 3, the plurality of PAEs is programmed in a particular order. This involves allocating each PAE to a location on the scheduler 7.

[0046] The scheduler 7 comprises a time cycle (hereinafter called MAF for “Major Frame” in English) comprising a plurality of time units (hereinafter called MIF for “Minor Frame” in English). The MIFs are the locations making it possible to allocate one or more PAEs. The MAF can be repeated indefinitely in a cyclic manner depending on the operation of the software application 3. The execution of a MAF designates the execution of all its MIFs. The execution of a MIF corresponds to the execution of the PAE(s) allocated to it.

[0047] The scheduling of the plurality of PAEs in the scheduler 7 is conditioned by a set of criteria. In particular, the scheduling satisfies certain constraints.

[0048] A first constraint concerns the order of execution of the PAEs. During the operation of the software application 3, certain PAEs require the results of operations performed by other PAEs. In addition, the PAEs can be executed several times on a MAF. The order of execution of the PAEs can be modeled by PAE graphs, as shown in [Fig.8] in an example. These are directed G1 and G2 graphs without cycles indicating the dependency relationships between six PAEs.

[0049] A second constraint concerns the execution time of the PAEs. The execution time of the PAE(s) allocated to a MIF must be less than or equal to an allocatable time of said MIF. This may be the maximum execution time of the MIF (common to all MIFs and intrinsic to the computer 4). It may also be an arbitrarily chosen allocatable time limit. For the execution time of a PAE, the worst execution time is considered, i.e. its maximum execution time. This is the execution time of a PAE that is obtained under the most unfavorable conditions.

[0050] A third constraint concerns the provision of data by data-transmitting PAEs. Some PAEs require data to be transmitted via transmission media of the computer 4. Each transmission medium has a bandwidth, namely a data transmission capacity. Also, each transmission medium is not necessarily capable of transmitting all the data transmitted by the or the PAEs of a MIF during its execution. Certain data transmissions are then delayed. These delays must be taken into account for the scheduling of the PAEs.

[0051] In the context of the present invention, a transmission medium designates a data communication device between computer or electronic systems, for example to communicate data to an actuator or to another computer.

[0052] The device 5 is configured to generate the installation plan 2 comprising a scheduling of the plurality of PAEs. The device 5 is capable of creating an optimized scheduling of the PAEs which takes into account the above constraints.

[0053] The device 5 comprises a first acquisition unit 8 (denoted ACQ1 for “Acquisition unit” in English) configured to acquire a set of input parameters 9. The input parameters 9 comprise parameters characterizing the computer 4 and parameters characterizing the plurality of PAEs of the software application 3. They may also comprise other parameters, for example adjustment parameters. For example, the parameters characterizing the computer 4 comprise at least parameters characterizing the scheduler 7 of the computer 4 and / or parameters characterizing the transmission media(s) of the computer 4. The parameters characterizing the plurality of PAEs of the software application 3 may comprise at least the number of PAEs and / or parameters characterizing the execution of each PAE.

[0054] In the embodiment shown in [Fig.l], the acquisition unit 8 is configured to acquire the input parameters 9 from a memory 10 (denoted MEM1 for “Memory” in English).

[0055] In addition, the device 5 comprises an initialization unit 11 (noted INIT for “Initialization Unit” in English) configured to establish, from the input parameters 9, a first set of parameters SET1 and a second set of parameters SET2. A set of parameters SET1 characterizing it is associated with each MIF of the scheduler 7 and a set of parameters SET2 characterizing it is associated with each PAE of the plurality of PAEs.

[0056] Preferably, the input parameters 9 comprise at least the functions listed below for establishing the parameter sets SET 1 and SET2.

[0057] In the following, the letter “i” is a positive integer used to designate the number of a given MIF or PAE, (noted MIF(i) and PAE(i)).

[0058] In a non-limiting manner, each set of parameters SET1 associated with a MIF(i) comprises the following functions: - an allocatable time function noted indicating the allocatable time remaining in the MIF(i); - a consumable transmission function indicating the number of possible transmission requests on each transmission medium of the MIF(i); - an ideal allocatable time function denoted Bmifiî) indicating the ideal allocatable time remaining in the MIF(i). This is the objective that we ideally want to respect for the scheduling of PAEs. The execution time of the PAE(s) allocated to a MIF must not exceed its ideal allocatable time, as far as possible.

[0059] The ideal allocatable time BM1F for all MIFs is preferably determined from the following equation: _ in which: bMIF - Nmif -a - n is the number of PAEs of software application 3; - is the number of MIFs in a MAF; - Wp^y is the worst execution time of PAE(i); - NpAE(i) is the number of executions of PAE(i) on a MAF; and - This is a predefined phase advance constant.

[0060] The phase advance constant Ca is an adjustment parameter. It makes it possible to define the ratio that one wishes to obtain between the allocatable time and the ideal allocatable time BMiF(f>.

[0061] The ideal allocatable time BMlF as defined above, corresponds to an arithmetic mean of all the execution times of the PAEs of the software application 3. This ideal allocatable time Bmif makes it possible to obtain a fair scheduling and therefore to maximize a margin for evolution.

[0062] The margin for evolution corresponds to the smallest gap that exists on the scheduler 7, between the maximum allocatable time of a MIF and the worst execution time of the PAE(s) allocated to it. Examples of margin for evolution (noted 4>), are represented from [Fig.9] to [Fig. 14].

[0063] In a non-limiting manner, each set of parameters SET2 includes the following functions: - a worst-case execution function WPAE(i) indicating the worst-case execution time of PAE(i); - an execution number function ATpAE{i) indicating the number of executions of the PAE(i) on the MAF; - a periodicity function TPAE^ indicating the number of times that the PAE(i) is executed on the MAF; - one or more predecessor PAE functions indicating the number of PAEs on which the PAE(i) directly or indirectly depends; - one or more successor PAE functions indicating the number of PAEs directly or indirectly dependent on PAE(i); - an Op^ù emission query function indicating the number of requests transmissions emitted by the PAE(i) on each transmission medium of the computer 4; - a function of the possible allocations AC(i) indicating the first and last MIF of the scheduler 7 capable of receiving the PAE(i).

[0064] Furthermore, the device 5 comprises a first calculation unit 12 (noted COMP1 for “Computation Unit” in English) configured to create, iteratively, the ordering of the plurality of PAEs.

[0065] The calculation unit 12 is configured to assign, to each PAE, at least one weighting factor defined from parameters of the second set of parameters SET2 of the PAE with which it is associated.

[0066] In this way, it is possible to easily identify PAEs which have one or more particular characteristics.

[0067] The calculation unit 12 is configured to classify the PAEs of the plurality of PAEs according to their weighting factor in order of priority on a ranking. The priority PAE(s) are ranked first in the ranking.

[0068] In this way, it is possible to organize the PAEs by ranking them according to one or more of their characteristics. The PAE ranked first in the ranking is the PAE that one wishes to allocate before all other PAEs.

[0069] The calculation unit 12 is configured to allocate the first PAE of the classification to the first MIF of the scheduler 7 capable of receiving said first PAE. A MIF is said to be capable of receiving a PAE if the allocation of this PAE to this MIF leads to a valid scheduling, namely a scheduling allowing the proper functioning of the software application 3.

[0070] The calculation unit 12 is configured to update the parameters of the parameter set SET1 of each MIF and the parameters of the parameter set SET2 of each PAE according to the allocation carried out. In addition, the PAE which has just been allocated is no longer taken into account during the following iterations.

[0071] The calculation unit 12 performs the above operations iteratively until all the PAEs of the plurality of PAEs are scheduled. The device 5 may comprise a memory (not shown) for recording the PAE allocations at each iteration so as to obtain a scheduling of the plurality of PAEs at the end of the iterations.

[0072] In the context of the present invention, it is considered that a MIF is capable of receiving a PAE if the allocation of this PAE to this MIF leads to the proper functioning of the software application 3 once the installation of the PAEs has been carried out.

[0073] In a preferred embodiment, a MIF is capable of receiving a PAE at least if the worst execution time of said PAE is less than or equal to an allocatable time limit of this MIF. The allocatable time limit corresponds to the ideal allocatable time BMIF as defined above.

[0074] Furthermore, if no MIF of the scheduler 7 is capable of receiving a PAE during its allocation, then a new allocatable time limit is defined and a new iteration starts for the allocation of this PAE. The new allocatable time limit may correspond to the maximum allocatable time of the MIF. In this way, it is possible to continue the scheduling even if, locally, certain PAEs do not respect the objective of not exceeding the ideal allocatable time.

[0075] Furthermore, the device 5 comprises a second calculation unit 13 (denoted COMP2) configured to generate the installation plan 2 of the software application 3, using the scheduling of the PAEs created by the calculation unit 12. In the embodiment of [Fig.l], the installation plan 2 is recorded in a memory 14 (denoted MEM2).

[0076] The device 6 is configured to install the software application 3 using the installation plan 2 generated by the device 5. To do this, the device 6 comprises an acquisition unit 15 (denoted ACQ2) configured to acquire the installation plan 2 from the memory 14. The acquisition unit 15 is also configured to acquire the plurality of PAEs forming the software application 3 to be installed.

[0077] Furthermore, the device 6 comprises an execution unit 16 (noted EXE for “Execution unit” in English) configured to execute the installation plan 2 in order to install the software application 3 in the computer 4.

[0078] Thus, thanks to the system 1, it is possible to obtain a scheduling of the plurality of PAEs of the software application 3 which is implemented in a simple, rapid and automatic manner. In addition, by judiciously choosing the order in which the PAEs are to be allocated, it is possible to obtain an optimized scheduling of the PAEs. In particular, it is possible to obtain a scheduling of the PAEs which is fair, that is to say a scheduling in which the execution time of the PAEs is distributed homogeneously over all the MIFs of the scheduler 7.

[0079] Thus, it is possible to maximize a margin for the evolution of the computer 4. This is the allocatable time remaining in the most loaded MIF of the scheduler 7 after the scheduling of all the PAEs of the plurality of PAEs. The margin for evolution makes it possible, in particular, to subsequently integrate additional PAEs into the computer 4. This can allow the addition of new functionalities or fixes during the life of the computer 4.

[0080] The system 1 as described above makes it possible to implement a method M, represented schematically in [Fig.2], to install the software application 3 in the computer 4.

[0081] The method M comprises a generation step E1 for implementing a method P, described below, generating the installation plan 2 comprising an ordering of the plurality of PAEs forming the software application 3.

[0082] Furthermore, the method M comprises an installation step E2 for installing the software application 3 in the computer 4 using the installation plan 2.

[0083] The device 5 of the system 1 as described above, makes it possible to implement the method P, represented schematically in [Fig.3], to generate the installation plan 2 of the software application 3.

[0084] The method P comprises an acquisition step E3 for acquiring input parameters 9.

[0085] In addition, the method P comprises an initialization step E4 to establish, from the input parameters 9, the parameter sets SET1 and SET2.

[0086] Furthermore, the method P comprises a sequence of steps E5 for creating a schedule of the plurality of PAEs. As shown in [Fig.3], the sequence of steps E5 comprises sub-steps E51, E52, E53 and E54 implemented successively in an iterative manner. The sequence of steps E5 is implemented so as to allocate, one by one, the PAEs of the plurality of PAEs to MIFs of the scheduler 7 until they are all scheduled.

[0087] Substep E51 comprises assigning a weighting factor to each PAE of the plurality of PAEs. The weighting factor is defined from parameters of the parameter set SET2 of the PAE with which it is associated.

[0088] Substep E52 is implemented so as to classify the PAEs of the plurality of PAEs according to their weighting factor in order of priority on a ranking. The priority PAE(s) are ranked first in the ranking.

[0089] Sub-step E53 comprises the allocation of the first of the PAEs of the classification to the first MIF of the scheduler 7 capable of receiving said first PAE.

[0090] Sub-step E54 comprises updating the parameters of the parameter sets SET1 and SET2 according to the allocation carried out in sub-step E53. Once the update has been carried out, a new iteration can begin without taking into account the PAE which has just been allocated.

[0091] Furthermore, the method P comprises a generation step E7 for generating the installation plan 2 using the scheduling of the PAEs carried out following steps E5.

[0092] In a preferred embodiment, shown in [Fig.4], the method P comprises additional steps implemented after the initialization step E4. These are three phases implemented one after the other and consisting of allocating the PAEs of the software application 3 by successive layers. Each phase is intended for the allocation or optimization of particular PAEs.

[0093] Thus, the method P comprises a forward chaining phase PI (hereinafter phase PI), represented in [Fig. 5]. The phase PI makes it possible to determine a schedule for the PAEs of the plurality of PAEs which are not data transmitters or which have at least one successor PAE.

[0094] Phase PI comprises a first listing step E7, implemented after the initialization step E4. Step E7 comprises the creation of a first list L1 comprising the PAEs of the plurality of PAEs which are non-data transmitters or which have at least one successor PAE.

[0095] In addition, phase PI comprises a first series of steps E8 for allocating the PAEs from the list LL. In the preferred embodiment, the series of steps E8 corresponds to the series of steps E5 of the method P as described above. The series of steps E8 comprises the sub-steps E81, E82, E83 and E84 implemented successively in an iterative manner until all the PAEs from the list L1 are allocated.

[0096] Sub-step E81 comprises the allocation of a weighting factor for each PAE in the list LL. This weighting factor indicates the number of MIFs capable of receiving this PAE and the number of successor PAEs of this PAE.

[0097] Substep E82 is implemented so as to classify the PAEs of the list L1 in order of priority according to their weighting factor. The priority PAEs are the PAEs with the smallest number of MIFs capable of receiving them and / or with the largest number of successor PAEs. They are classified first in the list LL.

[0098] Sub-step E83 comprises the allocation of the first PAE from the list L1 to the first MIF of the scheduler 7 capable of receiving said first PAE.

[0099] Sub-step E84 comprises updating the parameters of the parameter sets SET1 and SET2 of each PAE of the list L1 according to the allocation carried out in sub-step E83. Once the update has been carried out, a new iteration can begin without taking into account the PAE which has just been allocated.

[0100] The PI phase allows to allocate, one by one, the non-data-transmitting PAEs and the PAEs which do not have successor PAEs in order of priority. The PAEs which present the most constraints are allocated in priority to have a maximum number of allocation possibilities. The allocation possibilities for each PAE are evaluated only once, which allows to converge quickly towards a valid scheduling solution.

[0101] The scheduling obtained at the end of phase PI is incomplete since some PAEs remain to be allocated. It is the objective of phase P2 to allocate the rest of the PAEs.

[0102] Phase P2 makes it possible to allocate the terminal data-transmitting PAEs, namely the data-transmitting PAEs without successor PAEs. Phase P2 comprises a listing step E9 to create a second list L2. This list L2 comprises the PAEs of the plurality of PAEs which are data transmitters and which do not have successor PAEs. These are the only PAEs of the plurality of PAEs which have not yet been allocated.

[0103] Furthermore, phase P2 comprises a second series of steps E10 for allocating the PAEs from list L2. The series of steps E10 comprises sub-steps E101, E102, E103, E104 and E105 implemented successively in an iterative manner until all PAEs in list L2 are allocated.

[0104] Substep E101 comprises the allocation of a weighting factor to each PAE in the list L2. This weighting factor indicates the number of MIFs capable of receiving this PAE.

[0105] Substep E102 is implemented to classify the PAEs of the list L2 in order of priority according to their weighting factor. The priority PAE(s) are the PAEs with the smallest number of MIFs capable of receiving them.

[0106] Substep E103 comprises determining the absorption time of the transmissions of the first PAE of the list L2. A transmission absorption time corresponds to a quantity characterizing a PAE / MIF pair. This is the time (in number of MIFs) necessary to transmit all the transmission requests of this PAE if it were associated with this MIF. Also, in substep E103, an absorption time of the transmissions of the first PAE of the list L2 is determined for each MIF capable of receiving said first PAE.

[0107] Sub-step E104 comprises the allocation of the first PAE from list L2 to the MIF capable of receiving said first PAE for which the absorption time of the emissions of said first PAE is minimum.

[0108] Sub-step E105 comprises updating the parameters of the parameter sets SET1 and SET2 according to the allocation carried out in sub-step E104. Once the update has been carried out, a new iteration can begin without taking into account the PAE which has just been allocated.

[0109] An example of allocation of a data-transmitting PAE is shown schematically in [Fig.l 1]. In this example, a PAE(l) and a PAE(2) have been previously allocated during a PL phase. The PAE(3) must be allocated during the P2 phase. It sends three data transmission requests on the first transmission medium of the computer 4. The PAE(3) is allocated to the MIF(l) which has sufficient remaining allocatable time for the execution of the PAE(3). However, in this example, each MIF can only send one data item on the first transmission medium. The PAE(3) therefore generates an investment debt of three MIFs (denoted D(PAE(3), MIF(l)).

[0110] Thus, phase P2 makes it possible to allocate the remaining PAEs to be scheduled after phase PI, namely the terminal data transmitters. As for phase PI, the most restrictive PAEs are allocated first. The scheduling obtained at the end of phase P2 is complete and valid. However, the scheduling may present delays in making the transmission requests available, expressed in number of MIFs) which is more or less significant. Also, phase P2 includes additional steps making it possible to reduce this delay.

[0111] Phase P2 comprises steps E11 and E12 implemented successively after the series of steps E10.

[0112] Step Eli comprises determining a placement debt for each MIF of the scheduler 7. The placement debt of a MIF corresponds to a number of data transmission requests which cannot be satisfied upon execution of this MIF.

[0113] Step E12 is implemented iteratively for all the PAEs in the list L2. It comprises determining, for each PAE in the list L2 allocated following steps E10, at least one MIF capable of receiving the PAE so as to reduce a placement debt of a MIF of the scheduler 7. If such a MIF exists for a given PAE, then this PAE is deleted from the schedule and it is reallocated to the first MIF of the scheduler 7 capable of receiving it, so as to reduce said placement debt.

[0114] Step E12 is implemented until, for each PAE in list L2, there is no MIF in scheduler 7 capable of receiving the PAE in such a way as to reduce an investment debt.

[0115] Thus, phase P2 makes it possible to allocate the terminal data-transmitting PAEs by implementing an initial placement of the PAEs from list L2 then a local optimization around this initial placement so as to reduce the placement debts.

[0116] The steps of phase P2 can be complex. These steps are facilitated by the fact that a large majority of the PAEs have already been allocated during phase PL. Indeed, this makes it possible to limit the number of combinations to be evaluated during phase P2.

[0117] Furthermore, in particular cases, the implementation of the phases PI and P2 can be optimized thanks to the phase advance Ca used to calculate the ideal allocatable time BMJF of the MIFs.

[0118] Indeed, for most software applications, data transmissions are mainly carried out at the end of the PAE cycle (in other words at the end of the PAE graphs). Also, it may be interesting to plan, from the PI phase, to leave more space available at the end of the cycle so as to be able to allocate data-transmitting PAEs there.

[0119] Figure 9 and Figure 10 show examples of PAE scheduling with different phase advance constants Ca.

[0120] In Figure 9, the phase advance constant Ca is chosen equal to 1. This makes it possible to obtain a ratio of 1 between the maximum allocatable time LM1F of the MIFs and the ideal allocatable time BMIF. The PAEs are then distributed over all the MIFs in a homogeneous manner. The margin for evolution Ae is maximum.

[0121] In Figure 10, the phase advance constant Ca is chosen equal to 1.5. This makes it possible to obtain a ratio of 0.5 between the maximum allocatable time LMIF of the MIFs and the ideal allocatable time BMiF. The PAEs are then distributed in priority on the first MIFs, which frees up space on the MIF(3) and MIF(6). The margin for evolution A(, is reduced but the allocations of phase P2 will be simpler.

[0122] For information purposes, an example of a possible optimization of a PAE schedule by the P method is shown in [Fig. 15] and [Fig. 16].

[0123] Figure 15 schematically shows a PAE schedule that is not optimized. Indeed, the execution times of the PAEs allocated to the MIFs of the scheduler are very heterogeneous from one MIF to another. As a result, some MIFs are much more loaded than others, which produces a reduced margin for evolution 4?.

[0124] Furthermore, the method P includes a backward chaining phase P3 (hereinafter phase PI), represented in [Fig.7]. Phase P3 makes it possible to improve the scheduling obtained at the end of phase P2 by reallocating certain PAEs.

[0125] Phase P3 comprises a third listing step E13 to create a third list L3. List L3 comprises the PAEs of the plurality of PAEs which are not data transmitters. These are the PAEs which are likely to be able to improve the scheduling.

[0126] Phase P3 comprises a calculation step E14 to determine the fairness of the scheduling obtained after phase P2. The fairness of the scheduling represents the distribution of the execution time of the PAEs in the scheduler 7. The more the execution time of the PAEs is distributed homogeneously over all the MIFs of the scheduler 7, the more fair it is.

[0127] In the context of the present invention, the scheduling of PAEs in the scheduler 7 is defined by the following two functions: - p corresponding to the maximum execution time allocated to a MIF of scheduler 7; and - o corresponding to the standard deviation from the arithmetic mean of the times allocated on all the MIFs of scheduler 7.

[0128] Improving scheduling consists of making it fairer. A schedule is considered fairer if the maximum execution time p decreases without increasing the standard deviation o or if the standard deviation o decreases without increasing the maximum execution time p.

[0129] Furthermore, phase P3 comprises a third sequence of steps E15 for reallocating PAEs from list L3 so as to improve the fairness of the scheduling. The sequence of steps E15 comprises sub-steps E151, E152, E153 and E154 implemented successively in an iterative manner.

[0130] Substep E151 comprises assigning a weighting factor to each PAE in list L3. The weighting factor indicates the number of MIFs capable of receiving this PAE and the number of predecessor PAEs of this PAE.

[0131] Substep E152 is implemented so as to classify the PAEs of the list L3 in order of priority according to their weighting factor. The priority PAEs are PAEs with the greatest number of MIFs able to receive them or PAEs with the greatest number of predecessor PAEs.

[0132] Substep E153 comprises determining at least one MIF of the scheduler 7 capable of receiving the first PAE from the list L3 so as to improve the fairness of the scheduling. If such a MIF exists, the first PAE from the list L3 is reallocated to the first MIF capable of receiving it so as to improve the fairness of the scheduling. If no MIF makes it possible to reallocate the PAE so as to improve the fairness of the scheduler, the latter is deleted from the list L3.

[0133] Sub-step E154 comprises updating the parameters of the parameter sets SET1 and SET2 according to the reallocation carried out in sub-step El53. The fairness of the scheduling is also updated.

[0134] The sequence of steps E15 is implemented until the list L3 is empty of PAEs. This means that all the PAEs of the initial list L3 have been evaluated to improve the fairness of the scheduling and, if necessary, reallocated.

[0135] Thus, phase P3 makes it possible to obtain a schedule that is as fair as possible. The margin for the evolution of such a schedule is maximum.

[0136] A simplified example of implementation of phases PI, P2 and P3 of method P is illustrated by [Fig.11], [Fig.12] and [Fig.13]. This involves creating a schedule for the six PAEs represented on graphs G1 and G2. In this example, PAE(3) and PAE(6) each transmit a piece of data. The computer 4 is able to transmit a piece of data at the end of each MIF.

[0137] The implementation of the PI phase makes it possible to obtain a schedule represented schematically in [Fig.12]. Indeed, only PAE(l), (2), (4) and (5) are allocated because they are the non-data-transmitting PAEs. In addition, PAE(l) and (4) have a greater number of successors than PAE(2) and (5). PAE(l) and (4) are therefore allocated first in the scheduler 7.

[0138] The implementation of phase P2 makes it possible to obtain a scheduling represented schematically in [Fig. 12]. PAEs(3) and (6) are terminal data transmitters. They have the same number of predecessor PAEs. They are therefore allocated without any particular order of priority.

[0139] The allocation of PAE(3) and (6) to the MIF(2) was possible but it generates an investment debt for the MIF(2). Indeed, the MIF(2) could transmit the data of the PAE(3) but not that of the PAE(6) which would have been transmitted to the MIF(3). The ordering shown in [Fig. 12] does not generate investment debt.

[0140] The implementation of phase P3 makes it possible to obtain a schedule represented schematically in [Fig. 13]. The PAE(5) can be executed at the MIF(3) without prejudice to the operation of the software application 3. In addition, this allocation would improve the fairness of the schedule. The PAE(5) is therefore reallocated to the MIF(2).

[0141] For information purposes, an example of a possible optimization of a PAE schedule by the P method is shown in [Fig. 15] and [Fig. 16].

[0142] Figure 15 schematically shows a PAE schedule that is not optimized. Indeed, the execution times of the PAEs allocated to the MIFs of the scheduler are very heterogeneous from one MIF to another. As a result, some MIFs are much more loaded than others, which produces a reduced margin for evolution 4?.

[0143] Figure 16 schematically shows the scheduling of the same PAEs as those in Figure 5 which is optimized. In this scheduling the execution times of the PAEs are distributed equally over all the MIFs of the scheduler. Consequently, the margin for evolution for this scheduling is maximum.

[0144] System 1 as described above, implementing method P and method M, has many advantages. In particular: - it makes it possible to obtain, in a simple and automatic manner, an ordering of the plurality of PAEs of the software application 3; - it makes it possible to obtain scheduling with reduced power and / or computing time, to the extent that the number of PAE allocation combinations evaluated by the P method is reduced; - it makes it easy to obtain an optimized scheduling of the plurality of PAEs, i.e. a scheduling that is as fair as possible, therefore with a margin for maximum evolution; - it allows to optimize the capacities of the calculator 4 in terms of PAE allocation and to maximize its lifespan. Indeed, the possibility of adding a maximum of additional PAE during the life of the calculator 4 avoids having to resort prematurely to a more powerful calculator.

Claims

Claims

1. Method for generating an installation plan (2) of a software application (3) in a computer (4), the installation plan (2) comprising at least one scheduling of a plurality of elementary application processes (PAE) for a scheduler (7) of the computer (4) in which the software application (3) is likely to be installed, each elementary application process (PAE) of the plurality of elementary application processes (PAE) being intended to be allocated to at least one time unit (MIF) of a time cycle (MAF) of the scheduler (7) of the computer (4), said method being characterized in that it comprises at least the following successive steps: an acquisition step (E3) for acquiring input parameters (9) comprising at least parameters characterizing the calculator (4) and parameters characterizing the plurality of elementary application processes (PAE); an initialization step (E4) for establishing, from the input parameters (9), at least a first set of parameters (SET1) characterizing each time unit (MIF) of the calculator (4) and a second set of parameters (SET2) characterizing each elementary application process (PAE) of the plurality of elementary application processes (PAE); a series of successive steps (E5), implemented iteratively until all the elementary application processes (EAPs) of the plurality of elementary application processes (EAPs) are scheduled, comprising: • a weighting sub-step (E51) for assigning, to each elementary application process (PAE) of the plurality of elementary application processes (PAE), a weighting factor defined from parameters of the second set of parameters (SET2) of the elementary application process (PAE) with which it is associated; • a classification sub-step (E52) for classifying the elementary application processes (PAE) of the plurality of elementary application processes (PAE) according to their weighting factor by order

2. priority on a ranking, the priority elementary application process(es) (PAE) being ranked first in the ranking; • an allocation sub-step (E53) for allocating the first of the elementary application processes (PAE) of the classification to the first time unit (MIF) of the scheduler capable of receiving said first elementary application process (PAE); • an update sub-step (E54) for updating the parameters of the first set of parameters (SET1) of each time unit (MIF) and the parameters of the second set of parameters (SET2) of each elementary application process (PAE) according to the allocation carried out in the allocation sub-step (E53); - a generation step (E7) to generate the installation plan (2) for the computer (4) from the scheduling of the elementary application processes (PAE) carried out following steps (E5). Method according to claim 1, characterized in that it comprises at least the following successive phases implemented after the initialization step (E4): - a forward chaining phase (PI) for determining a schedule for the elementary application processes (EAPs) of the plurality of elementary application processes (EAPs) which are non-data transmitters or the elementary application processes (EAPs) of the plurality of elementary application processes (EAPs) which have at least one successor elementary application process (EAPs); - a phase (P2) of minimum debts to determine a scheduling for the elementary application processes (PAE) of the plurality of elementary application processes (PAE) which are data transmitters and which do not have a successor elementary application process (PAE); - a backward chaining phase (P3) to determine a new schedule for at least one application process

3. non-data-transmitting (PAE) allocated to the forward chaining phase (PI), if this new scheduling improves scheduling fairness. Method according to claim 2, characterized in that the forward chaining phase (PI) comprises at least the following successive steps: - a first listing step (E7), implemented after the initialization step (E4), to create a first list (L1) comprising the elementary application processes (PAE) of the plurality of elementary application processes (PAE) which are non-data transmitters or which have at least one successor elementary application process (PAE); - a first series of steps (E8) corresponding to the series of steps (E5) and implemented iteratively for the elementary application processes (PAE) of the first list (Ll) and comprising the following successive steps: • a weighting sub-step (E81) for assigning, to each elementary application process (PAE) of the first list (L1), a weighting factor indicating the number of time units (MIF) capable of receiving this elementary application process (PAE) and the number of elementary application processes (PAE) successors of this elementary application process (PAE); • a classification sub-step (E82) for classifying the elementary application processes (PAE) of the first list (Ll) in order of priority according to their weighting factor, the priority elementary application processes (PAE) being the elementary application processes (PAE) with the smallest number of time units (MIF) capable of receiving them and / or with the largest number of successor elementary application processes (PAE); • an allocation sub-step (E83) to allocate the first elementary application process (PAE) from the first list (Ll) to the first time unit (MIF) of the scheduler (7) capable of receiving said first elementary application process (PAE); an update sub-step (E84) for updating the parameters of the first set of parameters (SET1) of each time unit (MIF) and the parameters of the second set of parameters (SET2) of each elementary application process (PAE) of the first list (L1) according to the allocation carried out in the allocation sub-step (E83); the first series of steps (E8) being implemented until all the elementary application processes (EAPs) of the first list (Ll) are allocated.

4. Method according to any one of claims 2 and 3, characterized in that the phase (P2) of the minimum debts comprises at least the following successive steps: a listing step (E9) for creating a second list (L2) comprising the elementary application processes (PAE) of the plurality of elementary application processes (PAE) which are data transmitters and which do not have a successor elementary application process (PAE); a second series of steps (E10) comprising at least the following successive steps: • a weighting sub-step (E101) to assign, to each elementary application process (PAE) of the second list (L2), a weighting factor indicating the number of time units (MIF) capable of receiving this elementary application process (PAE); • a classification sub-step (E102) for classifying the elementary application processes (PAE) of the second list (L2) in order of priority according to their weighting factor, the priority elementary application processes (PAE) being the elementary application processes (PAE) with the smallest number of time units (MIF) capable of receiving them; • a sub-step (E103) of determination for de

5. terminate, for the first elementary application process (PAE) of the second list (L2), a transmission absorption time for each time unit (MIF) capable of receiving said first elementary application process (PAE); • an allocation sub-step (El04) for allocating the first elementary application process (PAE) from the second list (L2) to the time unit (MIF) capable of receiving said first elementary application process (PAE) for which the transmission absorption time is minimum; • an update sub-step (E105) for updating the parameters of the first set of parameters (SET1) of each time unit (MIF) and the parameters of the second set of parameters (SET2) of each elementary application process (PAE) according to the allocation carried out in the allocation sub-step (E104); the second series of steps (E10) being implemented until all the elementary application processes (EAPs) of the second list (L2) are allocated. Method according to claim 4, characterized in that the phase (P2) of the minimum debts further comprises the following successive steps, implemented after the second series of steps (E10): - a determination step (El 1) to determine, for each time unit (MIF) of the scheduler (7), a placement debt corresponding to a number of data transmission requests which cannot be satisfied upon execution of this time unit (MIF); - a replacement step (El2) to determine, iteratively for each elementary application process (PAE) of the second list (L2) allocated to the second series of steps (E10), at least one time unit (MIF) capable of receiving the elementary application process (PAE) so as to reduce the investment debt and, if such a time unit (MIF)

6. exists, to remove the elementary application process (PAE) from the scheduling and to allocate it to the first time unit (MIF) of the scheduler (7) capable of receiving the elementary application process (PAE) so as to reduce the placement debt; the replacement step (E12) being implemented until, for each elementary application process (PAE) of the second list (L2), there is no time unit (MIF) of the scheduler (7) capable of receiving the elementary application process (PAE) so as to reduce the placement debt. Method according to one of claims 4 and 5, characterized in that the backward chaining phase (P3) comprises at least the following successive steps: - a third listing step (E13) to create a third list (L3) comprising the elementary application processes (PAE) of the plurality of elementary application processes (PAE) which are non-data transmitters; - a calculation step (E14) to determine the fairness of the ordering obtained after the forward chaining phase and the minimum debt phase; - a third series of successive steps (E15), implemented iteratively, comprising: • a weighting sub-step (El51) to assign, to each elementary application process (PAE) of the third list (L3), a weighting factor indicating the number of time units (MIF) capable of receiving this elementary application process (PAE) and the number of elementary application processes (PAE) predecessors of this elementary application process (PAE); • a classification sub-step (E152) to classify the elementary application processes (PAE) of the third list (L3) in order of priority according to their weighting factor, the priority elementary application processes (PAE) being the elementary application processes (PAE) presenting

7. the greatest number of time units (MIF) capable of receiving them and / or the elementary application processes (PAE) with the greatest number of predecessor elementary application processes (PAE); • a reallocation sub-step (E153) for determining at least one time unit (MIF) of the scheduler (7) capable of receiving the first elementary application process (PAE) of the third list (L3) so as to improve the fairness of the scheduling and, if such a time unit (MIF) exists, for reallocating the first elementary application process (PAE) of the third list (L3) to the first time unit (MIF) capable of receiving it so as to improve the fairness of the scheduling, otherwise for removing said first elementary application process (PAE) from the third list (L3); • an update sub-step (El54) to update the fairness of the current schedule as well as the parameters of the first set of parameters (SET1) of each time unit (MIF) and the parameters of the second set of parameters (SET2) of each elementary application process (PAE) according to the reallocation carried out in the reallocation sub-step (E153), the third series of steps (E15) being implemented until the third list (L3) is empty of elementary application processes (EAP). Method according to any one of claims 1 to 6, characterized in that a time unit (MIF) of the scheduler (7) is capable of receiving an elementary application process (PAE) if the execution time of said elementary application process (PAE) is less than or equal to an allocatable time limit forming part of the parameter set (SET1) of this time unit (MIF), the allocatable time limit corresponding to an ideal allocatable time defined by the following equation: „ ^UwPAEt^PAEU)) in which: &M!F~ Nmip - i is a positive integer; - n is the total number of elementary application processes (PAE) of the software application (3); - is the number of time units (MIF) in a time cycle (MAF) of the scheduler (7); ■ WpAE(i) is the worst execution time of the elementary application process i (PAE(i)); - NpAE(ï) is the number of executions of the elementary application process i (PAE(i)) on a time cycle (MAF); and - Ca is a predefined phase advance constant.

8. Method according to claim 7, characterized in that, if at the end of a step of allocation of an elementary application process (PAE) no time unit (MIF) of the scheduler (7) is capable of receiving said elementary application process (PAE), the allocation step is implemented again with a new allocatable time limit corresponding to the maximum allocatable time of each time unit (MIF).

9. Method for installing a software application in a computer, characterized in that it comprises at least the following successive steps: - a generation step (El) for implementing the method (P) according to any one of claims 1 to 8 so as to generate the installation plan (2) comprising an ordering of the plurality of elementary application processes (PAE) forming the software application (3) to be installed in the computer (4); - an installation step (E2) for installing the software application (3) in the computer (4) using the installation plan (2).

10. Device for generating an installation plan for a software application in a computer, said installation plan (2) comprising at least one scheduling of a plurality of elementary application processes (PAE) forming said software application (3), the device (5) being characterized in that it comprises at least: a first acquisition unit (8) configured to acquire a set of input parameters (9) comprising at least parameters characterizing the computer (4) and parameters characterizing the plurality of elementary application processes (PAE); an initialization unit (11) configured to establish, from the input parameters (9), at least a first set of parameters (SET1) associated with each time unit (MIF) of the scheduler (7) of the computer (4) and a second set of parameters (SET2) associated with each elementary application process (PAE) of the plurality of elementary application processes (PAE); a first calculation unit (12) configured to create, iteratively, a schedule of the plurality of elementary application processes (EAP) by: • assigning, to each elementary application process (PAE), at least one weighting factor defined from parameters of the second set of parameters (SET2) of the elementary application process (PAE) with which it is associated; • classifying the elementary application processes (EAPs) of the plurality of elementary application processes (EAPs) according to their weighting factor in order of priority on a ranking, the priority elementary application process(es) (EAPs) being ranked first in the ranking; • allocating the first elementary application process (PAE) of the classification to the first time unit (MIF) of the scheduler (7) capable of receiving said first elementary application process (PAE); • updating the parameters of the first set of parameters (SET1) of each time unit (MIF) and the parameters of the second set of parameters (SET2) of each elementary application process (PAE) according to the allocation carried out; a second computing unit (13) configured to generate the installation plan (2) of the software application (3), using the scheduling of elementary application processes (PAE) created by the first computing unit (12).

11. System for installing a software application in a computer from an installation plan, characterized in that it comprises at least: - a device according to claim 10 configured to generate the installation plan (2) of the software application (3) to be installed in the computer (4); - a second acquisition unit (15) configured to acquire at least a plurality of elementary application processes (PAE) forming the software application (3) and the installation plan (2); - an execution unit (16) configured to execute the installation plan (2) so as to install the software application (3) in the computer (4) using the installation plan (2).