Généralités sur les Systèmes d'Exploitation Thierry P arquet Thierry.P arquet@ helha.be 1ère année Bachelor Informatique – 2009-2010 HELHa - Haute Ecole Louvain en Hainaut
Ouvrages de référence ●
●
●
●
Modern Operating Systems, Andrew S. Tanenbaum, Third Edition, Pearson International Edition Support de Cours, F. Pellegrini & D. Sherman, ENSEIRB Principes des Systèmes d'Exploitation, A. Silberschatz & P.B. Galvin, Addison Wesley Conception de Systèmes Informatiques, O. Bonaventure, INGI1113, 2006
Année 2009 - 2010
Systèmes d'exploitation
2
Remarques préliminaires ●
Le cours est composé des différents éléments suivants: – – –
●
Ces transparents qui servent à illustrer la partie didactique du cours. Les notes de cours “Systèmes d'exploitation” réalisées par François PELLEGRINI et David SHERMAN La participation active aux exposés et aux séances d'exercices.
L'évaluation sera réalisée sur base du contenu de tous les éléments repris ci-dessus
Année 2009 - 2010
Systèmes d'exploitation
3
Contenu du cours ● ● ● ● ●
Chapitre 1 : Introduction Chapitre 2 : Gestion des Processus Chapitre 3 : Gestion de la Mémoire Chapitre 4 : Gestion des Systèmes de Fichiers Chapitre 5 : Exemples et Travaux Dirigés
Année 2009 - 2010
Systèmes d'exploitation
4
Chapitre 1
INTRODUCTION
Année 2009 - 2010
Systèmes d'exploitation
5
Introduction ●
Système d'Exploitation ? –
Gestion des ressources de la machine... ● ● ● ●
– –
CPU (partage du temps d'exécution) Espace mémoire Disques / Fichiers Unités I/O
Base pour développement et exécution des programmes applicatifs Opérations de contrôle ● ● ●
Année 2009 - 2010
Evite utilisation incorecte du hardware Gère la sécurité des accès Gère protection des données
Systèmes d'exploitation
6
Introduction ●
Problématique à l'exécution des programmes? – –
●
Multiplicité des ressources Complexité des composants
Exemples: – –
Contrôleur Floppy disk NEC PDP765 Partage d'imprimante
Année 2009 - 2010
Systèmes d'exploitation
7
Introduction ●
Contrôleur Floppy disk NEC PDP765 ? Contrôleur simple et désuet... –
Jeu réduit de 16 commandes ● ● ● ●
–
13 paramètres codés dans un registre de 9 octets ● ● ●
–
Nombre de secteurs / piste Mode d'enregistrement Intersector gap spacing
Après exécution commande ●
–
Lecture / Ecriture secteur Déplacement tête de lecture Formatage piste ...
23 Status et code d'erreur sur 7 bytes
Gestion arrêt / démarage du floppy...
Année 2009 - 2010
Systèmes d'exploitation
8
Introduction ●
Contrôleur Floppy disk NEC PDP765 ? Exemple : Floppy.c visualisation du fichier
Année 2009 - 2010
Systèmes d'exploitation
9
Introduction ●
Partage Imprimante –
Multi-utilisateur ● ● ● ●
Année 2009 - 2010
Pas de mélange de documents Gestion du spooling (rapidité accès) Gestion des autorisations Rapport d'utilisation ressources
Systèmes d'exploitation
10
Introduction ●
Objectifs de l'OS –
Faciliter la vie du programmeur
–
Protéger le système et utilisateurs (fausses manipulations, sécurité d'accès, ...)
–
Abstraction --> Vue simple, uniforme et cohérente de la machine
Année 2009 - 2010
Systèmes d'exploitation
11
Introduction ●
Operating System – Machine Virtuelle –
Abstraction ● ● ● ● ● ●
Année 2009 - 2010
Vue uniforme des IO Mémoire virtuelle et partageable Gestion de fichiers et répertoire Gestion droits d'accès, sécurité, traitement erreurs Gestion des processus Gestion communication inter processus
Systèmes d'exploitation
12
Introduction ●
Operating System – Gestionnaire de Ressources –
Multiplexing ● ● ● ● ● ●
Année 2009 - 2010
Assure fonctionnement des ressources et respect délais Identification de l'usager d'une ressource Contrôle d'accès aux ressources Interruption d'utilisation des ressources Gestion des erreurs Evitement des conflits
Systèmes d'exploitation
13
Introduction Place de l'OS dans l'ordinateur
Année 2009 - 2010
Systèmes d'exploitation
14
Organisation d'un ordinateur
Année 2009 - 2010
Systèmes d'exploitation
15
Organisation d'un ordinateur Microprocesseur ● ●
Cerveau de l'ordinateur Registres visibles –
–
–
Program Counter : PC (adresse prochaine instruction) Stack Pointer : SP (adresse du stack en memoire) Program Status Word : PSW (contient bits de contrôle)
REGISTRES
Mode Kernel / Mode User Année 2009 - 2010 Systèmes d'exploitation
UAL
MEMOIRE
●
16
Organisation d'un ordinateur Microprocesseur
Année 2009 - 2010
Systèmes d'exploitation
17
Organisation d'un ordinateur Mémoire ●
Doit être rapide pour ne pas freiner le CPU
Année 2009 - 2010
Systèmes d'exploitation
18
Organisation d'un ordinateur Mémoire ●
Registre – –
●
Sur le même composant que CPU -> pas de délais Taille : 32x32 bits sur CPU 32 bits et 64x64 bits sur CPU 64 bits
Cache : L1 & L2 cache – – – –
Cache Hit (vérification par HW si info en mémoire) Stocage d'infos très fréquemment utilisées L1 généralement pour instructions “décodées” (+- 16 KB) – pas de délai d'accès L2 informations récemment utilisées (plusieurs MB) – 1 à 2 cycles d'orloge de délai
Année 2009 - 2010
Systèmes d'exploitation
19
Organisation d'un ordinateur Mémoire ●
Memoire principale –
RAM (Random Access Memory) ● ●
–
ROM (Read Only Memory) ● ●
–
●
Non volatile mais peut-etre réecrite Lente
Flash memory ● ● ●
–
Programmée en usine Non volatile
EEPROM (Electrically Erasable PROM) ●
–
Mémoire volatile Prix en forte chute
Moyen de stocage pour les appareils électoniques Photo, MP3, ... Vitesse entre RAM et Disque Dur
CMOS (volatile mais faible consommation)
Année 2009 - 2010
Systèmes d'exploitation
20
Organisation d'un ordinateur Disque ●
● ●
●
●
Plus de 100 x moins cher que RAM par bit Non volatile Très lent par rapport à la RAM (1000 x) Peut contenir la mémoire virtuelle. Mapping réalisé par le CPU au travers du MMU (Memory Management Unit)
Année 2009 - 2010
Systèmes d'exploitation
21
Organisation d'un ordinateur Bandes Magnétiques (Tapes) ● ● ● ● ●
Coût par bit le plus faible Backup – Copie de sécurité Très lent Mise en place de robots... Remplacées de plus en plus par les disques optiques
Année 2009 - 2010
Systèmes d'exploitation
22
Organisation d'un ordinateur Unités Entrée/sortie (I/O Devices) ●
IO Devices composées généralement de 2 parties –
Controleur ● ● ●
Interface simplifié pour l'OS ex. Lire le secteur 11.206 du disque 2 Conversion cylindre, tête, secteur – –
●
Device Driver – – –
–
Bad sectors Nombres de secteurs variables Windows Linux Mac OS
Unité à proprement parler
Année 2009 - 2010
Systèmes d'exploitation
23
Organisation d'un ordinateur Unités Entrée/sortie (I/O Devices) ●
Device Driver – Intégration à l'OS ...(Kernel mode) – – –
●
Re-Link OS et Reboot Mise à jour d'un fichier des devices dans l'OS et reboot Hot Pluggable Devices – USB & IEEE 1394
Accès à l'unité –
Busy Waiting Method ●
–
Interrupt ●
–
CPU passe le contrôle au controleur et attend CPU prend en charge le changement de contexte quand réception d'un interupt
DMA (Direct Memory Access) ●
Transfert des informations IO en mémoire sans intervention constante du CPU. A la fin, lancement interrupt
Année 2009 - 2010
Systèmes d'exploitation
24
Principes des OS Exercice 1 ●
Un ordinateur possède un pipeline à 3 niveaux. Chaque niveau met le même temps à s'exécuter (1 ns). Combien d'instructions par seconde cette machine peut-elle exécuter ?
Année 2009 - 2010
Systèmes d'exploitation
32
Principes des OS Exercice 1 ●
Réponse : – – –
Le pipeline sort une instruction toutes les nanosecondes -> la machine execute 109 soit 1.000.000.000 (1 milliard) d'instructions par seconde. L'important est le nombre d'instructions teminées qui sortent du pipeline.
Année 2009 - 2010
Systèmes d'exploitation
33
Historique des OS Génération '0' ●
Babbage – (1792 – 1871) “Machine Analytique” – – – – – –
Eviter les erreurs dans tables mathématiques Automatiser la chaine de calcul Séparation entre le module de calcul et la mémorisation Utilisation de cartes perforées Engagement assistant “Ada Lovelace” => ADA Problèmes technologiques
Année 2009 - 2010
Systèmes d'exploitation
http://histoire.info.online.fr
43
Historique des OS Première Génération (1945 - 1955) ●
Génération des relais mécaniques et tubes à vide – – –
●
●
●
Intensification des efforts pendant la seconde guerre mondiale Relais mécaniques -> Temps de cycles en secondes Remplacement par des tubes à vide
Millions de fois moins performant que les petits PC actuels... Simples calculs numériques (tables de sinus ou log) Programmation par cable
Année 2009 - 2010
Systèmes d'exploitation
44
Historique des OS Première Génération (1945 - 1955) ● ●
● ●
Pas de système d'exploitation. Utilisateurs travaillaient chacun à leur tour sur l'ordinateur qui remplissait une salle entière. Grande lenteur. Grande fragilité.
Année 2009 - 2010
Systèmes d'exploitation
45
Historique des OS Première Génération (1945 - 1955) ●
●
Création de l'ENIAC (Electronic Numerical Integrator and Computer) par P. Eckert et J. Mauchly. La programmation de ce calculateur s'effectue en recablant entre eux ses différents éléments. Composé de 19000 tubes, il pèse 30 tonnes, occupe une surface de 72 m2 et consomme 140 kilowatts. Horloge : 100 KHz. Vitesse : environ 330 multiplications par seconde. Apparition du terme “Bug” !
Année 2009 - 2010
Systèmes d'exploitation
46
Historique des OS Deuxième Génération (1955 - 1965) ● ●
●
●
Appellation Mainframe Le passage aux transistors rendait les ordinateurs plus fiables. Ils pouvaient être vendus à des utilisateurs (grandes compagnies, universités ou administrations). Mais devant les coûts d'équipement élevés on réduisit les temps de traitement grâce au traitement par lots (batch).
Année 2009 - 2010
Systèmes d'exploitation
47
Historique des OS Deuxième Génération (1955 - 1965)
Année 2009 - 2010
Systèmes d'exploitation
48
Historique des OS Deuxième Génération (1955 - 1965) ●
● ● ●
Les utilisations principales étaient le calcul scientifique et l'ingénierie (équations différentielles). Apparition du JCL (Job Command Language) Langage : Fortran et Assembler OS : FMS (Fortran Monitor System) - IBSYS
Année 2009 - 2010
Systèmes d'exploitation
49
Historique des OS Troisième Génération (1965 - 1980) ●
Apparition Circuits Intégrés – –
●
Recherche au niveau des systèmes d'exploitation “génériques” – –
●
Amélioration rapport coût/performance Apparition de familles de machines <> ordinateurs propriétaires
Scientifique et commercial Programmes batch ou Interactifs
Reponse IBM 360
Année 2009 - 2010
Systèmes d'exploitation
50
Historique des OS Troisième Génération (1965 - 1980) ●
MULTIPROGRAMMATION – –
Switch de contexte CPU en attente IO -> basculement ● ●
Scientifique peu d'I/O Commercial énormément d'I/O 80 à 90 % du temps d'attente Job 3 Job 2 Job 1 Système Exploitation
Année 2009 - 2010
Systèmes d'exploitation
Partitions Mémoire
51
Historique des OS Troisième Génération (1965 - 1980) ●
SPOULAGE – – –
Stockage sur disques des jobs écrits sur cartes au fur et à mesure de l'arrivée Plus de perte de temps entre fin d'un JOB et démarrage d'un autre SPOOL – Simultaneous Peripheral Operation On Line
Année 2009 - 2010
Systèmes d'exploitation
52
Historique des OS Troisième Génération (1965 - 1980) ●
TEMPS PARTAGE (Time Sharing) – Frustration des développeurs des systèmes batch – Temps d'attente entre compile et résultats... – Création de CTSS (Concurrent TimeSharing System) suivi par MULTICS (MULTIplexed Information and Computing Services) – Multics – 1 machine pour supporter des centaines de users...
Année 2009 - 2010
Systèmes d'exploitation
53
Historique des OS Troisième Génération (1965 - 1980) ●
●
●
Apparition des mini-ordinateurs (DEC PDP-1 en 1961, 4K mots de 18 bits, pour un prix de 120000 $). Thompson écrivit une version simplifiée (monoutilisateur) de MULTICS ; Kernighan l'appela avec humour UNICS (Uniplexed Information and Computer Service) ; ce nom allait devenir UNIX1. D. Ritchie se joignit à K. Thompson pour réécrire UNIX en langage C ; système d'exploitation le plus porté sur toutes sortes de machine.
Année 2009 - 2010
Systèmes d'exploitation
54
Historique des OS Quatrième Génération (1980 - 1990) ● ●
●
●
LES ORDINATEURS PERSONNELS Développement des circuits LSI (Large Scale Integration circuits) Apparition de puces comportant des milliers de transistors sur un millimètre carré de silicium même architecture que les mini-ordinateurs mais leur prix est beaucoup moins élevé.
Année 2009 - 2010
Systèmes d'exploitation
55
Historique des OS Quatrième Génération (1980 - 1990) ●
●
Deux systèmes d'exploitation principaux : MS-DOS (Microsoft Inc.) et UNIX. Dans le milieu des années 80, apparition de réseaux d'ordinateurs individuels qui fonctionnent sous des système d'exploitation en réseau ou des systèmes d'exploitation distribués.
Année 2009 - 2010
Systèmes d'exploitation
56
Historique des OS Quatrième Génération (1980 - 1990) ●
1974 – Intel – 8080 (processeur 8 bits) –
●
●
1977 – CP/M récrit pour supporter différents processeurs (Intel 8080, Zilog Z80, ...) 1980 – IBM PC – Gates story... – – – –
●
OS orienté disque (CP/M) (Control Program for Microcomputers) – Création Digital Research
Mise en contact avec Digital Research Refus de DR Achat de DOS Modifications MS-DOS
1985 – 1995 – Windows = couche graphique
Année 2009 - 2010
Systèmes d'exploitation
57
Historique des OS Quatrième Génération (1980 - 1990) ●
1995 – Windows 95 – –
● ●
●
Utilise MS-DOS pour démarrage Exécution des anciens programmes
1999 – Windows 2000 (win NT 4) – 32 bits 2001 – Windows XP – Réunification ??? 6 années 2007 – VISTA – –
Nouveau GUI (IHM) et nouvelles fonctionnalités Challenge – Unification chaîne MSFT.
Année 2009 - 2010
Systèmes d'exploitation
58
Historique des OS Quatrième Génération (1980 - 1990) ●
UNIX – – – –
Plus positionné dans le monde des serveurs et des stations de travail. UNIX supporte un système de fenêtrage appelé X Window System (connu sour X11) Prend de plus en plus d'importance sur les Desktop (Inde et Chine) Linux est installé de plus en plus sur les PC ●
Année 2009 - 2010
GNOME et KDE sont des IHM (GUI) tournant sur X11
Systèmes d'exploitation
59
Historique des OS 5ème génération (1990 - ????) ●
●
●
●
Les ordinateurs personnels portables et de poche. Apparition des PIC (Personal Intelligent Communicator de chez Sony) et des PDA (Personal Digital Assistant, le Newton de chez Apple) Utiles pour les « nomades » (recherche, navigation, communication) Très bon marché et capables de se connecter à des ordinateurs distants et performants.
Année 2009 - 2010
Systèmes d'exploitation
60
Historique des OS 5ème génération (1990 - ????) ●
Systèmes d'exploitation de type « micronoyau » : – – –
modulaires (un module par fonction) Réalisés avec plus ou moins de modules adaptables à des très petites machines (PDA et PIC).
Année 2009 - 2010
Systèmes d'exploitation
61