Licence 2 - Info42 Principes des systèmes d exploitation Organisation du cours Chapitre I : Principes de SE Département IEM / UB Eric.Leclercq@u-bourgogne.fr Bureau R9 Aile H Mise-à-jour : janvier 2016
Module Info42 - Principes des systèmes d exploitation Volume : 15h CM + 20h TD + 20h TP Évaluation : Projet + Contrôle Continu écrit + Exam Ressources : http://depinfo.u-bourgogne.fr : les documentations logicielles et les infos de gestion des salles http://depinfo.u-bourgogne.fr/infoiem : pour les informations sur la gestion des salles http://ufrsciencestech.u-bourgogne.fr : les documents pédagogiques
Plan du cours Objectifs : Maîtriser les concepts fondateurs des SE (réutilisés dans la majorité des disciplines de l informatique). Principaux chapitres : 1 Concepts fondamentaux : notion de SE 2 Interfaces utilisateur : shell, GUI 3 Gestion des ressources : les principes fondateurs 4 Gestion du processeur 5 Gestion de la mémoire 6 Gestion des disques et des fichiers 7 Principes des réseaux 8 Protocoles et communications inter-applications
Bibliographie Systèmes d exploitation (concepts et algorithmes) - J. Beauquier, B. Bérard, Ediscience International, 1990 Principes des systèmes d exploitation - A. Silberschatz, P. Galvin, Addison Wesley, 1994 Systèmes d exploitation 3ème Ed. -A. Tanenbaum, Pearson Education, 2008 Réseaux, architectures protocoles applications - A. Tanenbaum, InterEditions, 1990 puis Pearson Education 2003 Principes appliqués des systèmes d exploitation - A. Silberschatz, P. Galvin, G. Gagne, Vuibert 2006 Architecture et technologie des ordinateurs, cours et exercices résolus - P. Zanelle, Y. Ligier, Dunod 1999 Conception de systèmes d exploitation : Le cas Linux - P. Cegielski, Eyrolles, 2004
Plan du chapitre 1 Organisation Plan du cours Bibliographie 2 Rappels d architecture Composition Périphériques 3 Le modèle Von-Neuman Architectures type Modèle détaillé Vers la notion de SE 4 Notion de SE Définition Fonctionnalités Notion de machine virtuelle Le gestion de ressources 5 Caractérisation des SE
Composition d un ordinateur Un ordinateur se compose de plusieurs éléments principaux qui sont classifiés comme suit : l unité centrale (traitements) : composant essentiel incluant notamment le micro-processeur (CPU central processing unit) et le mémoire les périphériques d entrée (clavier, souris, manette de jeu, crayon optique, caméra DV ou analogique, scanner, appareil photo numérique, etc.) les périphériques de sortie (écran, imprimante, traceur, carte son, etc.) Certains périphériques ont un double rôle : clé USB, lecteur de disquettes, de bandes, disques dur, mais aussi la carte son
Domaine des SE Le cœur de l ordinateur est l unité centrale (boîtier tour, desktop, pizza-box, rack 1-5U), néanmoins la notion d ordinateur est aujourd hui plus floue et le domaine d utilisation des SE est beaucoup plus vaste : Personnal Computer : PC Serveur : web, fichiers, authentification, etc. Super Calculateur : machine avec processeur spécialisé (vectoriel cf GPU par exemple) Cluster de calcul Grid : grille de calcul ou de stockage Matériel multimédia : TV, serveurs vidéo, etc. Équipements mobiles : tablettes, téléphone portable, routeur, GPS, capteurs, etc.
Périphériques et SE
Périphériques et SE
Carte-mère d un PC
Composants : le processeur
Composants : la mémoire
Composants anciens : lecteurs de disquettes
Composants anciens : disquettes
Composants : disque dur
Composants : carte réseau Ethernet (ancienne)
Composants : carte son (ancienne) De nombreuses cartes optionnelles sont aujourd hui implantées sans le jeu de composants (chipset) de la carte mère : son, video, réseau
Modèle d architecture Malgré des apparences variées, la majorité des ordinateurs actuels sont construits sur la même architecture : décrite par John von Neumann en 1945 issue des travaux qui ont permis la construction du premier ordinateur l ENIAC (Electronic Numerical Integrator Analyser and Computer) projet de 1944 à 1946 ne tient pas compte de la variété des périphériques ce modèle concerne essentiellement l unité de traitement c est-à-dire les interactions entre le processeur et la mémoire.
ENIAC
Architecture modèle logique : VN EDVAC (Electronic Discrete Variable Automatic Computer) est l un des tout premiers ordinateurs (mode binaire) Les principes de l EDVAC sont développés pendant la construction de l ENIAC Tente de résoudre les problèmes posés par l ENIAC Data Bus Address Bus Control Bus MEMORY CPU I/O
Architecture Harvard Orientée conception interne des processeurs, micro-contrôleurs etc. MEMORY DATA PGM CPU
Autres architectures types
Blocs fonctionnels
Architecture logique complète
Traitements et E/S Le transfert des informations du CPU/Mémoire aux périphériques se fait par un bus d entrées sorties qui est piloté par un processeur d entrées sorties. Ce dernier peut : fonctionner indépendamment de l unité de traitement (micro-processeur) être asservi par le micro-processeur Les traitements sont réalisés uniquement par le CPU Le stockage des données est assurée par la mémoire centrale (opposée à la mémoire secondaire comme les supports magnétiques)
Notions de bus Les informations sont véhiculées par les bus : Bus de données Bus de commande ou de contrôle Bus d adresse Bus E/S Aujourd hui : on utilise plusieurs types de bus implantés dans 2 ponts reliés par un bus 1Go/s : pont nord (northbridge ou GMCH pour Graphics and Memory Controller Hub) pour les composants qui ont besoin d une bande passante importante : CPU, mémoire, carte graphique (3 bus de 4Go/s à 10Go/s) pont sud (southbridge ou ICH pour Input/Output Controller Hub) pour les périphériques qui ont besoin de moins de bande passante ( 1Go/s) : clavier, souris, USB, FireWire, audio, réseau, disque dur
Composant de la CPU Le micro-processeur possède deux composants essentiels : 1 l unité de commande :interprète les instructions qu elle lit dans une zone mémoire où est stockée le programme les instructions sont exécutées les une après les autres des ordres sont donnés aux différents composants lors de l exécution des instructions (ex: stockage mémoire) 2 l unité arithmétique et logique : chargée d effectuer des opérations sur les données stockées dans la mémoire interne du processeur (registres) venant de la mémoire centrale venant des organes d entrée/sortie Le processeur est aussi appelé : CPU (central processing unit) unité de traitement unité centrale de traitement
Mémoire Centrale La mémoire centrale est divisée en deux parties de tailles différentes : ROM (Read Only Memory) : mémoire morte, non volatile (même hors tension) le contenu ne peut être que lu (ex : programme de démarrage, BIOS) RAM (Random Access Memory) : mémoire vive, contenu modifiable, s efface lorsqu elle n est plus sous tension
Architecture logique Conclusion : Il est pratiquement impossible de faire fonctionner l UC en manipulant directement ses composants Une partie logicielle est indispensable Une portion est stockée en ROM : le BIOS (Basic Input Output System) et permet d amorcer la machine bootstrap le reste est stocké sur un support de mémoire secondaire et chargé à la demande (SE)
Architecture logique complète
Logiciel et SE Définition : Un logiciel est un ensemble de programmes exécutables qui permettent d effectuer des traitements spécifiques exemples : traitement de texte, tableur, logiciel de gestion base de donnée, etc. En première approche, un système d exploitation : est un logiciel particulier il doit permettre de gérer les différents composants de l ordinateur au moyen de commandes simples il doit interagit avec des développeurs d applications et des utilisateurs
Logiciel et SE De façon plus générale, on peut définir le SE d un objet comme : Définition : l ensemble des éléments qui appartiennent ou pas à l objet et qui permettent de l exploiter en en tirant le meilleur profit Le système d exploitation d un ordinateur (Operating System) est un ensemble de programmes de base qui permettent : d utiliser tous les services disponibles sur une machine (variable en fonction des capacités du matériel) d assurer la gestions des travaux, les opérations d entrées sorties et l affectation des ressources
Les éléments essentiels d un SE Précisons la définition. On a vu qu un SE est un ensemble de programme qui offrent les fonctionnalités suivantes : exécuter les tâches de base de gestion de l ordinateur mettre à disposition des outils pour des utilisateurs, des programmeurs ou des logiciels À partir de deux aspects de la définition, les deux fonctions essentielles d un SE sont : Présenter une machine virtuelle : abstraire le fonctionnement des ressources matérielle (cartes électroniques) Gestionnaire de ressources : allouer, gérer les ressources matérielles internes
Machine virtuelle La machine virtuelle réalise une abstraction des ressources matérielles : elle cache la réalité (complexité) de la machine aux utilisateurs elle est incluse le noyau qui est l abstraction la plus basique du matériel
Machine virtuelle Contrairement aux apparences, l utilisateur d un système informatique ne dialogue pas directement avec la machine réelle (hardware) mais avec une machine virtuelle La MV est en fait un ensemble de programmes, de services qui masquent la machine réelle Ces programmes et services font partie du système d exploitation et ont pour but de fournir une interface entre l utilisateur et les composants électroniques de la machine réelle
Machine virtuelle En résultat, le système d exploitation fournit à chaque utilisateur une instance d une machine virtuelle (ce n est pas aussi tranché). Ainsi, chaque utilisateur a l impression d avoir la machine à sa seule disposition La machine virtuelle possède des fonctionnalités supplémentaires (plus abstraites) par rapport à la machine réelle : langage de programmation, entrées/sorties standardisées (ex : impressions) À l inverse certaines fonctionnalités (dangereuses) peuvent être masquées comme par exemple l arrêt de la machine Ces fonctions sont réservées à un utilisateur privilégié : le super-utilisateur (administrateur, root)
Principe d abstraction Définition : Une structure s1 est une abstraction de s2 si : s1 et s2 sont fonctionnellement équivalentes Si chaque élément de s1 correspond à un groupe d éléments de s2 Permet une séparation de la logique de fonctionnement de la réalité du travail (ex : pilote de périphérique) et a par conséquent un rôle fondamental dans les SE
Exemples d utilisation du principe d abstraction Interfaces graphiques : Notion d icône : abstrait les notions de programmes, répertoires, ou de fichiers Donne une vision plus simple (plus abstraite) des ressources de la machine (plus proche des objets réellement manipulés par un humain comme les dossiers, les fiches etc.) Gestion des périphériques : Il est plus simple de demander l impression d un document plutôt que de piloter directement la tête d écriture de l imprimante Les pilotes de périphériques du même type offrent tous des fonctions similaires mais la réalisation physique de ces fonctions est différentes suivant le type du périphérique (imprimante jet d encre, matricielle ou laser par exemple)
Abstraction et noyau En appliquant le principe d abstraction, l architecture d un SE est composée de 5 couches fonctionnelles Chaque couche repose sur les fonctionnalités offertes par la précédente mais ne voit pas le détail de la réalisation des fonctions (boite noire)
Abstraction et noyau Interface utilisateur : dialogue H/M Gestion des fichiers : stockage des données de utilisateurs (multiples => droits d accès) Gestion des E/S : relation avec les périphériques (pilotes) Gestion de la mémoire : affectation des ressources mémoire au programmes, c est-à-dire aux processus (droits) Gestion du processeur : allocation de temps de calcul (priorités) Au dessous : le matériel
Types de noyaux Il existe différentes technologies de noyaux (2 principales) Noyau minimum : SE rudimentaires : mono-utilisateur, mono-tâche (DOS) Micro Noyaux : fonctionnalités principales, ajout sous formes de machines virtuelle supplémentaires (MAC OS X, Mach, UNIX BSD) Noyau monolithiques : presque toutes les fonctionnalités sont dans le noyau (Linux, UNIX, Windows Nt, 2000, XP, VISTA, MAC OS 7-9) Il existe des architecture plus exotiques : exo-noyau (mode utilisateur), méta-noyaux. Lecture complémentaire : http://fr.wikipedia.org/wiki/noyau de système d exploitation
Noyau Linux
Noyau Linux
La gestion des ressources matérielles Objectif : fournir une interface simple avec le matériel Problématique : plusieurs utilisateurs peuvent travailler simultanément (via le réseau) mais la machine unique Comment organiser les ressources pour s adapter au mieux au demandes de utilisateurs?
La gestion des ressources matérielles : solution Répartir (allouer) les ressources entre les différents programmes utilisateurs Le SE doit assurer cette fonction à plusieurs niveau : processeur(s), mémoire, périphériques (par exemple les disques durs) mais aussi au niveau des différents travaux soumis par les utilisateurs (programmes) En pratique chaque travail/programme soumis reçoit : une portion de la mémoire une fraction de temps de traitement processeur : c est une des fonctions fondamentales assurées par le système d exploitation
Quelques critères pour la conception des SE Utilisés surtout comme guide pour la conception des SE (mais souvent antagonistes) et plus ou moins quantifiables. 1. Efficacité maximale : économie en temps et moyen Les ressources utilisées pendant le fonctionnement du système doivent être minimisées Les temps de réponse doivent être courts : l utilisateur ne doit pas trop attendre L utilisateur doit pouvoir lancer plusieurs applications en même temps : sans surcharger la machine ni la mettre dans un état instable avec la possibilité de passer d une application à une autre
Quelques critères 2. Fiabilité : résistance aux perturbations Le SE doit être capable de répondre à toutes les éventualités (logicielles) L utilisateur ne doit pas subir les perturbations provenant d autres utilisateurs En conséquence, le système doit se protéger d utilisateurs mal intentionnés 3. Souplesse : capacité d adaptation Aux différentes architecture de machines : un utilisateur doit pouvoir retrouver le même SE sur différents types de machines (différents processeurs, cartes son etc.) Aux différentes versions : le SE doit garantir à l utilisateur qu il pourra réutiliser son travail (ses programmes) sur les futures versions du SE (ex DOS 3.1 à Windows 7) Au travail et aux habitudes des utilisateurs : personnalisation de l environnement de travail
Quelques critères 4. Ouverture : capacité de communiquer avec d autres systèmes de type différents (ex : UNIX et PC sur internet) 5. Ergonomie : qualité de dialogues Interface utilisateur pour une gestion simple et logique du SE (communication homme/machine) Organiser le cheminement des données entre les différents éléments de la machine sans intervention de l utilisateur (ex : utilisation des disquettes sous UNIX et sur MAC) Communication entre utilisateurs (envoi de messages entre 2 utilisateurs, conversation à plusieurs)
Critères de classification, comparaison Il existe de nombreux SE, comment les comparer? Utiliser des critères plus techniques : Degré de complexité Nombre de programmes en exécution simultanée Nombre de processeurs gérés Nombre d utilisateurs simultanés Interaction avec les utilisateurs (GUI, CLI) Nombre d ordinateurs, nombre d applications sur la marché Disponibilité du code source : Open Source - Logiciel libre Bien connaître leur conception...
SE actuels et familles Solaris, origine SUN (rachat ORACLE), orienté serveur HP-UX orienté serveur IBM AIX orienté serveur GNU/Linux suivant les distributions : serveur : Debian, Suse, RedHat poste de travail : Fedora, Ubuntu, Mandriva geek : Slackware, Gentoo, ArchLinux Android (suite rachat Google) orienté mobile Mac OS X, origine Next puis Apple avec éléments libres, orienté poste de travail (aujourd hui) IOS origine Apple : pour équipements mobiles Windows Seven : orienté poste de travail Windows Server 2008 Windows Mobile, Phone (abandon de CE) Famille BSD : FreeBSD (poste de travail), OpenBSD(serveur),
SE actuels et familles Des SE pour la recherche et ou l enseignement : Plan 9 Minix Le noyaux linux Les disparus mais encore actifs : DOS 3.3 et suivants IRIX Silicon Graphics DEC-ULtrix, Tru64-UX Novell Netware IBM OS/2 Nextstep
Sources http://fr.wikipedia.org/wiki/carte_m%c3%a8re http://fr.wikipedia.org/wiki/fichier: ASRock_K7VT4A_Pro_Mainboard.jpg http://fr.wikipedia.org/wiki/eniac http://fr.wikipedia.org/wiki/fichier:eniac.jpg http://fr.wikipedia.org/wiki/fichier:ram_n.jpg