Cours de Systèmes d’Exploitation informatique

Problème à signaler:


Télécharger Cours de Systèmes d’Exploitation informatique



★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Cours de Systèmes d’Exploitation

 

RICM 4, Année 2011-2012

Fabienne Boyer

UFR IMA, Université Joseph Fourier

 

Plan du cours de système d?exploitation

1.   Introduction générale

2.   Processus et threads

3.   Synchronisation

u Solutions de bas niveau u Solutions de haut niveau

4.   Gestion des interblocages

5.   Gestion de la mémoire virtuelle

6.   Le système de gestion de fichiers

7.   Présentation du système Nachos

8.   Gestion de la mémoire secondaire

Organisation de l?enseignement

n   Equipe pédagogique

u Philippe Morat (Equipe ADELE, Laboratoire LIG)

u Fabienne Boyer (Equipe SARDES, Laboratoire LIG, INRIA RhôneAlpes)

u Noël de Palma (Equipe SARDES, Laboratoire LIG, INRIA RhôneAlpes)

n   Volume

u 12 Cours d?1H30

u 12 TD d?1H30

u 1 TP en Java

u 1 examen de 2 heures

Ce cours a été conçu à partir de…

n   E. Berthelot

u

n   A. Sylberschatz

u html

n   A. Griffaut

u

n   H. Bouzourfi, D. Donsez

u

Bibliographie

n Livres

u Silberschatz, Galvin and Gagne, Operating System Concepts, Addison-Wesley

u S. Krakowiak, Principes des systèmes d?exploitation des ordinateurs, Dunod

u A. Tanenbaum, Les Systèmes d?exploitation, Prentice-Hall, InterEditions

u Maurice Bach, La conception du système Unix, Masson

u J.M. Rifflet, La programmation sous Unix, McGraw-Hill

Introduction générale

n   Systèmes d?exploitation

u Rôles

u Organisations

u Historique

Rôle d?un Système d?Exploitation (SE)

n   Intermédiaire entre l?ordinateur et les applications/utilisateurs

u Ordinateur vu comme un ensemble de ressources (physiques + logiques)

u Fournir une interface d?accès simplifiée aux ressources 

u Gérer le partage efficace et équitable des ressources

u Assurer le contrôle d?accès aux ressources

èLe SE est un gestionnaire de ressources qui met en oeuvre une machine virtuelle

Architecture générale

 

Structure d?un SE

n   Noyau

u Partie qui réside constamment en mémoire centrale

Routines qui requièrent un mode d'exécution privilégié

Données globales et partagées par les serveurs système

n   Serveurs système

u Partie qui peut être commutée / déchargée temporairement

n   Pilotes (ou contrôleurs)

u Modules spécialisés qui dialoguent avec les périphériques réels

Conception d?un SE

n   Noyau minimal (micro-noyau / client-serveur)

u Mach / Chorus / L4

u Maximise les fonctions gérées par des serveurs systèmes

u Meilleure extensibilité et adaptabilité

u Meilleure isolation des fautes

n   Noyau maximal (monolithique)

u Unix, Linux, Windows XP

u Meilleures performances

u Le SE est un ensemble de procédures, ce qui diminue les IPC (Inter Processus Call)

API du SE

n   Fonctions système (API)

u Pour le programmeur d?applications, le SE apparaît comme un ensemble de fonctions appelables, permettant de manipuler les ressources physiques et logiques

u Une fonction système peut interagir avec un serveur système pour la réalisation d?un service particulier

u Au plus bas niveau, une fonction système peut engendrer un appel système (appel au noyau)

n   Langages de haut niveau : appels systèmes cachés par compilateurs / interprêteurs / librairies

Utilisation d?un SE

n Interprêteur de commandes

u Permet à un utilisateur d?exécuter de manière interactive des requêtes de haut niveau, qui mettent en jeu des appels systèmes

Manipulation de processus

