Cours #2 Synchronisation dans un OS multitâches

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Cours #2 Synchronisation dans un OS multitâches"

Transcription

1 ELE- Ordinateurs et programmation système Cours #2 Synchronisation dans un OS multitâches Bruno De Kelper Site internet : Cours # 2 ELE - Ordinateurs et programmation système 1 Plan d aujourd hui 1. Introduction - synchronisation du noyau 1. Notions de base 1. Concurrence, conditions de course et synchronisation 2. Région critique et opérations atomiques. Verrou et contention. Inter-blocage et auto-blocage 2. Protection des ressources 1. Quand le faire? 2. Quoi protéger?. Catégorie de protection Opérations atomiques 2. Verrou tournant et sémaphore. Variables de terminaison. Désactivation de la préemption du noyau 5. Séquence d exécution et barrières 6. Verrou tournant et sémaphore «lecteur / écrivain». Verrous séquentiels Cours # 2 ELE - Ordinateurs et programmation système 2 Cours # 2 ELE - Ordinateurs et programmation système 1

2 Introduction - synchronisation du noyau Notions de base Protéger l accès concurrent aux ressources partagées est particulièrement important dans les systèmes multiprocesseurs Concurrence, conditions de course et synchronisation Concurrence : Même processeur Pseudo-concurrence - Dans un système multitâches préemptif, une tâche peut être préemptée par une autre tâche plus prioritaire. - Une tâche peut être interrompue par une interruption asynchrone. ISR interruption préemption Plusieurs processeurs Vrai-concurrence - Plusieurs tâches, placées sur différents processeurs, peuvent vouloir accéder à la même ressource. accès Ressource Ressource accès CPU-B Cours # 2 ELE - Ordinateurs et programmation système Introduction - synchronisation du noyau Concurrence, conditions de course et synchronisation Concurrence : La concurrence dans le noyau - Les interruptions se produisent de façon asynchrone. ISR - Un Softirq ou un Tasklet peut être démarré ou cédulé n importe quand. Softirq Tasklet - Une tâche-noyau peut préempter une autre tâche-noyau moins prioritaire. - Une tâche-noyau peut s endormir (se placer en attente d un événement). - Plusieurs processeurs peuvent exécuter des tâches-noyau en même temps. Zzzz Ressource CPU-B Cours # 2 ELE - Ordinateurs et programmation système Cours # 2 ELE - Ordinateurs et programmation système 2

3 Introduction - synchronisation du noyau Concurrence, conditions de course et synchronisation Ressources : - Processeur : Temps d exécution - Mémoire : Données (variable simple, structures, tableaux, ) - Périphériques : Disque (fichiers, matériel), Entrées/Sorties (écran, clavier, canaux de communication, ), Matériel (contrôleur d interruptions, compteurs, horloge, ) Conditions de course : - Lorsque plus qu un morceau de code, une tâche, veut utiliser la même ressource. - Seulement une tâche peut utiliser la ressource à un instant donné. - La première arrivée? Ressource Cours # 2 ELE - Ordinateurs et programmation système 5 Introduction - synchronisation du noyau Concurrence, conditions de course et synchronisation Collision : Par exemple : Lit X ++ Écrit X Lorsque plus d un tâche accède à une ressource en même temps. Supposons qu on veux compter le nombre de fois total que 2 tâches s exécutent, à l aide d un compteur X. Ce qu on voudrait qu il arrive Mémoire X CPU-B Lit X ++ Écrit X Lit X ++ Écrit X Ce qu il arrive en fait Mémoire X CPU-B Lit X ++ Écrit X Et cela peut arriver aussi avec des tâches sur un même processeur Cours # 2 ELE - Ordinateurs et programmation système 6 Cours # 2 ELE - Ordinateurs et programmation système

4 Introduction - synchronisation du noyau Concurrence, conditions de course et synchronisation Synchronisation : - Il s agit de s assurer que l accès aux ressources est contrôlé. - Les tâches peuvent utiliser la ressource à tour de rôle. - La synchronisation est une stratégie pour permettre l accès à une ressource : - Premier arrivé? - Plus rapide d exécution? - Plus prioritaire? - Besoin de plusieurs ressources? Pour l accès au processeur, c est l ordonnanceur qui s en occupe Priorité Appelsystème Tranche de temps Attente sur un verrou CPU Tâche 5 Ordonnanceur Cours # 2 ELE - Ordinateurs et programmation système Introduction - synchronisation du noyau Région critique et opérations atomiques Synchronisation : Pour le reste, il faut prévoir des mécanismes d accès Mutex Sémaphore Lecteur / écrivain Variable de terminaison Sémaphore Désactivation de la préemption Ressource Spin lock Verrou séquentiel Opération atomique Spin lock Lecteur / écrivain Cours # 2 ELE - Ordinateurs et programmation système Cours # 2 ELE - Ordinateurs et programmation système

5 Introduction - synchronisation du noyau Région critique et opérations atomiques Région critique : - Morceau de code qui accède à une ressource partagée. Région critique Lit X ++ Écrit X Mémoire X Code ou opération atomique : - Morceau de code qui s exécute en une seule fois, sans aucune interruption. Opération atomique X++ Mémoire X Les opérations sont faites en une fois comme si s était une seule opération Cours # 2 ELE - Ordinateurs et programmation système 9 Introduction - synchronisation du noyau 1.1. Verrou et Contention Verrou : - C est un mécanisme qui permet de capturer une ressource afin d être seul à pouvoir l utiliser. Contention : - Lorsqu un verrou appartient à une tâche et que d autres tâches essayent de le capturer. Demande Utilise Ressource A (Disponible) Ressource A (Verrouillée) - On parle de contention élevée lorsque : - Un verrou est capturer fréquemment. - Un verrou est tenu pendant longtemps. - Une contention élevée devient un goulot d étranglement pour le système. Libère Ressource A (Disponible) Défaut de programmation Cours # 2 ELE - Ordinateurs et programmation système 10 Cours # 2 ELE - Ordinateurs et programmation système 5

