Principes des systèmes d'exploitation



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

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

Problèmes liés à la concurrence

Systèmes d exploitation Gestion de processus

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

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

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

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

SYSTÈME DE GESTION DE FICHIERS

Partie 7 : Gestion de la mémoire

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

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

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

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

Threads. Threads. USTL routier 1

Structure fonctionnelle d un SGBD

IFT Systèmes d exploitation - TP n 1-20%

Cours de Systèmes d Exploitation

IV- Comment fonctionne un ordinateur?

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

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

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

REALISATION d'un. ORDONNANCEUR à ECHEANCES

CH.3 SYSTÈMES D'EXPLOITATION

Cours de Système : Gestion de Fichiers

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

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

Synchro et Threads Java TM

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

GESTION DE LA MEMOIRE

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

Session 8: Android File System

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Analyse de performance, monitoring

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

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Gestion des processus

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours Programmation Système

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

Introduction à la programmation concurrente

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Architecture des ordinateurs

Systemes d'exploitation des ordinateurs

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

Windows Server Chapitre 1: Découvrir Windows Server 2008

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Chapitre 4 : Outils de communication centralisés entre processus

Gestion de la mémoire

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

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

Cours A7 : Temps Réel

INITIATION AU LANGAGE JAVA

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

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

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

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

Support de cours système d exploitation

Initiation au HPC - Généralités

LOG4430 : Architecture et conception avancée

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

Introduction : les processus. Introduction : les threads. Plan

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Java Licence Professionnelle CISII,

Introduction à la Programmation Parallèle: MPI

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

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Système de Gestion de Fichiers

Ordonnancement temps réel

Programmation système I Les entrées/sorties

Introduction aux Systèmes et aux Réseaux

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

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

Configuration du serveur ESX

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Rappels d architecture

ACTIVITÉ DE PROGRAMMATION

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

Modélisation des interfaces matériel/logiciel

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

Fonctionnalités d Acronis :

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

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Chapitre IX : Virtualisation

Integrated Modular Avionic

Tests de performance du matériel

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Mise en oeuvre TSM 6.1


Transcription:

Principes des systèmes d'exploitation Fonctions : Machine virtuelle : ajoute des fonctionnalités (par exemple système de fichier vs accès pistes - secteurs) Gestion des ressources : processeur, mémoire, espace disque, accès au réseau... Plate-forme pour le développement d'applications Types : Multi-tâches mono utilisateur (Windows 95-98...) Multi-tâches multi- utilisateur (UNIX...) d'usage général (sécurité) temps réel Distribués Structure : Monolithique Processus API Kernel Matériel Principes des systèmes d'exploitation Tr 1.1

Micro-kernel + modules Le processeur doit posséder un mode protégé permettant l'exécution de certaines instructions critiques (entrées sorties physiques, manipulation des interruptions...) kernel space : routines critiques de l'o.s. user space : application Définitions : Programme : lignes de code dans un fichier Processus : instance d'un programme en cours d'exécution Thread : morceau de programme en cours d'exécution Principes des systèmes d'exploitation Tr 1.2

Traitement multi-tâches : Ordonnancement des tâches contrôlé par le système d'interruption : interruption périodique (timer) interruption liées aux entrées sorties Problème des entrées-sorties blocantes read(int fileid, char *userbuffer, int bufferlength) while (datanotavailable()) /* do nothing */; // Copy bytes to process's buffer, from system buffer. memcpy(userbuffer, device->buffer, bufferlength); Mise en veille (état bloqué) : read(int fileid, char *userbuffer, int bufferlength) if (datanotavailable()) linkprocesstowaitqueue(device->queue, thisprocess); thisprocess->status = BLOCKED; // Call the scheduler and dispatcher to give up the CPU. scheduler(); // By the time we get here, data is available... //... and thisprocess->status is once again RUNNING. // Copy bytes to process's buffer, from system buffer. memcpy(userbuffer, device->buffer, bufferlength); Principes des systèmes d'exploitation Tr 1.3

Liste des processus : Coopération entre les processus Problèmes potentiels : race condition 'add' process 'remove' process value of 'count' temp1 = count 10 temp1++ 10 PROCESS SWITCH! temp2 = count 10 temp2 -- 10 count = temp2 9 PROCESS SWITCH! count = temp1 11 opération atomique Suppression des interruptions (déconseillé!) Exclusion mutuelle (MUTEX) par sémaphores : protection par des sections critiques accessibles à un seul processus à la fois Principes des systèmes d'exploitation Tr 1.4

Les sémaphores. entier non négatif ne pouvant être manipulé que par trois instructions atomiques : initialisation WAIT : décrémente le sémaphore d'une unité s'il est > 0, sinon bloque le processus SIGNAL : incrémente le sémaphore d'une unité Utilisation des sémaphores : Synchronisation Mutex // Global variables (shared between processes): int count; // The shared variable. // Create a semaphore for mutual exclusion---initialised to 1. Semaphore mutex = new Semaphore(1); void addauser() register int temp; wait(mutex); // Start of critical section. temp = count; temp ++; count = temp; signal(mutex); // End of critical section. Principes des systèmes d'exploitation Tr 1.5

