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.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Le Concept du programme enregistré
TECHNOLOGIE DES ORDINATEURS
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Chapitre 3: Système d’exploitation
Présentation de l’Architecture Windows NT
PLAN du COURS Introduction Structure des Systèmes Informatiques
Introduction aux Systèmes d’Exploitation
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
le bureau de Windows et ses fonctionnalités
Système d’exploitation pour l’embarqué
Systèmes d’exploitation
Système d’exploitation: Principe
SECURITE DU SYSTEME D’INFORMATION (SSI)
Gestion d’un réseau avec Windows Server 2008 R2
Module 1 : Préparation de l'administration d'un serveur
Les Systèmes d’Exploitation
Synchronisation et communication entre processus
Réalisée par :Samira RAHALI
Système d’exploitation
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Programmation concurrente
Chapitre 6 (Silberchatz)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
IFT 6800 Atelier en Technologies d’information
Module 2 : Préparation de l'analyse des performances du serveur
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
CSI3531 – Labo 1 Lobservation du comportement de processus.
Système dexploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Chapitre 6 : Synchronisation des processus et des fils
Synchronisation Classique
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
Qu’est-ce qu’un système d’exploitation ?
Module 8 : Surveillance des performances de SQL Server
Qnx QNX est un système d'exploitation temps réel (dont l'objectif est de fonctionner dans un environnement contraint temporellement) adapté aux applications.
8INF856 Programmation sur architectures parallèles
AFPA CRETEIL 1-1 Windows NT Environnement Windows NT Chapitre 1.
Plan Définitions et exemples Composants de cluster
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
Interactions entre Processus
La programmation système
Programmation Système et Réseau
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
Les systèmes d’exploitation
MOCK.
Structure des Systèmes Informatiques
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
WinAC ODK Win AC ODK Open Developer Kit Open Developer Kit.
Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza, Claude Timsit Perpignan le 06/10/2006.
Applications Internet Cours 3 21 janvier 2010 Cours 3 21 janvier 2010.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.
Introduction aux systèmes d’exploitation Partie 1: Introduction
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

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

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.

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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).