Manipulation de fichiers

Manipulation de mémoires secondaires

u Est lui-même un programme applicatif pour le SE

Ressources gérées par le SE

n   Programme / application

n   Processus    activités

n   Thread (processus léger)

n   Pilotes

n   Mémoire centrale

n   Fichiers   données

n   Mémoires secondaires

Gestion des données

u Mémoire centrale = un grand tableau d?octets (contenu volatile)

u Les fichiers contiennent des données persistentes (programmes, données)

u Mémoires secondaires = supports de stockage permanents

u Le SE

gère l’allocation de la mémoire centrale aux processus v gère la création, la destruction, l’accès aux fichiers

gère l’allocation de la mémoire secondaire aux fichiers

Types de SE

n Variations liées :

u Aux évolutions technologiques

Miniaturisation des composants

Puissances croissantes

u Au domaine d?utilisation

Informatique embarquée

Informatique domestique

Informatique d'entreprise

1ère génération (~1950)

n Ordinateur 

u Ensemble de tubes (~20 000)

u Chargement manuel par le programmeur à l?aide d?interrupteurs

u L?utilisateur exécute son programme immédiatement après le chargement

u Pas de SE n Inconvénients

u Très encombrant

u Très lent

u Très peu fiable

2ème génération

n   Ordinateurs  “mainframes” 

u Traitement par lots (cartes perforées)

u L?enchainement des lots est décrit par une carte perforée spéciale (carte de controle)

u Le SE se limite à un moniteur résident qui enchaine les lots

Moniteur

Lot i

n   Inconvénients

u Lent

u Non interactif

Mono-programmation

 

Evolution E/S tamponnées

n   Utilisation d?unités d„échange (UE) capables :

u de fontionner simultanément avec l?UC (asynchronisme)

u de transférer des tampons = blocs d?octets

n   Exécution pgm i // chargement pgm i+1

n   Les cartes sont lues par l?UE et stockées dans des tampons (buffers) d?entrée

n   L?UC lit les données dans le tampon d?entrée, place ces données dans la mémoire, et produit le résultat dans un tampon de sortie

E/S Tamponnées

 

3ème génération (1960/1970)

n   Systèmes multi-programmés 

Système d’expl.

 
 

Tâche 1

Tâche 2

Tâche 3

Tâche 4

u Plusieurs tâches en mémoire simultanément

u Multiplexage du processeur entre les tâches

u Perte du processeur lors des E/S

n   Avantages

u Meilleure utilisation de l?UC

n   Inconvénients

u Complexité

u Taille de mémoire grande

u Partage et protection des ressources

Multi-programmation

 

Multi-programmation et protection

n   Eviter qu?une tâche puisse lire / écrire dans la zone mémoire affectée à une autre tâche

n   Eviter qu?une tâche puisse manipuler la zone réservée au système autrement que par les appels système

n   Eviter qu?une tâche puisse lire / écrire des données d?E/S d?une autre tâche

è Complexifie la gestion des ressources (mémoire, E/S,

…)

3ème génération (suite)

n   Systèmes à temps partagé (1970)

u Partage du temps processeur entre les tâches v Quantum de temps

u Tâches en mémoire ou “swappée” sur disque

Plus grand nombre de tâches

Une mémoire plus grande allouée à chaque tâche

n   Avantages

u Temps de réponse corrects pour tâches courtes, même en présence de tâches longues et non interactives

n   Inconvénients

u Complexité

u L?utilisation du processeur peut être moins bonne

Systèmes mono/multiprogrammés et temps partagé

                                               T1                           T2                          T3

 

E/S

                           T1         T2                   T3            T1      T2     T1

 

Mono-processeur & multiprogrammation

                         T1         T2      T3       T1      T2      T1      T3

 

              Réquisition                         Multiprogrammation & temps-partagé

4ème génération (après 1970)

n   Ordinateurs personnels n Architectures spécialisées