6 Introduction - synchronisation du noyau 1.1. Verrou et Contention Tâche-usager : - Une tâche-usager qui tient un verrou peut être préemptée ou interrompue. ISR Tâche-noyau : - Une tâche-noyau qui tient un verrou ne peut pas être préemptée. - Une tâche-noyau peut être interrompue ISR X Cours # 2 ELE - Ordinateurs et programmation système 11 Introduction - synchronisation du noyau Inter-blocage et auto-blocage Inter-blocage : - Deux tâches ou plus qui tiennent une ressource et qui veulent capturer la ressource de l autre. possède requête Ressource A Inter-blocage Ressource B requête possède Auto-blocage : - Une tâche qui tente de capturer une ressource qu elle tient déjà. possède requête Ressource A Auto-blocage Défaut de synchronisation Défaut de programmation Cours # 2 ELE - Ordinateurs et programmation système 12 Cours # 2 ELE - Ordinateurs et programmation système 6

7 Introduction - synchronisation du noyau 1.2 Protection des ressources Quand le faire? Toujours prévoir la protection des ressources dés le début de la conception du code et non lorsqu il devient absolument nécessaire Quoi protéger? Besoin de protection Pas besoin de protection - Toute donnée qui est globale a probablement besoin de protection. - Toute donnée qui est partagée entre le contexte-processus et le contexte-interruption. - Toute donnée partagée entre des routines d interruptions. - La question à se poser est : Est-ce que la donnée peut être accédée par d autres? - Une donnée qui est locale à une tâche. - Toute donnée qui est créée dynamiquement par une tâche n existe que sur la pile de la tâche. Cours # 2 ELE - Ordinateurs et programmation système 1 Introduction - synchronisation du noyau 1.2 Protection des ressources 1.2. Catégorie de protection Préemption-sûr : Est protégé des accès concurrents avec la préemption du noyau. Interruption-sûr : Est protégé des accès concurrents de routines d interruptions. SMP-sûr : Est protégé des accès concurrents dans un système multiprocesseurs symétrique. Cours # 2 ELE - Ordinateurs et programmation système 1 Cours # 2 ELE - Ordinateurs et programmation système

8 2.1 Opérations atomiques Le noyau de Linux fournit 2 ensembles d opérations atomiques : Opérations entières atomiques : Type de donnée spéciale atomic_t - Ces variables ne peuvent être utilisées qu au travers d instructions spéciales. - Ces opérations sont exécutées sans aucune interruption. Création d une variable atomique : atomic_t v; atomic_t u = ATOMIC_INIT(); Variable pré-initialisée Utilisation d une variable atomique : équivalent à atomic_set (&v, ); v = ; atomic_add (2, &u); u = u + ; atomic_inc (&v); v = v + 1; int x = atomic_read(&v); x = v; Il y en a plusieurs autres atomic_dec_and_test (&u); u = u 1; et retourne Vrai si u = 0 après. Cours # 2 ELE - Ordinateurs et programmation système Opérations atomiques Opérations binaires atomiques : - Ces opérations peuvent agir sur les bits de n importe quel type de données. - Elles doivent recevoir un pointeur vers la variable à traiter. - Ces opérations sont exécutées sans aucune interruption. - Les opérations non-atomiques équivalentes portent le même nom mais sont précédées d un double sous-ligné. Opérations : Atomique set_bit (, &y); clear_bit (2, &y); change_bit (, &y); test_bit (21, &y); test_and_set_bit (15, &y); test_and_clear_bit (, &y); test_and_change_bit (, &y); Non-atomique set_bit (, &y); clear_bit (2, &y); change_bit (, &y); test_bit (21, &y); test_and_set_bit (15, &y); test_and_clear_bit (, &y); test_and_change_bit (, &y); Cours # 2 ELE - Ordinateurs et programmation système 16 Cours # 2 ELE - Ordinateurs et programmation système

9 2.2 Verrou tournant et sémaphore Les verrous tournants et les sémaphores sont les principaux mécanismes de protection (région critique) et de synchronisation du noyau. Verrou tournant (Spin lock) : - Seule une tâche à la fois peut posséder le verrou tournant. - Il sert à créer un morceau de code atomique. - Lorsque le verrou n est pas disponible, la tâche qui désire le capturer se place en attente active (ne dort pas) jusqu à ce qu il redevienne disponible. Tourne dans une boucle inutile et consomme du temps de processeur. Exemple de code d un verrou tournant : void Verrou_capture (int *verrou) { while (! test_and_set_bit (0, verrou)); } Opération atomique pour changer l état du verrou void Verrou_libère (int *verrou) { clear_bit (0, verrou); } Cours # 2 ELE - Ordinateurs et programmation système Verrou tournant et sémaphore Verrou tournant (Spin lock) : - À cause de l attente active, ce verrou ne doit pas être retenu trop longtemps. - Lorsque le verrou est capturé, la préemption du noyau est désactivée. Multiprocesseur Désactive la préemption seulement sur le processeur de la tâche qui possède le verrou. Monoprocesseur Désactive la préemption sur le processeur. - Mais les interruptions ne sont pas nécessairement désactivées. - Puisque qu il ne dort pas, il peut être utilisé dans les routines d interruptions. - ATTENTION : Ce verrou peut auto-bloquer!!! Exemple : spinlock_t my_lock = SPIN_LOCK_UNLOCKED; Déclaration Code atomique spin_lock (&my_lock); spin_unlock (&my_lock); Utilisation Région critique Cours # 2 ELE - Ordinateurs et programmation système 1 Cours # 2 ELE - Ordinateurs et programmation système 9

