Académique Documents
Professionnel Documents
Culture Documents
II 1
chiraz.houaidia@ensi-uma.tn
Objectifs du Cours
2/40
Plan du cours
I Présentation générale des systèmes d’exploitation
Définition et objectifs d’un système d’exploitation
Evolution des systèmes d’exploitation
Fonctions d’un système d’exploitation
Structure d’un système d’exploitation
Caractéristiques des Systèmes d’exploitation modernes
II. Environnement UNIX
Historique
Caractéristiques générales
Le Système de fichiers
Le Shell et la programmation Shell
Les filtres : grep,sed, awk, find, sort
3/40
Plan du cours
III. Programmer en C sous GNU/LINUX
Environnement d’exécution : GCC et make
Interaction avec l’environnement d’exécution
Gestion des erreurs
Ecrire et utiliser des Bibliothèques
IV. Le système de gestion de fichiers
Organisation
Primitives d'accès élémentaires aux fichiers
Sécurité et Protection des fichiers
Le système de fichiers d’UNIX (Les E/S de base, répertoire,
inode)
4/40
Bibliographie
« La communication sous Unix ». Jean-Marie Rifflet.
Edition Eyrolls.
« Systèmes d’exploitation, conception et mise en œuvre »
A.Tanenbaum, InterEditions.
5/40
Chapitre 1
Debian
7/40
Introduction
Utilisateur = l’humain devant la machine User
Applications
Suivant le contexte : utilisateur final ou
développeur
Interagit directement … avec le matériel
Applications = les logiciels avec lesquels Application
veut interagir l’utilisateur final
Messagerie, traitement de texte, lecteur de
musique, etc.
Operating System
Matériel = la machine physique
Et Donc : Operating System = tout le
reste
Logiciel d’infrastructure: noyau + pilotes + User
Hardware
services, etc.
Entre le matériel et les applications
8/40
Définition
Un système d’exploitation est le logiciel qui fait
fonctionner une machine.
9/40
Rôle de l’OS : les deux fonctions essentielles
Machine virtuelle
• cacher la complexité sous une interface «plus jolie»
• fournir certains services de base aux applications
• IHM, stockage persistant, accès internet, gestion du temps
• permettre la portabilité des programmes
• pouvoir lancer un même exécutable sur différents matériels
Gestionnaire de ressources
• Partager chaque ressource entre les applications
• Exploiter «au mieux» les ressources disponibles
• Assurer la protection des applications (et du système)
10/40
Structure d’un système informatique
11/40
Evolution des systèmes d’exploitation
12/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
13/40
Définitions, objectifs & généralités des SE
Processus
Instance d’un programme en cours d’exécution
Aspect dynamique d’un programme
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
14/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots (Batch Processing)
Un utilisateur donne plusieurs commandes (jobs) dans une
file d’exécution de programmes
Entièrement séquentielle
Exp: autoexec.bat
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
15/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-tâches (multi-tasking)
Assurer l’exécution de plusieurs processus en même temps
Situation concurrente (chaque processus a besoin du processeur)
scheduling
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
16/40
Actor
Kernel is loaded
from disk
Kernel
Bios
Time
17/40
Actor
Une fois que c’est fait, le bios effectue un saut vers l’adresse
du noyau dans la RAM pour débuter son exécution.
Kernel starts
Kernel
jump
Bios
Time
18/40
Actor
P0 starts
P0
jump
Kernel
jump
Bios
Time
19/40
Actor
P0
jump
Kernel
jump
Bios
Time
20/40
Actor
P0
intr reti intr reti
jump
Kernel
jump
Bios
Time
Intr: interruption
Reti: Return Interrup
21/40
Actor
P1
P0
Kernel
Bios
Time
22/40
Différentes sources d’interruptions
Minuteur système, ou System Timer
• interruptions périodiques, typiquement 100Hz ou 1000Hz
• permet à l’OS de percevoir le passage du temps
• bonus : permet au noyau de reprendre la main sur les
applications
Périphériques d’entrées-sorties
• clavier, souris, disque, GPU, réseau, etc
Pannes matérielles
• température excessive, coupure de courant, etc
23/40
Architecture d’une machine typique
CPU1 CPU2 CPU3
System bus
main
memory I/O bridge
I/O bus
network
disk
mouse keyboard
24/40
Un processeur avec support des
interruptions
Le cycle de Von Neumann avec interruptions
while True do :
Charger une instruction depuis la mémoire
Décoder ses bits : quelle opération, quelles opérandes, etc
Exécuter l’opération et enregistrer le résultat
If interruption demandée then :
Sauvegarder le contenu des registres
déterminer l’adresse de la routine de traitement
passer en mode superviseur
Sauter à la routine = écrire son adresse dans le compteur ordinal
endif
repeat
25/40
Mécanisme d’interruptions
Routine de
Programme traitement
principal d’interruption
charger dans P C
sauvegarder l’adresse de début de la
requête les registres
d’interruption routine
ISR: ...
...
...
...
... RETI
instruction ”retour
restauration d’interruption”
des
26/40 registres
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs (time sharing)
Permettre à différents personnes de travailler avec un
ordinateur en même temps
Via le terminal lui-même
À distance (telnet, ssh, ftp, …)
Exige des droits d’accès.
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
27/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Parallélisme
Vrai multi-tâche
Exécuter autant de processus que de processeurs en même temps
Systèmes temps réel
Systèmes distribués
28/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Doit garantir des temps de réactions bornés
Exp: systèmes embarqués
Systèmes distribués
29/40
Définitions, objectifs & généralités des SE
Processus
Traitement par lots
Systèmes Multi-taches
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
Exécution d’un seul programme sur plusieurs machines
Distribuer les processus et les remettre ensemble
Pour gros calculs
30/40
Fonctions d’un système d’exploitation
31/40
Fonctions d’un système d’exploitation
Gestion des ressources matérielles (Périphériques d’E/S)
Confiée aux pilotes (drivers)
Lire/Ecrire dans les ports d’E/S
Gestion des interruptions
Cacher la complexité matérielle
Dissimuler les limitations physiques (taille mémoire, nbre processus,
…)
Allocation des ressources pour les différents processus
32/40
Fonctions d’un système d’exploitation
Gestion de la mémoire
Répartition de la mémoire aux différents processus actifs
Placement des processus dans la zone qui leur est allouée
Localisation des données pour chaque processus
Maintien de l’intégrité des différents espaces réservés (y
compris celle utilisée par les dispositifs d’E/S)
Utilisation de la mémoire auxiliaire comme support annexe
de le mémoire centrale
33/40
Fonctions d’un système d’exploitation
Gestion des fichiers
Conservation (permanence) des données
Organisation des données sous forme d’arbre (Fichier,
Répertoire).
Protection (sécurité), partage et intégrité des données
Correspondance entre l'organisation logique (arborescence
vue par l'utilisateur) et physique des données.
Réalisation des fonctions d’accès aux fichiers (lect, ecr.,exec)
Système de fichiers = structure logique d’accueil des
données permettant la gestion d’une partie de l'espace
disque (Notion de partitions)
34/40
Fonctions d’un système d’exploitation
Gestion des processus
Exécution, suspension, blocage et terminaison d’un processus.
Allocation (dés-allocation) des ressources pour un processus actif
(non actif)
2 modes de fonctionnement:
Mode noyau: Accès à l’ensemble du système
Mode utilisateur: Accès restreint
Pour accéder aux services du système d’exploitation, un
programme utilisateur doit effectuer un appel système qui consiste
en:
Basculer en mode noyau
Invoquer le système d’exploitation
Revenir en mode utilisateur
Retourner le contrôle au programme utilisateur.
Exp: Lecture ou écriture sur le disque dur.
35/40
Fonctions d’un système d’exploitation
Gestion du dialogue Homme-Machine
Appels systèmes (Systemcall):
pour l’accès aux ressources logicielles et matérielles contrôlées par l’OS.
Généralement accédée par des API (Application Programming Interface)
Interface de commandes
Textuelle CLI: rm *.ps , DOS/Shell Unix
Graphique GUI: déplacer l’icône du fichier vers la corbeille
36/40
Structure d’un système d’exploitation
Pas de structure standard s’appliquant à tout OS
Mais identification des principaux composants de base
Noyau
allocation des processeurs
traitement des interruptions
gestion des horloges
gestion des processus
gestion des E/S et des communications
Gestionnaire de mémoire
gestion de la mémoire
Système Gestion de Fichier (SGF)
gestion des fichiers
37/40
Le noyau du système
Monolithique : «Tout en un» un seul morceau
Plus facile à écrire
Micronoyaux : Client/serveur
Plus difficile à écrire
38/40
Noyau monolythique
Un seul programme
Plus facile à écrire
Moins élégant
Lourd et difficile à débugger
Gâchis de mémoire (tout est chargé)
39/40
Micronoyau
Noyau réduit au presque minimum
(microkernel), le reste chargé en
serveurs
Structure client/serveur
Gère principalement
l'ordonnancement et les transferts
de messages entre les programmes
Les drivers et les applications
s'exécutent en mode utilisateur
Portable et facilement maintenable
Exemples : Mach, Minix, …etc.
40/40