Question 2 (4.5 pts) : Synchronisation «passage à niveau»

Documents pareils
Partie 7 : Gestion de la mémoire

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

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

Cours de Systèmes d Exploitation

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

LES SYSTÈMES DE FICHIERS

Systemes d'exploitation des ordinateurs

TD Architecture des ordinateurs. Jean-Luc Dekeyser

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Application 1- VBA : Test de comportements d'investissements

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

Introduction à la programmation concurrente

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Exercices INF5171 : série #3 (Automne 2012)

I. Introduction aux fonctions : les fonctions standards

la virtualisation pour quoi faire?

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Généralités sur le Langage Java et éléments syntaxiques.

Conventions d écriture et outils de mise au point

Initiation à la programmation en Python

Installation du SLIS 4.1

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

Recherche dans un tableau

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

Chapitre 10. Les interfaces Comparable et Comparator 1

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

SYSTÈME DE GESTION DE FICHIERS

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

Programmer en JAVA. par Tama

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

Conception des systèmes répartis

A -Systèmes de fichiers 1 - FAT vs NTFS

Tester Windows 8 sans l'installer avec Virtualbox

Année Universitaire 2009/2010 Session 2 de Printemps

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Examen Médian - 1 heure 30

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours admin 200x serveur : DNS et Netbios

Ordonnancement temps réel

GESTION DE LA MEMOIRE

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Un ordonnanceur stupide

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

modélisation solide et dessin technique

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Programmation Objet - Cours II

Installation et Réinstallation de Windows XP

TP1 : Initiation à Java et Eclipse

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Sauvegarder et restaurer les données PMB

Analyse des trajectoires acceptables en approche de virage assistance aux conducteurs

Structure fonctionnelle d un SGBD

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1.6- Génération de nombres aléatoires

Projet Active Object

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours de Génie Logiciel

Cours Informatique Master STEP

Propagation sur réseau statique et dynamique

Vers l'ordinateur quantique

<Insert Picture Here> Solaris pour la base de donnés Oracle

DYNAMIQUE DE FORMATION DES ÉTOILES

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Installation d un poste i. Partage et Portage & permissions NTFS

Parallélisme et Répartition

Annexe : La Programmation Informatique

BTS 2 SIO Active directory- windows serveur 2012 Version 1.1 (12/12/2014)

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Stockage du fichier dans une table mysql:

1.1 L EXPLORATEUR WINDOWS

Découverte de l ordinateur. Partie matérielle

Programmation C++ (débutant)/instructions for, while et do...while

Problèmes liés à la concurrence

Droits d'auteur N

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cours Programmation Système

Sauvegarde et restauration d'un système d'exploitation Clonezilla

Chapitre 4 : Exclusion mutuelle

Architecture des ordinateurs

Transcription:

Hiver 2005 Page 1 sur 7 INF3600 Question 1 (3 pts ) : Généralités Répondez, en 5 lignes maximum, aux questions suivantes : a) Un système possède suffisamment de mémoire pour contenir 4 processus en mémoire principale. Ces derniers sont bloqués en attente d E/S la moitié du temps. La fraction du temps CPU perdue est de 9.75%. Vrai ou faux? b) Comment implanter le partage du code (code réentrant) dans un système qui gère la mémoire par pagination? c) Lors du changement de contexte, faut-il invalider le contenu de la mémoire associative du MMU? Pourquoi? Question 2 (4.5 pts) : Synchronisation «passage à niveau» On considère le problème du passage à niveau à voie unique. Pour simuler le fonctionnement de ce système, on se propose de le modéliser par un ensemble de processus parallèles : o un processus Contrôleur qui se charge de commander la fermeture et l ouverture des barrières. Les barrières doivent être fermées lorsqu un train traverse le passage à niveau. Le contrôleur ouvre les barrières s il n y a aucun train en attente du passage à niveau. o un processus Train est associé à chaque train. Il est créé de façon aléatoire pour simuler l arrivée d un train ainsi que la traversée du passage à niveau. Complétez, en ajoutant les sémaphores et le code nécessaires, les procédures suivantes exécutées par les processus Contrôleur et Train (attention : vous ne devez pas ajouter de variables d autres types). Si besoin est, vous pouvez utiliser l opération int PNB(semaphore s) qui est l équivalent de sem_trywait(&s). Expliquez le rôle de chaque sémaphore (indiquez l utilité de sa queue ainsi que sa valeur initiale). Attention : Vous ne devez pas ajouter de variables autres que les sémaphores.

