Examen Corrigé NFP137 : Systèmes et applications concurrentes



Documents pareils
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

Partie 7 : Gestion de la mémoire

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

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

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

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

Systemes d'exploitation des ordinateurs

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

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

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

GESTION DE LA MEMOIRE

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

Initiation à la sécurité

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

SYSTÈME DE GESTION DE FICHIERS

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

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Réalisation d un OS 32 bits pour PC(x86)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

Architecture des ordinateurs

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

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

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Limitations of the Playstation 3 for High Performance Cluster Computing

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

Initiation au HPC - Généralités

2 disques en Raid 0,5 ou 10 SAS

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Conception de circuits numériques et architecture des ordinateurs

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

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

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

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

TP : Gestion d une image au format PGM

Compilation (INF 564)

UE Programmation Impérative Licence 2ème Année

Bases de données documentaires et distribuées Cours NFE04

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Structure fonctionnelle d un SGBD

Les avantages de la virtualisation sont multiples. On peut citer:

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Concept de machine virtuelle

Dynamic Host Configuration Protocol

Licence Sciences et Technologies Examen janvier 2010

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

A5.2.3, Repérage des compléments de formation ou d'autoformation

Cours de Systèmes d Exploitation

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

Problèmes liés à la concurrence

Ordonnancement temps réel

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

IV- Comment fonctionne un ordinateur?

Microsoft Virtual Server, trucs et astuces avancés

Allocation de l adressage IP à l aide du protocole DHCP.doc

LES SYSTÈMES DE FICHIERS

Guide d installation JMap 5.0

Manuel du logiciel PrestaTest.

Les journées SQL Server 2013

Cours 1 : La compilation

Gestion mémoire et Représentation intermédiaire

Cours Informatique 1. Monsieur SADOUNI Salheddine

CH.3 SYSTÈMES D'EXPLOITATION

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

Temps Réel. Jérôme Pouiller Septembre 2011

NOTIONS DE RESEAUX INFORMATIQUES

TP3 : Manipulation et implantation de systèmes de fichiers 1

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Exigences système Commercial & Digital Printing

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Synchro et Threads Java TM

Le test automatisé des applications web modernes

Initiation. àl algorithmique et à la programmation. en C

Pré-requis installation

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

PREREQUIS TECHNIQUES ETAFI DECISIV. PRT ETAFI Decisiv 12/2014 Page 1 sur 16

Structure d un programme

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

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

Optimisation de 4D Server et 4D Web Server. Résumé. 4D Notes techniques

PPE 1 PRISE EN MAIN DE VMWARE VSPHERE 5.5 & CONFIGURATION D UNE MACHINE VIRTUELLE

Cours A7 : Temps Réel

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

La plate forme VMware vsphere 4 utilise la puissance de la virtualisation pour transformer les infrastructures de Datacenters en Cloud Computing.

La mémoire. Un ordinateur. L'octet. Le bit

Annexe 6. Notions d ordonnancement.

Atelier : Virtualisation avec Xen

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Chapitre 4 : Exclusion mutuelle

Transcription:

CONSERVATOIRE NATIONAL DES ARTS et METIERS Centre de Paris Examen Corrigé NFP137 : Systèmes et applications concurrentes 3 juillet 2007 Exercice 1 : Gestion des ressources : L algorithme du banquier. Lorsqu une tâche entre dans le système, elle doit déclarer le nombre maximum d instances de chaque type de ressources qu elle doit utiliser. Lorsqu une requête utilisateur demande un ensemble de ressources, le système doit assurer si cette allocation laisse le système dans un état sain. Les structures de données suivantes permettent de gérer l algorithme du banquier : Disponible[m] contient le nombre de ressources disponibles de chaque type ; Disponible[j] = k signifie que k ressources de type j sont disponible. Max[n][m] indique le nombre maximum de demandes de chaque tâche. Max[i][j] = k signifie que la tâche Ti peut requérir au plus k instances de ressources de type Rj. Allocation[n][m] contient le nombre de ressources de chaque type actuellement alloué à chaque tâche. Allocation[i][j] = k indique que la tâche Ti a actuellement alloué k instances de ressources de type Ri. Besoin[n][m] indique le besoin restant en ressource pour chaque tâche. Besoin[i][j] = k signifie que la tâche Ti a besoin de k instances de plus des ressources Rj pour terminer sa tâche. Considérez l image suivante à un instant donné t0 du système : t0 Allocation Max Disponible A B C D A B C D A B C D T0 0 0 1 2 0 0 1 2 1 5 2 0 T1 1 0 0 0 1 7 5 0 T2 1 3 5 4 2 3 5 6 T3 0 6 3 2 0 6 5 2 T4 0 0 1 4 0 6 5 6 1) En utilisant l algorithme du banquier donner le contenu de la matrice Besoin[5][4] 2) Le système est-il dans un état sain? 3) Si la tâche T1 émet la requête (0,4,2,0), peut-elle être honorée immédiatement? Correction Examen 12 juillet 2007 UE NFP137 1/10

