Systèmes d'exploitation INF3600 & INF2610

35
1 Systèmes d’exploitation Génie Informatique École Polytechnique de Montréal Chapitre 1. 1 Systèmes d’exploitation INF3600 & INF2610 Systèmes d’exploitation Génie Informatique École Polytechnique de Montréal Chapitre 1. 2 Objectifs du cours Ce cours vise à familiariser l’étudiant avec les concepts et les techniques fondamentales des systèmes d'exploitation. Il porte, notamment, sur l’étude des : différents modules du noyau du système d’exploitation (gestionnaires de processus, de fichiers, de la mémoire, de processeurs, des E/S…), interactions entre ces modules, problèmes liés à leurs implémentations, ainsi que les différentes solutions adoptées dans les systèmes modernes (UNIX, Linux, Windows). Au terme de ce cours, l'étudiant sera en mesure de : expliquer et analyser les différents modules du système d’exploitation (leurs fonctionnements et mises en œuvre), utiliser et/ou adapter les techniques et les services du système d’exploitation pour concevoir des codes plus fiables et plus performants.

Transcript of Systèmes d'exploitation INF3600 & INF2610

Page 1: Systèmes d'exploitation INF3600 & INF2610

1

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 1

Systèmes d’exploitationINF3600 & INF2610

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 2

Objectifs du cours

• Ce cours vise à familiariser l’étudiant avec les concepts et les techniques fondamentales des systèmes d'exploitation. Il porte, notamment, sur l’étude des :– différents modules du noyau du système d’exploitation (gestionnaires

de processus, de fichiers, de la mémoire, de processeurs, des E/S…), – interactions entre ces modules, – problèmes liés à leurs implémentations,– ainsi que les différentes solutions adoptées dans les systèmes

modernes (UNIX, Linux, Windows).

• Au terme de ce cours, l'étudiant sera en mesure de :– expliquer et analyser les différents modules du système d’exploitation

(leurs fonctionnements et mises en œuvre),– utiliser et/ou adapter les techniques et les services du système

d’exploitation pour concevoir des codes plus fiables et plus performants.

Page 2: Systèmes d'exploitation INF3600 & INF2610

2

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 3

Objectifs des laboratoires

• Les séances de laboratoire permettent de :

– Se familiariser avec les services fournis par le système d’exploitation UNIX/LINUX (et Vxworks pour INF2610). L‘étudiant aura à implémenter, au moyen de ces différents services, des applications plus élaborées ou des techniques de gestion implantées dans certains systèmes d’exploitation.

– Tester et comparer plusieurs techniques d’ordonnancement de processus et de gestion de la mémoire. Trois simulateurs ont étéréalisés dans ce but.

• Sites web :

www.cours.polymtl.ca/inf3600www.cours.polymtl.ca/inf2610

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 4

Cours théorique : plan détaillé INF3600

Systèmes de fichiers12

Gestion de la mémoire et mémoire virtuelle10 et 11

Ordonnancement de processus9

Séance d’exercices8

Moniteurs et Interblocage7

Synchronisation de processus6

Communication interprocessus 4 et 5

Threads 3

Processus Processus UNIX, Linux et Windows2

Concepts généraux1

MatièreSéances

Page 3: Systèmes d'exploitation INF3600 & INF2610

3

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 5

Cours théorique : plan détaillé INF2610

Gestion de la mémoire et mémoire virtuelle12

Systèmes temps-réel et ordonnancement temps-réel10 et 11

Ordonnancement de processus9

Séance d’exercices8

Moniteurs et Interblocage7

Synchronisation de processus6

Communication interprocessus 4 et 5

Threads 3

Processus Processus UNIX, Linux et Windows2

Concepts généraux1

MatièreSéances

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 6

Laboratoires