Hiver 2005 Page 2 sur 7 INF3600 Semaphore /*0*/ Contrôleur () Train() { { while(1) /*3*/ { /*1*/ Traverser(); /*4*/ FermerBarrieres() ; /*2*/ OuvrirBarrieres() ; Question 3 (3 pts) : Synchronisation/Interblocage On dispose d'un mécanisme d'enregistrement à un ensemble de cours, tel que tout étudiant ne peut être inscrit qu'à au plus trois cours, et que chaque cours a un nombre limité de places. Un étudiant inscrit déjà à trois cours peut s il le souhaite en abandonner un, pour en choisir un autre dans la limite des places disponibles. Si cet échange n est pas possible, l étudiant ne doit pas perdre les cours auxquels il est déjà inscrit. Le bureau des affaires académiques souhaite donc mettre en place un système de permutation de cours, permettant à un étudiant de changer de cours. Il vous sollicite pour vérifier si l implémentation que vous avez proposée il y a un an (avant se suivre le cours INF3600) est correcte : void EchangeCours (Putilisateur utilisateur, PCours cours1, cours2) { cours1->verrouille (); // verrouille l accès à l objet cours1 cours1->desinscrit (utilisateur); if (cours2->estplein == false) { cours2->verrouille (); // verrouille l accès à l objet cours2 cours2->inscrit (utilisateur); cours2->deverrouille (); //déverrouille l accès à l objet cours2 cours1->deverrouille (); //déverrouille l accès à l objet cours2 Vérifiez si l'implémentation est correcte : Si elle est correcte, expliquez pourquoi, en montrant comment est géré le cas où deux étudiants (ou plus) veulent accéder en même temps au système. Si elle est incorrecte, listez et expliquez les problèmes, et proposez une solution qui fonctionne.

Hiver 2005 Page 3 sur 7 INF3600 Question 4 ( 3 pts) : Ordonnancement RMS est un algorithme d ordonnancement temps-réel des processus périodiques. Un processus périodique (P i ) est caractérisé par sa période d activation (T i ), son temps d exécution (C i ) et sa date d arrivée dans le système (S i ). Chaque processus possède une contrainte temporelle : il doit s exécuter complètement avant que sa période arrive de nouveau. Le principe de l algorithme RMS consiste à associer à chaque processus une priorité fixe, inversement proportionnelle à sa période. Lorsqu il est appelé, l ordonnanceur du système choisit le processus de plus forte priorité et le lance en exécution (ordonnacement à priorités). Soit trois processus A, B et C définis par les paramètres suivants : S A = S B = S C = 0 T A = 29 ms, C A = 7 T B = 5 ms, C B = 1 T C = 10 ms, C C = 2 a) Indiquez les priorités des processus P 1, P 2 et P 3 selon RMS. b) Donnez le diagramme de Gantt pour les 30 premières ms d ordonnancement RMS, si l ordonnanceur est préemptif. c) Donnez le diagramme de Gantt pour les 30 premières ms d ordonnancement RMS, si l ordonnanceur est non préemptif. d) Est-ce que tous les processus respectent leurs contraintes temporelles sur les 30 premières ms dans le cas b)? Et dans le cas c)? Sinon, justifiez. Question 5 (4.5 pts) : Gestion de la mémoire I) Soit un programme dont le code occupe 1024 octets en mémoire et qui utilise un vecteur avec 1000 éléments de type caractère (un caractère = un octet en mémoire). Ce programme est exécuté dans un système qui utilise la pagination de la mémoire dont la taille de la mémoire réelle est de 1 Mo, la taille d'une page est de 512 octets et les instructions à référence mémoire ont un champ d adresse de 24 bits. a) Donnez : 1) la taille de l'espace logique d adressage 2) le nombre de bits du déplacement 3) le nombre de bits du numéro de page virtuelle 4) le nombre de bits d'une adresse réelle 5) le nombre de bits du numéro de page réelle (case) 6) le nombre d'entrées de la table des pages b) Le chargement de ce programme en mémoire engendre-t-il une fragmentation interne? Justifiez votre réponse. II) Donnez le format d une adresse virtuelle de 32bits avec des pages de 256 octets et une table des pages à trois niveaux. Si toutes les tables ont le même nombre d entrées, donnez le nombre de tables ainsi que leur nombre d entrées.

