120
Système d’Exploitation et Outils de programmation

Système d’Exploitation et Outils de programmationmonnier/1215/notes-os.pdf · Exemple: système Unix ou Linux. 10 ... D’un appel système (API) D’une commande du langage de

Embed Size (px)

Citation preview

Système d’Exploitationet

Outils de programmation

2

Introduction

Le système d’exploitation (SE) est unensemble de programmes qui Réalise l’interface entre le matériel de

l’ordinateur et les utilisateurs Prend en charge la gestion des

ressources de la machine et le partage decelles-ci

physiques: mémoire, unités E/S, UCT... Logiques = virtuelles: fichiers et bases de

données partagés, canaux de communicationlogiques, virtuels...

les ressources logiques sont bâties par lelogiciel sur les ressources physiques 2

3

Pourquoi étudier les SE?

Logiciel très important… tout programme roule sur un SE interface usager-ordinateur

Les SE utilisent beaucoupd ’algorithmes et structures de donnéesintéressants Les techniques utilisées dans les SE sont

aussi utilisées dans nombreuses autresapplications informatiques

il faut les connaître

4

Développement de la théorie des SE

La théorie des SE a été développée surtoutdans les années 1960 (!!)

A cette époque, il y avait des machines trèspeu puissantes avec lesquelles on cherchaità faire des applications comparables à cellesd’aujourd’hui (mémoire typique: 100-500K!)

Ces machines devaient parfois desservir desdizaines d’usagers!

Dont le besoin de développer des principespour optimiser l’utilisation d ’un ordinateur.

Principes qui sont encore utilisés

5

Évolution historique des SE