• Les TPs seront complétés sur les stations de travail Linux (obligatoirement en équipe de 2 étudiants d'une même section). Aucune équipe de 3 ne sera acceptée, et si possible aucun étudiant seul non plus.

• Les TPs pourront être programmés en C ou en C++.

• À remettre pour chaque TP, un exécutable et un rapport. Le rapport doit contenir une introduction, le code source, les résultats obtenus, les réponses aux questions et une courte conclusion qui commente les résultats. S'il y a lieu, d'autres items spécifiés dans l'énoncé du TP doivent être inclus dans le rapport.

• Un objectif supplémentaire lors des TPs est la débrouillardise et l'apprentissage par recherche de documentation sur Internet et dans les « man » pages de Linux.

• Les directives générales concernant tous les travaux sont disponibles sur le site du cours. D’autres seront précisées dans les énoncés des travaux.

Page 4: Systèmes d'exploitation INF3600 & INF2610

4

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 7

Laboratoires INF3600

• 2 travaux dirigés et 2 travaux pratiques sont au programme.

Contenu

TD1 : ordonnancement et gestion de la mémoire6

TP2 : synchronisation, ordonnancement et interblocage4 et 5

TP1 : processus, threads, communication interprocessus2 et 3

TD0 : shells UNIX et création de processus1

Séances

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 8

Modalités d’évaluation Pondération INF3600

TP1 12%TP2 12%

2Travaux pratiques

40%1Examen final

30%1Contrôle périodique

TD0 0% TD1 6 %

2Travaux dirigés

PondérationNombreÉpreuve

Page 5: Systèmes d'exploitation INF3600 & INF2610

5

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 9

Laboratoires INF2610

• 1 travail dirigé et 3 travaux pratiques sont au programme.

Contenu

TP3 : ordonnancement temps-réel6 et 7

TP2 : synchronisation et interblocage4 et 5

TP1 : processus, threads, communication interprocessus2 et 3

TD0 : shells UNIX et création de processus1

Séances

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 10

Modalités d’évaluation Pondération INF2610

TP1 10%TP2 10%TP3 10%

2Travaux pratiques

40%1Examen final

30%1Contrôle périodique

TD0 0% 1Travaux dirigés

PondérationNombreÉpreuve

Page 6: Systèmes d'exploitation INF3600 & INF2610

6

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 11

Informations sur les examens

• Les énoncés du contrôle périodique et de l’examen final sont communs àtoutes les sections.

• Les notes du cours sont autorisées.

• Les calculatrices programmables, ordinateurs et cellulaires ne sont pas permis.

Autres précisions

• En cas de reprise de ce cours, l’étudiant doit se soumettre de nouveau àtoutes les épreuves d'évaluation.

• En cas d’absence justifiée au contrôle périodique, la note du final remplacera la note du contrôle périodique.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 12

Références

1. Modern operating Systems, 2nd edition, Andrew S. Tanenbaum, publié par Pearson Education, Prentice-Hall, 2001

2. Systèmes d’exploitation, 2nd edition, Andrew S. Tanenbaum, publié par Pearson Education, Prentice-Hall, 2003 (Traduction).

3. Operating System Concepts de A. Silberschatz, P.B. Galvin & G. Gagne, publié par John-Wiley, 2001.

4. Principes appliqués des systèmes d’exploitation avec Java, A. Silberschatz, P. B. Galvin& G. Gagne, publié par Vuibert, 2001 (Traduction).

5. Operating Systems, Internals and Design Principles de William Stallings, publié par Prentice-Hall, 2001.

6. Operating systems, A Modern Perspective, Gary Nutt, publié par Addison-Wesley, 2000.

7. Au coeur de Windows, Windows Server 2003, Windows XP et Windows 2000, de Mark E. Russinovich & David Solomon, Microsoft Press, 2005.

8. Unix : communication interprocessus, sockets, Viviane Gal, Notes de cours CNAM –CEDRIC 2004.

9. Systèmes temps-réel, Isabelle Puaut, Notes de cours IRISA 2006, www.irisa.fr/caps/people/puaut/puaut.html.

Page 7: Systèmes d'exploitation INF3600 & INF2610

7

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 13

Remerciements

• Nous tenons à remercier Hind Rakkay, étudiante en PhD à l’École Polytechnique de Montréal et Bechara Moufarrej, étudiant en Maîtrise àl’École Polytechnique de Montréal, pour leur contribution à l’enrichissement de ce document, dans le cadre d’un projet subventionné par le Fond de Soutien à l’Enseignement (concours FSE Hiver 2006).

• Nous remercions également les nombreux étudiants, chargés de laboratoire, chargés de cours et professeurs qui, par leurs remarques et critiques, ont aussi contribué à la mise à jour de ce document.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 14

Concepts généraux

• Qu’est ce qu’un système d’exploitation ?

• Interface avec le matériel

• Interactions utilisateur/système

• Trois concepts de base : processus, fichier et mémoire virtuelle

• Appels système

• Evolution du mode d’exploitation

• Lancement du système d’exploitation

Page 8: Systèmes d'exploitation INF3600 & INF2610

8

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 15

Qu’est ce qu’un système d’exploitation ?

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 16

Qu’est ce qu’un système d’exploitation ?

• Malgré les différences des points de vue forme, taille et type, les ordinateurs se composent de matériel et de logiciels.

Matériel :

Bus

Monitor

Page 9: Systèmes d'exploitation INF3600 & INF2610

9

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 17

Qu’est ce qu’un système d’exploitation ? (2)

• Les logiciels :– les programmes système :

• les utilitaires (compilateurs, éditeurs, interpréteurs de commandes) ;• le système d’exploitation

– les programmes d’application.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 18

Qu’est ce qu’un système d’exploitation ? (3)

Le système d’exploitation :

• gère et contrôle les composants de l’ordinateur et

• fournit une base (machine virtuelle) sur laquelle seront construits les programmes d’application et les utilitaires :

services = {appels système}

But :

Développer des applications sans se soucier des détails de fonctionnement et de gestion du matériel.

Page 10: Systèmes d'exploitation INF3600 & INF2610

10

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 19

Qu’est ce qu’un système d’exploitation ? (4)Fonctions principales

• Gestion des périphériques

• Gestion de la mémoire

• Gestion du processeur

• Gestion des processus et des threads

• Gestion des fichiers

• Protection et détection d’erreurs

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 20

Qu’est ce qu’un système d’exploitation ? (5)Trois concepts de base

• Processus : un programme en cours d’exécution, composé de :– code + données + pile d’exécution ;– un compteur ordinal, autres

informations caractérisant son état.

• Fichiers : ensemble de blocs de données stockés sur le disque

• Mémoires virtuelles : espaces d’adressage virtuels des processus (créés par les compilateurs) de taille pouvant excéder celle de la mémoire physique.

� {Machines virtuelles qui tournent sur le même matériel}

� Partage de ressources.

Page 11: Systèmes d'exploitation INF3600 & INF2610

11

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 21

Interface avec le matériel• Chaque composant (processeurs, mémoires et périphériques) de l’ordinateur a

son propre code (câblé ou logiciel) qui assure son fonctionnement et les interactions avec les autres.

• Le système d’exploitation gère et coordonne l’ensemble de ces composants au moyen, notamment, de signaux � interruptions.

• Les interruptions permettent au système d’exploitation de reprendre le contrôle :

– Interruptions matérielles :• Horloges (pour gérer l’allocation des processeurs)• Périphériques (pour signaler la fin d’E/S)

– Interruptions logicielles :• Erreurs arithmétiques (division par zéro)• Données non disponibles en mémoire (défaut de page)• Appels système (invocation du système d’exploitation).

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 22

Interactions utilisateur/système

• Pour un utilisateur, le système d’exploitation apparaît comme un ensemble de procédures complexes visant à abstraire les détails de fonctionnement et de gestion du matériel.

Bibliothèque des appels système = {procédures}

• Les appels système peuvent être invoqués via un interpréteur de commandes, une interface graphique ou utilitaires.

• L’interpréteur de commandes (Interface utilisateur/système) : – est lancé dès la connexion au système ;– invite l’utilisateur à introduire une commande ;– récupère puis exécute la commande par combinaison d’appels

système et d’outils (compilateurs, éditeurs de lien,…). – affiche les résultats ou les erreurs puis se met en attente de la

commande suivante.

Page 12: Systèmes d'exploitation INF3600 & INF2610

12

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 23

Interactions utilisateur/système (2)Cas d’UNIX

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 24

Interactions utilisateur/système (3)Shells d’UNIX

• Les interpréteurs de commandes d’UNIX (shells) permettent une composition séquentielle ou parallèle de commandes avec redirection des entrées/sorties des commandes.

cat src1 src2 > fich; sort fich > dest

cat src1 src2 | sort >dest

en parallèle

cat sort dest

src1

src2

cat sort dest

src1

src2

fich fich

Page 13: Systèmes d'exploitation INF3600 & INF2610

13

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 25

Interactions utilisateur/système (4)Shells d’UNIX

• Les interpréteurs de commandes UNIX (shells) offrent des structures de contrôle semblables à celles des langages de programmation classiques.

• Les programmes shell sont appelés script shell.

jupiter% cat script1set l̀s ̀for i in $*do

if [ -d $i ]then echo "$i est un répertoire"fi else

if [ $i = "fich" ] then echo "fich trouvé. Affichage ? (o ou n) "

read rep case $rep in

o | O ) cat $i ;; n | N ) echo "pas de visualisation de fich" ;; * ) echo "réponse incorrecte"

