2. L’equipe
• Cours:
– Alexandru Radovici (ACS)
• TP:
– Iuliana Marin (FILS)
• Devoir:
– Răzvan Șerban (ACS)
– Ioana Culic (ACS)
• Ressources
– Răzvan Deaconescu, Mihai Carabaș et l’équipe USO et SO
de ACS
2
3. Les courses de systèmes
SdE 1
SdE 2
SO2 (a ACS)
Espace noyau
Espace utilisateur
API de SE
Utilisation de SE
3
4. Bibliographie
Andrew Tanenbaum, Modern Operating Systems,
2nd Edition
A. Silberschatz, P. Baer Galvin, G. Gagne, Operating
Systems Concepts, 9th Edition
Michael Kerrisk, The Linux Programming Interface,
Steve Summit, C Programming Notes, http://c-
faq.com/~scs/cclass/notes/
4
5. Ressources pour le cours SdE
• Site web: http://ocw.cs.pub.ro/courses/sde/
• GitHub issues: https://github.com/upb-
fils/sde/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
5
6. Contenu
Cours
• 14 courses
• diapositives
• bibliographie
– Très important de lire
TP
• 12 TP
• Linux
• Programmation en Python
• C’est important de
collabores avec votre
collègues
6
POSIX API Linux
7. Devoirs
Contenu
• Linux
• Allocation de mémoire
• Python-busybox
• Mini-shell
• Serveur web
Développent
• Linux ou Windows
Subsystem for Linux
• 8-20 heures pur une devoir
– Test des devoirs avec
vmchecker
• Questions sur Github Issues
Les devoirs sont individuelles
7
17. Exemples de SEusagegénéral
Windows
Mac OS
Linux
FreeBSD,
OpenBSD
Orbis OS
Dédiés
IOS
(Cisco)
JUNOS
(Juniper)
FortiOS
(Fortinet)
Mobile
iOS
Android
17
18. Windows
• Microsoft
• le plus utilisé pour les
systèmes de bureau
• La version plus récente:
Windows 10 (pour PC,
tablettes et mobiles)
• Windows Server 2012
R2 (pour serveurs)
18
19. macOS
• Apple
• Seulement pour les
systèmes Mac (Mac Pro,
Mac Mini, MacBook)
• Approximative 9-10%
pour Desktop
• La version plus récente:
macOS 10.14 “Mojave”
19
20. Linux
• Linus Torvalds et Greg
Kroah-Hartman (personnes
principales)
• open source
• distributions de Linux
• approximative 1-2% pour
Desktop
• Utilisé pour les serveurs
• Utilisé pour dispositifs
intégrée et mobiles
(Android et autres)
20
24. Qu'est-ce qu’un SE?
• un programme
• vue de haut en bas: extension de la machine
physique
• vue de bas en haut: gestionnaire des
ressources physiques
• écrit en C
• transparent pour l'utilisateur (il marche)
24
25. La structure de SE
• Noyau (kernel)
– gérer les ressources
physiques
– fournit une interface
standard pour les
applications
• Programmes de base
– fournit une interaction
utilisateur avec le noyau et
le matériel
– exemples: creation de
fichiers, access des donnes
sur la resaeu
25
26. Système d'ordinateur
• Système physique (matériel) + système
d’exploitation et applications
• Les programmes pour écrier et compiler des
programmes (toolchain)
• Interconnexion avec autres systèmes
• Ordinateurs personales, serveurs et systèmes
embarques IoT (Internet of Things)
26
28. Materiel
• Processeur (CPU)
– exécute le code (instructions)
• Mémoire du travail (RAM)
– mémorise les données et le code pour les programmes
• Bus des données
– fait la connexion entre le CPU, le RAM et les périphériques E/S
• Périphériques (entrée/sorties - E/S, input/output - I/O)
– communication avec l’extérieur: utilisateur, autres systèmes, etc.
• Espace de stockage (disque, flash, ROM, NVRAM)
– programmes (à partir de laquelle les processus seront faits)
– données pour les processus
– information pour les utilisateurs (fichiers)
28
34. Shell
• Interface entre l’utlisateur et le systeme
d’exploitation
• CLI ou GUI
• PowerShell / Bash vs. Windows Explorer /
GNOME / KDE
• un processus qui permet de démarrer d'autres
processus
– “shell spawns a process”
34
35. Les processus
• sont créés à partir d'un programme exécutable
• un programme en cours d'exécution
– l'idee de runtime
• données et code en mémoire, execute par le CPU
• a des ressources associées: espace d'adressage
mémoire, fichiers ouverts, sockets
• SE offre protection et communication entre les
processus
• certains systèmes offrent des hiérarchies de
processus
35
36. La mémoire d’un processus
https://en.wikipedia.org/wiki/Virtual_address_space
36
37. Memorie virtuelle
• un processus voir un espace mémoire virtuel (l'espace
mémoire n'existe pas réellement)
– Le processus pense que toute la mémoire lui
appartient
• La mémoire matérielle est différente de la mémoire de
processus
• Les processus utilisent des adresses de mémoire virtuelle
• La mémoire matérielle utilise des adresses de
mémoire physique
• Le SE associe la mémoire physique à la mémoire virtuelle
37
38. Fils d’execution
• un processus peut avoir plusieurs des fils
d’exécution
• les fils d’exécution partagent l'espace
d'adressage de la mémoire virtuelle
• autoriser un processus à effectuer plusieurs
tâches avec les mêmes données
• permet l'utilisation de matériel
multiprocesseur
38
39. Accès simultané et synchronisation
• les threads et les processus peuvent entrer en
concurrence pour accéder aux mêmes
ressources (données dans la mémoire)
• les accès simultanés peuvent entraîner une
corruption des données ou des blocages
• la synchronisation permet un accès
réglementé et conséquent aux ressources
39
40. Modes d'exécution
• Le processeur a deux modes d'exécution
• Mode superviseur
– Actions privilégiées
– C'est le mode utilisé par le SE pour s'exécuter
• Mode utilisateur
– L'accès direct au matériel n'est pas autorisé
– L'espace adresse mémoire ne peut pas être modifié
– C'est le mode utilisé pour les applications
• Le noyau este le intermédiaire pour:
– l'accès des processus au matériel
– l'accès des processus aux ressources
• Appel système
– la transition du mode utilisateur au mode noyau
40
43. Fichiers
• Unité de stockage (du point de vue du
programme)
• Ouvert et utilisé par les processus
• Fichier sur le disque (statique) et fichier ouvert
(dynamique, dans un processus)
– Fichier sur le disque: nom, dimension, droits,
horodatage
• Fichier ouvert: poignée de fichier, curseur de
fichier, droits d’ouverture, accès au fichier
43
45. La pile de systèmes informatiques
Noyau (kernel)
Programmes de base, bibliothèques de bas niveau
Les bibliothèques
Applications
Mode superviseur
Mode utilisateur
45
46. Noyau (kernel)
• Est le Systeme d’Exploitation
– Windows (WindowsNT) ntoskrnl.exe
– GNU/Linux et Android Linux Kernel
– Mac OS X et iOS: XNU
• chargé au démarrage, il lance le premier(s)
programme
• fournit des appels système
• gère les ressources matérielles
• sécurise l'intégrité du système
46
47. La structure de SE (monolithique)
OSCE, fig. 2.13, pg. 69 47
48. SE monolithique vs. SE micronoyau
https://en.wikipedia.org/wiki/Microkernel
48
49. SE monolithique vs. SE micronoyau
Monolitique
• Efficient
• Communication par appel
de fonction entre les
components
• Moins flexible
• Grand TCB (Trusted
Computing Base) - design
moins sécurisé
Micronoyau
• est plus lent
(communication entre
services)
• plus modulaire
• Réduite TCB (design plus
sécurise)
49
56. Ressources pour le cours SdE
• Site web: http://ocw.cs.pub.ro/courses/sde/
• GitHub issues: https://github.com/upb-
fils/sde/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
56
57. Mot clés
• SE
• Noyau (kernel)
• Mode superviseur
• Mode utilisateur
• CPU
• Mémoire
• Bus de données
• Processus
• Mémoire virtuelle
• Espace utilisateur
• Espace noyau
• Appel de système
• Noyau monolithique
• Micronoyau
• Programmes de base
• Interface Utilisateur
57