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



Documents pareils
Partie 7 : Gestion de la mémoire

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Ordonnancement temps réel

Licence Sciences et Technologies Examen janvier 2010

Programmation C. Apprendre à développer des programmes simples dans le langage C

Problèmes liés à la concurrence

Baccalauréat ES Amérique du Nord 4 juin 2008

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

CEG4566/CSI4541 Conception de systèmes temps réel

TSTI 2D CH X : Exemples de lois à densité 1

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Représentation d un entier en base b

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Cours de Systèmes d Exploitation

Un ordonnanceur stupide

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Concept de machine virtuelle

Conception des systèmes répartis

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Cours Informatique 1. Monsieur SADOUNI Salheddine

Recherche dans un tableau

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel

V- Manipulations de nombres en binaire

Systemes d'exploitation des ordinateurs

Petit guide des sous-réseaux IP

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Initiation à la programmation en Python

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Cours de Génie Logiciel

GPA770 Microélectronique appliquée Exercices série A

Les arbres binaires de recherche

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Métriques de performance pour les algorithmes et programmes parallèles

1 Mesure de la performance d un système temps réel : la gigue

Introduction aux Systèmes et aux Réseaux

Architecture des ordinateurs

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

BACCALAURÉAT PROFESSIONNEL SUJET

Synchro et Threads Java TM

1 Recherche en table par balayage

Cours d algorithmique pour la classe de 2nde

LA mémoire principale est le lieu où se trouvent les programmes et les

Logiciel de base. Première année ENSIMAG

Les processus légers : threads. Système L3, /31

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

Apllication au calcul financier

Exécutif temps réel Pierre-Yves Duval (cppm)

LES OUTILS DE GESTION DE PROJET

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Firewall Net Integrator Vue d ensemble

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

On appelle variable condition une var qui peut être testée et

Structure fonctionnelle d un SGBD


Algorithmique I. Algorithmique I p.1/??

Annexe commune aux séries ES, L et S : boîtes et quantiles

UE C avancé cours 1: introduction et révisions

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Chapitre 2 Le problème de l unicité des solutions

Les algorithmes de base du graphisme

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Analyse de performance, monitoring

CH.3 SYSTÈMES D'EXPLOITATION

Algorithme. Table des matières

Introduction à la programmation concurrente

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Logiciel de Base. I. Représentation des nombres

Représentation des Nombres

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Programmes des classes préparatoires aux Grandes Ecoles

Support de cours système d exploitation

RENOVER LES FEUX TRICOLORES

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

L énergie durable Pas que du vent!

Limitations of the Playstation 3 for High Performance Cluster Computing

Transcription:

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é à un processus. Tous les threads d un processus partagent les ressources du processus. b) La solution de Perterson est elle satisfaisante pour résoudre le problème d exclusion mutuelle, expliquer brièvement? Non, car elle se base sur une attente active et sa généralisation à N processus est complexe. c) Si la liste (ou la table de bits) des blocs libres est complètement perdue suite à un «crash», est-il possible de la reconstruire dans le cas d UNIX standard? Oui, il suffit de parcourir les i-noeuds pour récupérer tous les blocs alloués. Les blocs restants sont libres. d) Expliquez comment convertir une adresse linéaire x d'un octet dans un fichier (offset) en numéro de bloc physique, dans le cas de la FAT16. Il faut d abord déterminer le numéro du bloc logique (x / taille du bloc), récupérer le numéro du 1er bloc du fichier (qui est un attribut du fichier) puis parcourir la liste de blocs alloués au fichier (cette liste se trouve dans la FAT). e) Sachant qu il est possible de récupérer des fichiers effacés dans le système de fichiers ext2 généralement utilisé par Linux, expliquer ce qui se passe dans ce système de fichier à la suite de la commande : $> rm monfichier.c L inoeud ainsi que les blocs alloués au fichier sont mis à libre mais ne sont pas effacés.