10 2.2 Verrou tournant et sémaphore Sémaphore : - Le sémaphore est un verrou dormant, s il n est pas disponible, la tâche qui le demande est placée dans une fil d attente (waiting queue). - À cause de ça, le sémaphore est utilisé seulement en contexte processus. - De plus, une tâche qui possède un verrou tournant ne peut pas tenter de capturer un sémaphore car elle pourrait dormir. - Contrairement aux verrous tournants, le sémaphore ne désactive pas la préemption du noyau et la tâche qui le tient peut être préemptée. Exemple de code d un sémaphore : void Capture_sem (atomic_t *sem) { if (atomic_add_negative (-1, sem)) { atomic_set (0, sem); sleep (current, sem); } } void Libère_sem (atomic_t *sem) { atomic_inc (sem); } La capture et la libération doit être faite de façon atomique. Cours # 2 ELE - Ordinateurs et programmation système Verrou tournant et sémaphore Sémaphore : - Dépendamment de son initialisation, un sémaphore peut être tenu par une seule ou par plusieurs tâches : Valeurs possibles 0 ou 1 Sémaphore binaire, aussi appelé Mutex. Sert habituellement pour créer un morceau de code atomique dans le but de protéger l accès à une ressource. 0 ou > 0 Sémaphore compteur. Sert habituellement pour la synchronisation ou pour protéger l accès à une ressource ayant plusieurs points d accès ou instances. - De façon générale, on peut faire l une de choses avec un sémaphore : Initialiser Capturer Libérer Appelé down() Appelé up() Cours # 2 ELE - Ordinateurs et programmation système 20 Cours # 2 ELE - Ordinateurs et programmation système 10

11 2.2 Verrou tournant et sémaphore Création d un sémaphore : manière statique manière dynamique static DECLARE_SEMAPHORE_GENERIC (my_sem, ); static DECLARE_MUTEX (my_sem); struct semaphore my_sem; sema_init (&my_sem, ); init_mutex (&my_sem); équivalent si égal à 1 équivalent si égal à 1 0 init_mutex_locked (&my_sem); Utilisation d un sémaphore : down (&my_sem); Capture ou dort en état TASK_UNINTERRUPTIBLE. down_interruptible (&my_sem); Capture ou dort en état TASK_INTERRUPTIBLE. down_trylock (&my_sem); Tente de capturer (si oui, retourne 0), mais ne dort pas. up (&my_sem); Libère le sémaphore ou le Mutex. Cours # 2 ELE - Ordinateurs et programmation système Variable de terminaison - Similaire aux sémaphores, elle permet à une tâche de signaler qu elle à fini à une autre tâche qui attends. - Utilisé principalement pour la synchronisation, c est-à-dire pour permettre à une tâche de dire à une autre quand faire son travail. Création d une variable de terminaison : manière statique manière dynamique DECLARE_COMPLETION (ma_var); struct completion ma_var; init_completion (&ma_var); Utilisation d un sémaphore : C est un mécanisme simple et léger de synchronisation de deux tâches wait_for_completion (&ma_var); Attend le signal de fin d utilisation. complete (&ma_var); Envoi le signal de fin d utilisation. Cours # 2 ELE - Ordinateurs et programmation système 22 Cours # 2 ELE - Ordinateurs et programmation système 11

12 2. Désactivation de la préemption du noyau - Comme il a été mentionné, lorsqu un verrou tournant est capturé, la préemption du noyau est désactivée. - Mais il arrive qu il soit nécessaire de désactiver la préemption du noyau sans avoir recours à un verrou tournant. - Par exemple, pour créer un morceau de code atomique de très courte durée. - La désactivation du noyau est récursive, c est-à-dire qu elle peut être faite plusieurs fois de suite et elle devra être réactivée autant fois pour être de nouveau active. Utilisation de la désactivation de la préemption du noyau : preempt_disable ( ); preempt_enable ( ); preempt_count ( ); Désactive la préemption du noyau et compte. Décompte et réactive la préemption du noyau lorsque le compte est à zéro. Retourne le compte actuel. Cours # 2 ELE - Ordinateurs et programmation système Séquence d exécution et barrières Séquence d exécution : - Pour des raisons d optimisation, il arrive que les compilateurs changent l ordre d une séquence de lecture et d écriture de données au moment de la compilation. - Aussi, certains processeurs effectuent des écritures out-of-order automatiquement et qui change l ordre de séquences d écritures. - Par exemple, la séquence suivante : a = 1; est exécutée b = 2; b = 2; dans l ordre a = 1; - Du autre côté, il est parfois nécessaire de s assurer que la séquence d exécution est respectée, surtout lors d accès au matériel. - Pour forcer le respect de l ordre d une séquence, Linux fournit la notion de barrière et les fonctions qui vont avec. Cours # 2 ELE - Ordinateurs et programmation système 2 Cours # 2 ELE - Ordinateurs et programmation système 12

13 2.5 Séquence d exécution et barrières Barrière : - La barrière fournit un mécanisme de sérialisation, c est-à-dire d empêcher qu un réarrangement de l exécution se fasse au travers de la barrière. - Les lectures ou écritures de données se trouvant avant la barrière seront complétées obligatoirement avant. Tandis que les lectures ou écritures se trouvant après la barrière ne pourront pas être effectuées avant. Utilisation de barrières : rmb ( ); umb ( ); mb ( ); Barrière de lecture. Barrière d écriture. Barrière de lecture et d écriture. read_barrier_depends ( ); Cas particulier d une barrière d écriture où seuls les écritures dépendantes de part et d autre de la barrière sont affectées. Cours # 2 ELE - Ordinateurs et programmation système Séquence d exécution et barrières Exemple de Barrière : Soit 2 tâches parfaitement synchronisées qui exécutent le code suivant : Sans la barrière Avec la barrière A = ; B = ; B A Mémoire A B 2 2 CPU-B 1 A 1 C = B; D = A; D B C A = ; mb(); B = ; A B Mémoire A 1 1 B CPU-B 2 B 2 C = B; rmb(); D = A; C A D Et cela peut arriver aussi avec des tâches sur un même processeur Cours # 2 ELE - Ordinateurs et programmation système 26 Cours # 2 ELE - Ordinateurs et programmation système 1