esacfi

done

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 26

Interactions utilisateur/système (5)Appel système à partir d’un programme

• Le programme C suivant utilise les appels système open, write et read ://Ce progamme crée un fichier dans lequel, il copie les données lues à partir du clavier.

#include <unistd.h> // pour open, write et read#include <fcntl.h>#define taille 80int main ( ){ int fd , nbcar;

char buf[taille] ;fd = open( "fich", O_CREAT| O_WRONLY) ; // créer un fichierif(fd==-1) { write(2, "Erreur d’ouverture \n″″″″, 25) ;

return –1 ;}

write(1, ″Ouverture avec succès \n″ , 30) ;// copier les données introduites à partir du clavier dans le fichierwhile ((nbcar = read(0, buf, taille)) > 0)

if( write(fd, buf, nbcar) == -1) return –1 ;

return 0 ;}

Page 14: Systèmes d'exploitation INF3600 & INF2610

14

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 27

Que se passe-t-il lors d’un appel système ?

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 28

Appels système

• En général, les processeurs ont deux modes de fonctionnement :– le mode superviseur (noyau, privilégié ou maître) : pour le système

d’exploitation, où toutes les instructions sont autorisées.– le mode utilisateur (esclave) : pour les programmes des utilisateurs et les

utilitaires, où certaines instructions ne sont pas permises.