1) t0 Besoin A B C D T0 0 0 0 0 T1 0 7 5 0 T2 1 0 0 2 T3 0 0 2 0 T4 0 0 4 2 2) On applique l algorithme du banquier : Work = 1 5 2 0 On cherche i tel que Besoin i <= Work i=0 On calcule le nouveau Work Work = 1 5 3 2 On cherche i tel que Besoin i <= Work i=3 Work = 1 11 6 4 On cherche i tel que Besoin i <= Work i=1 Work = 2 11 6 4 On cherche i tel que Besoin i < =Work i=2 Work = 3 14 11 8 On cherche i tel que Besoin i <= Work i=4 Work = 3 14 12 12 La séquence T0, T3, T1, T2, T4 satisfait le critère d état sain. 3) T1 = (0,4,2,0) alors la table Allocation devient : t1 Allocation A B C D T0 0 0 1 2 T1 1 4 2 0 T2 1 3 5 4 T3 0 6 3 2 T4 0 0 1 4 Disponible = 0 1 0 0 t1 Besoin A B C D T0 0 0 0 0 T1 1 4 2 0 T2 1 0 0 2 T3 0 0 2 0 T4 0 0 4 2 Work = 0, 1, 0, 0 : Il n existe pas de ligne de Besoin tel que Besoin i <= Work Donc même si les ressources existent, cette requête conduit à un état non sain. Correction Examen 12 juillet 2007 UE NFP137 2/10