14 2.6 Verrou tournant et sémaphore «lecteur / écrivain» Principe du «lecteur / écrivain» : - Il n est pas nécessaire de protéger l accès à une donnée lorsqu il s agit uniquement de la lire, du moment qu elle ne change pas en cours de route. - Donc on peut permettre autant de «lecteurs» simultanés que l on veut. - Par contre, dés qu un «écrivain» accède à la donnée pour la changer, alors il doit être seul, sinon il y a un risque de collision. - Donc, les verrous «lecteur / écrivain» permettent à tous les lecteurs de capturer le verrou, du moment qu il n est pas en la possession d un écrivain. - Si un écrivain a capturé le verrou, alors aucun lecteur ne peut le prendre. Verrou tournant «lecteur / écrivain» : rwlock_t my_rwlock = RW_LOCK_UNLOCKED; read_lock (&my_rwlock); Région critique : Lecteur read_unlock (&my_rwlock); Déclaration write_lock (&my_rwlock); Région critique : Écrivain write_unlock (&my_rwlock); Cours # 2 ELE - Ordinateurs et programmation système Verrou tournant et sémaphore «lecteur / écrivain» Sémaphore «lecteur / écrivain» : - Tous les sémaphores «lecteur / écrivain» sont des Mutex (0, 1). - Les sémaphores «lecteur / écrivain» placent les tâches en attente dans l état TASK_UNINTERRUPTIBLE. Déclaration manière static DECLARE_RWSEM (rw_sem); statique Utilisation manière dynamique struct rw_semaphore rw_sem; init_rwsem (&rw_sem); down_read (&rw_sem); Région critique : Lecteur down_write (& rw_sem); Région critique : Écrivain up_read (&rw_sem); up_write (& rw_sem); Aussi down_read_trylock (&rw_sem); down_write_trylock (& rw_sem); downgrade_writer (&rw_sem); Cours # 2 ELE - Ordinateurs et programmation système 2 Cours # 2 ELE - Ordinateurs et programmation système 1

15 2. Verrous séquentiels - Le but du verrou séquentiel est sensiblement le même que celui des verrous «lecteur / écrivain». - C est un mécanisme simple qui permet à tous les lecteurs d accéder à la donnée protégée, même si un écrivain est en action sur la donnée. - Par contre, à la fin de la lecture, le lecteur doit vérifier si la donnée a changée en cours de route et si oui, il reprend sa lecture. - L écrivain doit capturer le verrou pour accéder à la donnée. Ce faisant, il incrémente un «numéro de séquence» (devient impair). - Lorsque l écrivain libère le verrou, il incrémente de nouveau le «numéro de séquence» (devient pair). - Avant d accéder à la donnée, le lecteur prend une copie de ce «numéro de séquence». Et après avoir lut la donnée, il compare sa copie à la valeur actuelle du «numéro de séquence». S il a changé, alors un écrivain a changé la donnée. - De plus, si le «numéro de séquence» est impair, un écrivain est en train de changer la donnée, sinon il a terminé. Cours # 2 ELE - Ordinateurs et programmation système Verrous séquentiels Déclaration Utilisation Côté lecteur : Boucle tant qu il change. Côté écrivain : seqlock_t mon_seq = SEQLOCK_UNLOCKED; unsigned long seq; do { seq = read_seqbegin (&mon_seq); Région critique : Lecteur } while (read_seqretry(&mon_seq, seq)); write_seqlock (&mon_seq); Région critique : Écrivain write_sequnlock (&mon_seq); Nécessaire pour recevoir la copie du numéro de séquence (unsigned long). Prend la copie du numéro de séquence. Compare la copie du numéro de séquence. Capture le verrou et incrémente le numéro de séquence. Libère le verrou et incrémente le numéro de séquence. Cours # 2 ELE - Ordinateurs et programmation système 0 Cours # 2 ELE - Ordinateurs et programmation système 15

Chap. X : Ordonnancement

