Vous êtes sur la page 1sur 40

Introduction aux Systèmes

d’Exploitation et Mise en Œuvre sous


Unix

II 1

chiraz.houaidia@ensi-uma.tn
Objectifs du Cours

 Connaître les principes de base, les rôles et les


composants d’un SE
 Maîtriser l’environnement Unix :
 Interface Shell
 Programmation C
 Primitives du système de fichiers

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

Présentation générale des systèmes d’exploitation


Vous avez dit «Système d’exploitation» ?

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.

 C’est le logiciel qui exploite l’universalité de la machine et


qui la transforme en un système opératoire apte à
accomplir des tâches spécifiques.

 L’environnement d’un utilisateur se construit par des


couches logicielles successives basées sur la couche
matérielle.

 Le passage par un système d’exploitation est nécessaire.

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

 Exploitation porte ouverte : 1945-1955


 Traitement par lots (batch) : 1955-1965
 Multiprogrammation et traitement par lots : 1965-1980
 Multiprogrammation et partage de temps : 1965-1980
 Systèmes d'exploitation d'ordinateurs personnels
 Exploitation en réseau
 Exploitation en distribué
 Systèmes multiprocesseurs
 Système d'exploitation temps réel

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

Au démarrage c’est le Bios qui est exécuté et qui charge


aussitôt le noyau du système d’exploitation dans la mémoire.

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

Le noyau peut ainsi créer son premier processus P0. Il


procède comme le bios, il charge le processus dans la
mémoire puis il lui cède la main au moyen d’un saut.

P0 starts

P0
jump
Kernel
jump
Bios

Time

19/40
Actor

Que se passe t-il si P0 entre dans une boucle infinie


(c’est après tout du code) ?
….
Le noyau ne pourra jamais reprendre le contrôle …

P0
jump
Kernel
jump
Bios

Time

20/40
Actor

La solution c’est de générer des interruptions périodiques


permettant au noyau de reprendre la main de façon régulière et
empêcher ainsi les processus qui ont tendance à monopoliser le
processeur.

P0
intr reti intr reti
jump
Kernel

jump
Bios
Time

Intr: interruption
Reti: Return Interrup
21/40
Actor

Grâce à ces interruptions périodiques, le noyau reprend son rôle


d’arbitre pour partager le temps entre plusieurs processus.

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

 Évènements logiciels exceptionnels


• Erreurs fatales : division par zéro, instruction invalide, etc

23/40
Architecture d’une machine typique
CPU1 CPU2 CPU3

System bus

main
memory I/O bridge

I/O bus

USB disk network


controller controller adapter
U S B 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

 Moins élégant que les micro-noyaux

 Micronoyaux : Client/serveur
 Plus difficile à écrire

 Plus résistant aux bugs (donc plus sûr)

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

Vous aimerez peut-être aussi