Code algorithme d'ordonnancement EDF
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Code algorithme d'ordonnancement EDF



  1. #1
    invite19a844bd

    Code algorithme d'ordonnancement EDF


    ------

    Bonjour,

    Ci-dessous un code de l'algorithme d'ordonnancement EDF. J'ai besoin de programmer un réseau de capteurs en introduisant l'EDF et je trouve que c'est une bonne plateforme pour commencer.

    Je connais le principe de fonctionnement de l'EDF, mais, en lisant ce code, j'arrive pas à bien comprendre le principe suivi. Je suis débutante en programmation, pourriez-vous m'aider?

    Code:
    #include<iostream>
    using namespace std;
    
    class EDF
    {
        int releasetime;
        int executiontime;
        int deadlinetime;
        int relativedeadline;
        int startingtime;
        int x[3];
        int e[3];
        int z[3];
        int d[3];
    
        public:
        void task_entering();
        void task_arrange();
    };
    
    
        void EDF::task_entering()
    
        {
            int slack,period;
            cout<<"Enter your relative dedline :\n";
            cin>>relativedeadline;
           for(int i=0;i<3;i++)
        {
            cout<<"release time is :\n";
            cin>>releasetime;
    
            cout<<"deadline time is:\n";
            cin>>deadlinetime;
            d[i] = deadlinetime;
            period = deadlinetime - releasetime;
            x[i] = period;
    
            cout<<"execution time is :\n";
            cin>>executiontime;
            e[i] = executiontime;
            slack = deadlinetime - executiontime;
            z[i] = slack;
        }}
        
    
        void EDF::task_arrange()
    
        {
            int temp,y[3];
    
            for(int j=0;j<=2;j++)
        {
            y[j]=x[j];
        }
    
        for (int j=0; j<2; j++)
         {
               for(int k = (j+1); k < 3; k++)
              {
                     if (y[j] < y[k])
                    {
                             temp= y[j];
                             y[j] = y[k];
                             y[k] = temp;
                             temp= z[j];
                             z[j] = z[k];
                             z[k] = temp;
                             temp= d[j];
                             d[j] = z[k];
                             d[k] = temp;  
                    }
               }
          }
    
          for(int j=2, k=1;j>=0;j--,k++)
          {
              cout<<"The Task with deadline period of "<<z[j]<<" will be T"<<k<<"\n";
          }
    
          int sum = 0;
          startingtime = 0;
    
          while(startingtime <= relativedeadline){
    
        for(int j=0;j<=2;j++)
        {
        
            if(y[2] == x[j]){
    
            if(d[2] < d[1] && d[2] < d[0]){
    
            if(startingtime <= relativedeadline){
    
            sum = startingtime + e[j];
            if(sum >= relativedeadline)
            cout<<"("<<startingtime<<"-"<<relativedeadline<<",T"<<j+1<<")\t";
            else
            cout<<"("<<startingtime<<"-"<<startingtime + e[j]<<",T"<<j+1<<")\t";
            startingtime = sum;
            d[2] = d[2] * 2;}}}
    
    
            else if(y[1] == x[j]){
    
            if(d[1] < d[2] && d[1] < d[0]){
    
            if(startingtime <= relativedeadline){
    
            sum = startingtime + e[j];
            if(sum >= relativedeadline)
            cout<<"("<<startingtime<<"-"<<relativedeadline<<",T"<<j+1<<")\t";
            else
            cout<<"("<<startingtime<<"-"<<startingtime + e[j]<<",T"<<j+1<<")\t";
            startingtime = sum;
            d[1] = d[1] * 2;}}}
    
    
            else if(y[0] == x[j]){
    
            if(d[0] < d[1] && d[0] < d[2]){
    
            if(startingtime <= relativedeadline){
    
            sum = startingtime + e[j];
            if(sum >= relativedeadline)
            cout<<"("<<startingtime<<"-"<<relativedeadline<<",T"<<j+1<<")\t";
            else
            cout<<"("<<startingtime<<"-"<<startingtime + e[j]<<",T"<<j+1<<")\t";
            startingtime = sum;
            d[0] = d[0] * 2;}}}
            
            
        }
    
        }}
    
    main()
    {
        EDF CPU;
        Repeat:
        CPU.task_entering();
        CPU.task_arrange();
        cout<<endl;
    
            goto Repeat;
    }

    -----

  2. #2
    f6bes

    Re : Code algorithme d'ordonnancement EDF

    Bjr à toi,
    Je suis NUL en programmation et aussi in inglich !
    Donc pas d'espoir de mon coté pour une réponse !
    C'est juste la curiosité qui m'anime: c'est quoi un: "ordonnancement...EDF ?
    Ca veut dire QUOI: "en introduisant...EDF"

    Tout ça est assez " nébuleux" pour moi ?
    Bon WE
    La mesquinerie et rabrouement est un indicateur d'état d'esprit de l'auteur.

  3. #3
    PIXEL

    Re : Code algorithme d'ordonnancement EDF


  4. #4
    DAUDET78

    Re : Code algorithme d'ordonnancement EDF

    Ben , on est au courant ..... maintenant
    J'aime pas le Grec

  5. A voir en vidéo sur Futura
  6. #5
    f6bes

    Re : Code algorithme d'ordonnancement EDF

    Que nenni, plus tot...merci Pixel !
    73 Bon We
    La mesquinerie et rabrouement est un indicateur d'état d'esprit de l'auteur.

  7. #6
    PIXEL

    Re : Code algorithme d'ordonnancement EDF

    mais , très honnêtement... j'y pige rien !

  8. #7
    gienas
    Modérateur

    Re : Code algorithme d'ordonnancement EDF

    Bonjour à tous

    Citation Envoyé par PIXEL Voir le message
    ... très honnêtement... j'y pige rien !
    Au moins, ton lien, permet de comprendre que le sigle EDF, utilisé ici, n'a strictement rien à voir avec un fournisseur d'énergie hexagonal, ce que j'avais pensé a priori.

    J'en conclus que cette question n'a pas sa place en électronique. Je déplace.

  9. #8
    Jack
    Modérateur

    Re : Code algorithme d'ordonnancement EDF

    Il faut reconnaître que pour le commun des mortels (français), EDF évoque tout autre chose.

    Ce sujet ne concerne en rien l'électronique. Discussion transférée dans le bon forum.

    Edit: grillé par gienas

  10. #9
    gienas
    Modérateur

    Re : Code algorithme d'ordonnancement EDF

    Citation Envoyé par Jack Voir le message
    ... ... Discussion transférée dans le bon forum.
    Après transfet à nouveau, je pense que c'est le meilleur (forum), en tout cas le plus adapté à la question, qui aurait mérité un peu plus de précisions.

  11. #10
    invite3474bdd4

    Re : Code algorithme d'ordonnancement EDF

    Salut, le code est un peut long à lire et ce surtout car il n'y a pas de commentaire.......

    Comme le dit EDF par son acronyme, c'est la tâche qui a la date de fin la plus proche qui passe en priorité.

    Donc tu as 3 tâches, tu donne la date de création et la date de fin pour chacune. Ça c'est la fonction "task_entering()"

    Puis tu lance la deuxième fonction, celle ce commence par calculer la durée de vie de chaque tâche et les trie avec la tâche qui a la durée de vie la plus grande en premier.

    Ensuite, tu as en mémoire une heure de début, une heure de fin, tant que ton heure de début n'est pas arrivé à l'heure de fin tu avance et exécute la prochaine tâche.
    La ce trouve un "if" un peut long Qui va choisir la tâche la plus prioritaire.

    Je vais retrouver mes cours et voir si je n'ai pas des explications plus claire que ce code non commenté.

  12. #11
    invite19a844bd

    Re : Code algorithme d'ordonnancement EDF

    Citation Envoyé par f6bes Voir le message
    Bjr à toi,
    Je suis NUL en programmation et aussi in inglich !
    Donc pas d'espoir de mon coté pour une réponse !
    C'est juste la curiosité qui m'anime: c'est quoi un: "ordonnancement...EDF ?
    Ca veut dire QUOI: "en introduisant...EDF"
    c'est pas grave ^^

    Alors, Dans les systèmes d'exploitation, l’ordonnanceur désigne le composant du noyau du système d'exploitation choisissant l'ordre d'exécution des processus sur les processeurs d'un ordinateur (source Wikipedia).

    L'EDF "Earliest Deadline First" est l'un des algorithmes d'ordonnancement en temps réel qui assurent qu'une certaine tâche sera terminée dans un délai donné. Cela est indispensable surtout dans les systèmes embarqués.

    Pour plus d'informations, vous pouvez consulter le lien posté par PIXEL.

  13. #12
    invite19a844bd

    Re : Code algorithme d'ordonnancement EDF

    Citation Envoyé par Lavigne958 Voir le message
    Salut, le code est un peut long à lire et ce surtout car il n'y a pas de commentaire.......
    Oui effectivement, c'est un code que j'ai trouvé sur le net.

    Donc tu as 3 tâches, tu donne la date de création et la date de fin pour chacune. Ça c'est la fonction "task_entering()"...
    Merci beaucoup pour l'explication. J'ai encore des ambiguïtés au niveau de la 2ème fonction si vous pourrez me donner plus d'explications.

  14. #13
    Bluedeep

    Re : Code algorithme d'ordonnancement EDF

    Citation Envoyé par samna Voir le message
    Cela est indispensable surtout dans les systèmes embarqués..
    Non, mais ce l'est dans les systèmes temps réels, où le temps de traitement doit être si possible déterministe; (que les systèmes en question soient embarqués ou non).

  15. #14
    Ludwig1

    Re : Code algorithme d'ordonnancement EDF

    Citation Envoyé par samna Voir le message
    Bonjour,

    Ci-dessous un code de l'algorithme d'ordonnancement EDF. J'ai besoin de programmer un réseau de capteurs en introduisant l'EDF et je trouve que c'est une bonne plateforme pour commencer.
    Salut,
    le réseau de capteurs sert-il dans des boucles d'asservissements?

    Cordialement

    Ludwig

Discussions similaires

  1. Problème politique d'ordonnancement sur RPi
    Par invite19e61be6 dans le forum Programmation et langages, Algorithmique
    Réponses: 24
    Dernier message: 24/03/2016, 13h02
  2. Algorithme Transformation Binaire naturel en code gray sur Alg'exec
    Par invite1ea16ce0 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 22/01/2014, 16h43
  3. ordonnancement des tâches
    Par invitebbbd1bc2 dans le forum Électronique
    Réponses: 0
    Dernier message: 18/04/2012, 23h58
  4. Combinaison et ordonnancement
    Par invite438efacc dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 27/04/2009, 18h03
  5. biométrie: algorithme; code barre
    Par invitee625533c dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 20/02/2008, 18h24