Chap. X : Ordonnancement UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le compilateur sépare les différents objets apparaissant dans un programme dans des zones mémoires (code, données, librairies,

Plus en détail

Cours Systemes d exploitation

Cours Systemes d exploitation Université de Kairouan Institut Supérieur des Siences Appliquées et de Technologie Cours Conçu Spécialement Aux Etudiants: De Master Pilotage et Réseaux Industriels Cours Systemes d exploitation Noureddine

Plus en détail

1 Entête des fonctions

1 Entête des fonctions Le lecteur rédacteur est un problème de synchronisation qui suppose que l on peut accéder aux données partagées de 2 manières : en lecture, c est a dire sans possibilité de modification; en écriture. Il

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Synchronisation de Processus. Chapitre 5

Synchronisation de Processus. Chapitre 5 Synchronisation de Processus Chapitre 5 1 Synchronisation de Processus 1. Conditions de Concurrence 2. Sections Critiques 3. Exclusion Mutuelle 4. Sommeil & Activation 5. Sémaphores 6. Mutex 2 Concurrence

Plus en détail

DI-4 Année 2007-2008. Notes de Cours. Parallélisme. Notes : Auteur du Cours : Florent Renault

DI-4 Année 2007-2008. Notes de Cours. Parallélisme. Notes : Auteur du Cours : Florent Renault École Polytechnique de l Université de Tours 64, Avenue Jean Portalis 37200 TOURS, FRANCE Tél. (33)2-47-36-14-14 Fax (33)2-47-36-14-22 www.polytech.univ-tours.fr DI-4 Année 2007-2008 Notes de Cours Parallélisme

Plus en détail

GELE5343 Chapitre 2 : Révision de la programmation en C

GELE5343 Chapitre 2 : Révision de la programmation en C GELE5343 Chapitre 2 : Révision de la programmation en C Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2013 Gabriel Cormier (UdeM) GELE5343 Chapitre 2 Hiver 2013 1 / 49 Introduction Contenu 1

Plus en détail

CONSERVATOIRE NATIONAL DES ARTS ET METIERS METHODES DE PROGRAMMATION SYSTEMES UE NSY103 NANCY/METZ

CONSERVATOIRE NATIONAL DES ARTS ET METIERS METHODES DE PROGRAMMATION SYSTEMES UE NSY103 NANCY/METZ CONSERVATOIRE NATIONAL DES ARTS ET METIERS Durée : 2 heures METHODES DE PROGRAMMATION SYSTEMES UE NSY103 NANCY/METZ CORRECTION DE L'EXAMEN DE RATTRAPAGE de SEPTEMBRE 2012 Année 2011 2012, deuxième semestre

Plus en détail

Cours A7 : Temps Réel

Cours A7 : Temps Réel Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : Partage des ressources, L exclusion mutuelle, Synchronisation. Comprendre les

Plus en détail

Cours #1 Introduction OS multitâches

Cours #1 Introduction OS multitâches ELE-784 Ordinateurs et programmation système Cours #1 Introduction OS multitâches Bruno De Kelper Site internet : http://www.ele.etsmtl.ca/academique/ele784/ Cours # 1 ELE784 - Ordinateurs et programmation

Plus en détail

CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS

CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS 56 CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS 6.1 INTRODUCTION : Afin de fournir un accès efficace et pratique au disque, le SE impose un système de gestion de fichiers (SGF) pour permettre de stocker,

Plus en détail

Système M1. Chapitre 3 : Gérer la communication et la synchronisation inter-tâches. J.-F. Pradat-Peyre & E Hyon

Système M1. Chapitre 3 : Gérer la communication et la synchronisation inter-tâches. J.-F. Pradat-Peyre & E Hyon Chapitre 3 : Gérer la communication et la synchronisation inter-tâches 1 Plan du cours Introduction aux problèmes de synchronisation Exemple de problèmes Section critique et verrous Exclusion Mutuelle

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Interblocages. Chapitre 7. 7.1 Les processus et les ressources

Interblocages. Chapitre 7. 7.1 Les processus et les ressources Chapitre 7 Interblocages 7.1 Les processus et les ressources L exécution d un processus nécessite un ensemble de ressources (mémoire principale, disques, fichiers, périphériques, etc.) qui lui sont attribuées

Plus en détail

EX4C Systèmes d exploitation. Séance 6 Synchronisation

EX4C Systèmes d exploitation. Séance 6 Synchronisation EX4C Systèmes d exploitation Séance 6 Synchronisation Sébastien Combéfis vendredi 21 novembre 2014 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution Pas d

Plus en détail

Soit l ensemble de processus suivant, où les contraintes de précédence sont données par le graphe ci-dessous :

Soit l ensemble de processus suivant, où les contraintes de précédence sont données par le graphe ci-dessous : O r s a y Travaux Dirigés n o 3 : Sémaphores DUT Informatique 2010 / 2011 Objectifs : comprendre le concept de sémaphore, son utilité pour réaliser l exclusion mutuelle et savoir utiliser son implémentation

Plus en détail

Communications et synchronisations. Système L3, 2014-2015 1/21

Communications et synchronisations. Système L3, 2014-2015 1/21 Communications et synchronisations Système L3, 2014-2015 1/21 Le problème des philosophes (Dijkstra 1965) Cinq philosophes sont assis autour d une table ronde Chaque philosophe a devant lui un plat de

Plus en détail

Communication par Signal - premiers pas

Communication par Signal - premiers pas Communication par Signal - premiers pas Quelques remarques sur la gestion des signaux UNIX ================================================== Un premier problème se pose lorsque plusieurs exemplaires d

Plus en détail

Synchronisation des Processus et les sémaphores

Synchronisation des Processus et les sémaphores Synchronisation des Processus et les sémaphores Achraf Othman Support du cours : www.achrafothman.net 1 PLAN Spécification du problème Section Critique (SC) Exclusion Mutuelle Principe Propriétés Réalisation

Plus en détail

Systèmes d exploitation embarqués ELECINF344

Systèmes d exploitation embarqués ELECINF344 Systèmes d exploitation embarqués ELECINF344 Samuel TARDIEU Mars 2015 Plan Introduction Gestion de la mémoire Gestion de la concurrence Quelques OS embarqués 2/56 Département INFRES ELECINF344

Plus en détail

CHAPITRE III : GESTION DES PROCESSUS

CHAPITRE III : GESTION DES PROCESSUS Systèmes d exploitation des Ordinateurs 19 CHAPITRE III : GESTION DES PROCESSUS 3.1 CONCEPT DE PROCESSUS : On peut trouver plusieurs appellations possibles des activités que peut avoir un processeur. Un

Plus en détail

Samia Bouzefrane. Maître de Conférences CEDRIC CNAM. samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra

Samia Bouzefrane. Maître de Conférences CEDRIC CNAM. samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra La La communication et et la la synchronisation inter-tâches Samia Bouzefrane Maître de Conférences CEDRIC CNAM samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra 1 Sommaire Introduction aux problèmes

Plus en détail

2 Utilisation d un tube par plusieurs processus

2 Utilisation d un tube par plusieurs processus O r s a y Travaux Pratiques n o 3 : Sémaphores DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : être capable de construire des applications dont le mécanisme d exclusion mutuelle repose

Plus en détail

Reprise en main du programme d Affectation de transport en commun

Reprise en main du programme d Affectation de transport en commun Reprise en main du programme d Affectation de transport en commun Modifications indispensables pour bonne compilation : Utilisation de visual C++ express pour avoir accès à un débuggeur et un compilateur

Plus en détail

ELE-542 Systèmes ordinés en temps réels. Cours # 10 Contrôle d accès et synchronisation

ELE-542 Systèmes ordinés en temps réels. Cours # 10 Contrôle d accès et synchronisation ELE-542 Systèmes ordinés en temps réels Cours # 10 Contrôle d accès et synchronisation Jean-Marc Beaulieu et Bruno De Kelper Site internet: http://www.ele.etsmtl.ca/academique/ele542/ Systèmes ordinés

Plus en détail

Formation développement noyau et pilotes Linux Session de 5 jours

Formation développement noyau et pilotes Linux Session de 5 jours Formation développement noyau et pilotes Linux Session de 5 jours Titre Aperçu Supports Durée Formateur Langue Public ciblé Formation développement noyau et pilotes Linux Comprendre le noyau Linux Développer

Plus en détail

Sujets de projet de Langages de Spécification. Catalin Dima

Sujets de projet de Langages de Spécification. Catalin Dima Sujets de projet de Langages de Spécification Catalin Dima Cadre général Chaque sujet demande la modélisation en NuSMV d une spécification décrite en français, plus la vérification de trois formules LTL,

Plus en détail

1. Qui contrôle le bus d adresse? Le bus de données? Le bus de contrôle?

1. Qui contrôle le bus d adresse? Le bus de données? Le bus de contrôle? GIF-1001 Ordinateurs: Structure et Applications Solutions: Bus et addressage 1. Qui contrôle le bus d adresse? Le bus de données? Le bus de contrôle? Solution: Bus d adresse: CPU ou contrôleur de DMA avec

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Cours #3 Les systèmes d exploitation

Cours #3 Les systèmes d exploitation IFT-6800, Automne 2015 Cours #3 Les systèmes d exploitation Louis Salvail André-Aisenstadt, #3369 salvail@iro.umontreal.ca Système d exploitation: C est quoi? Un système d exploitation (SE, OS en anglais)

Plus en détail

Conduite du Projet Système

Conduite du Projet Système Conduite du Projet Système Département Télécom 2ème Année Enseignants : Yves Denneulin, Jacques Mossière, Grégory Mounié, Simon Nieuviarts, Franck Rousseau, Sébastien Viardot Résumé Ce document est complémentaire

Plus en détail

Mise en œuvre de l exclusion mutuelle dans

Mise en œuvre de l exclusion mutuelle dans Mise en œuvre de l exclusion mutuelle dans µc/os-ii Mise en œuvre des mécanismes permettant l exclusion mutuelle à l aide des services de µc/os-ii vendredi 19 janvier 2001 1 Blocage des interruptions Méthode

Plus en détail

ELE-542 Systèmes ordinés en temps réels. Cours # 8 Système d exploitation Temps Réel

ELE-542 Systèmes ordinés en temps réels. Cours # 8 Système d exploitation Temps Réel ELE- Systèmes ordinés en temps réels Cours # 8 Système d exploitation Temps Réel Jean-Marc Beaulieu et Bruno De Kelper Site internet: http://www.ele.etsmtl.ca/academique/ele/ Systèmes ordinés en temps

Plus en détail

Synchronisation des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA

Synchronisation des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA 1/16 Synchronisation des processus didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/16 Table des matières 1 2 Synchronisation matérielle 3 Synchronisation logicielle 4 classiques 4/16 Nécessité

Plus en détail

SCHEDULING. 1.1 Simultanéité, ressources On appelle simultanéité l'activation de plusieurs processus au même moment.

SCHEDULING. 1.1 Simultanéité, ressources On appelle simultanéité l'activation de plusieurs processus au même moment. Chapitre SCHEDULING. ASPECTS GENERAUX DES PROCESSUS Un processus est un programme qui s'exécute, ainsi que ses données, sa pile, son compteur ordinal, son pointeur de pile et les autres contenus de registres

Plus en détail

Miramond Benoît - UCP. II) Le processus dans la machine