• Les processeurs sont dotés d’un bit de mode.

• Ces modes de fonctionnement assurent la protection du système d’exploitation contre les intrusions et les erreurs.

• Ce n’était pas le cas des systèmes mono-utilisateur (MS-DOS, MacOS) qui avaient un seul mode de fonctionnement (utilisateur).

Page 15: Systèmes d'exploitation INF3600 & INF2610

15

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 29

Appels système (2)

• Un appel système consiste en une interruption logicielle (instruction TRAP) qui a pour rôle d’activer le système d’exploitation : – changer le mode d’exécution pour passer du mode utilisateur au

mode maître ;– récupérer les paramètres et vérifier la validité de l’appel ; – lancer l’exécution de la fonction demandée ;– récupérer la (les) valeur(s) de retour ;– retourner au programme appelant avec retour au mode utilisateur.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 30

Appels système (3) Exemple

read(fd,buffer,nbytes);

Page 16: Systèmes d'exploitation INF3600 & INF2610

16

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 31

Appels système (4)

• Quelques appels système d’UNIX et Windows (Win 32 API).

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 32

Appels système (5)Gestion de processus

• Les appels systèmes permettent notamment :

– la création,

– la communication interprocessus,

– la synchronisation et

– l’arrêt des processus.

Page 17: Systèmes d'exploitation INF3600 & INF2610

17

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 33

Appels système (6)Création et terminaison de processus

• Un processus peut créer un ou plusieurs processus fils qui, à leur tour, peuvent créer des processus fils (structure arborescente).

• Un processus peut être partitionné en plusieurs threads (processus légers) concurrents partageant un même environnement d’exécution. Les threads sont un moyen de raffiner et de diviser le travail normalement associé à un processus.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 34

Appels système (7)Communication interprocessus

- Segments de données partagés;- Fichiers;- Signaux;- Messages -> Tubes de communication (pipe)

Page 18: Systèmes d'exploitation INF3600 & INF2610

18

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 35

Appels système (8)Synchronisation de processus

Processus A Processus B

Éviter l’accès simultané lecture/écriture ou écriture/écriture à une même donnée.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 36

Appels système (9)Problème d’interblocage

Attention : Partage de ressources � interblocage

Page 19: Systèmes d'exploitation INF3600 & INF2610

19

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 37

Appels système (10)Gestion de fichiers

• Un fichier est un ensemble de blocs sur le disque.

Nom du fichier Blocs

... ...

...Fichier B

...1, 8, 3, 14, 28

Fichier A 7

0 1 2 3 4