Exercice 2 : Synchronisation On considère l algorithme principal de la version suivante du paradigme de synchronisation «lecteurs rédacteurs» La structure d un flot lecteur : while (true) { P (read) ; readcount ++ ; if (readcount == 1) P (wrt) ; V (read) ; // la lecture est effectuée } P (read) ; readcount - - ; if (readcount == 0) V (wrt) ; V (read) ; utiliser_donnees(); La structure d un flot rédacteur : while (true) { creer_donnees() ; P (wrt) ; // l écriture est effectuée } V (wrt) ; 1) Donner les types et les initialisations des variables read, wrt et readcount. 2) Expliquer le type de priorité entre les lecteurs et les rédacteurs induit par un tel algorithme. 3) Transformer cet algorithme pour qu il y ait équité entre les lecteurs et les rédacteurs. 1) Mutex read ; Mutex Wrt ; int readcount = 0 ; E0(read,1) ; E0(wrt,1) ; 2) Priorité aux lecteurs : les rédacteurs n ont pas la possibilité d interrompre une rafale de requête provenant des lecteurs. 3) Correction Examen 12 juillet 2007 UE NFP137 3/10

Toutes les requêtes d accès sont séquentialisées par le sémaphore redact. La structure d un flot lecteur : Mutex redact ; E0(redact, 1) ; while (true) { P(redact) ; P (read) ; readcount ++ ; if (readcount == 1) P (wrt) ; V (read) ; V(redact) ; // la lecture est effectuée } P (read) ; readcount - - ; if (readcount == 0) V (wrt) ; V (read) ; utiliser_donnees(); La structure d un flot rédacteur : while (true) { creer_donnees() ; P(redact) ; P (wrt) ; V(redact) ; // l écriture est effectuée } V (wrt) ; Correction Examen 12 juillet 2007 UE NFP137 4/10

Problème : Gestion mémoire Dans les systèmes informatiques modernes l unité centrale est partagée par un ensemble de tâches ; pour assurer une bonne performance à chacune, le système doit maintenir plusieurs tâches en mémoire ; ce partage de mémoire induit une gestion qui nécessite des ressources matérielles et des algorithmes systèmes. Les algorithmes de gestion mémoire pour un système multiprogrammé sont très divers, du simple système mono utilisateur au système segmenté paginé. Chaque adresse produite par le processeur doit être validée et transformée en une adresse physique ; cette transformation est réalisée par un dispositif matériel, l unité de gestion mémoire (MMU). La méthode d allocation contigüe nécessite de diviser la mémoire en partitions de taille fixe : le système gère alors une table indiquant les espaces mémoires libres et les espaces occupés. A l initialisation, l ensemble de la mémoire est disponible ; lorsqu une tâche nécessite de la mémoire, le système cherche un espace suffisant pour allouer la mémoire demandée ; cet espace est déduit de l espace libre et toute la mémoire nécessaire est allouée à la tâche. Quand la tâche termine elle libère l espace mémoire correspondant. La pagination est un schéma de gestion mémoire qui permet d allouer des espaces non contigües et résout en partie les problèmes posés par la gestion précédente. Les développeurs perçoivent un programme en cours d exécution comme un ensemble structuré d éléments et non comme une liste d adresses mémoire identiques : l espace programme, l espace données statiques, l espace pile, l espace bibliothèque, l espace données dynamique ; chacun de ces espaces est de taille différente. La segmentation est un schéma de gestion mémoire qui supporte cette vision utilisateur. Le schéma segmenté-paginé combine les deux approches précédentes pour rendre plus efficace la gestion mémoire d un grand nombre de tâches partageant une mémoire centrale importante. En comparant les stratégies de gestion mémoire les plus courantes (allocation contigüe, pagination, segmentation, segmentation paginée) les critères suivants sont impactés : - le matériel nécessaire - l allocation des informations (données, code, pile ) en mémoire physique - la performance - la fragmentation - l extension d espace (swapping) - le partage de données et de code - la protection 1) Pour chacun des critères précédents, expliquer clairement les conséquences des différentes stratégies de gestion mémoires évoquées ci-dessus. Correction Examen 12 juillet 2007 UE NFP137 5/10

Matériel Allocation mémoire Performances Fragmentation Extension d espace Partage de données et de code Contigüe Paginée Segmentée Paginéesegmentée Un ensemble de Une table des pages Une table des Une ou plusieurs registres (baselimites) dans la MMU segments tables des pages, une par partition table des segments La mémoire doit être périodiquement recompactée pour récupérer les «trous» Une addition pour former l adresse : très rapide Rapidement, de nombreux espaces non utilisables se créent au fur et à mesure des allocation et désallocation : la mémoire devient très fragmentée Swapping de toute la mémoire associée à la tâche Impossible De la taille d une page : allocation est dynamique par pages Conversion virtuelle réelle rapide si les tables sont dans des registres ou mémoires locales. Peu performant si les tables sont sur disque Fragmentation interne à un espace maximum de la taille d une page Echange avec le disque d une seule page, à la demande. Possible en indiquant le mode dans la table de pages Protection Impossible Des sections de programmes peuvent être déclarées en lecture seule, en lecture/écriture ou en exécution De la taille de chaque segment dont les longueurs sont définies statiquement Une anticipation par une TLB est nécessaire pour ne pas dégrader les performances Fragmentation externe de la taille de l espace réservé pour un segment Gestion d espace pour le segment qui le nécessite Possible, par segments Les sections précédentes sont des segments On considère la gestion mémoire du processeur Pentium résumée ainsi : Allocation dynamique de pages dans des segments fixes. La segmentation rajoute une indirection de plus par rapport au cas précédent. Supprime la fragmentation précédente en limitant l espace qui peut être perdu à la taille d une page Idem pagination. Possible, soit par segment, soit par page Idem cas précédent. L architecture de la gestion mémoire de l Intel Pentium supporte à la fois la segmentation et la segmentation-paginée. L UC fournit une adresse logique, traité par le système de segmentation qui produit une adresse linéaire pour chaque adresse logique ; cette adresse linéaire est transférée au mécanisme de pagination qui engendre une adresse physique. Cette architecture autorise des segments dont la taille peut atteindre 4 GOctets et le nombre maximum de segments par tâche est de 16 K. L espace logique d une tâche est divisé en deux partitions : - La première partition peut atteindre 8 K segments privés pour la tâche - La seconde partition, jusqu à 8K segments, est partagée par toutes les tâches. Correction Examen 12 juillet 2007 UE NFP137 6/10

La LDT (Local Descriptor Table) mémorise les informations de la première partition, la GDT (Global Descriptor Table) mémorise les informations de la seconde. Chaque entrée de ces tables est un descripteur de segments sur 8 octets, mémorisant l adresse de base du segment, sa taille et des informations de contrôle. L adresse logique est composée de deux champs : le sélecteur sur 16 bits et un déplacement sur 32 bits. Le sélecteur contient 3 champs : le N de segment (13 bits), l indication LDT ou GDT (1 bit), et une information de protection (2 bits). Le processeur possède 6 registres segments, permettant à une tâche de gérer directement 6 segments d information ; il contient en outre 6 registres internes pour mémoriser le contenu de la LDT ou de la GTD : ainsi, la machine n a pas à accéder à la mémoire pour lire un descripteur. L adresse linéaire produite est ainsi formée : - Le registre segment désigne une entrée dans la LTD ou la GTD. - Les informations de base et de limite sont utilisées pour engendrer l adresse linéaire. - La limite est utilisée pour un test de validité qui peut remonter une interruption vers le système si erreur. - La valeur du déplacement est ajoutée à la base pour produire l adresse sur 32 bits. Cette adresse linéaire est envoyée au système de pagination pour produire l adresse physique : Le Pentium utilise des pages de 4KO ou 4MO. Un bit de type est présent dans l entrée de la table des pages pour signifier cette alternative. Pour des pages de 4KO, un mécanisme à 2 niveaux est réalisé : - Les 10 premiers bits désignent un répertoire de page ; ce répertoire est lui-même désigné par le contenu d un registre nommé CR3, attaché à une tâche. - Une entrée du répertoire précédent désigne une table de pages ; les 10 bits suivants de l adresse linéaire sont rajoutés pour déterminer l entrée à considérer dans la table des pages. - Les 12 derniers bits désignent un déplacement pour identifier l octet adressé dans la page. Pour des pages de 4MO, la table des pages n existe pas ; 1024 pages de 4MO sont alors accessibles, le déplacement sur 22 bits permettant d accéder à l octet considéré. Pour améliorer l utilisation de la mémoire physique, les tables du système de pagination peuvent être swappées sur disque : un bit de validité est utilisé dans l entrée de la table des pages pour savoir si la table est en mémoire ou sur disque ; dans ce dernier cas les 31 bits restants sont utilisés pour spécifier l adresse disque, ce qui permet de charger ces tables seulement lorsque qu elles sont nécessaires. 2) Décrivez toutes les actions entreprises par le processeur Pentium pour produire une adresse physique en représentant graphiquement les différentes structures mises en œuvre pour les traductions d une adresse logique en une adresse réelle. Correction Examen 12 juillet 2007 UE NFP137 7/10

