Post on 02-Feb-2023
De quoi parle-t-on• Ordinateur : Machine permettant de stocker des informations et
d’effectuer des calculs (beaucoup plus rapide que l’humain)• Cet ordinateur regroupe un certain nombre de composants que
nous appellerons matériel (hardware)• Les logiciels sont des séquences d’instructions que l’on appelle
souvent programmes. Un programme est l’implantation d’unensemble de méthodes de résolution de problèmes dans unlangage compris par l’ordinateur
• La méthode de résolution est ce que l’on appelle l’algorithme• Le système d’exploitation d’un ordinateur est un programme
servant d’interface entre le matériel et les utilisateurs. Son but est derendre le maniement de l’ordinateur facile et de proposer uneutilisation efficace de celui-ci
2
Objectifs essentiels• On peut faire une décomposition de l’ordinateur selon les 4 grandes
classes suivantes : • Les utilisateurs (et leurs programmes), • Les programmes d’application• Le système d’exploitation,• Le matériel
Système d’exploitation
Interface utilisateurProgrammes
Ordinateur / Matériel
Utilisateurs
Pilotes (Drivers)
3
Objectifs essentiels• Le système d’exploitation (ou OS, pour « Operating System ») est
chargé d’assurer la liaison entre :– Les ressources matérielles via les pilotes (« drivers »); c’est une application qui
sert d’interface entre l’SE et le matériel (carte réseau, etc.) ; sans pilote, chaqueapplication devrait apprendre à parler à tous les matériels
– L’utilisateur– Les applications
• Le SE permet ainsi à l’utilisateur de s’affranchir de la complexité dumatériel en communiquant à travers une interface homme machine(IHM, GUI en anglais) Les buts sont donc :
– masquer le matériel– rendre la machine plus « friendly »– Fournir des méthodes standards d’accès aux ressources mémoires/calculs– Permette un usage efficace des ressources indépendamment du programme à
exécuter– Permettre un usage honnête aux utilisateurs honnêtes (protection
fichiers/programmes, comptes utilisateurs, etc.)4
Système d’exploitation• Le système d'exploitation (SE, en anglaisOperating System ou OS) est un ensemble deprogrammes responsables de la liaison entre lesressources matérielles d'un ordinateur et lesapplications de l'utilisateur (traitement de texte,jeu vidéo, …)
• Il fournit aux programmes applicatifs des pointsd'entrée génériques pour les périphériques
5
Qu’est ce qu’un processus? • Que se passe-t-il lorsqu’un utilisateur souhaite lancer un programme
sur sa machine?– Le programme est initialement stocké sur un support de
stockage permanent (ex disque dur)– Une fois lancé, le SE assure de faire une copie de ce
programme dans la mémoire centrale.– Le SE alloue toutes les ressources nécessaires pour assurer
l’exécution ce programme– Ce programme qui est maintenant un en cours d’exécution
devient alors un Processus.– L’exécution d’un programme peut générer plus qu’un processus– Le SE assure entre autres la gestion (ordonnancement,
synchronisation, …) des ces processus.
7
Rôles du SELe maître d’orchestre: essentiel pour utiliser les
ressources de la machine– gestion de la mémoire centrale– gestion des processeurs: temps de calcul entre
plusieurs programmes qui s’exécutent simultanément– gestion des périphériques: E/S– gestion des fichiers: sur les mémoires de masses– gestion des ressources: attribution des ressources
nécessaires– exécution du programme sans empiétement– gestion des utilisateurs: pas d’interférence entre eux
8
Composition
Un système d'exploitation est typiquementcomposé de :– un noyau– bibliothèques dynamiques (libraries)– un ensemble d'outils système (utilitaires –shell)
– programmes applicatifs de base
9
Noyau (kernel)Le noyau assure ces fonctionnalités :
– gestion des périphériques (au moyen de pilotes)– gestion des files d'exécution (aussi nommée
processus) :• attribution de la mémoire à chaque processus• ordonnancement des processus (répartition du temps
d'exécution sur le ou les processeurs)• synchronisation et communication entre processus (services
de synchronisation, d'échange de messages, mise encommun de segments de mémoire, etc.)
– gestion des fichiers (au moyen de systèmes defichiers)
– gestion des protocoles réseau (TCP/IP, IPX, etc.)
13
Noyau• Au lancement:
– Boot: le programme qui initialise l’ordinateur– Permet aux premiers services d’accéder aux
applications système : gestion de la mémoire, accèsaux disques durs et accès aux périphériques
• Mémoire centrale (vive): répartition– Réservée pour le système– Réservée pour les applications
• Assure une indépendance entre les applicationset les matériels
14
Les bibliothèques dynamiques • = Libraries• Regroupent les opérations souvent utilisées,
selon les fonctionnalités (E/S, fichier, …)• Ces opérations sont disponibles pour être
appelées et exécutées par d’autres programmes
15
Le système de fichiers • Un système de fichiers est une structure de données
permettant de stocker les informations et de lesorganiser dans des fichiers sur des mémoiressecondaires (disque dur, disquette, CD-ROM, clé USB,etc.)– E.g. une structure hiérarchique– /u/nie/HTML/IFT6800/introduction.txt
• Ce stockage de l'information est persistant• Une telle gestion des fichiers permet de traiter, de
conserver des quantités importantes de données ainsique de les partager entre plusieurs programmesinformatiques
• Il offre à l'utilisateur une vue abstraite sur ses données etpermet de les localiser à partir d'un chemin d'accès
16
Interface homme-machine
• Via ligne de commande– shell, MSDos
• Interface graphique– Xterm, Linux, Windows, Macintosh– GUI (Graphical User Interface)
17
Shell• Shell (coquille par opposition au noyau) = L'interpréteurde commandes permettant la communication avec leSE par l'intermédiaire d'un langage de commandes
• Permet à l'utilisateur de piloter les périphériques enignorant tout des caractéristiques du matériel qu'il utilise,de la gestion des adresses physiques, etc.
• E.g. sur Unix/Linux: csh, tcsh, …– ls : lister les répertoires et les fichiers du répertoire courant– mv x y : changer le nom du fichier/répertoire « x » en « y »
18
Aspect d’un SE• Illusionniste : machine virtuelle
• Gestionnaire par politique de gestion des ressources
• Impérialiste : le plus général possible et on doit quasiment toujourspasser par lui
• Protectionniste : utilisateurs entre-eux, utilisateurs extérieurs(pirates), systèmes des utilisateurs
• Contradictoire : général, simple et efficace = compromis à faire
19
Exemple• Un système informatique complexe peut être composé d’une
multitude de périphériques.
• Imaginez ce qui se passerait si trois programmes s’exécutant sur lamême machine tentaient d’imprimer leur résultat simultanément:
• Aurait-on une ligne provenant de chacun des programmes ? uncaractère ? On voit ici que le rôle du système d’exploitation dans larépartition des périphériques aux différents utilisateurs est essentiel
• C’est donc le SE qui stocke les données allant vers l’imprimante etqui s’occupe de gérer une file d’attente.
20
Multi-utilisateurs et multi-tâches• Multi-utilisateurs
– plusieurs utilisateurs utilisent le même ordinateur enmême temps
• Multi-tâches– un utilisateur lance plusieurs applications
• Gestion de temps et de ressources– Processus: exécuter, suspendre, détruire
21
Système multi-tâches● La plupart des systèmes d'exploitation modernes permettentl'exécution de plusieurs tâches à la fois
– un ordinateur peut, pendant qu'il exécute le programme d'un utilisateur, lire lesdonnées d'un disque ou afficher des résultats sur un terminal ou une imprimante.
à On parle de système d'exploitation multi-tâches ou multi-programmédans ce cas.
● La notion fondamentale des systèmes d'exploitation multi-tâches estcelle de processus.
● Un processus est une instance de programme en train de s'exécuter.– Un processus est représenté par un programme (le code),– mais également par ses données et par les paramètres indiquant où il en est, lui
permettant ainsi de continuer s'il est interrompu (pile d'exécution, compteurordinal...).
à On parle de l'environnement du programme.
22
Système multi-tâches● La plupart des systèmes d'exploitation multi-tâches sont implémentés
sur un ordinateur ayant un seul microprocesseur.
● Celui-ci, à un instant donné, n'exécute réellement qu'un seulprocessus, mais le système peut le faire passer d'un programme àun autre
● Ceci donne aux utilisateurs l'impression que tous les programmessont exécutés en même temps.
23
Système multi-utilisateur● Comme pour les systèmes multi-tâches, la multi-
utilisation est émulée en attribuant des laps de temps àchaque utilisateur.
● Naturellement, le fait de basculer d'une application àl'autre ralentit chacune d'entre elles et affecte le tempsde réponse perçu par les utilisateurs.
24
Structure externe d’un SE● Le système d'exploitation comporte un certain nombre de routines
(sous-programmes). Les plus importantes constituent le noyau(kernel).
● Le noyau (le vrai chef d’orchestre) gère les ressources de l’ordinateuret permet aux différents composants, matériels et logiciels, decommuniquer entre eux.
● Le noyau d'un système d'exploitation se compose de quatre partiesprincipales :
1. le gestionnaire de tâches (ou des processus)/ordonnanceur,(ch2/ch3)
2. le gestionnaire de mémoire, (ch4)3. le gestionnaire de fichiers (ch5)
- droit d’accés- sauvegarde- classement (répertoires, fichiers, recherches logiques)
4. le gestionnaire de périphériques d'entrée-sortie. 25
Gestion de temps et de ressources• Un processus est un programme en cours d’exécution. C’est-à-dire,
un programme à l’état actif. Un processus regroupe– un programme exécutable– sa zone de données– son compteur ordinal (où est-ce que l’on en ai dans la suite d’instruction du
programme ?)– ainsi que toutes autres informations nécessaire à l’exécution du programme
(pile d’exécution, fichiers ouverts, etc.)
• Un seul processus est exécuté à la fois sur un processeur (donc si2 processeurs, 2 processus en même temps…).
• Comme le processeur commute entre les différents processus, on aune impression de parallélisme. Le compteur ordinal permet degarder en mémoire la prochaine instruction à exécuter.
• 2 processus peuvent être associés au même programme
26
Gestion de temps et de ressources• Chaque processus peut se trouver dans un des états suivants :
– Nouveau ; le processus est en cours de création– Élu ; le processus est en cours d’exécution sur le processeur– Éligible (ou prêt) ; le processus attend d’être sélectionné– En attente (ou bloqué) ; le processus attend qu’un évènement extérieur se
produise– Terminé ; le processus a fini son exécution
27
Évolution des SE• 1980s
– Unix (sur des machines plus grosses)– CP/M– MSDOS– Mac OS
• 1990s et 2000s– Interface graphique– Windows– Mac OS X– Linux avec GUI– Compatibilité
28
Historique de Unix
Le premier clone d'UNIX fonctionnant sur PC a été Minix, écrit par Andrew Tanenbaum, un système d'exploitation minimal pouvant être utilisé sur PC
29
Historique de Linux• LinusB.Torvalds est àl'origine de ce système d'exploitation
entièrement libre• Au début des années 90, il voulait mettre au point son propre
système d'exploitation pour son projet de fin d'étude
• Linus Torvalds décida donc d'étendre les possibilités de Minix, encréant ce qui allait devenir Linux
• Amusées par cette initiative, de nombreuses personnes ontcontribué à aider LinusTorvalds à réaliser ce système, si bienqu'en1991 une première version du système a vu le jour
30
Historique de Linux• En mars 1992, la première version a été diffusée ne comportant
quasiment aucun bug• Avec le nombre croissant de développeurs travaillant sur ce
système, celui-ci a rapidement pu intégrer des redéveloppementslibres des outils présents sous les systèmes UNIX commerciaux
• De nouveaux outils pour Linux apparaissent désormais à unevitessevertigineuse
• L'originalité de ce système réside dans le fait que Linux n'a pas étédéveloppé dans un but commercial
• Aucune ligne de code n'a été copiée des systèmes UNIX originaux(Linux s'inspire de nombreuses versions d'UNIX commerciales:UNIX, System V.)
• Tout le monde, depuis sa création, est libre de l'utiliser mais ausside l'améliorer.
31