La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et.

Présentations similaires


Présentation au sujet: "NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et."— Transcription de la présentation:

1 NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et communication Systèmes d’exploitation temps-réel Lectures: Chapitres 3 et 4 (Real-Time Systems, Liu) INF-1019 Programmation en temps réel

2 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des thread »Les principaux objets de synchronisation de l'API WIN32 sont les suivants: »OBJETS DE SYNCHRONISATION: »ÉVÉNEMENTS »Les mutex et sémaphores sont en général utilisés pour contrôler l'accès à des données, alors que les événements le sont pour signaler la fin d'une opération (Richter p 382). »Il existe deux types d'objets événements : un événement de réinitialisation manuelle, pour signaler simultanément à plusieurs thread qu'une opération s'est terminée. »Aussi, un événement de réinitialisation automatique, pour signaler à un seul thread la fin d'une opération.

3 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des thread »Les principaux objets de synchronisation de l'API WIN32 sont les suivants: »OBJETS DE SYNCHRONISATION: »ÉVÉNEMENTS (suite) »En utilisant ce mode de synchronisation un thread d’acquisition (lecture) pourrait lire des données dans un fichier et les placer dans une mémoire tampon. »Une fois les données lues, le thread de lecture signale, à l'aide d'un événement, à un deuxième thread qu'il peut traiter ces données. »Lorsque ce second thread a fini son traitement, il signale au premier qu'il peut lire le bloc de données suivant.

4 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des thread »Les principaux objets de synchronisation de l'API WIN32 sont les suivants: »OBJETS DE SYNCHRONISATION: »ÉVÉNEMENTS (suite) »Le programme File_IO.c, fournie en exemple, utilise un événement comme objet de synchronisation. »Dans cet exemple, le thread d'acquisition de données remplie un tampon circulaire de 4Ko. »Lorsque les deux premiers kilo octets sont écrits dans le tampon circulaire le thread d’acquisition signale l'événement "bufferReady" qui réveille le thread d'écriture. »Pendant ce temps le thread d'acquisition continue d'envoyer des données dans la deuxième partie du tampon. Lorsque cette deuxième partie est pleine il signale l'événement "bufferReady", et se positionne au début du buffer.

5 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: Structures globales)

6 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: WinMain())

7 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: Structures globales)

8 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: AcquisitionThread())

9 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: AcquisitionThread())

10 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: AcquisitionThread())

11 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: AcquisitionThread())

12 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: DisplayThread())

13 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: EcritureThread())

14 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: Dlg_OnInitDialog())

15 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: Dlg_OnInitDialog())

16 Concepts de processus/thread concurrents Processus/thread concurrents WINDOWS NT (2000) (API WIN32) –Synchronisation des threads (Programme File_IO: Dlg_OnInitDialog())

17 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels –Les SE (OS) conventionnels comme DOS, Windows ou Linux, ont été développés dans un optique d’utilisation générale. –Ces SE comportent donc un grand nombre de fonctionnalités disparates et complexes. –Ces SE ont aussi tous comme but de favorise l’interaction avec l’utilisateur, en lui offrant des interfaces conviviales et un temps de réponse respectable. –Pour ces raisons, ils sont moins bien adaptés à la réalisation de systèmes temps réel. –Par exemple, le temps moyen de réponse à une interruption sous Windows 2000 est de quelques microsecondes, mais ce temps de réponse peut dans certains cas dépasser 200 millisecondes.

18 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels (DOS) –Le problème du DOS avec le temps réel, c'est qu'il est mono-tâche. –De plus, l'interruption logicielle INT 21 qui est utilisée pour accéder aux services offerts par le DOS n'est pas réentrante. –Il est cependant possible d’utiliser des PC ne faisant que de l'acquisition de données dans un système distribué. Le PC (DOS) n'exécute alors qu'une seule tâche qui consiste en une boucle infinie qui lit des données (Polling) et les envoient ensuite sur le réseau vers des serveurs (Interface homme/machine et archivage de données). –Pour ce type de programme un PC avec DOS offre un "scan time" déterministe et plus rapide que la même machine exécutant Windows NT. –Il est aussi possible de développer un noyau multitâche sur un PC ayant le DOS comme système d'exploitation. Cependant, tous les appels aux services du DOS doivent se faire à l'aide d'une section critique car l’interruption INT 21 est non réentrante. Voir le livre "Real-time systems. Raymond J.A. Buhr QA76.54B84 " pour plus de détails sur le développement d'un tel noyau.