Le début: routines d`E/S, amorçage système Systèmes par lots simples Systèmes par lots multiprogrammés Systèmes à partage de temps Ordinateurs personnels SE en réseau SE répartis Les fonctionnalités des systèmes simples se

retrouvent dans les systèmes complexes. Les problèmes et solutions qui sont utilisés dans les

systèmes simples se retrouvent souvent dans lessystèmes complexes.

6

Évolution des SE

7

Une synthèse historique

Ordinateurs Personnels

Mainframes et grands serveurs

Multics et beaucoup d’autres(1960s)

Unix(1970)

MS-DOS(1981)

Windows(1990)Linux

(1991)

Windows NT(1988)

Windows 2000

Windows XP

Solaris (1995)

Mac/OS(1984)

8

Types de systèmes

Mono utilisateur, monotâche (single user, single tasking)

Mono utilisateur, multitâches (single user, multitasking)

Multi utilisateurs, multitâches

9

Multi utilisateurs, multitâches

L’utilisateur de la machine peutinteragir avec l’exécution de sonprogramme =>

Le but principal poursuivi par lessystèmes interactifs Offrir pour chaque exécution le plus petit

temps de réponse possible Travail en temps partagé Exemple: système Unix ou Linux

10

« Network operating systems »

SEs en réseau fournissent:

Partage de fichiers (systèmes client-serveur)

Patrons de communication (protocoles) Autonomie des ordinateurs

11

Systèmes temps réel

Liés au contrôle de procédé

Les exécutions de programmes sontsoumises à des contraintes temporelles

Exemple: LynxOS, VxWORKS

12

Types de systèmes

Systèmes embarqués Système temps réel dédié pour une

application particulière Injection automatique pour une auto Programmation micro-onde

Systèmes distribués - répartis il y a un SE qui fonctionne entre

ordinateurs l ’usager voit les ressources éloignées

comme si elles étaient locales

13

Services et facilités

Le SE réalise une couche logicielleplacée entre la machine matérielle et lesapplications

Le SE typique fournis (+ ou -) Interface usager-ordinateur Gestion des fichiers Support des entrées-sorties Exécution de programmes: chargement,

exécution (load, run), gestion de laconcurrence

14

Services et facilités

Détection et traitement d ’erreurs Services Réseau et communication Gestion de la mémoire Gestion de la protection Support pour l’administration du système

15

Services et facilités

Support des entrées-sorties Accès aux périphériques, la liaison entre les

appels de haut niveau des programmesutilisateurs et les opérations de bas niveaude l’unité d’échange responsable dupériphérique (pilote d’entrées-sorties)

Logiciels de contrôleur de périphérique ( I/Odevice driver), certains sont en ROM

16

Services et facilités

Services Réseau et communication(Network and Communications SupportServices) Fonctions nécessaire à l’interconnexion de

l’ordinateur dans un réseau (protocoleTCP-IP)

Programmes d’applications et extension(ex. E-mail, login, etc.)

Pilotes pour modems, communicationsans fils, etc.

17

Services et facilités

Gestion de la protection Mécanismes garantissant que les ressources

de système ne peuvent être utilisées que parles programmes auxquels les droitsnécessaires ont été accordés (protection desystème et la machine des programmesutilisateurs)

Protège SE des programmes d’autres utilisateurs Protège un utilisateur d’un autre utilisateur

Empêche les entrées non-autorisées dans lesystème (service de login)

18

Services et facilités

Support pour l’administration du système L’administrateur du système:

Configuration du système Ajout ou enlèvement des utilisateurs/privilèges S’occupe de la sécurité du système Gère le système de fichier S’occupe des sauvegardes, installation, mise

à jour des logiciels et de SE Optimise le système

19

SE SE s’interface avec les applications du

niveau utilisateur par le biais de fonctionsprédéfinies – routines systèmes

Les appels des routines systèmes peuventse faire par biais D’un appel système (API) D’une commande du langage de commandes

L’exécution des routines systèmes s’effectuesous un mode privilégié – mode superviseur

Un programme utilisateur s’exécute pardéfaut selon un mode utilisateur

20

SE Mode utilisateur : le jeu d’instructions utilisables par

le programme est réduit Mode superviseur: aucune restriction Passage du mode utilisateur au mode superviseur

constitue une commutation de contexte Trois causes majeures provoquent le passage du

mode utilisateur au mode superviseur Utilisateur appelle une fonction système L’exécution d’une opération illicite (trappe ou l’exception) La prise en compte d’une interruption par le matériel et

SE

21

Chargement d’un SE Les programmes composant le SE sont

conservés sur un support de masse Au démarrage l’ordinateur exécute un code

placé dans une zone de mémoire morte(ROM), programme d’amorçage ou boot-strap (test du matériel de la machine,chargement d’un programme d’amorce plussophistiqué)

Une fois cette amorce placée en mémoirecentrale, elle s’exécute et charge lesprogrammes du SE.

22

Bootstrapping

22Copyright 2010 John Wiley & Sons, Inc.

23

Le noyau (kernel) du SE La partie résidente (toujours en RAM) du SE est appelée

Kernel = noyau Les autres parties sont amenées en RAM au besoin Contient les fonctionnalités critiques du SE: elles doivent

toujours être prêtes à l ’utilisation traitement d ’interruptions gestion de UCT gestion mémoire communication entre processus etc.

À part ça, quoi exactement mettre dans le kernel est unequestion pour les concepteurs des SE

La plupart des fonctionnalités discutées dans ce courssont normalement dans le kernel

24

Interface usager-ordinateur Types d’interfaces utilisateur

Interface de ligne de commande CLI – Command Line Interface

Windows command prompt UNIX/Linux command prompt

Interface graphique GUI – Graphical User Interface

Apple Macintosh, Windows, stations de travail Sun, lesdifférentes versions de Linux

25

Langage de commandes Les ordinateurs modernes ont la possibilité

de regrouper les commandes CLI enminiprogrammes Langage de commandes (scripts)

Les commandes sont analysées par l’outilinterpréteur de commande qui appelle la routinesystème appropriée en assurant le passage desparamètres

Chaque SE a son langage de commandespropre

JCL (Job Control Language) de SE MVS Langage Shell de SE Unix

26

GUI Interface – Windows Vista

26Copyright 2010 John Wiley & Sons, Inc.

27

GUI Interface – Linux KDE

16-27Copyright 2010 John Wiley & Sons, Inc.

28

GUI Interface – MacIntosh OSX

16-28Copyright 2010 John Wiley & Sons, Inc.

29

GUI vs. CLI

GUI Avantages

Facile à apprendre etutiliser

Désavantages Plus difficile à implémenter Plus exigeant en terme de

HW/SW Requiert beaucoup de

mémoire SW est complexe et difficile

à écrire

CLI Avantages

Plus flexible et puissant Plus performant pour

utilisateurs expérimentés Peut combiner des

commandes

Désavantages Plus difficile à apprendre et

utiliser

29Copyright 2010 John Wiley & Sons, Inc.

30

Gestion des fichiers Allocation des mémoires de masse ainsi

que l’accès aux données stockées(système de gestion de fichiers et notionde fichier)

Assure la conservation des données surun support de masse non volatile

31

Système de gestion de fichiers

Offre à l’utilisateur une unité de stockageindépendante des propriétés physiques dessupports de conservation: le fichier Fichier logique (vue de l’utilisateur) Fichier physique

Assure la correspondance entre le fichierlogique et le fichier physique Structure de répertoire

32

Système de gestion de fichiers Le fichier logique

Un type de données standard défini dans les langagesde programmation sur lequel un certain nombred’opérations peuvent être réalisées

Création, ouverture, fermeture, destruction Les opérations de création ou d’ouverture effectuent la liaison

du fichier logique avec le fichier physique

Un ensemble d’enregistrements, un type de donnéesregroupant des données de type divers liées entreelles par une certaine sémantique inhérente auprogramme qui les manipule

33

Système de gestion de fichiers

Fichier physique Correspond à l’entité allouée sur le

support permanent et contientphysiquement les enregistrementsdéfinis dans le fichier logique

Le fichier physique est constitué d’unensemble de blocs physiques quidoivent être alloués au fichier logiques

34

Fichier physique Différentes méthodes d’allocation de la

mémoire secondaire Allocation contiguë Allocation par zones Allocation par blocs chaînés

Pour pouvoir allouer des blocs auxfichiers il faut connaître à tout momentl’ensemble des blocs libres et donc gérerl’espace libre sur le disque

Liste d’espace libre

35

Exemple Allocation par blocs chaînes (DOS/Windows)

L’ensemble des chaînages des blocs de fichiers estregroupé dans une table FAT(File Allocation Table)

Nombre d’entrées = Nombre de blocs de données surle disque

Chaque entrée de la table correspond à un bloc dudisque et contient:

Si le bloc appartient à un fichier et n’est pas le dernier blocde ce fichier => le numéro du bloc suivant

Si le bloc appartient à un fichier et est le dernier bloc de cefichier => une valeur de fin de fichier

Si le bloc n’appartient pas à un fichier => une valeur de bloclibre

36

Répertoire Correspondance fichier logique – fichier physique

Effectue par le biais d’une table appeléerépertoire qui contient des informations degestion des fichiers

Le nom logique du fichier Le type du fichier

Codé dans son nom logique à l’aide d’une extension

L’adresse physique du fichier Dépend de la méthode d’allocation mise en œuvre sur le

disque La taille en octets ou en blocs du fichier Le nom du propriétaire Les protections appliquées au fichier

37

Répertoire Le système de gestion de fichiers offre des

primitives permettant de manipuler les répertoires Les différentes structures de répertoires

existantes se distinguent par le nombre deniveaux

Structure en arbre est composée d’un répertoire initial (laracine) et d’un ensemble de nœuds constitués par l’ensemblede sous-répertoires et d’un ensemble de feuilles qui sont lesfichiers eux-mêmes

Le nom complet d’un fichier (path name) estconstitué de son nom précédé du chemin dansla structure de répertoires depuis la racine

38

Partitions Gérer des milliers de fichiers dans un seul

ensemble – difficile Solution – diviser l’ensemble du système de

gestion de fichiers en morceaux indépendants –partitions Partition constitue un disque virtuel auquel est associé

un répertoire qui référence l’ensemble des fichiersprésents sur la partition

Chaque partition est repérée par un nom – label La partition doit être connectée à l’arborescence de

fichiers de la machine

39

Services et facilités Gestion du processeur

Allocation du processeur aux différentsprogrammes: ordonnancement

Selon le type de SE l’algorithmed’ordonnancement répond à des objectifs différents

Gestion de la concurrence Communication entre plusieurs programmes,

synchronisation de l’accès aux données partagées(outil de communication et de synchronisationentre programmes)

40

Notion de Processus Définitions

États d’un processus

Bloc de contrôle du processus

Opérations sur les processus

41

Notion de Processus: Définitions

Un programme en cours d’exécutionauquel est associé un environnementprocesseur (PC, registres généraux,…) et un environnement mémoire(zone de code, de données et de pile)appelés contexte du processus

Instance dynamique d’un programmeet incarne le fil d’exécution de celui-cidans un espace d’adressage protégé

42

Notion de Processus: États d’un processus

Au fur et a mesure qu’un processusexécute, il est caractérisé par un état Lorsque le processus obtient le processeur et

s’exécute, il est dans l’état élu. L’état élu estl’état d’exécution du processus

Lors de l’exécution, le processus peutdemander à accéder à une ressource. Il quittealors le processeur et passe dans l’étatbloqué. L’état bloqué est l’état d’attente d’uneressource autre que le processeur

Élu

Bloqué

43

Notion de Processus: États d’un processus

Lorsque le processus est passé dans l’étatbloqué, le processeur a été alloué à unautre processus. Le processeur n’est doncpas forcément libre. Le processus passedans l’état prêt. L’état prêt est l’étatd’attente du processeur.

Prêt

44

Diagramme d’états d’un processus

Élu

Bloqué

Prêt

Fin

En exécution

BlocageDéblocage

En attente duprocesseur

Réveil

Élection

Transition Prêt –>Élu – opération d’élection

Transition Élu->Bloqué – opération de blocage

Transition Bloqué->Prêt – opération de déblocage

Création d’un processus = état Prêt

45

Bloc de contrôle du processus

PCB (Process ControlBlock) – une structurede description duprocessus associé auprogramme exécutable

PCB permet lasauvegarde et larestauration ducontexte mémoire etdu contexteprocesseur lors desopérations decommutations decontexte Informations de comptabilisation

Informations sur les ressourcesutilisées fichiers ouverts, outilsde synchronisation, entrées-

sorties

Informations mémoire(limites et tablespages/segments)

Chaînage selon les files del’Ordonnanceur

Priorité (ordonnancement)

Compteur ordinalContexte pour reprise

(registres et pointeurs, piles …)

État du processusIdentificateur processus

46

Opérations sur les processus

SE offre les opérations de gestion desprocessus

Opérations pour la gestion desprocessus Création de processus Destruction de processus Suspension de l’exécution Reprise de l’exécution

47

Opérations sur les processus

Création de processus Un processus peut créer un ou plusieurs

autres processus en invoquant un appelsystème de création de processus

Le processus créateur – processus père Les processus créés – processus fils Au fil des opérations de création initiées par

les processus, se développe un arbre defiliation entre processus

48

Opérations sur les processus

Création de processus Les opérations de création de processus

admettent les variantes suivantes selonles SE

Le processus créé hérite ou non de donnéeset du contexte de son processus créateur

Le processus créé peut s’exécuterparallèlement à son père. Dans certainssystèmes, le processus père doit attendre laterminaison de ses fils pour pouvoir reprendresa propre exécution

49

Opérations sur les processus

Destruction de processus Processus a terminé son exécution

Le processus s’autodétruit en appelant une routinesystème de fin d’exécution

Processus commet une erreur irrécouvrable Le processus est terminé par le système

Autre processus demande la destruction duprocessus

Appel à une routine système

Le contexte du processus est démantelé Ressources allouées au processus sont libérées Bloc de contrôle est détruit

50

Opérations sur les processus Suspension d’exécution –

momentanément arrêter l’exécutiond’un processus pour la reprendreultérieurement Le contexte du processus est sauvegardé

dans son PCB Le processus passe dans l’état bloqué Reprise d’exécution

Transition de déblocage, le processus entredans l’état prêt

51

Ordonnancement sur l’unité centrale

Ordonnancement préemptif et non préemptif

Entités systèmes responsable de

l’ordonnancement

Politiques d’ordonnancement

Exemples

Ordonnancement sous Linux

52

Ordonnancement sur l’unité centrale

La fonction d’ordonnancement gère le

partage du processeur entre les

différents processus en attente pour

s’exécuter, c’est-à-dire entre les

différents processus qui sont dans

l’état prêt.

53

Ordonnancement préemptif etnon préemptif

Élu

Bloqué

Prêt

Fin

En exécution

BlocageDéblocage

En attente duprocesseur

Réveil

Élection

Préemption

Transition élu->prêt – réquisition du processeur, préemption

54

Selon si l’opération de réquisition est autorisée ou non,

l’ordonnancement est qualifié d’ordonnancement

préemptif ou non préemptif

Ordonnancement non préemptif

Transition de l’état élu vers l’état prêt est interdite: un processus

quitte le processeur s’il a terminé son exécution ou s’il se bloque

Ordonnancement préemptif

La transition de l’état élu vers l’état prêt est autorisée: un processus

quitte le processeur s’il a terminé son exécution, s’il se bloque ou si

le processeur est réquisitionné

Ordonnancement préemptif et non préemptif

55

Déroulement des opérationsd’ordonnancement

Read (données, disque)Élu Prêt

Élection

Élu

Élu

Prêt

Bloqué

Prêt

Fin d’entrées-sorties

Les opérations d’ordonnancement prennent place lors de tout changement d’étatsdes processus

56

Entités systèmes responsable del’ordonnancement

Les processus prêts et bloqués sont gérés dans

deux files d’attentes distinctes qui chaînent leur PCB

Le module Ordonnanceur (scheduler) trie la file des

processus prêts. Le tri s’appuie sur un critère donné

spécifié par la politique d’ordonnancement

Le répartiteur (dispatcher) alloue un processeur parmi

les processeurs libres (système multiprocesseur) à la

tête de file de la liste des processus prêts

57

Entités systèmes responsable del’ordonnancement

Répartiteur OrdonnanceurPCB PCB PCB PCB

PCB PCB PCB PCB

CPU

CPU

CPU

BlocageBloqués

Déblocage

Classement selon unepolitique d’ordonnancement

Prêts

Préemption

Élection

Ordonnanceur et répartiteur

58

Politiques d’ordonnancement

Politique d’ordonnancement détermine

quel sera le prochain processus élu

Selon si la préemption est autorisée ou

non, la politique d’ordonnancement sera

de type préemptive ou non

Objectifs d’ordonnancement diffèrent

selon les types de systèmes

59

Politiques d’ordonnancement

Premier Arrivé, Premier Servi

Les processus sont élus selon l’ordre dans lequel ils

arrivent dans la file d’attente des processus prêts

Il n’y a pas de réquisition

Avantages – Simplicité

Inconvénient

Processus de petit temps d’exécution sont pénalisés en terme

de temps de réponse par les processus de grand temps

d’exécution qui se trouvent avant eux dans la file d’attente

60

Politiques d’ordonnancement Plus Court d’Abord

L’ordre d’exécution des processus est fonction de

leur temps d’exécution

Sans réquisition

Remédie à l’inconvénient pour PAPS

Difficulté

Connaissance a priori des temps d’exécution des

processus

61

Politiques d’ordonnancement Politique par priorité

Chaque processus possède une priorité

À un instant donné, le processus élu est le processus

prêt de plus forte priorité

Deux version selon si la réquisition est autorisée ou

non

Réquisition est admise

Le processus couramment élu est préempté dès qu’un

processus plus prioritaire devient prêt

– Risque de famine pour les processus de petite priorité

62

Politiques d’ordonnancement Politique du tourniquet (round robin)

Systèmes en temps partagé

Le temps est découpé en tranches, quantum de temps (10 – 100 ms)

Lorsqu’un processus est élu, il s’exécute au plus durant un

quantum de temps. Si le processus n’a pas terminé son

exécution à l’issue du quantum de temps, il est préempté et

il réintègre la file des processus prêts mais en fin de file

La valeur du quantum – un facteur important de

performance (commutations de contexte)

63

Exemple

Systèmes actuels – combinaison de deux des

politiques: celles des priorités fixes et celles du

tourniquet

La file des processus prêts est divisée en autant de

sous files Fi qu’il existe de niveaux de priorité

Chaque file est gérée en tourniquet avec un quantum Qi

Pour remédier au problème de famine – mécanisme

d’extinction de priorité

La priorité d’un processus baisse au cours de son exécution

64

Services et facilités

Gestion de la concurrence Communication entre plusieurs

programmes, synchronisation del’accès aux données partagées (outilde communication et desynchronisation entre programmes)

65

Gestion de la concurrence

Les processus peuvent avoir besoin decommuniquer entre eux pour échanger desdonnées par le biais D’une zone mémoire partagée D’un fichier En utilisant les outils de communication offerts par le

système d’exploitation Les processus ne sont plus indépendants

Accès concurrents aux ressources logicielles

66

Gestion de la concurrence Une ressource désigne toute entité dont a

besoin un processus pour s’exécuter Matérielle (le processeur, un périphérique) Logicielle (variable)

Une ressource est caractérisée par un état

libre occupée

Nombre de points d’accès Le nombre de processus pouvant l’utiliser en même

temps

67

Gestion de la concurrence

Ressource critique – ressource nepouvant être utilisée que par un seulprocessus à la fois Processeur, imprimante

Utilisation d’une ressource Allocation de la ressource Utilisation Restitution de la ressource

68

Gestion de la concurrence Les phases d’allocation et de

restitution d’une ressource doiventassurer que la ressource est utiliséeconformément à son nombre de pointsd’accès

Étape d’allocation Peut bloquer un processus, si tous les

points d’accès sont occupés

69

Gestion de la concurrence Étape de restitution

Peut entraîner le déblocage d’un autreprocessus en attente d’accès

Synchronisation entre processus doitgarantir une bonne utilisation desressources Une communication cohérente Sans perte de données

70

Services et facilités

Gestion de la mémoire Allocation de la mémoire centrale: principe

de la mémoire virtuelle, à un instantdonné, seules les parties de code etdonnées utiles à l’exécution sont chargéesen mémoire centrale

71

Gestion de la mémoire La tâche principale de la gestion de la

mémoire est de charger des programmesen mémoire pour qu’ils soient exécuté parle CPU Mémoire virtuelle

La taille du programme, des données et de la pilepeut dépasser la mémoire disponible. Le SEgarde en mémoire les parties du programme quisont utilisées et stocke le reste dans le disque

Cette méthode est basée sur deux principes degestions, la SEGMENTATION et la PAGINATION

72

Gestion de la mémoire Pagination

L’espace d’adressage du programme est découpé enmorceaux linéaires de même taille appelés pages

L’espace de la mémoire physique est lui-mêmedécoupé en morceaux linéaires de même taille appeléscase

Taille page = case – définie par le matériel (selon SE entre 512octets et 8192 octets)

Charger un programme en mémoire centrale - placerles pages dans les cases disponibles

Pour connaître à tout moment quelles sont les cases libres enmémoire centrale, le système maintient une table des cases

Pour chaque case de la mémoire physique, information– Libre ou occupée– Si occupée, quelle page et quel processus la possèdent

73

Pages et Cases (1)

Programme Mémoire

Unité Page Case

Adresse Logique Physique

Taille del’unité 2 to 4KB 2 to 4KB

Quantité # de bits dansl’instruction Mémoire installée

73Copyright 2010 John Wiley & Sons, Inc.

74

Pages et Cases (2)

Each program has itscollection of pages.

The total number ofpages can exceed thenumber of frames(physical memory).

A Simple Page TableTranslation

Pages and Frames

18-74Copyright 2010 John Wiley & Sons, Inc.

75

Gestion de la mémoire

P22P14P12

-1 libreP21P13P11

-1 libre

Page2 P2

Page 4 P1

Page 2 P1

Page1 P2

Page 3 P1

Page 1 P1

Page 1

Page 2

Page 4

Page 3

Page 2

Page 1 4 Ko

Espace d’adressage du processus P1 (16 Ko)

Espace d’adressage du processus P2 (7 Ko)

ALLOCATION

ALLOCATION

Mémoire

Case 1

Case 2

Case 8

Table des cases

76

Recherche d’une case

18-76Copyright 2010 John Wiley & Sons, Inc.

77

Gestion de la mémoire Conversion adresse logique – adresse physique

L’espace d’adressage du processus étant découpé enpages, les adresses générées dans cet espaced’adressage sont des adresses paginées (relative audébut de la page)

L’adresse : <numéro de page p, déplacement drelativement au début de la page p>

Une adresse logique de m bits, en considérant despages de 2n octets, les m-n premiers bits correspondau numéro de page p et les n bits restants audéplacement d dans la page

78

Gestion de la mémoire Conversion adresse logique – adresse physique

Il fait convertir l’adresse paginée générée au niveau duprocesseur en une adresse physique équivalente

L’adresse physique s’obtient à partir de son adresselogique en remplaçant le numéro de page p parl’adresse physique d’implantation de la case contenantla page p et en ajoutant à cette adresse ledéplacement d du mot dans la page

MMU (memory management unit) – un dispositifmatériel (partie de CPU), effectue cette conversion

79

Gestion de la mémoire Conversion adresse logique – adresse

physique Pour toute page il faut connaître dans quelle case

de la mémoire centrale celle-ci a été placée Correspondance page – case s’effectue grâce à une

structure – table de pages

La table des pages – contient autant d’entrées quede pages dans l’espace d’adressage d’unprocessus

Chaque processus a sa propre table des pages Chaque entrée – un couple <numéro de page,

numéro de case physique dans laquelle la page estchargée>

80

Disk

Virtual Memory Pages

Page FramePages not in main memory:page fault when accessed

1 2 3 4

5 6 7 8

9 10 11

1234567891011

64

8

1012

7

Table de pages

Swap space

80Copyright 2010 John Wiley & Sons, Inc.

81

Allocation de la mémoire pour 3processus

81Copyright 2010 John Wiley & Sons, Inc.

82

Table de cases

Inverted Page Table for the previous slideThe table represents what is in physical memory

18-82Copyright 2010 John Wiley & Sons, Inc.

83

Gestion de la mémoire Le défaut de page

Processus tente d’accéder à une page qui n’est pasen mémoire centrale

Accès à l’entrée p de la table des pages du processus actifet test de la valeur du bit de validation V;

Si la valeur du bit V est à 0, alors il y a défaut de page. Uneopération d’entrées-sorties est lancée pour charger la pagedans la mémoire centrale (l’adresse de la page sur ledisque est stockée dans la tables des pages)

La page est placée dans une case libre, trouvée parl’intermédiaire de la table des cases

La table des pages du processus est mise à jour La conversion de l’adresse logique vers l’adresse physique

est reprise

84

Gestion de la mémoire Le remplacement de pages

Traitement d’un défaut de page pour un processuspeut se faire

Localement à ce processus Globalement sur l’ensemble des processus (plus souvent

mis en œuvre)

Algorithmes de remplacement de pages FIFO (First In, First Out) LRU ( Least Recently Used) LFU (Least Frequently Used) MFU (Most Frequently Used)

85

Gestion de la mémoireAlgorithmes de remplacement de pages FIFO (First In, First Out)

La page la plus anciennement chargée qui estremplacée

Performances ne sont pas toujours bonnes (l’âge nereflète pas d’utilité)

LRU ( Least Recently Used) La page la moins récemment utilisée qui est remplacée Localité temporelle Le plus utilisé, mais plus coûteuse

86

Gestion de la mémoireAlgorithmes de remplacement de pages LFU (Least Frequently Used)

La page la moins fréquemment utilisée est remplacée Problème vis-à-vis des pages abondamment référencées

sur un court laps de temps =>compteur pour ces pages –elevé => ne sont pas retirées de la mémoire même si ellesne sont plus jamais référencées

MFU (Most Frequently Used) La page la plus fréquemment utilisée qui est remplacée L’argument à la base – une page ayant un petit nombre de

références vient sans doute d’être chargée en mémoirecentrale et doit donc y rester

87

Étapes lors de défaut de page

18-87Copyright 2010 John Wiley & Sons, Inc.

88

Gestion de la mémoire Conversion adresse logique – adresse physique

Chaque processus dispose de sa propre table depages => chaque opération de commutation decontexte se traduit par un changement de table despages de manière à ce que la table activecorresponde à celle du processus élu

Deux approches de réalisation de la table des pages Structure matérielle réalisée grâce à des registres de la MMU Structure logicielle placée en mémoire centrale

89

Gestion de la mémoire Réalisation de la table des pages

Structure matérielle réalisée grâce à des registres dela MMU

Nécessite un accès à la mémoire Ne peut convenir que pour de petites tables des pages

Structure logicielle placée en mémoire centrale Deux accès à la mémoire Un premier accès permet de lire l’entrée de la table des pages

correspondant à la page p cherchée et délivre une adressephysique c de case dans la mémoire centrale

Un second accès est nécessaire à la lecture ou l’écriture del’octet recherché à l’adresse c+d

Réalisation des tables de pages de très grande taille

90

Gestion de la mémoire Protection de l’espace d’adressage des

processus Des bits de protection sont associés à chaque

page de l’espace d’adressage du processus etpermettent ainsi de définir le type d’accèsautorisés à la page

Ces bits de protection sont mémorisés pourchaque page dans la table des pages duprocessus

3 bits sont utilisés - l’autorisation d’accès en Lecture – r Écriture – w Exécution - x

91

Translation d’adresse

91Copyright 2010 John Wiley & Sons, Inc.

92

Gestion de la mémoire Protection de l’espace d’adressage des

processus Lors d’un accès à une page, la cohérence du type

d’accès avec les droits associés à la page estvérifiée et une trappe est levée par le SE si le typed’accès réalisé est interdit

Chaque processus ne peut avoir accès qu’à sapropre table des pages =>chaque espaced’adressage est protégé

Pour que deux processus puissent partager unensemble de pages =>référencer cet ensembledans sa table des pages respective

93

Gestion de la mémoire

Pagination Pagination multiniveaux L’espace d’adressages logiques supporté par les

SE actuels est très grand (de 232 à 264 octets) La table des pages d’un processus peut devenir

également de très grande taille et comporterjusqu’à un million d’entrées

Il n’est dès lors plus envisageable de charger demanière contiguë la table des pages d’un processus

Solution: paginer la table des pages elle-même

94

Gestion de la mémoire Pagination

Pagination multiniveaux L’adresse paginée devient un triplet <hp, p, d>

hp – l’entrée d’une hypertable des pages Chaque entrée correspond à une page contenant une partie de

la table des pages du processus p – une entrée de cette partie de la table des pages d – un déplacement dans la page p

L’hypertable des pages est placée en mémoirecentrale et son adresse d’implantation en mémoirecentrale est repérée par un registre matériel de laMMU

3 accès à la mémoire

95

Gestion de la mémoire Segmentation

La pagination constitue un découpage del’espace d’adressage du processus qui necorrespond pas à l’image que le programmeur ade son programme

Données Programme principal Procédures séparées Pile d’exécution

La segmentation est un découpage de l’espaced’adressage qui cherche à conserver le vue duprogrammeur

96

Gestion de la mémoire Segmentation

Lors de la compilation, le compilateur associe unsegment à chaque morceau du programme compilé

Segment est un ensemble d’emplacementmémoire consécutifs non sécable Les segments d’un même espace d’adressage peuvent

être de taille différente

données

Fonction X Programme principale

Pile

Segment 150 Ko

Segment 220 Ko

Segment 370 Ko

Segment 425 Ko

Vue Utilisateur Segmentation

97

Segmentation

97Copyright 2010 John Wiley & Sons, Inc.

98

Gestion de la mémoire Principe de la mémoire virtuelle

à un instant donné, seules les parties de code etdonnées utiles à l’exécution sont chargées enmémoire centrale

Répartition de la mémoire centrale entre lesprocessus

Allocation équitable ou fixe Même nombre de cases quelle que soit la taille de l’espace

d’adressage Allocation proportionnelle

Proportionnellement à la taille des processus

99

Gestion de la mémoire Le principe de la mémoire virtuelle est

couramment implémenté avec la pagination àla demande Les pages des processus ne sont chargées en

mémoire centrale que lorsque le processeurdemande à y accéder

100

Mémoire Virtuelle vs. Mémoire Cache

Cache améliore le temps d’accès à lamémoire

Mémoire Virtuelle augmente laquantité de la mémoire considérée Indépendante de la configuration et de la

capacité de la mémoire physique

100

101

Machines virtuelles: le problème et la solution

Comment permettre de rouler différentsSE sur une seule machine physique?

Pas évident, car chaque SE demandeaccès direct au matériel

SOLUTION: Un programme qui créeune couche qui met à dispositionplusieurs machines physiques virtuelles

Sur chacune, nous pouvons rouler unSE différent

102

Machines Virtuelles Virtuel en informatique dénote quelque chose qui

n ’est pas réel, n ’est pas du matériel: il estconstruit par le logiciel sur la base des ressourcesfournies par le matériel

Une machine virtuelle est une machine créée pardes couche de logiciel

Elle peut avoir des caractéristiques identiques à lamachine physique du système: mêmes instructions, etc.

Ou elle peut ‘simuler’ une autre machine physique p.ex.pour exécuter Microsoft sur Apple

Plusieurs machines virtuelles peuvent être crééessur une machine physique donnée!

103

(a) Une seule mach. réelle et un seul noyau(b) Plus. mach. virtuelles et plus. noyaux

104

Fonctionnement typique Le système VM laisse exécuter normalement

les instructions non privilégiées Les appels au système sont exécutés par le

système VM et les résultats sont passés à lamachine virtuelle sur laquelle le processusexécute

105

Avantages Chaque machine virtuelle peut utiliser

un SE différent! En théorie, on peut bâtir des

machines virtuelles sur des machinesvirtuelles!

Protection complète, car les machinesvirtuelles sont complètement isoléesles unes des autres

Un nouveau SE peut être développésur une machine virtuelle

sans déranger les autres

106

Implémentations

Le concept de VM est très utilisé pourpermettre de rouler un SE sur un autre

P.ex. SUN, Apple, Linux permettent derouler Windows sur leur plateforme,

Ils doivent fournir à Windows unenvironnement que Windows reconnaîtcomme son environnement Intel usuel

107

Outils de programmation Les outils classiques utilisés dans le

développement d’un programme sont Éditeur de texte Traducteur

Compilateur Assembleur

Éditeur de liens Débogueur

108

Outils de programmation

Éditeur de texte

Traducteur: compilateur, assembleur

Éditeur de liens

Chargeur

Débogueur

idée

Programme source

Programme objetSous-programmesTraduits à part

Sous-programmesde librairie

Programme objet

Programme exécutable

109

Compilateur

Le rôle du compilateur est de traduireun fichier programme source enlangage de haut niveau (avec lequel leprogrammeur s’est libéré des détailsdes instructions machines) eninstructions/langage machine

110

Compilateur

Le travail du compilateur se divise enplusieurs phases: L’analyse lexicale

Reconnaissance des mots du langage L’analyse syntaxique

Vérification de la syntaxe L’analyse sémantique L’optimisation et la génération du code

objet

111

Compilateur

Analyse lexicale Consiste à lire le programme source et à

produire une séquence d’élémentssyntaxiques (nombres, variables,identificateurs, opérateurs, etc.)

Permet d’identifier quelques erreurs(éléments ≠ langage, nombres illégaux, etc.)

112

Compilateur Analyse syntaxique

Analyse la suite de symboles issus del’analyseur lexical et vérifie si cette suite desymboles est conforme à la syntaxe dulangage (règles de la grammaire)

Analyseur syntaxique essaye de construirel’arbre syntaxique correspondant auprogramme. Dans cet arbre les feuillescorrespondent aux symboles issus del’analyse lexicale et les nœuds intermédiairescorrespondent aux objets grammaticaux

113

Compilateur Analyse sémantique

Associer un sens aux différentes phrases duprogramme source

Reconnaître les objets manipulés et analyser leurspropriétés

Type de l’objet, sa durée de vie, sa taille et son adresse

Contrôler que l’utilisation de ces objets se fait demanière cohérente

Recherche les erreurs de typage, les déclarationsmultiples, absentes ou inutiles, les expressionsincohérentes

114

Compilateur L’optimisation et la génération du code

objet Étape ultime de la compilation Consiste à produire dans un fichier objet le

code machine équivalent au code dulangage de haut niveau, 3 étapes

Génération d’un code intermédiaire Optimisation de ce code intermédiaire Génération du code final

115

Compilateur Génération d’un code intermédiaire

Consiste à remplacer les phrasesreconnues par des macros plus aisémentmanipulables qui ne font pas de référenceaux registres de la machine cible

Optimisation du code intermédiaire Vise à produire un code machine plus

performant L’exécution plus rapide Un code plus compact dont l’encombrement

mémoire est moindre

116

Compilateur Optimisation du code intermédiaire

Diverses améliorations, exemples: La réduction des expressions constantes Simplification des boucles et prés-évaluation des expressions

constantes

Génération du code final Les macros sont remplacées par les instructions

machine correspondantes avec utilisations des registreset les objets sont remplacés par leur adresse

Le code obtenu à ce niveau est appelé code relogeable Toutes les adresses des objets sont calculées en

considérant que l’adresse du premier octet du codeest égale à 0

117

Éditeur de lien

Un éditeur de lien est un logiciel quipermet de combiner plusieursprogrammes objet en un seul

Pour pouvoir développer de grosprogrammes on structure ceux-ci enmodules que l’on traduitindépendamment

118

Chargeur Le programme objet après édition de

lien doit être chargé en mémoirecentrale pour être exécuter

Fichier exécutable – fichier relogeable Lorsque le chargeur copie le code

exécutable depuis le disque vers lamémoire centrale, il implante le code dansun espace libre de la mémoire centraleavec une adresse quelconque appeléeadresse d’implantation mémoire

119

Chargeur Fichier exécutable – fichier relogeable

Toutes les adresses calculées dans leprogramme exécutable doivent être modifiées

Opération de translation des adresses Ajouter à chaque adresse la valeur de l’adresse

d’implantation mémoire

Deux types de chargement Statique

L’opération de translation est effectuée au moment duchargement pour toutes adresses

Dynamique L’opération de translation est effectuée au moment

d’utilisation d’une adresse relogeable au cours del’exécution par le processeur

120

Débogueur

Le débogueur est un logiciel qui facilitela mise au point détection des erreursdans un programme. Il permet desuivre pas à pas l’exécution d’unprogramme en examinant le contenude la mémoire et des registres