1
Introduction au systèmes
d’exploitation
2
Ordinateur: matériel +logiciel.
3
Logiciel:
Les couches d’un système informatique
4
Système d’exploitation: ensemble de programmes
qui agissent comme un intermédiaire entre
l’utilisateur et l’ordinateur.
l’utilisateur a une vue simplifiée de l’ordinateur lui
permettant de l’utiliser plus facilement.
But :
Développer des applications sans se soucier des
détails de fonctionnement et de gestion du
matériel.
5
Processus : Programme en cours d’exécution
6
Gestion du processeur et des processus
Gestion de la mémoire
Gestion des périphériques
Gestion des fichiers
Protection et sécurité
7
Machines portes ouvertes (nues) : 1945-1955
machines énormes, couteuses, très peu fiables et peu
rapides.
Pas de système d’exploitation: le programmeur
s’occupe de la programmation, du chargement et du
lancement des programmes.
Programmation en langage machine.
Mode d’exploitation : Monoprogrammation
Début des année 50 : Introduction des cartes perforées
8
Traitement par lots : 1955-1965
Lot: ensembles de programmes écrits dans un même
langage et font appel au même compilateur.
9
Traitement par lots : 1955-1965
Pgs. en
Bande
assembleur ou en
magnétique
Fortran
10
Traitement par lots : 1955-1965
Mode d’exploitation: Monoprogrammation (un
seul programme en mémoire à la fois)
Inconvénient: Processeur inutilisé pendant les E/S
2 4 6 10 12 11
Multiprogrammation et traitement par lots : 1965-1980
SPOOLING (Simultaneous Peripheral Operation On Line)
-Simultanéité de transferts de programmes dans le disque et
transfert de fichiers vers les périphériques.
Disque Pg2
Pg1
pg1 pg2 pg3 pg4
SPOOL
Périphérique
12
Spooling:
-Multiprogrammation: Plusieurs [Link] en mémoire.
-Simultanéité calcul et E/S.
13
Multiprogrammation sans interruption de programme :
• Le processeur est accordé au programme
prioritaire qui le garde jusqu’{ ce qu’il se termine
ou fasse une E/S.
• Pendant qu’un processus est en attente ou s’il s’est
terminé, le contrôle est repris par le SE qui accorde
le processeur au programme le plus prioritaire qui
demande à faire du calcul.
14
Multiprogrammation avec interruption de programme:
Lorsqu’une opération d’E/S est terminée le SE
reprend la main et donne l’UC au programme le
plus prioritaire qui la demande.
A tout moment le déroulement d’un programme
peut être interrompu au profit d’un autre plus
prioritaire: Une interruption est alors produite.
15
Exemple : Priorité croissante (C,B,A)
1 3 4 5 7 8 9 11
16
Temps partagé: plusieurs utilisateurs peuvent se
connecter { la machine par l’intermédiaire de leurs
terminaux et travailler en même temps.
Le processeur est alloué, à tour de rôle, pendant un
certain temps à chacun des travaux en attente
d’exécution.
ce mode d’exploitation donne l’impression que les
programmes s’exécutent en parallèle.
17
Exemple: temps partagé ordre ABC
1 2 3 4 5 6 7 8 10
18
Le temps réel: Bien que le temps partagé ait permis un
temps de réponse approprié aux utilisateurs, il existe
des domaines (industriel, médical, militaire) dans
lesquels, l’ordinateur doit réagir immédiatement { un
changement des données d’entrée.
Quand un dispositif d’entrée veut envoyer une
donnée, il active sa ligne d’interruption qui
sera détectée par le processeur. Le processeur
interrompt son travail et exécute un programme
particulier associé à cette interruption.
19
(1980-1990)L’informatique personnelle – Les systèmes
distribués
Informatique personnelle:
Micro-ordinateurs (PC) ont connu un
développement. Le premier PC, conçu par IBM a
été équipé du système MS-DOS de Microsoft. Ce
système est l’ancêtre de l’actuel Windows. D’autres
constructeurs ont développé d’autres architectures
et l’ont équipé de variétés de SEs comme
Motorola, Apple ou Digital Research.
20
Système d’exploitation réseau
Un système distribué est un ensemble de machines
autonomes connectées par un réseau, et équipées d’un
logiciel dédié à la coordination des activités du système
ainsi qu’au partage de ses ressources
Un système distribué est un système qui s’exécute sur un
ensemble de machines sans mémoire partagée, mais que
pourtant l’utilisateur voit comme une seule et unique
machine
21
La miniaturisation – Les systèmes embarqués:1990 à
nos jours: Téléphones portables, Téléviseurs, machines à
laver, équipement médical, etc .
-Équipements électroniques autonomes conçus pour une
tâche bien précise doté d’un SE et de processeurs.
Exemple: Un système à domicile peut contrôler la
température, l’éclairage, l’alarme et même la machine {
café. Bientôt, le réfrigérateur pourra commander du lait
par internet quand il s’aperçoit qu’il n’en reste plus assez.
22
23
Chaque composant (processeurs, mémoires et périphériques) de
l’ordinateur a son propre code qui assure son fonctionnement et
les interactions avec les autres.
Le système d’exploitation gère et coordonne l’ensemble de ces
composants au moyen de signaux (interruptions).
Les interruptions permettent au SE de reprendre le contrôle:
– Interruptions matérielles :
•Horloges (pour gérer l’allocation des processeurs)
•Périphériques
– Interruptions logicielles :
•Erreurs arithmétiques (division par zéro)
•Données non disponibles en mémoire (défaut de page)
•Appels système (invocation du système d’exploitation).
24
25
les processeurs ont deux modes de fonctionnement:
– Le mode superviseur (noyau, privilégié ou maître): pour le
système d’exploitation, où toutes les instructions sont autorisées.
– Le mode utilisateur (esclave): pour les programmes des
utilisateurs et les utilitaires, où certaines instructions ne sont pas
permises.
Un appel système consiste en une interruption logicielle qui a
pour rôle d’activer le système d’exploitation. Il a pour but de
changer de mode d’exécution pour passer du mode utilisateur au
mode maître.
26
Les processeurs sont dotés d’un bit de mode: Ce mode de
fonctionnement assurent la protection du système
d’exploitation contre les intrusions et les erreurs.
27
28
29
Les appels systèmes permettent:
- la création,
- la synchronisation
- l’arrêt des processus
- la communication interprocessus
- gestion de fichiers et répertoires
30
Un processus peut créer un ou plusieurs
processus fils qui, à leur tour, peuvent créer des
processus fils (structure arborescente): commande
Fork()
Un processus peut être partitionné en plusieurs
threads concurrents partageant un même environnement
d’exécution. Les threads sont un moyen de raffiner et de
diviser le travail normalement associé à un processus.
31
32
- Segments de données partagés;
- Fichiers;
- Signaux;
- Messages -> Tubes de communication (pipe)
33
Éviter l’accès simultané lecture/écriture ou
écriture/écriture à une même donnée.
34
Partage de ressources:
35
Un fichier est un ensemble de blocs sur le disque
36
Les appels systèmes permettent de créer des fichiers, de les
supprimer, de les ouvrir, de les lire, de les modifier et de récupérer
leurs attributs…
37
Les fichiers sont regroupés dans des répertoires.
Un répertoire peut contenir soit des fichiers, soit
d’autres répertoires (structure arborescente).
• L’accès au fichier se fait en spécifiant le chemin
d’accès (la liste des répertoires { traverser).
• Un chemin d’accès est absolu si le point de départ
est le répertoire racine.
• Un chemin d’accès est relatif si le point de départ
est le répertoire courant.
38
A
39
40
A chaque fichier ou répertoire sont associés des droits
d'accès: autorisation ou inhibition de la lecture noté r,
de l'écriture noté w, de l'exécution noté x.
rwx rwx rwx
Autre s
Propriétaire groupe
utilisateurs
exemple:
droits = 1101010002 = 6508
affiché sous la forme : rw-r-x---
droits du propriétaire : Lire, Ecrire
droits des membres du groupe : Lire, Exécuter
droits des autres : aucun
41
Structure monolithique: ensemble de procédures
de même niveau: une procédure principale qui
appelle la procédure de service requise qui fait
appel à son tour à des procédures utilitaires qui
assistent les procédures de service (ex: la recherche
de données des programmes utilisateur)
42
43
Micro noyau: Architecture plus moderne que la structure
monolithique.
Différence entre les deux architectures se situe dans
l’implantation de leurs architectures respectives en mode
superviseur (kernel mode) et en mode usager (user mode).
L’architecture monolitique met en œuvre tous les services
du SE dans le domaine du mode superviseur.
l’architecture micro-kernel fait une division entre les
services du SE: services «haut-niveau» implantés dans le
domaine de l’utilisateur et «bas-niveau» implantés dans
l’espace du mode superviseur.
44
messages
45