Miramond Benoît - UCP. II) Le processus dans la machine II) Le processus dans la machine 1 Plan de la partie VII 1. Rappel modèle d exécution d un processeur 2. Les fonctions d un OS embarqué 3. Au démarrage était le bootstrap 4. Comment faire du multi-tâches?

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

PLAN. Synchronisation des Processus: Exclusion Mutuelle. Problème de synchronisation: Exemple. Spécification du Problème

PLAN. Synchronisation des Processus: Exclusion Mutuelle. Problème de synchronisation: Exemple. Spécification du Problème PLAN Synchronisation des Processus: Exclusion Mutuelle N.Hameurlain http://www.univ-pau.fr/~hameur Spécification du problème Section Critique () Exclusion Mutuelle Principe Propriétés Réalisation d exclusion

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

Contrôle de flux: Définition

Contrôle de flux: Définition : Définition Luc Trudeau Département de génie logiciel et des technologies de l information L ÉTS est une constituante du réseau de l'université du Québec Montréal, Québec, Canada Objectifs d apprentissage

Plus en détail

Programmation multitâches avec les Threads

Programmation multitâches avec les Threads Programmation multitâches avec les Threads A. Introduction A.1. Programmation multitâche Tous les systèmes d'exploitation actuels ont la possibilité d'effectuer plusieurs tâches en simultané. En effet,

Plus en détail

Programmation Multithread

Programmation Multithread Programmation Multithread Partie 3 Professeur : Bruno De Kelper Département Génie Électrique Synchronisation Les Threads partagent les ressources Besoin de synchroniser pour: - Garder la cohérence des