19 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels (UNIX) –Le système UNIX étant multitâche, semble à première vue un bon candidat pour les applications en temps réel. –On doit cependant prendre en considération les points suivants: »Les processus Unix ne peuvent être préemptés tant qu'ils sont en mode kernel (noyau) »Les processus Unix sont coûteux en terme de gestion de contexte »L'utilisation des mécanismes inter-process est peu adaptée pour une application en temps réel –On peut cependant se procurer sur le marché des systèmes d'exploitation Unix adaptés pour le temps réel comme QNX, POSIX temps réel, et RTLINUX (RealTime Linux).

20 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels (UNIX) –Les fabricants de ces produits doivent habituellement réécrire le noyau (Kernel) afin d'y inclure des points de préemption ou pour développer des processus légers qui ont un temps de changement de contexte moins élevé. – Malgré ces contraintes il est possible de trouvé des applications temps réel utilisant un système Unix standard. –Comme exemple, je pourrais citer l'utilisation de serveurs Unix dans un système de contrôle distribué. Il faut noter que ces serveurs ne servent que d'interface homme/machine et ne font pas d'acquisition de données.

21 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels (WIN NT) –Comme déjà mentionné, même s'il est surtout utilisé dans les applications bureautiques, Windows NT offre certaines fonctionnalités utiles pour les applications en temps réel. –On le retrouve ainsi dans des applications où auparavant la seule alternative était les systèmes d'exploitation spécialisés ou propriétaires. –Avec Windows NT, la notion de temps réel s’est élargie, et ce en faisant la distinction entre le "soft real time" (temps réel souple) et le "hard real time" (temps réel dur). –Windows NT se place dans le domaine du temps réel souple avec un temps de réponse aux interruptions compris entre 1 et 20ms. –Le noyau multitâche a été conçu pour optimiser le temps de réponse de la majorité des applications. Cependant, sa façon de traiter les interruptions peut causer certains problèmes.

22 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation conventionnels (WIN NT) –Ainsi un processus prioritaire peut être interrompu par une interruption provoqué par la souris. –Cependant, une fois l'interruption enregistrée dans le système, le contrôle reviendra au processus le plus prioritaire. –On peut palier aux inconvénients du temps réel souple de Windows NT en se procurant des extensions temps réel appelées RTXAPI. –On peut citer INtime de la société Radisys et RTX for Windows NT de Venturcom. –Le principe d'utilisation de ces extensions est de séparer la partie temps réel rigide et le partie souple. L'extension s'occupera du temps réel rigide et Windows NT du temps réel souple.

23 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation TR –Les fonctionnalités spécifiques » Contrôle granulaire des priorités associées aux tâches (processus) et aux fils d’exécution (threads) et sur l’ordonnancement. » Contrôle sur la gestion du système de mémoire virtuelle. » Mécanismes de synchronisation avancés. » Mécanismes de communication entre tâches évolués et efficaces. » Gestion de ressources matérielles multiples et partagées. » Gestion des systèmes multiprocesseurs. » Gestion des dispositifs réseaux.

24 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation TR –Les critères de choix de RTOS » Temps de passage d’une tâche (processus) à une autre. » Temps de passage d’un fil d’exécution (thread) à un autre. » Temps de réponse à une interruption. »Principalement déterminé par la durée maximale de désactivation des interruptions. »Souvent exprimé à différents niveaux.

25 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation TR –QNX »Architecture Micro-Kernel. » Basé sur le mode de communication passage de messages. » Maintenant gratuit pour les utilisations à but non lucratif.

26 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation TR –RTLinux » Gratuit, tout comme Linux. » La partie temps réel s’exécute à même le noyau de Linux »Technique de communication particulière entre la partie temps réel et les tâches « normales ». »Les fonctionnalités de Linux sont toujours présentes.

27 Concepts de processus/thread concurrents Systèmes d’exploitation temps-réel Les systèmes d’exploitation TR –Windows CE » Présent sur plusieurs dispositifs de communication sans fil. » Installer aussi sur des micro-contrôleurs » Offre une grande facilité de communication avec les autres systèmes Windows (DCOM).


Télécharger ppt "NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et."

Présentations similaires


Annonces Google