5 6 7 8 9

10 11 12 13 14

15 16 17 18 19

20 21 22 23 24

25 26 27 28 29

30 31 32 33 34

Fichier B

FichierA

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 38

Appels système (11)Système de fichier

• Un système de fichiers est la partie du système d’exploitation qui se charge de gérer le stockage et la manipulation de fichiers sur une unité de stockage

(disque, CD, disquette, partition,…).

Page 20: Systèmes d'exploitation INF3600 & INF2610

20

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 39

Appels système (12) Création et manipulation de fichiers

• Les appels systèmes permettent de créer des fichiers, de les supprimer, de les ouvrir, de les lire, de les modifier et de récupérer leurs attributs…

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 40

Appels système (13) Répertoires

• Les fichiers sont regroupés dans des répertoires. Un répertoire peut contenir soit des fichiers, soit d’autres répertoires (structure arborescente).

• L’accès au fichier se fait en spécifiant le chemin d’accès (la liste des répertoires à traverser pour accéder au fichier).

• Un chemin d’accès est absolu si le point de départ est le répertoire racine.

• Un chemin d’accès est relatif si le point de départ est le répertoire courant.

Page 21: Systèmes d'exploitation INF3600 & INF2610

21

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 41

Appels système (14)Répertoires

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 42

Appels système (15)Création et manipulation de répertoires

Page 22: Systèmes d'exploitation INF3600 & INF2610

22

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 43

Évolution du mode d’exploitation

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 44

Evolution du mode d’exploitationTraitement par lots

• Les programmes étaient écrits en Fortran ou en assembleur sur des cartes perforées.

• Ce mode d’exploitation nécessitait deux types de machines dont la plus puissante était réservée aux calculs et l’autre, moins chère, s’occupaient des périphériques lents.

Page 23: Systèmes d'exploitation INF3600 & INF2610

23

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 45

Comment maximiser le taux d’utilisation du processeur ?

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 46

Evolution du mode d’exploitation (2)Multiprogrammation et DMA

• Introduction des unités de disques permettant un accès direct.

• Transfert des travaux vers le disque dès leur arrivée dans la salle machine (spoole).

• La mémoire est organisée en un ensemble de partitions (1 travail/partition).

• Le système d’exploitation conserve en mémoire plusieurs travaux et gère le partage du processeur centrale et des périphériques entre les différents travaux chargés en mémoire (la multiprogrammation):

Page 24: Systèmes d'exploitation INF3600 & INF2610

24

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 47

Evolution du mode d’exploitation (3) Multiprogrammation et DMA

• Allocation du processeur à un travail (premier arrivé, premier servi). • Lorsque le travail demande une E/S, le processeur est alloué à un autre travail. • A la fin de l’E/S, une interruption se produit et le système d’exploitation reprend le contrôle

pour traiter l’interruption et lancer ou reprendre l’exécution d’un travail.• Dès qu’un travail se termine, le système d’exploitation peut lancer le chargement, à partir du

disque, d’un nouveau travail dans la partition libérée.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 48

Evolution du mode d’exploitation (4) Multiprogrammation et DMA

Page 25: Systèmes d'exploitation INF3600 & INF2610

25

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 49

Evolution du mode d’exploitation (5) Multiprogrammation et DMA

Exemple :

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 50

Evolution du mode d’exploitation (6) Multiprogrammation et DMA

• Trois activités peuvent être donc menées en parallèle :

– Le chargement d’un travail C en mémoire ;

– L’exécution d’un travail B ;

– L’édition des résultats d’un travail A.

Page 26: Systèmes d'exploitation INF3600 & INF2610

26

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 51

Evolution du mode d’exploitation (7) Multiprogrammation et DMA

• La multiprogrammation nécessite des circuits de contrôle pour protéger chaque travail contre les intrusions et les erreurs des autres.

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 52

Problème :si tous les travaux en mémoire sont en attente d’E/S,le processeur est inactif.

Page 27: Systèmes d'exploitation INF3600 & INF2610

27

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 53

Evolution du mode d’exploitation (8)Va-et-vient (swapping)

• Les travaux en mémoire qui sont en attente (d’une E/S ou d’un événement) peuvent être retirés de la mémoire pour y charger d’autres prêts (en attente d’exécution).

• Ainsi durant l’exécution d’un travail, il peut subir plusieurs va-et-vient entre la mémoire et le disque (zone de swapping).

