Académique Documents
Professionnel Documents
Culture Documents
Programmation
Concurrente
II-2-A
ENSI
Chiraz Houaidia
Chiraz.houaidia@ensi-uma.tn
II-2 : Systèmes d’Exploitation et Programmation Concurrente
Approche du cours:
Cours intégré (semestre 3) de 67,5 Heures (4H30/semaine)
Evaluation (ancienne!): 35% Contrôle Continu (CC) + 65% Examen
CC: 55%DS + 45% Note 2 (Participation + TPs)!
Ressources:
1. A. Silberschatz, & P. Glavin and G. Gagne. Operating Systems Concepts, 9th
edition, John Wiley & sons, inc. 2012 (ISBN-13: 978-1118063330).
2. A. Tanenbaum, & Herbert Bos, Modern Operating Systems, 4th edition, Pearson,
ISBN-13: 978-0133591620; (2014)
3. Introduction aux systèmes et aux réseaux (S. Krakowiak, Grenoble)
http://sardes.inrialpes.fr/~krakowia
4. Operating Systems and System Programming (B. Pfa, Stanford)
http://cs140.stanford.edu/
2/31
II-2 : Systèmes d’Exploitation et Programmation Concurrente
Objectifs
• Mieux comprendre les concepts et les mécanismes de base
d’un SE multitâches/multithreads
• Techniques et algorithmes de gestion des ressources
(processus, threads, mémoire centrale, …) …etc.
• Maîtriser les éléments de la programmation système
Focaliser sur Unix/Linux et le multithread devient nécessaire
• Fork, wait, exec, pipe, ….
• pthread_create, pthread_mutex, sem_wait, …
Prérequis
Pratique du langage C et shell Unix
3/31
Plan du cours
3) Ordonnancement (Scheduling)
• Notion de files d’attentes
• Politiques d’ordonnancement et comportement des
processus/threads
4/31
Plan du cours
6) Interblocage (deadlock)
• Notion d’interblocage
• Solutions à l’interblocage (détection/guérison, prévention,
évitement)
5/31
Vous avez dit «Système d’exploitation» ?
User
Application
Operating System
Debian Hardware
6/31
Quelques définitions
7/31
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 baseaux 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)
8/31
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
9/31
Interfaces d’un système d’exploitation
10/31
Appels système : exemples
12/31
et encore : le GUI tactile
13/31
Structure globale
14/31
Une Structure à niveaux
15/31
Positionnement de l’OS
Application 1 Application 2
O S Kernel
Hardware
16/31
Le noyau du système
17/31
Noyau monolythique
Un seul programme
lourd et difficile à débugger
Gâchis de mémoire (tout est chargé)
Possibilité de modularité (Linux), exemple : Linux
18/31
Micronoyau
19/31
Modes d’utilisation du système
20/31
Modes d’utilisation du système
21/31
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
22/31
Architecture d’une machine typique
System bus
main
memory I/O bridge
I/O bus
USB disk network
controller controller adapter
U S B bus
network
disk
mouse keyboard
23/31
Applications = CPU en «mode restreint»
Rappel : le cycle de Von Neumann
C PU
while True do :
Charger une instruction depuis la «mémoire»
Décoder ses bits : quelle opération, quelles
memory opérandes, etc
Exécuter l’opération et enregistrer le résultat
repeat
System bus
main
memory I/O bridge
I/O bus
USB disk network
controller controller adapter
U S B bus
network
disk
mouse keyboard
25/31
Exemple : lecture sur le disque 1/3
CPU1 CPU2 CPU3
System bus
main
memory I/O br idge
I/O bus
USB disk network
controller controller adapter
U S B bus
network
disk
mouse keyboard
System bus
main
memory I/O br idge
I/O bus
USB disk network
controller controller adapter
U S B bus
network
disk
mouse keyboard
System bus
main
memory I/O br idge
I/O bus
USB disk network
controller controller adapter
U S B bus
network
disk
mouse keyboard
28/31
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
charger dans P C
sauvegarder l’adresse de début
requête les registres
d’interruption de la routine
ISR: ...
...
...
...
... RETI
instruction
restauration ”retour
des registres d’interruption”
30/31
Mécanisme d’interruptions : vocabulaire
• IRQ = Interrupt Request
• un «message» envoyé par un périphérique vers le processeur de
façon asynchrone (vs polling, inefficace)
• chaque IRQ porte un numéro identifiant le périphérique d’origine
• ISR = Interrupt Service Routine
• un fragment de programme (= séquence d’instructions) exécuté à
chaque occurence de l’évènement matériel associé
• se termine toujours par une instruction RETI «retour d’interruption»
• pendant une ISR, il peut y avoir de nouvelles IRQ
temporairement mises en attente (permet au programmeur
d’être «seul au monde»)
• Table des Vecteurs d’Interruptions
• tableau de pointeurs indiquant l’adresse de chaque ISR
• le CPU utilise le numéro d’IRQ pour savoir où sauterDion : D