CPU Unité de Segmentation Unité de pagination Mémoire physique Adresse logique Adresse linéaire Adresse physique s g p déplacement 13 bits 1bit 2bit 16 bits N de segment Adresse Logique LDT GDT protection Segments 1 à 6 6 Registres segments Correction Examen 12 juillet 2007 UE NFP137 8/10

s g p déplacement Descripteur de segment + Adresse linéaire 32 bits Segmentation du Pentium Adresse linéaire Répertoire de pages Table de pages Déplacement 31 21 11 0 Page de 4KB Registre CR3 Page de 4MB Répertoire de pages Déplacement 31 21 0 Pagination du Pentium Correction Examen 12 juillet 2007 UE NFP137 9/10

3) Quels sont les avantages pour le système d exploitation d un processeur offrant de telles ressources? L allocation mémoire est gérée par le matériel, ce qui permet de n avoir en émoire que les informations nécessaires à l exécution de la tâche et à l instant où elles sont nécessaires. La mise en œuvre de la protection est réalisée au niveau du segment ; il n y a pas de fragmentation de la mémoire supérieure à 4KB ; des applications nécessitant une grande quantité de mémoire, peuvent disposer d un incrément mémoire de 4 M octets ; de ême des applications très interactives, ne nécessitant que peu de mémoire peuvent transférer des incréments de 4 K octets. Les segments peuvent être partagés par toutes les tâches, autorisant des codes ré-entrants ou des partages de données, tous les descripteurs de ces segments étant accessibles par la GTD. Les tables nécessaires à la conversion des adresses sont chargées dynamiquement, à la demande, ce qui permet de ne pas mobiliser de ressources qui ne seraient pas utilisées. La performance de la traduction est assurée par des opérations simples se résumant à des accès mémoires locales (tables), registres et des additions ou des tests. Correction Examen 12 juillet 2007 UE NFP137 10/10