Producteur consommateur const int BUFFER_CAPACITY = 100; // Say, for example. Semaphore emptyslots = new Semaphore(BUFFER_CAPACITY); Semaphore fullslots = new Semaphore(0); Semaphore mutualexclusion = new Semaphore(1); void producer() for(/*ever*/;;) Object item = produceitem(); wait(emptyslots); // Wait for buffer space. wait(mutualexclusion); // Enter critical section. buffer.insertitem(item); signal(mutualexclusion); // Leave critical section. signal(fullslots); // Signal the consumer. void consumer() for(/*ever*/;;) wait(fullslots); // Wait for item in buffer. wait(mutualexclusion); // Enter critical section. Object item = buffer.removeitem(); signal(mutualexclusion); // Leave critical section. signal(emptyslots); // Signal the producer. consumeitem(item); Principes des systèmes d'exploitation Tr 1.6

Blocage (deadlock) - étreinte fatale (deadly embrace) Exemple : verrouillage de fichier (file locking) Processus A : Processus B : Tant que le fichier_1 est verrouillé Tant que le fichier_2 est verrouillé attendre ; attendre ; verrouiller le fichier_1 verrouiller le fichier_2 Tant que le fichier_2 est verrouillé attendre ; verrouiller le fichier_2 utiliser fichier_1 et fichier _2 déverrouiller fichier_1 et fichier _2 Tant que le fichier_1 est verrouillé attendre ; verrouiller le fichier_1 utiliser fichier_1 et fichier _2 déverrouiller fichier_1 et fichier _2 Ordonnancement des processus Scheduler : choisi quel est le processus qui doit tourner Dispatcher : lance l'exécution du processus choisi par le scheduler Round robin : liste circulaire, t ex temps d'éxécution, t ov temps nécessaire au scheduler et au dispatcher Efficacité : t ex >> Temps de réponse : t ex << Priorité : plusieurs listes circulaires Temps réel : temps de réponse garanti Principes des systèmes d'exploitation Tr 1.7

Gestion de la mémoire Un processus ne doit pas pouvoir accéder à l'espace mémoire d'un autre processus (sauf mémoire partagée) -> MMU (Memory Management Unit) relocation : les adresses générées par le compilateur ne correspondent pas à la position réelle dans la mémoire Utilisation d'une MMU : relocation, protection et partage Principes des systèmes d'exploitation Tr 1.8

Taille mémoire insuffisante : Swapping : échange de processus (et de leurs données) entre la mémoire et le disque lorsqu'il n'y a pas assez de place en mémoire découpage de la mémoire en pages fichier d'échange (swap file - mémoire virtuelle) Algorithmes pour l'échange des pages entre la mémoire et le disque : Least Rencently Used (LRU) Not Recently Used (NRU) avec compteur d'âge Paging daemon : maintient un certain nombre de zones libres en mémoire et regarde périodiquement s'il est nécessaire de réaliser un swap. Performances : utilisation du processeur 100% degré de multi-programmation Un nombre minimum de page doit être présent en mémoire : sinon phénomène de thrashing (déconfiture) le processeur ne fait plus rien d'utile car le système passe son temps à faire du swap -> working set (espace vital). Principes des systèmes d'exploitation Tr 1.9

Allocation dynamique de la mémoire. se fait sur le tas (heap) gestion nécessaire : liste des zones libres et occupées, fusion des petits trous, récupération des zones inutilisées (garbage collection) : liste des zones libres et allouée Recherche d'un emplacement libre de la taille adéquate : first fit best fit worst fit Principes des systèmes d'exploitation Tr 1.10

La gestion des entrées-sorties. Grande diversité de périphériques vitesse format des données opérations possibles conditions d'erreur Nécessité de driver spécifiques (fonctionnant en partie en mode Kernel) deux couches de logiciel une couche dépendante du matériel une couche indépendante du matériel pour une famille de périphérique donnée périphériques de type caractère (character device) : accès séquentiel, un octet à la fois (carte audio, réseau, clavier, modem...) périphérique de type bloc (block device) : lecture-écriture aléatoire d'un bloc d'octets à la fois (disques, carte vidéo...) Référence au périphérique par un nom de "device" Intégration dans le système de fichier (tout est fichier sous UNIX) Mise en service du périphérique par une opération de montage (mount) Exemple : mount /dev/tty au démarrage Les opérations d'entrées-sorties peuvent être bloquantes (synchrones) ou non bloquantes (asynchrones), lorsqu'elles sont bloquantes il y a risque de deadlock La bufferisation permet de gagner du temps (entrées et sorties) mais problème de la synchronisation Certains périphériques ne sont pas partageables (imprimante) fi spooling (Simultaneous Peripheral Output On Line) Principes des systèmes d'exploitation Tr 1.11

Le système de fichiers. Organisation de manière ordonnée (hiérarchique) des informations stockées sur les disques sous forme de fichiers et de répertoires organisation logique (fichiers - répertoires) organisation physique (pistes, secteurs, formatage) Liaison entre la représentation physique et logique : table des inodes Principes des systèmes d'exploitation Tr 1.12