Mémoire principale Disque

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 54

Garantir un temps de réponse acceptable à chaque utilisateur

Page 28: Systèmes d'exploitation INF3600 & INF2610

28

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 55

Evolution du mode d’exploitation (9)Temps partagé

• Le processeur est alloué, à tour de rôle, pendant un certain temps à chacun des travaux en attente d’exécution. Au bout ce temps, l’exécution du travail en cours est suspendue. Le processeur est alors alloué à un autre travail.

• Si plusieurs utilisateurs lancent à partir de leurs terminaux leurs programmes simultanément, ce mode d’exploitation donne l’impression que les programmes s’exécutent en parallèle (pseudo parallélisme).

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 56

Evolution du mode d’exploitation (10)Temps partagé

Process eurProcesseur

Lots

Expiration

File d’attente, prêt

File d’attente, attente

Attente d’événement

Terminé

Page 29: Systèmes d'exploitation INF3600 & INF2610

29

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 57

Exécuter des programmes dont la taille peut dépasser celle de la mémoire physique

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 58

Evolution du mode d’exploitation (11)Mémoire virtuelle

• Le compilateur génère pour chaque programme un espace d’adressage virtuel dont la taille peut surpasser celle de la mémoire physique.

• À l’exécution, une partie de cet espace virtuel est en mémoire.

• Chargement au besoin

Page 30: Systèmes d'exploitation INF3600 & INF2610

30

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 59

Communiquer avec d’autres ordinateurs

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 60

Evolution du mode d’exploitation (12)Exploitation en réseau

(client/serveur)

• Chaque système d’exploitation est doté d’une interface réseau qui lui permet de communiquer avec d’autres machines.

Page 31: Systèmes d'exploitation INF3600 & INF2610

31

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 61

Gérer plusieurs ordinateurs et les faire paraître comme étant une seule puissante machine

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 62

Evolution du mode d’exploitation (13)Exploitation en distribué

• Les réseaux d’ordinateurs qui fonctionnent sous des systèmes d’exploitation distribués apparaissent aux yeux des utilisateurs comme une machine monoprocesseur.

• Le système d’exploitation distribué gère et contrôle l’ensemble des composants de tous les ordinateurs connectés (les processeurs, les mémoires, les disques, …).

Page 32: Systèmes d'exploitation INF3600 & INF2610

32

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 63

Exploitation spécialisée

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 64

Evolution du mode d’exploitation (14)Système d’exploitation temps réel

• Ce sont des systèmes spécialisés dans la conduite d’appareillages industriels ou dans la commande de processus où le temps joue un rôle critique (des contraintes temporelles strictes à respecter).

• L’exploitation met l’accent sur le temps de réponse (respect des contraintes temporelles imposées par l’environnement).

Page 33: Systèmes d'exploitation INF3600 & INF2610

33

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 65

Evolution du mode d’exploitation (15)Structure d’UNIX

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 66

Evolution du mode d’exploitation (16)Structure de Windows 2000/XP

Page 34: Systèmes d'exploitation INF3600 & INF2610

34

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 67

Lancement du système d’exploitation

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 68

Lancement du système d’exploitationBooting (cas d’UNIX)

• Le programme de démarrage (amorce) vérifie le bon fonctionnement du matériel puis charge une partie du système d’exploitation à partir du disque (disquette ou CD) avant de lui donner le contrôle.

• Cette partie détermine les caractéristiques du matériel, effectue un certain nombre d’initialisations et crée le processus 0.

• Le processus 0 réalise d’autres initialisations (ex. le système de fichiers) puis crée deux processus : init de PID 1 et démon des pages de PID 2.

Page 35: Systèmes d'exploitation INF3600 & INF2610

35

Systèmes d’exploitation Génie InformatiqueÉcole Polytechnique de Montréal

Chapitre 1. 69

Quelques unités de mesureSpatiales

250 octets1 PO (Peta)240 octets1 TO (Tera)

230 octets1 GO (Giga)220 octets1 MO (Mega)

210 octets1 KO (Kilo)8 bits1 O (octet)

Temporelles

10-15 s1 fs (femto)10-6 s1 µs (micro)

10-12 s1 ps (pico)10-3 s1 ms (milli)

10-9 s1 ns (nano)1 seconde1 s