Système d'Exploitation:

32
Système d’Exploitation: L1 – Business Computing Dr. Mouna Chebbah Dr. Haïfa Nakouri 1

Transcript of Système d'Exploitation:

Système d’Exploitation:

L1 – Business Computing

Dr. Mouna ChebbahDr. Haïfa Nakouri

1

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

Exemples

6

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

Composition

Noyau

ProgrammesSystèmes (Shell)

Application

SE

10

Composition

11

Composition

12

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

Comparaison des SE

Système Codage Mono-/multi-utilisateur

Mono-/multi-tâche

DOS 16 mono mono

Windows 3.1 16/32 mono non préemptif

Windows 95 32 mono coopératif

Win. NT/2000 32 multi préemptif

Windows XP 32/64 multi préemptif

Unix/Linux 32/64 multi préemptif

Mac OS X 32 multi préemptif32