Question 2 (6 pts) : Synchronisation d une intersection La circulation dans une intersection de deux voies à sens unique est réglée par des signaux lumineux (feu vert/rouge). On suppose que les voitures traversent l intersection en ligne droite et que l intersection peut contenir au plus une voiture à la fois. Voie 2 Feu 2 Voie 1 Feu 1 On impose les conditions suivantes : o toute voiture se présentant à l intersection la franchit en un temps fini ; o les feux de chaque voie passent alternativement du vert au rouge, chaque couleur étant maintenue pendant un temps fini (Duree_du_feu) ; o les arrivées sur les deux voies sont réparties de façon quelconque. Le fonctionnement de ce système peut être modélisé par un ensemble de processus parallèles: o un processus P qui exécute la procédure Changement qui commande les feux; o un processus est associé à chaque voiture; la traversée du carrefour par une voiture qui circule sur la voie i (i = 1, 2) correspond à l'exécution d'une procédure Traverseei() par le processus associé à la voiture. a) Pour simuler un tel système, on vous demande, dans un premier temps, de compléter, en ajoutant les sémaphores et le code nécessaires, les procédures suivantes (attention : vous ne devez pas ajouter de variables d autres types) :

Semaphore Changement () Traversee1() Traversee2() int Feu = 1; while(1) sleep(duree_du_feu); circuler(); circuler(); if Feu == 1) else // Feu = 1 si le feux de la voie 1 est vert, Feu =2 si le feux de la voie 2 est vert //circuler simule la traversée de l intersection b) Dans une seconde étape, il vous est demandé de compléter le moniteur suivant, en ajoutant les variables de condition et le code nécessaires : Moniteur Intersection int Feu = 1, Nbw1=0 ; Nbw2=0; Changement () Traversee1() Traversee2() while(1) sleep(duree_du_feu); circuler(); circuler(); if Feu == 1) else // Feu = 1 si le feux de la voie 1 est vert, Feu =2 si le feux de la voie 2 est vert // Nbw1 est le nombre de voitures.. sur la voie 1 //Nbw2 est le nombre de voitures....sur la voie 2. Corrigé question 2: 1) Sémaphores utilisés : Semaphore SI1=1, SI2=1, SF1=1, SF2=0; Changement Traversee1 Traversee2 int Feu = 1; P(SI1); P(SI2); while(1) P(SF1); P(SF2); sleep(duree_du_feu); Traversee(); Traversee(); if Feu == 1) V(SF1); V(SF2); P(SF1); V(SF2); Feu = 2; V(SI1); V(SI2); else P(SF2); V(SF1); Feu = 1;

SI1 et SI2 sont introduits pour éviter que les voitures attendent sur SF1 et SF2 et bloquent de ce fait les changements de feu effectués par Changement. 2) Moniteurs Moniteur Intersection Boolc wtour1, wtour2, wfeu1, wfeu2; int Feu=1, nbw1=0 ; nbw2=0; Changement () Traversee1() while(1) if( nbw1!=0) sleep(duree_du_feu); nbw1++;wait(wtour1);nbw1--; if (Feu == 1) if(feu!=1) wait(wfeu1); Feu=2;signal(wfeu2); circuler(); if(nbw1!=0) signal(wtour1) ; else Feu=1; signal(wfeu1); Traversee2() if( nbw2!=0) nbw2++;wait(wtour2);nbw2--; if(feu!=2) wait(wfeu2); circuler(); if(nbw2!=0) signal(wtour2) ; Question 3 (2 pts) : Interblocage Soient trois processus concurrents qui utilisent en exclusion mutuelle 6 ressources différentes (de A à F). Ces trois processus exécutent respectivement les codes suivants : Processus_1() while(1) prendre (&D); prendre (&E); prendre (&C); // Utilisation des ressources; Processus_2() while(1) prendre (&C); prendre (&B); prendre (&F); // Utilisation des ressources; Processus_3() while(1) prendre(&a); prendre (&B); prendre (&E); // Utilisation des ressources;