Hiver 2005 Page 4 sur 7 INF3600 III) On appelle "anomalie de Belady" le fait que le nombre de défauts de pages augmente quand on augmente le nombre de cadres de pages disponibles en mémoire physique. On appelle "algorithme à pile" un algorithme présentant la propriété d'inclusion : M(m,r) inclus dans M(m+1, r), où m est le nombre de cadres de mémoire et r un index dans le vecteur de références aux pages (ω). M(m,r) représente l'ensemble des pages présentes en mémoire après r références mémoire, lorsque l'on dispose de m cadres de page. Une condition suffisante pour qu'un algorithme ne présente pas l'anomalie de Belady est qu'il soit à pile. a) Montrez l anomalie de Belady pour l algorithme FIFO avec m=3, puis m=4, pour le vecteur de références aux pages suivant : ω = { 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. b) Montrez sur cet exemple que l algorithme FIFO n est pas un algorithme à pile, en indiquant les états pour lesquels la propriété d'inclusion n'est pas vérifiée. Question 6 (2 pts) : Systèmes de fichiers Considérez le système de fichiers NTFS (version simplifiée). Ce système gère des partitions dont la taille peut atteindre 2 64 octets. L allocation se fait par blocs de taille fixe, encore appelés clusters, les numéros de clusters étant représentés sur 64 bits. L espace libre est représenté par un fichier bitmap qui, à raison de 1 bit par cluster, définit son état d allocation. Une table, appelée MFT (Master File Table), contient un ou plusieurs enregistrement(s) par fichier existant sur le disque. Cet enregistrement, de la taille d un cluster, a la structure suivante pour un fichier nécessitant un seul enregistrement : On gère une partition de 2 Go par ce système, en utilisant une taille de cluster de 4 Ko. a) Déterminez le nombre de clusters ainsi que la taille du fichier bitmap. b) Que contient le champ «Header» qui précède les «Run»? À quoi sert-il?

