Chapitre 2 Aperçu sur les systèmes d`exploitation

Transcription

Chapitre 2 Aperçu sur les systèmes d`exploitation
Chapitre 2
Aperçu sur les systèmes d’exploitation
1. Définition d’un système informatique Un système informatique se décompose généralement en : le matériel, logiciel et utilisateurs.
•
Le matériel : l’unité centrale (UC), la mémoire et les périphériques d’entrée/sortie, fournit les
ressources informatiques de bases : la machine physique
•
Logiciel : les programmes exécutés sur un ordinateur sont classés selon leur fonction sous deux
rubriques :
9 logiciel d’application : comme les compilateurs et les systèmes de base de données, les jeux, les
programmes bureautiques définissent les manières d’utiliser le matériel afin de résoudre les
problèmes informatiques des utilisateurs.
9 Logiciel de base : a l’intérieur d’un logiciel de base, on distingue habituellement deux niveaux :
-
Outils et services : compilateurs, Editeurs, chargeurs, ….
-
Système d’exploitation : qui contrôle et coordonne l’utilisation du matériel parmi les divers
programmes d’applications et les utilisateurs
•
Les utilisateurs : qui utilisent les programmes d’applications afin de réaliser les tâches voulues.
SYSTEME INFORMATIQUE
Matériel
Logiciel
Logiciel de base
Système d’exploitation
Logiciel d’application
Utilitaire de développement
Compilateurs
Editeurs
Chargeur
Figure 2.1. Vue des composants d’un système informatique
2. Définition d’un système d’exploitation Un système d'exploitation (noté SE ou OS pour Operating System) est l’ensemble de programmes permettant
à l’utilisateur d’exploiter les ressources matérielles de l'ordinateur, il est chargé d'assurer la liaison entre les
ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo, ...).
C’est le programme fondamental des programmes systèmes. Il contrôle les ressources de l'ordinateur et
fournit la base sur laquelle seront construits les programmes d'application.
Chapitre 2
Aperçus sur les systèmes d’exploitation
Application
Système d’application
Pilotes
Matériel
Figure 2.2. Couches d’un système d’exploitation
Le système d'exploitation permet ainsi de "dissocier" les programmes et le matériel, afin notamment de
simplifier la gestion des ressources et offrir à l'utilisateur une interface homme-machine (IHM) simplifiée afin
de lui permettre de s'affranchir de la complexité de la machine physique.
3. Historique des systèmes d’exploitation 3.1. 1ère génération (1945-1955) : Tubes à vide et tableaux d’interrupteurs
•
Moteurs de calcul à relais mécaniques : Très lents (temps de cycles mesurés en secondes)
•
Tubes à vide : relais mécaniques remplacés par des tubes à vide, machines énormes remplissant
des pièces entières (dizaines de milliers de tubes à vide)
9 La même équipe concevait, construisait, programmait, administrait et maintenait la machine
9 Tout programme était conçu en langage machine (les autres langages n’existaient pas)
9 Un programme était conçu en basculant des tableaux d’interrupteurs pour contrôler les
fonctions de base de la machine (on programmait la machine avec un programme)
•
Protocole classique d’utilisation de la machine
-
Le programmeur demande une réservation de la machine pour une certaine durée
-
Il insère son programme dans la machine en manipulant le tableau d’interrupteurs
-
Dans les heures qui suivent, il prie pour qu’aucun des quelques 20.000 tubes ne grille pendant
l’exécution
•
Protocole amélioré avec les cartes perforées
-
Un programme de calculs numériques simple est écrit sur des cartes, qui sont lues par la
machine au lieu d’utiliser des tableaux d’interrupteurs pour ‘programmer la machine’. Pas
de système d’exploitation
Figure 2.3. Illustration (1ère génération)
2
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
3.2. 2ème génération : (1955-1965) : Transistors et systèmes par lots
Le passage aux transistors rendait les ordinateurs plus fiables et permet la séparation entre
concepteurs, constructeurs, programmeurs, opérateurs et personnel de maintenance. Les programmes
étaient écrits en FORTRAN puis codés sur des cartes perforées
•
Protocole d’utilisation de la machine
-
Le programmeur apporte son paquet de cartes dans la salle de soumission des jobs (tâches,
programmes à exécuter)
-
L’opérateur fait lire et exécuter les cartes par la machine
-
L’opérateur récupère la trace d’exécution sur une imprimante et la stocke dans la salle des
résultats pour que le programmeur la récupère
-
L’opérateur prend ensuite un autre paquet de cartes soumis et répète le processus précédent
-
Si le compilateur FORTRAN est nécessaire, l’opérateur doit également le charger dans la
machine
•
Protocole lent : Un opérateur humain traite séquentiellement un job et gère la soumission des
entrées (lecture de cartes perforée) et des sorties (résultat sur imprimante) une fois le calcul
terminé
•
Amélioration du protocole : Insertion des cartes de contrôle de job pour réaliser cet
enchaînement : découpage du traitement d’un job en plusieurs étapes (lecture des entrées, calcul,
production des sorties) réalisées par des moniteurs de traitement par lot dit Moniteurs Batch Mono
Job (MBMJ). Les entrées/sorties d’un job traité par une machine peu onéreuse et performante et le
calcul est effectué par une machine performante (calculateur)
Figure 2.4. Illustration (2ème génération)
•
Types de programmes : calculs scientifiques et d’ingénierie (ex. résolution d’équations aux
dérivées partielles)
•
Système d’exploitation : ce fut la naissance des systèmes d’exploitation tels que : FMS (Fortran
Monitor System) et IBYS (1er système d’exploitation de l’IBM 7094)
3.3. 3ème génération (1965-1980) : Circuits intégrés
•
Circuits intégrés : leur avantage au plan prix/performance a permet la création d’une seule
gamme de produits avec la même architecture matérielle et le même jeu d’instructions et un même
3
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
programme qui peut tourner sur toutes ces machines (pas de machine d’E/S et d’autres pour le
calcul).
•
Nouvelles techniques dans les systèmes d’exploitation
9 Multiprogrammation : charger plusieurs programmes dans la MC et de les exécuter en
fonction des ressources qu’ils utilisent. Elle vise l’élimination des temps d’attente de l’UC
pendant les opérations d’E/S. Entre autre, ce mécanisme de multiprogrammation a exigé
l’apparition de la Mémoire partagée et les mécanismes de protection.
9 Spool (Simultaneous Peripheral Operation Onl Line): transfert des travaux des cartes vers le
disque permettant la lecture et l’écriture simultanées sur le disque et disparition de la
manipulation des bandes
Figure 2.5. Illustration (3ème génération) : Spooling
9 Partage de temps : une variante de la multiprogrammation (chaque utilisateur possède un
terminal en ligne) qui permet de partager le temps de l’UC entre les programmes qui résident
dans la MC
•
Exemples de systèmes d’exploitation
-
MULTICS (MULTiplexed Information and Computing Service): système pour ordinateur
central, capable de supporter des centaines d’utilisateurs simultanés
-
DEC et PDP-1, … PDP-11 : Systèmes pour mini-ordinateurs ; performant pour des tâches
non scientifiques ; de 4K mots de 18 bits, pour un prix de 120 000 $).
-
UNICS (Uniplexed Information and Computer Service) : une version simplifiée (monoutilisateur) de MULTICS qui allait devenir le célèbre UNIX écrit en langage C et le plus porté
sur toutes sortes de machines
3.4. 4ème génération (1980-aujourd’hui) : Ordinateurs personnels
•
Circuit LSI (Large Scale Integration) : Circuits intégrés à haute densité contenant des milliers de
transistors sur 1mm2 de silicium permettant le développement des micro-ordinateurs (ordinateurs
personnels), très peu onéreux comparés aux mini-ordinateurs de type PDP-11
•
Exemples de systèmes d’exploitation
-
CP/M (Control Program for Microcomputers) : conçu pour Intel 8080, comprend un
contrôleur pour le tout récent lecteur de disquettes 8 pouces
-
4
MS-DOS (MicroSoft-Disk Operating System): développer en 1980 pour l’IBM PC par B.
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
Gates a partir du noyau DOS. Il intègre petit à petit des concepts riches d’UNIX et de
MULTICS
-
Macintosh d’Apple : un SE qui intègre une IHM graphique, destiné à des utilisateurs qui ne
connaissaient rien aux ordinateurs
-
Windows de Microsoft : successeur de MS-DOS qui intègre une IHM graphique influencé
par le succès de Macintosh (Windows 95/98/NT/2000/XP)
-
UNIX ; Linux : intègre de l’IHM graphique avec un système de fenêtres appelé X-Window
4. Fonctions d’un système d'exploitation Le SE soustrait le matériel au regard du programmeur et offre une présentation agréable des fichiers. Un SE a
ainsi deux objectifs principaux :
4.1 La présentation :
Il propose à l'utilisateur une abstraction plus simple et plus agréable que le matériel : une machine virtuelle
4.2 La gestion :
Il ordonne et contrôle l'allocation des processeurs, des mémoires, des icônes et fenêtres, des périphériques,
des réseaux entre les programmes qui les utilisent. Il assiste les programmes utilisateurs. Il protège les
utilisateurs dans le cas d'usage partagé.
•
Gestion du processeur : Un processus est l’entité créée par le système d’exploitation pour
l’exécution d’un programme. Un programme est une entité passive qui réside en mémoire. Le
processus, en revanche, est placé instruction par instruction dans les registres de l’UC et exécuté. La
principale tâche du système d’exploitation concerne l’allocation du processeur aux processus. Il
s’agit de décider quel processus s’exécute à un moment donné, à quel moment interrompre le
processus, quel sera le suivant, et de quoi il a besoin comme ressources pour son exécution.
•
Gestion de la mémoire centrale : La mémoire centrale est un espace de taille important organisé en
mots (ensembles d’octets) et destinée à accueillir les données à traiter par l’unité centrale. L’unité
centrale charge les instructions à exécuter dans les registres du processeur à partir d’adresses en
mémoire centrale. De même après exécution, les résultats sont placés en mémoire centrale. Il s’agit
ici de gérer l’allocation de cette mémoire aux programmes (attribution, libération de mémoire), les
règles d’adressage et de veiller à ce que les programmes en mémoire ne puissent pas interférer entre
eux.
En cas d'insuffisance de mémoire physique, le système d'exploitation peut créer une zone mémoire sur
le disque dur, appelée «mémoire virtuelle» qui permet de faire fonctionner des applications
nécessitant plus de mémoire qu'il n'y a de mémoire vive disponible sur le système. En contrepartie
cette mémoire est beaucoup plus lente.
•
Gestion des entrées/sorties : le système d'exploitation permet d'unifier et de contrôler l'accès des
programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés également
gestionnaires de périphériques ou gestionnaires d'entrée/sortie).
5
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
• Gestion de l'exécution des applications : le système d'exploitation est chargé de la bonne exécution
des applications en leur affectant les ressources nécessaires à leur bon fonctionnement. Il permet à ce
titre de «tuer» une application ne répondant plus correctement ou de suspendre son exécution face à
une déroutement (erreur dans un programme ex. division par zéro ou adresse mémoire inexistante) ou
une interruption ( signale provoqué par un périphérique d’E/S).
•
Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution des
programmes en garantissant que les ressources ne sont utilisées que par les programmes et les
utilisateurs possédant les droits adéquats.
•
Gestion des fichiers : le système d'exploitation gère la lecture et l'écriture dans le système de fichiers
et les droits d'accès aux fichiers par les utilisateurs et les applications. Elle permet le stockage à long
terme des données et programmes sur la mémoire de masse.
•
Gestion des informations : le système d'exploitation fournit un certain nombre d'indicateurs
permettant de diagnostiquer le bon fonctionnement de la machine.
5. Composantes du système d'exploitation Chaque système d'exploitation a une architecture qui lui est propre. Par conséquent l'objectif de cette partie
est de présenter une architecture générale (très) simplifiée afin de percevoir la composition d'un OS.
Figure 2.6. Schéma de l’architecture simplifiée d’un système d’exploitation
5. 1 Les Applications : Les applications représentent les différents programmes lancés
5. 2 Bibliothèques système bibliothèques de fonctions utilisées par les applications pour accéder aux
services offerts par le noyau.
5. 3 L’interface graphique/CLI (Command Line Interface) permettant la communication avec le système
d'exploitation par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter les
périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses
physiques, etc.
5. 4 Les API (interface de programmation) : L'API est une interface de programmation (Application
Programming Interface) qui permet de définir la manière dont un composant informatique peut communiquer
avec un autre.
5. 5 Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d'exploitation telles
6
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des
fonctionnalités de communication.
C’est l’ensemble de code qui gère les fonctionnalités du système :
•
interfaces avec le matériel,
•
démarrage et arrêt,
•
exécution des programmes,
•
gestion des privilèges des utilisateurs,
•
fournit les services aux programmes utilisateurs,
•
s’exécute en mode superviseur
5. 6 Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans
une arborescence
5. 7 Utilitaires ensembles de programmes qui permettent le fonctionnement du système : services réseau,
accès aux fichiers,...
5. 8 Outils de développement compilateurs, assembleur, éditeur de liens, débuggeurs, fichiers d’entête et
bibliothèques nécessaires pour le développement et la mise au point des logiciels pour ce système.
6. Structures des systèmes d’exploitation L’architecture des SE a beaucoup évolué pour s’adapter aux exigences des applications et des utilisateurs.
6.1. Systèmes monolithiques Les systèmes monolithiques constituent une couche logicielle entre les applications et le matériel. Un
système monolithique fonctionne sur deux espaces :
•
L’espace noyau : constitué des programmes qui fournissent des services aux applications (ex.
affichage des messages, utilisation de l’imprimante, gestion de la souris, …)
•
L’espace utilisateur : contient les applications et les données. En effet, une application est un
programme réalisant un objectif en s’appuyant sur les services de l’espace noyau du système.
•
Exemple : les premières versions d’Unix, MS-DOS
6.2. Systèmes à micronoyau : modèle client­serveur Système basé sur un noyau minimal (appelé micronoyau) de taille de code réduite avec des modules ou des
librairies indépendantes du noyau complètent les fonctionnalités du micronoyau pour former le système.
Espace utilisateur
Espace noyau
Applications
Modules-1
Modules-n
Micronoyau
Matériel
Figure 2.7. Systèmes à micronoyaux
Dans le modèle client serveur, tous les appels système ou presque sont désormais des processus clients. Le
noyau gère la communication entre les processus clients et les processus serveurs.
7
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
6.3. Structure en couches Systèmes organisés par couches, et une communication se crée entre couches adjacentes. En effet, Chaque
couche n’utilise que les fonctionnalités de la couche inférieure.
Figure 2.8. Système en couches
Æ Difficulté = détermination des diverses couches qui vont composer le système de manière adéquate
Æ Implémentation moins performante : pour faire un appel E/S (accès au matériel) il est nécessaire de faire
appel `a toutes les couches. Chaque couche ajoute une surcharge à l’appel initial.
7. Les différentes classes de systèmes d'exploitation On distingue plusieurs types de systèmes d'exploitation, selon les services rendus, leur architecture, leur
capacité à évoluer et leur architecture matérielle qui les supporte
7.1. Selon les services rendus 7.1.1 Systèmes mono/multitâches - Mono-tâche : ce système n’autorise l’allocation du processeur que pour une seule tâche. En effet, une tâche
ne prend le processeur que si seulement si la précédente est achevée, si non le système se bloque.
- Multi-tâches : capacité du système à pouvoir exécuter plusieurs tâches « processus » simultanément ; par
exemple effectuer une compilation et consulter le fichier source du programme correspondant.
Cas d’UNIX et Windows 95
7.1.2 mono/multi­utilisateurs : - Mono-utilsateur : le système ne peut géré qu’un seul utilisateur (ex : le système MS-DOS)
- Multi-utilisateurs : capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes
ressources matérielles.
7.2. Selon leur architecture 7.2.1 Systèmes centralisés : L'ensemble du système est entièrement présent sur la machine considérée. Les machines éventuellement
reliées sont vues comme des entités étrangères disposant elles aussi d'un système centralisé.
Le système ne gère que les ressources de la machine sur laquelle il est présent.
Exemple : UNIX, même si les applications réseaux (X11, FTP, Mail ...) se sont développées.
7.2.2 Systèmes répartis (distributed systems) : Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site).
Le système d'exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine virtuelle,
8
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
monoprocesseur même lorsque cela n'est pas le cas. Avec un système réparti, l'utilisateur n'a pas à se soucier
de la localisation des ressources. Quand il lance un programme, il n'a pas à connaître le nom de la machine
qui l'exécutera. Ces systèmes exploitent au mieux les capacités de parallélisme d'un domaine et ils offrent des
solutions aux problèmes de la résistance aux pannes.
7.3. Selon leur capacité à évoluer 7.3.1 Systèmes fermés (ou propriétaires) : Système avec extensibilité réduite : Quand on veut rajouter des fonctionnalités à un système fermé, il faut
remettre en cause sa conception et refaire une archive (système complet). Cas d’UNIX et MS-DOS
Il n'y a aucun ou peu d'échange possible avec d'autres systèmes de type différent, voir même avec des types
identiques.
7.3.2 Systèmes ouverts : Système avec extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir
à repenser le système et même sans avoir à l'arrêter sur une machine.
Cela implique souvent une conception modulaire basée sur le modèle « client-serveur » et la communication
entre systèmes, nécessitant des modules spécialisés.
7.4. Selon l'architecture matérielle qui les supporte 7.4.1 Architecture monoprocesseur (temps partagé ou multi­programmation) : Ressource processeur unique : Il a fallu développer un mécanisme de gestion des processus pour offrir un
(pseudo) parallélisme à l'utilisateur : c'est la multi-programmation ; il s'agit en fait d'une commutation rapide
entre les différents processus pour donner l'illusion d'un parallélisme.
7.4.2 Systèmes multi­processeurs Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin
d'obtenir une puissance de calcul plus importante que celle obtenue avec un processeur haut de gamme ou
bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur).
On trouve une grande variété d'architectures multiprocesseurs :
9 SIMD (Single Instruction Multiple Data) : Tous les processeurs exécutent les mêmes instructions
mais sur des données différentes.
9 MIMD (Multiple Instructions Multiple Data) : Chaque processeur et complètement indépendant
des autres et exécute des instructions sur des données différentes.
9 Pipeline : Les différentes unités d'exécution sont mises en chaîne et font chacune partie du
traitement à effectuer.
On appelle SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) une architecture dans laquelle
tous les processeurs accèdent à un espace mémoire partagé.
Un système multiprocesseur doit donc être capable de gérer le partage de la mémoire entre plusieurs
processeurs mais également de distribuer la charge de travail
Remarque : Il n'y a pas de système universel pour cette multitude d'architectures. Les constructeurs de
supercalculateurs ont toujours développés leurs propres systèmes.
9
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010
Chapitre 2
Aperçus sur les systèmes d’exploitation
7.5. Cas particulier : systèmes embarqués, systèmes temps réel 7.5.1 Systèmes embarqués Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur des machines de petite
taille, telles que des PDA (personal digital assistants ou en français assistants numériques personnels) ou des
appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, etc.), possédant
une autonomie réduite. Ainsi, une caractéristique essentielle des systèmes embarqués est leur gestion avancée
de l'énergie et leur capacité à fonctionner avec des ressources limitées.
Les principaux systèmes embarqués «grand public» pour assistants numériques personnels sont : Windows
CE / Windows Mobile / Window Smartphone
7.5.2 Systèmes temps réel ( RTOS) Ce sont des systèmes pour lesquels l'exécution des programmes est soumise à des contraintes temporelles.
Les résultats de l'exécution d'un programme n'est plus valide au delà d'un certain temps connu et déterminé à
l'avance. Généralement on trouve ces systèmes TR dans les systèmes embarqués
Exemples de systèmes d'exploitation temps réel : OS-9 ; RTLinux (RealTime Linux) ; QNX ; VxWorks
10
Adnen . A – Institut Supérieur d’Informatique et des Technologies de Communication
AU : 2009-2010

Documents pareils