Multitâche preemptif - exécutez plusieurs tâches en même temps

Bonjour à tous,

J'aimerais vous exposer mon projet "OS48" qui découle d'un projet que j'ai réalsié l'an dernier "OS47".

J'ai créé un noyau sous forme de lib c++ qui permet d'exécuter plusieurs tâches à la fois. Le noyau a spécialement été conçu pour fonctionner sur les cartes Arduino UNO et MEGA.

Vous assignez à une tâche une fonction, et le noyau s'occupe d’exécuter tout ça en parallèle sans ou avec votre intervention.

Voici quelques unes des fonctionnalités apportées :

  • 5 algos d'ordonnancement au choix

  • détection des débordements de mémoire

  • gestion des états des tâches

  • semaphore, barrière, mutex, ...

  • système de boîte à lettres de messages pour chaque tâche

  • software timers

Le projet a un site dédié : http://www.rtos48.com/. Vous pourrez y trouver une documentation complète, des tutoriaux pour démarrer et comprendre les dessous.

Le tout est sous licence MIT. Le code source se trouve dans le zip qui peut être importé directement dans votre sketch.

Bon usage,

Yves

Bonjour,

Les caractéristiques semblent très intéressantes (multitâches préemptif). Le vais essayer dès que j'aurais un peu de temps.

dommage, le site est en anglais, j'ai téléchargé la version OS48.
je n'ose pas la décompiler de peur d'y trouver encore de l'anglais.
je ne suis pas un spécialiste de cette langue et c'est toujours un très gros effort pour moi.
je pense que je ne suis pas le seul.

je regarderais lorsque je me serai motivé :slight_smile:

merci du partage. :slight_smile:

Salut,

Travail impressionnant bravo :slight_smile: Je ne sais pas encore si j'aurais besoin d'un tel outil pour mes petits projets mais je vais le tester au plus vite. Le site aussi est super bien documenté, même avec l'anglais ça passe tout seul, au moins pour l'utilisation.

Encore bravo

Merci !

Et ce n'est que le début, j'ai encore pas mal d'idées mais je dois faire attention à ce que ça reste simple et pas trop lourd pour du "Arduino". Une des évolutions sera d'assurer le support du Arduino Due (processeur ARM donc architecture totalement différente).

Bonne utilisation au cas où.

Bonjour à tous,

J'ai livré un nouvelle version 1.10 disponible sur le site http://www.rtos48.com.

Les nouveautés sont:

  • gestion de 5 priorités au lieu de 3
  • utilisation plus simple de la messagerie entre les tâches
  • les messages peuvent transporter des données
  • un memory pool pour accélérer les allocations dynamiques
  • des primitives de non interruption pour les blocs de code critiques
  • des fonctions de statistique sur le temps processeur utilisé par chaque tâche ou de la mémoire utilisée
  • les objets "work" (qui sont l'équivalent des Future en java ou des Task en c#) peuvent être annulés et contiennent le résultat de l'opération
  • autres petites fonctionnalités et bugs corrigés

Enjoy

Bonjour,

ça à vraiment l' air intéressant, dommage que ce soit en anglais...