Hiver 2005 Page 5 sur 7 INF3600 Solutions question 1 : a) Faux. Le temps perdu par le processeur est le temps où tous les processus sont bloqués simultanément pour des opérations d E/S. La probabilité qu un processus soit bloqué en attente d une E/S est p = 50%. Alors, la probabilité que tous les 4 processus soient simultanément bloqués en attente est de p 4 = 6.25%. La fraction du temps CPU perdue est de 6.25%, pas de 9.75%. b) Il suffit de faire pointer les pages virtuelles de deux processus sur les mêmes pages physiques. c) Il faut invalider le contenu car elle contient les dernières références aux pages du processus suspendu. Solution question 2: Semaphore quitte=0, passage=0 ; present=0; /*0*/ Contrôleur () Train() { { while(1) V(present) ; /*3*/ { P(present) /*1*/ P(passage); Traverser(); V(quitte) ; /*4*/ FermerBarrieres() ; V(passage) ; /*2*/ P(quitte) ; While (PNB(present)) { V(passage) ; P(quitte) ; OuvrirBarrieres() ; //present est le sémaphore qui sert à comptabiliser le nombre de trains présents. //passage est le sémaphore qui mémorise les trains en attente du passage à niveau. //quitte est le sémaphore qui sert à bloquer/débloquer le contrôleur lorsque le train entame/termine la traversée. // PNB est l équivalent de sem_trywait. Solution question 3 : Cette implémentation est incorrecte pour plusieurs raisons : - on désinscrit toujours l'utilisateur de son premier cours, même s'il n'a pas pu être inscrit au deuxième cours ; - du fait que l'on verrouille le deuxième cours alors qu'on a déjà un verrou sur le premier, on a un risque d'interblocage si deux étudiants lancent simultanément la routine avec les deux

Hiver 2005 Page 6 sur 7 INF3600 mêmes valeurs de cours, mais dans l'ordre inverse : chacun verrouillera d'abord le cours que l'autre voudra verrouiller ensuite, et il ne sera donc pas possible de sortir de cet interblocage ; - on ne verrouille pas le deuxième cours avant de faire le test pour savoir s'il est plein. void EchangeCours (Putilisateurs utilisateur, PCours cours1, cours2) { cours2->verrouille (); if (cours2->estplein == false) { cours2->inscrit (utilisateur); cours2->deverrouille (); cours1->verrouille (); cours1->desinscrit (utilisateur); cours1->deverrouille (); else cours2->deverrouille (); Solution question 4 : a) Pr A = 1, Pr B = 3, Pr C = 2, où 3 est la priorité la plus forte b) B C A B A B C A B B C B A 0 1 3 5 6 10 11 13 14 15 16 20 21 23 25 26 29 30 c) B C A B C B B C B 0 1 3 10 11 13 15 16 20 21 23 25 26 30 d) Oui, dans le cas a). Non, dans le cas b). B ne respecte pas sa contrainte temporelle sur la période 2 (entre les instants 5 et 10). Solution question 5 I a) 1) 2 24 = 16Mo 2) 9 bits 3) 24 9 = 15 bits 4) 20 bits 5) 20 9 = 11 bits 6) 2 15 = 32Ko I b) Oui. Le programme a besoin de 2000 octets de données et de 1024 octets de code, donc un total de 3024 octets en mémoire. Le nombre de pages occupées : [3024 / 512] = 6 pages. Dans la dernière page, il reste 512 464 = 48 octets libres, ce qui cause la fragmentation interne. II) Le format PT1(8bits) PT2(8bits) PT3(8bits) Offset(8bits) Le nombre de tables : 1 + 256 + (256*256). Le nombre d entrées : 256

Hiver 2005 Page 7 sur 7 INF3600 III) a) L algorithme FIFO pour m=3 1 2 3 4 1 2 5 1 2 3 4 5 M 0 1 1 1 4 4 4 5 5 5 5 5 5 M 1 2 2 2 1 1 1 1 1 3 3 3 M 2 3 3 3 2 2 2 2 2 4 4 P P P P P P P P P Il y a 9 défauts de page L algorithme FIFO pour m=4 1 2 3 4 1 2 5 1 2 3 4 5 M 0 1 1 1 1 1 1 5 5 5 5 4 4 M 1 2 2 2 2 2 2 1 1 1 1 5 M 2 3 3 3 3 3 3 2 2 2 2 M 3 4 4 4 4 4 4 3 3 3 P P P P P P P P P P Il y a 10 défauts de page (anomalie de Belady) b) L algorithme exemplifié au point a) n est pas à pile. Les états où l inclusion n est pas vérifiée sont les états d index 7, 8 et 11 dans le vecteur de références aux pages (ω). Solution question 6 : a) Le nombre de clusters est obtenu en divisant la taille de la partition par la taille d un cluster. On obtient 524288 clusters. Comme il faut 1 bit par cluster, cela conduit à une taille du fichier bitmap de 64 Ko. b) L entête indique les numéros de blocs logiques dont les numéros physiques correspondants sont dans l enregistrement. Il sert à accélérer la localisation des blocs physiques d un fichier.