Parallèles, temps-réel, embarqué

n   Virtualisation

n   Evolution vers les systèmes répartis

Architectures cluster / cloud

n   Des critères de qualité souvent communs

Fiabilité, disponibilité, efficacité, extensibilité, faible consommation de ressources, adaptabilité

Ordinateurs personnels

n   Initialement

u Mono-tâches (MS/DOS, Windows3/11)

u Dédiés à un utilisateur

u Pas de protection / sécurité

u Très interactifs et conviviaux

n   Evolution

u Multi-tâches

u Multi-utilisateurs

u Connections réseaux

Systèmes temps-réel

n   Contraintes temporelles

u Temps d'exécution bornés

n   Utilisés dans des situations spécifiques

u Systèmes d?imagerie médicale

u Systèmes de contrôle industriel

u Robotique u

Systèmes temps-réel

n   Hard real-time systems

u Peu ou pas de mémoire secondaire

u Pas de temps-partagé

u Temps de commutation très court

u SE complètement spécifique

n   Soft real-time systems

u Utilisés dans les applications multimedia, réalité virtuelle

u Contraintes de temps plus souples

u Gestion de priorités de tâches

u Gestion spécifique de la mémoire

Systèmes mobiles

n   Personal Digital Assistants (PDAs)

n   Téléphones cellulaires

n   Large gamme d?applications

n   Systèmes d?exploitation spécifiques

n   Contraintes

u Mémoire limitée

u Processeurs lents

u Petits écrans

u Faible consommation d?énergie

Systèmes parallèles multiprocesseurs (1/2)

n   SMP (Symetric Multi Processeurs)

uSystèmes généralistes (serveurs BD, Web, SI, NFS, …)

uProcesseurs standards

uPartage total de la mémoire

n   Machines de calcul parallèles

uArchitectures spécialisées

Processeurs spécifiques pour le calcul vectoriel

Réseaux spécialisés

Partage total ou partiel de la mémoire (bancs)

Systèmes parallèles multiprocesseurs (2/2)

 

Systèmes clusterisés (1/3)

n   Plusieurs noeuds

u Homogènes

u Partageant un disque (share disk) ou bien ne partageant rien (share nothing)

n   Connectés par un réseau spécialisé (SCI, Ethernet, …)

u Invention des réseaux locaux à haut débit (Local Area Network)

u Echanges rapides de données de grandes taille

n   3 caractéristiques :

u Montée en charge

u Passage à l?échelle (scalability)

u Haute disponibilité (serveurs back-up)

Systèmes clusterisés (2/3)

 

Grilles de calcul

n   Infrastructures réparties composées d?un ensemble de machines hétérogènes et potentiellement distantes

n   Milliers de machines

u Grid5000

n   Calcul intensif

n   Garanties de disponibilité

n   Système de réservation des ressources matérielles Cloud computing

n   Système réparti dans lequel les clients utilisent des services déportés sur un ou plusieurs serveurs distants, sans avoir à administrer ces services ni les machines qui les supportent

n   Les services proposés par le Cloud peuvent s?exécuter au sein d?architectures cluster

n   3 modèles

u IaaS (Infrastructure as a Service)

u PaaS (Platform as a Service)

u SaaS (Software as a Service)

Couverture du terme système réparti

n Englobe maintenant

u Architectures distribuées fortement couplées :

Systèmes parallèles multi-processeurs

Architectures clusters

u Architectures distribuées faiblement couplées

Grilles de calcul

Cloud computing

Applications s?exécutant sur Internet

Motivations pour les systèmes répartis

n   Partage de ressources sur le réseau

u Processeur, mémoire, serveurs / services

u Mobilité du code et des données

n   Potentiel

u Disponibilité

u Montée en charge

u Passage à l?échelle

u Administration

n   Le SE réparti est mis en œuvre par une couche intergicielle fonctionnant au dessus des SE des serveurs du système réparti



1502