Vous êtes sur la page 1sur 38

Systèmes d’exploitation

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

 Comprendre les principes de base d’un système


d’exploitation (dans les familles Unix) et savoir utiliser les
interfaces de Linux (commandes Shell les plus utiles,
programmation scripts, graphiques)

 Appréhender les fondements de base des systèmes de


gestion de fichiers.

 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)

 Besoin de comprendre l’interaction entre logiciel et matériel

 Tout utilisateur est concerné  Meilleure maîtrise

 Tout programme est concerné  Améliorer l'efficacité

 Challenges
 Programmation multithread (multicore)/Programmation Parallèle

 Consommation de ressources (batterie, …)

 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 !

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
User
Hardware
• logiciel d’infrastructure : «noyau», «pilotes»,
«services», etc
• «entre le matériel et les applications»

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

Notion d'interface (service)


L'interface est l'ensemble des fonctions accessibles aux utilisateurs du service
Chaque fonction est définie par son format (syntaxe), sa spécification (sémantique).
Ces descriptions doivent être précises, complètes (y compris les cas d'erreur), non
ambiguës.
Une interface permet l’accès à un service tel que
Exécution de programmes
charger un programme en mémoire, le lancer, l’arrêter
choisir quel programme est au premier-plan
Exploration et administration des espaces de stockage
naviguer dans les fichiers, copier, supprimer
confort et ergonomie
presse-papiers, drag-and-drop, corbeille

10/37
Interfaces d’un système d’exploitation

Au moins deux interfaces d’un SE:


Appels systèmes (Systemcall): Interface programmable,
Fonctions fournies par le SE aux applications utilisateurs

Généralement accédée par des API (Application Programming Interface) afin de


comprendre les réponses des appels systèmes.
Les 3 plus courantes : Win32 API, POSIX API et JAVA API

Exp. en C: read (FD, &buffer, nbytes)

Interface de commandes (textuelle–CLI ou graphique —GUI)


CLI: rm *.ps

GUI: déplacer l’icône du fichier vers la corbeille

11/37
Appels système : exemples

source : Silberschatz. Operating Systems Concepts Essentials (2011). p 59


12/37
Structure globale

13/37
Une Structure à niveaux

14/37
Positionnement de l’OS

Application 1 Application 2

OS Kernel

Hardware

Définition : Noyau ou kernel


Le noyau c’est la partie de l’OS qui n’est pas une application

15/37
Noyau monolythique

Un seul programme («Tout en un» seul morceau)


+ Plus facile à écrire
- Moins élégant
▪ Lourd et difficile à débugger
▪ Gâchis de mémoire (tout est chargé)

16/37
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, L4, …etc.

17/37
Modes d’utilisation du système

Deux modes d'exécution :


Le mode superviseur (noyau, maître, …), mode privilégié qui
autorise notamment l’appel à des instructions interdites en
mode utilisateur (manipulation des interruptions).

Ce mode assure la protection du système d’exploitation assisté


par le matériel

18/37
Modes d’utilisation du système

Le passage du mode utilisateur vers le mode superviseur est soit


provoqué par un appel système, soit par une exception (déroutement
en cas d'opération illicite), soit par l’arrivée d’une interruption
Une interruption est provoquée par un signal provenant du monde extérieur au
processeur, et modifiant le comportement de celui-ci.

Le passage entre les modes utilisateur/noyau s’accompagne de


commutations de contexte
sauvegarde du contexte utilisateur

changement de mode d'exécution

restauration du contexte utilisateur).

19/37
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

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

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
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

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
24/37
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
25/37
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

Intr: interruption
Time
26/37 Reti: Return Interrup
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
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

main I/O idge


memory br

I/O bus

USB disk networ


controlle controlle k
USB bus r
r adapte
r
networ
disk k
mouse keyboard

Pour demander une opération au disque :


le CPU écrit commande + no de bloc + addr. mem destination
à l’addresse mémoire associée au contrôleur du disque
35/37
Exemple : lecture sur le disque 2/3
CPU1 CPU2 CPU3

System bus

main I/O idge


memory br

I/O bus

USB disk networ


controlle controlle k
USB bus r
r adapte
r
networ
disk k
mouse keyboard

Le contrôleur de disque lit le secteur demandé et transfère les


données directement en mémoire vive à l’adresse voulue :
c’est un transfert DMA(Direct Memory Access)
36/37
Exemple : lecture sur le disque 3/3 IRQ

CPU1 CPU2 CPU3

System bus

main I/O idge


memory br

I/O bus

USB disk networ


controlle controlle k
USB bus r
r adapte
r
networ
disk k
mouse keyboard

À la fin du transfert DMA, le contrôleur du périphérique notifie le


CPU en lui envoyant une Requête d’Interruption(IRQ)
37/37
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
Note : à la fin de la routine de traitement, une instruction RETI repassera le CPU en mode
restreint.

38/37

Vous aimerez peut-être aussi