Introduction au Système
d’Exploitation 1
LICENCE
ENSI de Sidi Bel abbes
2014/2015
Programme
Programme (Suite)
Programme (Suite)
Objectifs :
• Initiation à la pratique du système Unix
• A la fin du module vous devez etre capable de
travailler dans un environnement Unix (au niveau
utilisateur) et installer un système Unix (Linux)
1. INTRODUCTION
1.1 Qu’est ce qu’un système d’exploitation ?
Le système d’exploitation (SE ou Operating System) est un
ensemble de programmes responsables de la liaison entre la
machine et les utilisateurs (usagers).
En d’autres termes, Il doit :
Fournir l’interface usager/machine:
– Masquer les détails du matériel aux applications
– Traiter ces détails
• Contrôler l’exécution des applications
– En reprenant périodiquement le contrôle de l’UC
– Dire à l’UC quand exécuter tel ou tel programme
• Optimiser l’utilisation des ressources pour maximiser les
performances du système
Pourquoi étudier les SE?
• Logiciel très important…
– tout programme roule sur un SE
– interface usager-machine
• Les SE utilisent beaucoup d’algorithmes et
structures de données intéressants
– Les techniques utilisées dans les SE sont aussi
utilisées dans de nombreuses autres applications
informatiques
1.2 Fonctions d’un SE
Gestion des ressources : proposer à l’utilisateur une interface
d’accès aux ressources de la machine et partager ces
dernières entre plusieurs programmes.
– physiques: mémoire, unités E/S, UC...
– Logiques = virtuelles: fichiers et bases de données...
– les ressources logiques sont créées par des programmes sur les
ressources physiques
Gestion des travaux : charger les programmes en mémoire,
préparer l’exécution, contrôler en permanence l’exécution
et enchainer les différents programmes.
Sécurité: empêcher les programmes mal écrits de nuire au
bon fonctionnement de la machine et empêcher les accès
interdits à certaines ressources de la machine.
Abstraction : proposer une abstraction présentant à
l’utilisateur une machine virtuelle. Le SE permet le plus
souvent aux applications d’être indépendantes de la
1.3 Évolution des Systèmes d’Exploitation
Un peu d’Histoire !
• La théorie des SE a été développée surtout
dans les années 1960 (!!)
• A cette époque, il y avait des machines très peu
puissantes avec lesquelles on cherchait à créer
des applications comparables à celles
d’aujourd’hui (mémoire typique: 100-500K!)
• Ces machines devaient parfois desservir des
dizaines d’usagers!
Évolution historique des SE
• Phase 1 : Le début: routines d’E/S, amorçage
du système
• Phase 2 : Systèmes par lots (batch)
2.1 simples
2.2 multiprogrammés
• Phase 3 : Systèmes à partage de temps
• Phase 4 : Ordinateurs personnels (PC)
• Phase 5 : Systèmes parallèles
• Phase 6 : SE répartis
Phase 1: Les débuts
• Au début, on a observé qu’il y avait des
fonctionnalités communes à tous les
programmes
• il fallait les pré-programmer et les fournir au
programmeur à moyen d’instructions d’appel:
– amorçage du système (démarrage)
– entrée/sortie
Phase 2 : Les systèmes par lots (batch)
• Ont été les premiers systèmes d’exploitation.
• Ils sont associés aux concepts suivants:
– langage de contrôle de travaux (JCL)
– système d’exploitation (moniteur) résident en mémoire
– protection de mémoire
– instructions privilégiées
• modes usager-moniteur
– interruptions
– minuterie
• Toutes ces caractéristiques se retrouvent dans les systèmes
d’aujourd’hui
• Encore aujourd’hui on parle de travaux ‘par lots’ quand ils
sont exécutés séquentiellement sans intervention humaine
Exemple : gestion des salaires, comptabilité d’une
compagnie….
Phase 2.1: Systèmes par lots simples
• L’usager soumet un job à un opérateur
– Programme suivi par des données
• L’opérateur place un lot de plusieurs jobs sur le dispositif de
lecture
• Le moniteur (SE) gère l'exécution de chaque programme du lot
• Le moniteur est toujours en mémoire et prêt à être exécuté
• Un seul programme à la fois en mémoire
• Les programmes sont exécutés en séquence
• La sortie est normalement sur un fichier, imprimante, ruban
magnétique…
Un ordinateur principal (mainframe)
du milieu des années ‘60
• disques
• UCT
• rubans • (mémoire probablem.
• autour de 250-500K)
• lecteur de
cartes • console opérateur
• Musée de l’histoire de l’informatique [Link]
cartes perforées…
• Une ligne de données ou de programme était codée
dans des trous qui pouvaient être lus par la machine
Opérateur lisant un paquet de cartes perforées
Source: [Link]
Finnish Data Processing Museum Association
Langage de contrôle des travaux (JCL)
Langage utilisé pour contrôler l’exécution d’un
job
Fonctionnement du SE par lots
• Lecture de cartes perforées
• Interprétation de commandes JCL
• Lecture d’un job (du lecteur de cartes)
• Chargement en mémoire de ce job
• Transfère le contrôle au programme usager
• Exécution du programme usager jusqu’à:
– fin du programme
– E/S
– erreur
• À ce point, le moniteur (SE) reprend le contrôle pour le
redonner plus tard au même programme ou à un autre
programme
Phase 2.2: Traitement par lots multiprogrammé
• Les opérations E/S sont extrêmement lentes
(comparé aux autres instructions)
• Exemple : une boucle de programme pourrait durer
10 microsecondes, une opération disque (lecture ou
écriture) 10 millisecondes
C’est la différence entre 1 heure et un mois et
demi!
Même avec peu d’E/S, un programme passe la
majorité de son temps à attendre
• Par conséquent, mauvaise utilisation de l’UC
lorsqu’un seul programme usager se trouve en
mémoire
Traitement par lots multiprogrammé
• Si la mémoire peut contenir plusieurs programmes,
l’UC peut exécuter un autre programme lorsqu’un
programme attend une E/S
• C’est la multiprogrammation
Multiprogrammation
Le système d’exploitation conserve en mémoire
centrale plusieurs travaux et gère le partage du
processeur et des périphériques entre les
différents travaux chargés en mémoire.
Plusieurs programmes en mémoire
pour la multiprogrammation
Exigences pour multiprogrammation
• Interruptions
• afin de pouvoir exécuter d’autres jobs lorsqu’un job
attend une E/S
• Protection de la mémoire: isoler les jobs
• Gestion du matériel
• plusieurs jobs prêts à être exécutées demandent les
mêmes ressources.
Exemple : UC, mémoire, unités E/S
• Langage pour gérer l’exécution des travaux: interface
entre les usagers et OS
– Avant JCL, maintenant shell, interpréteur de commandes…
Spooling
Au lieu d’exécuter les travaux au fur et à
mesure qu’ils sont lus, les stocker sur une
mémoire secondaire ou disque sans
l’intervention de l’opérateur (gain de temps).
Phase 3: Systèmes à temps partagé (Time Sharing
Systems)
• Les systèmes en temps partagé ont été développés pour
fournir une utilisation interactive du système informatique.
Un SE en temps partagé utilise le scheduling
(l’ordonnancement) de l’UC et la multiprogrammation pour
fournir à chaque utilisateur une petite portion de temps.
• Un système d’exploitation en temps partagé permet aux
différents utilisateurs de partager l’ordinateur simultanément.
Comme le système commute très vite d’un utilisateur à un
autre, chaque utilisateur a l’impression qu’il possède son
propre ordinateur, alors qu’en réalité l’ordinateur est partagé
entre plusieurs utilisateurs.
Exemple
Terminaux
ordinateur principal
(mainframe)
Chaque terminal a sa propre partition de mémoire
Systèmes à temps partagé (TSS)
• Le traitement par lots multiprogrammé ne supporte pas
l’interaction avec les usagers
• TSS permet à la multiprogrammation de desservir plusieurs
usagers simultanément ! (interactivité)
• Le temps de l’UC est partagé par plusieurs usagers
• Les usagers accèdent simultanément et interactivement au
système à l’aide de terminaux
Phase 4 : Ordinateurs Personnels (Personal
Computers)
• Au début, les PCs étaient aussi simples que les
premiers ordinateurs.
• Le besoin de gérer plusieurs applications en
même temps conduit à redécouvrir la
multiprogrammation
Exemple : compiler un code, saisir du texte…
• Comme le coût du matériel a baissé, il est
devenu possible d’avoir un système
informatique dédié à un seul utilisateur.
Phase 4 : Ordinateurs Personnels (Personal
Computers)
• Les PC sont apparus dans les années 70.
C’était des machines bon marché mais dont
les SE n’étaient ni multiutilisateurs, ni
multitâches.
Exemples : MS-DOS de Microsoft, Macintosh
d’Apple.
• Apparition du concept IHM (Interface Homme-
Machine)
Exemples : Windows, Linux.
Phase 5 : Systèmes parallèles
La plupart des systèmes actuels sont des
systèmes monoprocesseurs, c’est à dire qu’ils
possèdent une seule UC principale.
Cependant, ils se dessinent une tendance en
faveur des systèmes multiprocesseurs. De tels
systèmes possèdent plus d’un processeur en
étroite communication partageant le bus de
l’ordinateur, l’horloge et quelque fois la
mémoire et les périphériques.
Phase 5 : Systèmes parallèles
Il existe plusieurs raisons de créer de tels systèmes :
• Augmenter la capacité de traitement du système.
• Possibilité d’économiser du coût par rapport à plusieurs
systèmes mono-processeurs :
Les processeurs peuvent partager les périphériques, les
boîtiers et les alimentations électriques.
Si plusieurs programmes doivent exploiter le même
ensemble de données, il est moins cher de stocker ces
données sur un seul disque et de les faire partager par tous
les processeurs plutôt que d’avoir plusieurs ordinateurs avec
des disques locaux et de nombreuses copies de données.
• Les systèmes multiprocesseurs présentent un autre
avantage, ils augmentent la fiabilité. En effet une panne
d’un processeur n’arrêtera pas le système.
Phase 6: Systèmes d’exploitation répartis
Il existe de nombreuses raisons de construire des systèmes
répartis
• Partage des ressources et des données : Si plusieurs machines
sont connectées entre elles, un utilisateur sur une machine
doit être capable d’utiliser les ressources disponibles dans une
autre machine. Par exemple, un utilisateur sur une machine A
peut imprimer sur une imprimante à laser disponible sur une
machine B. De même qu’un utilisateur dans B peut accéder à
un fichier se trouvant dans A.
• Accélération du calcul : Si l’on peut subdiviser un traitement
particulier en plusieurs sous-traitements pouvant s’exécuter
en concurrence (en parallèle), un système réparti doit nous
permettre de distribuer le traitement entre les différentes
machines.
Phase 6: Systèmes d’exploitation répartis
• Fiabilité : si une machine tombe en panne dans un
système réparti, les machines restantes peuvent
continuer à fonctionner.
• Communication : les utilisateurs peuvent déclencher des
transferts de fichiers ou communiquer entre eux à travers
le courrier électronique, par exemple.
Phase 6: Systèmes d’exploitation répartis
SE en réseau : Ils permettent à partir d’une
machine de se connecter sur une machine
distante et de transférer les données. Mais chaque
machine dispose de son propre SE.
SE réparti : L’utilisateur ne sait pas où sont
physiquement ses données, ni où s’exécute son
programme. Un seul SE gère l’ensemble des
machines connectées.
1.4 Composantes d’un SE
Pour créer un système aussi grand et complexe qu’un
système d’exploitation, il est nécessaire de le
découper en pièces plus petites. Chacune d’entre
elles devrait être une portion bien délimitée du
système, avec des entrées, des sorties et des
fonctions soigneusement définies.
1.4 Composantes d’un SE
Plusieurs systèmes modernes possèdent les
composants suivants :
• Le noyau
• Les bibliothèques
• Un ensemble d’outils système
• Les programmes applicatifs de base
Noyau du système
Il s’agit de la couche primordiale, celle qui est lancée lors du
démarrage de l’ordinateur que l’on appelle couramment le boot
• Gestion des périphériques
• Gestion de processeurs (répartition du temps d’exécution sur le
(les) processeur(s).
• Synchronisation et communication entre processus
• Gestion mémoire principale.
• Gestion mémoire auxiliaire.
• Gestion du système d’entrée/sortie.
• Gestion des fichiers.
• Système de protection.
• Gestion de réseaux.
Les bibliothèques
Les bibliothèques servent à regrouper les
opérations les plus utilisées dans les
programmes informatiques, afin d’éviter la
redondance de la réécriture de ces opérations
dans tous les programmes.
Les outils système
Configuration du système (gérer les comptes des
utilisateurs, configuration des paramètres
réseau, démarrage automatique des services…)
Les programmes applicatifs de base
Des programmes applicatifs de base offrent des
services à l’utilisateur. Ces programmes
applicatifs sont fournis avec le système
d’exploitation (interpréteur de commandes,
compilateur, éditeur de texte….)
Historique du système UNIX
Origine une idée de Ken Thompson (des
laboratoires Bell) à la fin des années 60 du 20e
siècle.
Il voulait créer un jeu interactif pour passer le
temps.
Or, le S.E. MULTICS n’avait pas un temps de
réponse suffisant.
Ken Thompson décida de construire son propre
S.E.
Historique du système UNIX (Cont.)
UNIX par opposition à MULTICS:
• première version entièrement écrite en langage
assemblé;
• services très primitifs;
• mono-utilisateur mais multitâche;
• gère la mémoire pour les processus;
• code compact et grande vitesse d’opération.
Historique du système UNIX (Cont.)
À la même époque Dennis Ritchie
développa le langage C.
Au début des années 70 du 20e siècle
réécriture du S.E. UNIX utilisant le langage C.
Première machine dotée du S.E. UNIX PDP-
11:
• UNIX détrône rapidement MULTICS.
Historique du système UNIX (Cont.)
Le département des brevets (laboratoires
Bell) premiers utilisateurs sérieux de ce S.E.
Une grande contribution des institutions
académiques et de recherche:
• Université de la Californie à Berkeley;
BSD (Berkeley Software
• Université Stanford; Distribution)
Réseautique (i.e. SUN)
• M. I. T. Système graphique X-
Windows
• AT&T
Historique du système UNIX (Cont.)
U N IX
Sy stèm e 5 B SD
v ersio n 2 v ersio n 4 .2
IB M A IX v ersio n 3 v ersio n 4 .3 A p o llo
O SF / 1 v ersio n 4 v ersio n 4 .4
v ersio n 4 .1
v ersio n 4 .2
Su n O S H P/ U X
(So laris) U N IX
Variantes d’UNIX
Système V version 4 (SVR4):
• développé conjointement par AT&T et SUN
Microsystems;
• réécriture complète de SRV3 et incorpore les
caractéristiques de 4.3BSD;
• classe d’ordonnancement temps réel;
• plus importante des variantes développées
jusqu’à présent.
Variantes d’UNIX
Système Solaris de SUN Microsystems:
• basé sur le SVR4;
• extensibilité;
• directement utilisable sur plateforme
multiprocesseur.
• Optimiser pour le matériel SUN microsystems
Variantes d’UNIX
Système BSD (Berkeley Software Distribution):
• système disponible «domaine public»;
• contribution dans la communication inter-
ordinateur (réseautique);
• version 4.4 est la version finale de BSD;
• équipe officielle de développement a été
dissolue;
Linux
• À l’origine: Linus Torvalds voulait avoir des
améliorations et modifications pour le S.E.
appelé Minix - un système développé par Andrew
Tanenbaum pour aider à l’apprentissage de l’UNIX;
• Les requêtes n’ont pas été jugées pertinentes par
M. Tanenbaum;
• M. Tarvalds a donc développé son propre noyau;
Linux
• Un noyau sans programmes (utilitaires) n’est pas
un système d’exploitation;
• Belle rencontre: Le projet GNU avait une série de
programmes (utiliaires) pour Unix mais pas de
noyau;
• 1991: Noyau de Torvalds + programmes de GNU +
Internet = Linux;
• Le développement du S.E. s’effectue à un rythme
accéléré grâce aux concepts de « Open Source ».
Distribution Linux
Linux n’est pas un produit commercial et différentes
organisations peuvent créer leur version du S.E.;
Ces versions du S.E. (noyau, utilitaires, pilotes, etc.)
et programmes utilisateurs représentent des
distributions qui portent des noms distincts;