Plus en détail

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008 Programmation Multi-Thread - partie 1 November 13, 2008 pourquoi ça ne marche pas? et alors? introduction aux threads threads : pourquoi ça ne marche pas? et alors? un nouveau point d entrée (une fonction

Plus en détail

Communications et synchronisations

Communications et synchronisations Communications et synchronisations Polytech Paris-Sud Cycle ingénieur de la filière étudiant Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.fr année 2012/2013 Le problème des philosophes (Dijkstra

Plus en détail

Série n 1 / Solutions

Série n 1 / Solutions Série n 1 / Solutions Exercice n 1 - les deux processus partagent une variable booléenne interesse qui sera vraie si le processus est en section critique ou demande à y rentrer, et fausse sinon, /* contexte

Plus en détail

2 ème partie : Programmation concurrente multi-thread

2 ème partie : Programmation concurrente multi-thread 2 ème partie : Programmation concurrente multi-thread TC-INFO-ASR4 Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : www-mips.unice.fr/~baude

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

Circuits séquentiels. Chapitre 6. 6.1 Circuits séquentiels

Circuits séquentiels. Chapitre 6. 6.1 Circuits séquentiels Chapitre 6 Circuits séquentiels Plusieurs circuits utilisés dans la vie courante ont besoin de mémoire. Ce chapitre présente les méthodes de base de stockage d information. Les circuits combinatoires présentés

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009 Institut Supérieur d Informatique Chapitre 02 Synchronisation des processus Dr. Mohamed-Wassim YOUSSEF 2009 [www.wassimyoussef.info] Systèmes d exploitation avancées 1 ING ISI 1 ére année Ingénieur en

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus Corrigé de l examen de systèmes opératoires Module Synchronisation des processus 2ième Année Informatique et Mathématiques Appliquées 17 Novembre 1999 1 Les sémaphores 1. Donner la définition d un sémaphore

Plus en détail

Résumé du chapitre 8 Ressources et interblocage

Résumé du chapitre 8 Ressources et interblocage Résumé du chapitre 8 Ressources et interblocage Jacques Mossière 12 août 2004 1 Introduction Ce chapitre est consacré à l étude d un problème classique dans les systèmes, l interblocage, c est à dire l

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Logiciel de statistiques pour le Volley-ball

Logiciel de statistiques pour le Volley-ball Lucas society Logiciel de statistiques pour le Volley-ball Partie Modèle Anthony 13 Table des matières I) Préambule...2 1) Motivation...2 2) Contrainte...2 II) Introduction...3 1) Le travail en équipe...3

Plus en détail

Cours 1 : Un micro-noyau en OCaml 21 février 2015. 1 Interface et structures de données pour les appels système

Cours 1 : Un micro-noyau en OCaml 21 février 2015. 1 Interface et structures de données pour les appels système Systèmes et Réseaux ENS L3 Info. Année 2014-2015 Cours 1 : Un micro-noyau en OCaml 21 février 2015 L objectif est de programmer un micro-noyau simplifié d un système d exploitation. 1 Son rôle est d ordonnancer

Plus en détail

Comment régler les problèmes de synchronisation? P-A. Champin

Comment régler les problèmes de synchronisation? P-A. Champin S y s t è m e d ' e x p l o i t a t i o n S é a n c e 5 Comment régler les problèmes de synchronisation? P-A. Champin Département Informatique IUT A Université Claude Bernard Lyon 1 2009 S5 - Comment régler

Plus en détail

Plan. Synchronisation des processus

Plan. Synchronisation des processus Plan Synchronisation des processus N. Hameurlain Spécification du problème par un exemple; Synchro à l aide d événements; Synchro à l aide des sémaphores; Synchro par les données : la boîte aux lettres;

Plus en détail

TP Programmation avec Contiki

TP Programmation avec Contiki TP Programmation avec Contiki Important : Un rapport doit être rendu au plus tard 10 jours après le TP. Le compte rendu doit contenir : un rapport avec des captures d écrans bien expliquées. L objet de

Plus en détail

Initialisation des attributs (1)

Initialisation des attributs (1) Initialisation des attributs (1) Initialiser les attributs d une instance en leur affectant individuellement une valeur, après l instanciation, n est pas une technique satisfaisante: a) elle est fastidieuse,

Plus en détail

Le parallélisme en Java

Le parallélisme en Java Chapitre 7 Le parallélisme en Java L espoir du parallélisme est de pouvoir faire exécuter plusieurs tâches à un ordinateur (avec plusieurs processeurs). Ceci trouve un début d application sur certains

Plus en détail

Examen 2. Q1 (3 points) : Quel mot ou concept relié aux ordinateurs correspond à la définition suivante :

Examen 2. Q1 (3 points) : Quel mot ou concept relié aux ordinateurs correspond à la définition suivante : GI-1001, 24 avril 2012 Nom/Matricule : Examen 2 Cet examen vaut 40% de la note totale du cours. Les questions seront corrigées sur un total de 40 points. La valeur de chaque question est indiquée avec

Plus en détail

Question 1 (5 pts ) : Généralités

Question 1 (5 pts ) : Généralités Question 1 (5 pts ) : Généralités Répondez, en 5 lignes maximum, aux questions suivantes : a) Expliquez brièvement pourquoi les «threads» sont aussi appelés processus légers? Un threads est rattaché à

Plus en détail

Introduction aux systèmes d exploitation TP 2 Manipulation de processus

Introduction aux systèmes d exploitation TP 2 Manipulation de processus Introduction aux systèmes d exploitation TP 2 Manipulation de processus On appelle processus un objet dynamique correspondant à l exécution d un programme ou d une commande Unix. Cet objet recense en particulier

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique. Cours INF3600 : Systèmes d exploitation. Contrôle périodique Automne 2001

École Polytechnique de Montréal. Département de Génie Informatique. Cours INF3600 : Systèmes d exploitation. Contrôle périodique Automne 2001 École Polytechnique de Montréal Département de Génie Informatique Cours INF3600 : Systèmes d exploitation Contrôle périodique Automne 2001 Date : 1 er novembre 2001 de 18h à 20h Professeurs : Kerly Titus,

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

8. Protection des SGBD

8. Protection des SGBD 8. Protection des SGBD 8.1 Introduction Les SGBD courent certains dangers que nous pouvons répertorier en : - accidents logiciels - utilisation pernicieuse - pannes matérielles Les SGBD doivent faire face

Plus en détail

Notions de base Ordonnancement Communication et synchronisation. Les processus. Julien Forget 1

Notions de base Ordonnancement Communication et synchronisation. Les processus. Julien Forget 1 Julien Forget 1 Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS3 2011-2012 1. Inspiré des slides de Thomas Vantroys 1 / 58 Plan 1 Notions de

Plus en détail

synchronisation et communication entre processus Synchronisation et communication entre processus

synchronisation et communication entre processus Synchronisation et communication entre processus 1 Synchronisation et communication entre processus Accès à des ressources communes 2 Exemple: compte bancaire dont montant en A sur disque programme pour ajouter 100: lire(n,a) N := N+100 écrire(n,a) 2

Plus en détail

Programmation système : sémaphores

Programmation système : sémaphores Programmation système : sémaphores Un sémaphore permet de protéger une variable (ou un type de donnée abstrait) et constitue la méthode utilisée couramment pour restreindre l'accès à des ressources partagées

Plus en détail

I. Processus- Ordonnancement. Joëlle Delacroix CNAM NSY103

I. Processus- Ordonnancement. Joëlle Delacroix CNAM NSY103 I. rocessus- Ordonnancement 1 rocessus Un processus est une exécution de programme 2 1 CO 104 RI add im R1 5 2 CO 103 RI load im R1 20 20 UAL 100 101 102 load im R1 20 103 add im R1 5 104 store d R1 100

Plus en détail

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012 NVIDIA CUDA Compute Unified Device Architecture Sylvain Jubertie Laboratoire d Informatique Fondamentale d Orléans 2011-2012 Sylvain Jubertie (LIFO) NVIDIA CUDA 2011-2012 1 / 58 1 Introduction 2 Architecture

Plus en détail

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire.

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire. Obert Hervé Stumpf Mathieu Licence 3 RIA Réseaux & Protocoles Client pair-à-pair Projet L3 RIA 2005-2006 Sommaire Page 1 sur 10 Introduction - Présentation du projet 3 Fonctionnement coté graine 4 Fonctionnement

Plus en détail

Système d exploitation (Operating System)

Système d exploitation (Operating System) Système d exploitation (Operating System) I. Introduction 1. Définition Système d exploitation : ensemble de programmes pour : Faciliter l utilisation de l ordinateur (ergonomie) Mettre à la disposition

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée Organisation d un Ordinateur 1-4-5-6 connecteurs (cartes ) 3 chipset (processeur) 9 ports E/S 2 mémoire vive 7-8 connecteurs

Plus en détail

Allocation dynamique en c++

Allocation dynamique en c++ Allocation dynamique en c++ *tableau; tableau * tableau = tableau = new [ no_max ]; tableau = new * [ no_max ] tableau[i] = new int[ 5 ]; tableau tableau[i] = new int[5]; * tableau[0] int int int int int

Plus en détail

1 Création de processus : primitive fork()

1 Création de processus : primitive fork() O r s a y Travaux Pratiques n o 2 : Synchronisation DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork() et synchronisation de

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Partie 5 : Les processus Ordonnancement des processus Jalil BOUKHOBZA UBO / Lab-STICC Email : boukhobza@univ-brest.fr Partie 5 : Ordonnancement des processus 1

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

Travaux Pratiques de l option STR

Travaux Pratiques de l option STR Travaux Pratiques de l option STR Processeur Détecteur ultrasons Moteurs Détecteur de contacts Détecteur de lumière Détecteur de sons RTOS (OSEK/VDX) ECRobot C/C++API Gestion des moteurs Vitesse, angle

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Programmation : Exercices

Programmation : Exercices Programmation : Exercices IUT de Villetaneuse R&T 1 ère année Laure Petrucci 6 novembre 2007 1 Premiers programmes Exercice 1.1 : Machine à dessiner On souhaite écrire un programme pour afficher des dessins.

Plus en détail

Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT,

Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Jean Privat Université du Québec à Montréal INF217 Organisation des ordinateurs et assembleur Automne 21 Jean Privat (UQAM) 1

Plus en détail

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2 5 Moniteurs Motivation = les sémaphores peuvent être utilisés pour résoudre à peu près n importe quel problème d exclusion mutuelle ou synchronisation... mais, les sémaphores possèdent certains désavantages:

Plus en détail

Multiprocesseurs symétriques

Multiprocesseurs symétriques Multiprocesseurs symétriques Daniel Etiemble LRI, Université Paris Sud de@lri.fr Consistance mémoire L écriture dans une case devient visible à tous les autres processus dans le même ordre. Mais quand

Plus en détail

Synchronisation et communication entre processus

Synchronisation et communication entre processus Synchronisation et communication entre processus Interblocage et coalition Joëlle Delacroix AMSI1999/2000 1 INTRODUCTION Système multiprocessus L'ordonnancement "entrelace" les exécutions P1 P2 P3 Processus

Plus en détail

Travaux pratiques MPI Liste des exercices

Travaux pratiques MPI Liste des exercices Travaux pratiques MPI Liste des exercices 1 T.P. MPI Exercice 1 : Environnement MPI... 2 2 T.P. MPI Exercice 2 : Ping-pong... 3 3 T.P. MPI Exercice 3 : Communications collectives et réductions... 5 4 T.P.

Plus en détail

Cours 2. Processus et ordonancement

Cours 2. Processus et ordonancement Cours 2 Processus et ordonancement PolyTECH - Système Thomas Lavergne Université Paris-Sud Définition 0A 2F D3 4F BA 78 21 FF A3 DA 99 00 45 D3 F2 BA Programme = séquence d'instructions Processeur = Automate

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

Programmation Concurrente

Programmation Concurrente Programmation Concurrente Chapitre 2 : Synchronisation 1. Présentation du problème 2. Synchronisation par sémaphore 3. Synchronisation par événement 4. Le problème des lecteurs et des rédacteurs 1 1. Présentation

Plus en détail

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com Systèmes d Exploitation temps réel 1 2 Plan de l intervention 1. Introduction aux Systèmes Temps Réel 2. Programmation concurrente Synchronisation et communication Besoin en facultés temporelles 3. Ordonnancement

Plus en détail

Quelques notions d'algorithmique

Quelques notions d'algorithmique Quelques notions d'algorithmique I- Généralités Un algorithme est une suite finie d'instructions permettant la résolution systématique d'un problème donné. Un algorithme peut-être décrit en langage «naturel»,

Plus en détail

Installation personnalisée

Installation personnalisée Installation personnalisée Pour installer Windows 7, démarrez l ordinateur et insérez le disque d installation de Windows 7. Si la page Installer Windows ne s affiche pas ou si vous n êtes pas invité à

Plus en détail