liberer(&d); liberer(&e); liberer(&c); liberer(&f); liberer(&b); liberer(&c); liberer(&e); liberer(&b); liberer(&a); Ces processus concurrents peuvent-ils entrer en interblocage? Expliquez à l aide d un graphe. Si oui, peut-on l éviter? Justifiez brièvement. Corrigé 1 détient D, E attend C 2 détient C attend B 3 détient A, B attend E Oui, en utilisant l algorithme du banquier Question 4 (3 pts) : Ordonnancement L ordonnancement EDF (Earliest Deadline First) est un algorithme d ordonnancement temps réel de processus. A chaque fois qu un processus demande du temps CPU, il doit préciser une échéance (une date limite >0). Le processus doit avoir obtenu son temps CPU avant d atteindre la date limite. L ordonnanceur vise à satisfaire les demandes avant leurs échéances. Pour se faire, il gère une liste des processus prêts, classés par ordre croissant des échéances. L algorithme exécute le premier processus de la liste qui correspond à celui dont l échéance est la plus proche. Lorsqu un processus devient prêt ou arrive dans le système, le système vérifie si son échéance est antérieure (strictement inférieure) à celle du processus en cours d exécution. Si tel est le cas, le nouveau processus préempte le processus en cours. a) Considérez trois processus A,B et C suivants : A demande le CPU toutes les 30ms et requiert à chaque fois 10 ms de temps CPU. B demande du temps CPU toutes les 40ms et requiert à chaque fois 15 ms. C demande du temps CPU toutes les 50ms et a besoin à chaque fois 5 ms de temps CPU. Supposez qu au départ, les processus sont prêts et que l échéance de chaque demande est la date de la prochaine demande. Donnez le diagramme de Gantt pour les 100 premières ms. A B C A B C A B A 0 10 25 30 40 55 60 70 80 95 105 b) Peut-on avoir des cas de non respect d échéances? Justifiez votre réponse.

Oui. Exemple : Processus A (CPU 25, Échéance 30) Processus B (CPU 30, Échéance 40) Dans ce cas, il y a non respect d échéance pour B (25+30 > 40). Question 5 (4 pts) : Gestion de la mémoire Considérez un système de gestion de mémoire qui a les caractéristiques suivantes : Un adressage virtuel sur 32 bits Une taille de Page de 4Ko Une mémoire physique de 1 Mo a) Supposez que le système utilise la segmentation paginée et que l adresse virtuelle est de la forme : Quelles sont les données manquantes à ce problème pour traduire l adresse virtuelle de 32 bits suivante : 0xAE854C9C en adresse physique? Si vous aviez ces informations, identifiez brièvement les étapes à suivre pour effectuer cette translation. Il manque la table des segments qui va nous indiquer la table de pages associée au segment désiré. Cette table des pages nous permettra d obtenir le cadre associé à notre adresse. L adresse physique est obtenue en remplaçant les numéros de segment et de page par le numéro du cadre b) Supposez que le système utilise une pagination à deux niveaux, où les entrées des tables de pages sont sur 4 octets. La structure de l adresse virtuelle est illustrée par la figure suivante : b.1) Si un processus utilise tout l espace adressable qui lui est fourni, combien de pages seront-elles nécessaires pour contenir toutes les tables de pages de ce processus.

Il y a 2 10 tables de pages de second niveau et une table de pages de premier niveau. Chaque table de pages a 2 10 entrées. Elle occupe donc une page 2 10 x 4octects = 4096 octets. REP : 2 10 +1 pages seront nécessaires pour toutes les tables de pages. b.2) Un second processus nécessite 22Mo pour s exécuter entièrement (son code, ses données, pile ). La partie contenant son code est disposée dans sa mémoire virtuelle aux adresses suivantes [2Mo à 6Mo-1], les données sont quant à elles dans l intervalle [12Mo- 21Mo-1]. Si nous devons charger les tables de pages associées à ces deux parties, combien de pages de niveaux 2 seront chargées en mémoire centrale. REP : Chaque entrée de la table des pages de niveau 2 est associée à un cadre de 4Ko (2 12 ). Sachant qu une table de pages de niveau 2 contient 2 10 entrées, elle référence 2 10 * 2 12 o = 4Mo de la mémoire virtuelle. La première table de niveau 2 référence la mémoire virtuelle comprise entre [0, 4Mo-1], la seconde [4Mo, 8Mo-1] et ainsi de suite.. Donc : pour le code 2 tables de pages de niveaux 2 seront nécessaires (c-à-d 2 pages ) pour les données 3 tables de pages de niveaux 2 seront nécessaires (c-à-d 3 pages). c) Supposez maintenant que le système utilise une pagination pure et que les bits 12 à 31 correspondent à un numéro de page. Si nous utilisons une table inversée, combien d entrées la table de pages inversée contiendra-t-elle? Le nombre de cadres est : 2 20 / 2 12 = 2 8 1 entrée par cadre => 2 8 entrées