Académique Documents
Professionnel Documents
Culture Documents
MRBI
chiraz.houaidia@ensi-uma.tn
Approche du cours
Déroulement du cours:
Cours intégré (semestre 1) de 21 Heures (3h/semaine)
Evaluation : 1 seul DS (2h) + notes (TP/TDs)
Ressources:
1. Maher Sellami, Cours ENSI II1-Semestre 2 : Introduction aux systèmes
d’exploitation et mise œuvre sous Unix, ENSI 2018
2. Introduction to Bio-Linux, 2015, http://environmentalomics.org/bio-
linux, access on Feb. 24 th 2019.
3. A. Silberschatz, & P. Glavin and G. Gagne. Operating Systems Concepts,
9th edition, John Wiley & sons, inc. 2012 (ISBN-13: 978-1118063330).
4. A. Tanenbaum, & Herbert Bos, Modern Operating Systems, 4th edition,
Pearson, ISBN-13: 978-0133591620; (2014)
2/37
Approche du cours
Objectifs
Prérequis
Algorithmique, Programmation
3/37
Plan du cours
Chapitre 1: Généralités et historique des systèmes
d’exploitation Unix
Motivations (Quel sont les SEs ?)
Architecture et caractéristiques générales des systèmes
d’exploitation Unix
Bref historique des familles Unix
Les distributions de Linux (Ubuntu, Fedora, Debian, …)
Installation et configuration de Linux
Chapitre 2: Commandes Shell Linux
Utilisation du shell : Commandes de base (répertoires, fichiers,
processus, …) ; les redirections ; les pipes ; …
SGF Unix
Sécurité et Protection des fichiers/répertoires
Création d’archives : tar, …
4/37
Plan du cours
Chapitre 3: Interfaces graphique (GUI) et
Programmation des scripts
Interface Homme-machine (IHM)
Desktop : KDE, GNOME, …
Gestionnaire des fenêtres
Editeurs de texte : gedit, emacs, vim, nano, …
Interpréteur de commandes
Variables d’environnement
Structures de contrôles (conditionnelles, répétitives, …)
Les filtres et commandes avancées de Linux: Manipulation
des données d’un fichier (expressions régulières, outils grep,
egrep, sed, awk)
5/37
Vous avez dit «Système d’exploitation» ?
Debian
6/37
Motivations -- Pourquoi étudier les SEs?
Domaine mâture
Meilleurs programmes (corrects, performants, complexes, …etc)
Challenges
Programmation multithread (multicore)/Programmation Parallèle
Sécurité
7/37
Quelques définitions
Utilisateur= l’humain devant la machine
User
Applications
• suivant le contexte : utilisateur final, ou
développeur
• interagit directement... avec le matériel !
8/37
Rôle de l’OS : les deux fonctions essentielles
et largement interdépendantes !
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)
9/37
Interfaces d’un système d’exploitation
10/37
Interfaces d’un système d’exploitation
11/37
Appels système : exemples
13/37
Une Structure à niveaux
14/37
Positionnement de l’OS
Application 1 Application 2
OS Kernel
Hardware
15/37
Noyau monolythique
16/37
Micronoyau
17/37
Modes d’utilisation du système
18/37
Modes d’utilisation du système
19/37
Différentes sources d’interruptions
Périphériques d’entrées-sorties
clavier, souris, disque, GPU, réseau, etc
Pannes matérielles
température excessive, coupure de courant, etc
20/37
Mécanisme d’interruptions : déroulement
Routine de
Programme traitement
principal d’interruption
charger dans PC
sauvegarder l’adresse de
requête les registres
d’interruption début de la
routine
instruction ”retour
restauration d’interruption”
des registres
21/37
Actor
Kernel is loaded
from disk
Kernel
Bios
Time
22/37
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
23/37
Actor
P0 starts
P0
jump
Kernel
jump
Bios
Time
24/37
Actor
P0
jump
Kernel
jump
Bios
Time
25/37
Actor
P0
intr reti intr reti
jump
Kernel
jump
Bios
Intr: interruption
Time
26/37 Reti: Return Interrup
Actor
P1
P0
Kernel
Bios
Time
27/37
Evolution des SEs
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
28/44
Traitement par lots (Batch Processing)
Un utilisateur donne plusieurs commandes (« Jobs ») dans
une file d‘exécution de programmes
Entièrement séquentielle
Les programmes étaient écrits en Fortran ou en
assembleur sur des cartes perforées. Le mode de
fonctionnement utilisé, consiste à :
transférer les travaux sur une bande magnétique,
monter la bande sur le lecteur de bandes,
charger en mémoire un programme spécial qui lit puis
exécute, l’un à la suite de l’autre, les programmes de la bande
imprimer les résultats
29/44
Systèmes multitâches
Assurer l‘exécution de plusieurs programmes en
même temps (c-à-d. plusieurs processus)
Chaque processus a besoin du processeur
Situation concurrente
Solution « scheduling »
30/44
Systèmes multiutilisateurs
Permettre à différentes personnes de travailler avec un
ordinateur en même temps
Connexion
via le terminal de l'ordinateur lui-même
à distance (telnet, ssh, ftp, ...)
Donner l'impression à chaque utilisateur qu'il est seul
Exige une gestion des droits
de fichiers (pour éviter la destruction des fichiers etc.)
de processus
31/44
Systèmes multiprocesseurs
Système avec plusieurs processeurs
parallèle
vrai multi-tache
doit assurer qu'il y a l'éxecution d'autant de processus que
processeurs en même temps
Contrairement: système avec un seul processeur
quasi-parallèle
arrêter et reprendre les différents processus
Gestion avec le « scheduler » (ordonnancement des processus)
32/44
Systèmes Temps réel
Doit garantir des temps de réactions bornés pour des
signaux extérieurs urgents
Sert pour le pilotage et le contrôle des de certaines
applications critiques (p.ex. centrale électrique)
33/44
Systèmes Distribués
Doit permettre l‘exécution d'un seul programme sur
plusieurs machines
Distribuer les processus et les remettre ensemble
Pour gros calculs
34/44
Exemple : lecture sur le disque 1/3
CPU1 CPU2 CPU3
System bus
I/O bus
System bus
I/O bus
System bus
I/O bus
38/37