epid-cpi-isaip philippe bancquart - mise à jour 24/02/2005 - page 1 système exploitation après...

49
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation les exploite. Plan des systèmes d’exploitation Processus, ordonnancement Commutation de contexte Gestion Fichiers Utilitaires Système répartis Présentation Windows NT

Upload: emeline-dupuy

Post on 04-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 1

Système Exploitation Après avoir vu les machines, nous voyons comment le système

d’exploitation les exploite.

Plan des systèmes d’exploitation

Processus, ordonnancement

Commutation de contexte

Gestion Fichiers

Utilitaires

Système répartis

Présentation Windows NT

Page 2: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 2

IntroductionUn « Ordinateur » ne peut fonctionner qu’avec un

Système d’exploitation : son rôle.

Gestion de l’information : stockage, rechercher, communication

Exploitation des programmes : lancer, arrêter, gérer,..

L'exécution des commandes d'entrée/sortie : Pas d’accès direct au matériel.

la gestion de la mémoire, y compris la virtuelle.

la gestion des fichiers

la multi-programmation (« multi-tâche ») :

Page 3: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 3

Questions Comment exécuter plusieurs programmes à la fois ?

Et si ces programmes veulent tous accéder à l 'imprimante en même temps ?

Et s'ils doivent échanger des informations

Comment exécuter un seul programme avec plusieurs processeurs ?

la sécurité (gestion des accès,...)

Page 4: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 4

Tâches d’un Système Exploitation Exécution des commandes, avec un langages

Gestion de la mémoire

Gestion des fichiers

Multi programmation

Plusieurs programmes à la fois

Accéder plusieurs à la fois sur la même ressource

La sécurité

Page 5: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 5

le rôle d’un système d’exploitation

Offre aux utilisateurs une machine virtuelle plus simple d’emploi que la machine réelle (appels systèmes).

Il gère et contrôle le matériel

Gérer les “périphériques”

Interface avec les moniteurs de ces équipements

Page 6: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 6

Que doit faire l’OS ? Assurer le chargement du programme en mémoire

“Chargeur”, ou “loader”

Fourniture de la mémoire

“Gérer” le programme chargé en mémoire

Permettre son interruption, son redémarrage…

Enchaînement des travaux

Exemple : compilation, édition de liens, chargement et exécution

Page 7: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 7

En supplément du SE Un langage de commande

Divers utilitaires (compilateurs, éditeurs, outils, communication, gestion fichiers, sauvegardes, ...)

Une interface graphique pour l'utilisateur

Page 8: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 8

Quelques SE

Page 9: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 9

Caractéristiques de l’ordinateur nu Matériel : processeur, mémoire, périphériques

Gestion de ces éléments

Un périphérique tel qu’un disque est extrêmement compliqué à gérer

Imprimante pour plusieurs machines

Ligne de connexion à distance…

Il faut disposer au minimum d’un ensemble de “sous-programmes” sachant prendre en charge ces tâches fastidieuses et répétitives

Page 10: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 10

Qu’est-ce qu’un “équipement” ? Un accessoire de la périphérie d’un ordinateur

disque

imprimante

modem…

Une carte, avec des circuits spécialisés pour la gestion de l’équipement, des circuits de communication avec l’ordinateur principal, et un “moniteur” gérant un micro-processeur

Moniteur ou driver

Page 11: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 11

Moniteur Un moniteur a une vocation déterminée

Service bien défini et toujours le même

Programme chargé de contrôler un équipement

ROM : contient le programme sous une forme inaltérable

RAM : mémoire de travail

Fournit une interface “standard” du point de vue logiciel

Le matériel est “propriétaire”

L’interface répond à une spécification “universelle”

Exemples :

disque à la norme SCSI, IDE

imprimante “postscript”

Page 12: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 12

Difficulté de réaliser les entrées/sorties sur la machine nue

Appel de sous-programmes utilitaires liés avec le programme principal

Chargement à chaque exécution, taille importante des applications

Exemple : printf

Appel de sous-programmes “systèmes” toujours présents

“Noyau” [kernel] du système d’exploitation

méthodes “spéciales” d’appel : “appel système”

une instruction spécifique génère une interruption (trap)

Page 13: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 13

Appel système Similaire à un appel de sous-programme :

Passer des paramètres

Réaliser une fonction

Obtenir un résultat [code de retour]

Différence : “changement de mode”

Passage du “mode utilisateur” au “mode système”

Page 14: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 14

Modes kernel ou “mode système” Permet l’utilisation d’instructions “privilégiées”

interdites en mode programme et provoquent une erreur [exception]

permet l’accès à toutes les ressources de la machine

gestion des périphériques

ensemble de la mémoire

L’accès aux matériel oblige de passer par le mode Noyau ce qui protège la machine.

Page 15: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 15

Gestion du changement de mode Sauvegarder l’état du programme courant

Registres

Indicateurs d’état : PSW “Program Status Word”

Passer en “mode système”

Décoder la raison d’être du changement

Décoder les paramètres

Page 16: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 16

Passage en “mode système” Évènements synchrones

Instruction spéciale

Requête au système

Erreur du programme : “exception”

Instruction illégale

Écriture dans une zone de mémoire protégée

Évènements asynchrones

Interruption “extérieure”

Provoquée par l’utilisateur [bouton reset]

Provoquée par un moniteur gérant un périphérique externe

Page 17: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 17

Comment fonctionne une interruption ? Une interruption arrive “n’importe quand”

Provoquée par le moniteur, ou le contrôleur d’une carte périphérique

Changement de niveau électrique sur une/+ pattes du processeur

Matériel : la “nature”, ou le “niveau” sont pris en compte

Ensemble d’adresses de sous-programmes spécialisés pour chaque type d’interruption : le “vecteur d’interruption”

Instruction de “retour” d’interruption

Page 18: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 18

Gérer l’interruption Être complètement transparente au programme en cours - au

moins pour une E/S

Attente de la fin de l’instruction en cours

Sauvegarde : registres, pile, indicateurs d’état, pointeur d’instruction

Un code spécifique gère l’interruption

Peut-on interrompre ce code ?

Masquage/démasquage des interruptions

Différents niveaux d’interruptions :

priorités relatives des interruptions

Page 19: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 19

Les interruptions du 80x86

16 interruptions et exceptions prédéfinies

“vecteurs” 0 à 8, 10 à 14, 16, 18

224 “interruptions” définissables par l’utilisateur

0 Division par zéro1 Debug2 Interruption Externe non masquable3 Breakpoint [INT 3]4 Overflow6 Code opération illégal7 Processeur mathématique absent13 Protection mémoire19-31 Réservé

Page 20: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 20

Vision applicative du 80x86 Registres et mémoire visibles par le programmeur

Mémoire4 Go

EIP

Page 21: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 21

Un exemple : le BIOS du PC “Basic Input/Output System”

A quoi sert le BIOS ?

Mise en œuvre du PC au démarrage

“POST” : Power-On Self Test

Charger des programmes depuis une disquette ou un disque dur

Charger le DOS - Système d’opération du PC

Assurer une gestion élémentaire des périphériques

Clavier, Écran, Ports d’E/S, cartes vidéo, etc...

Page 22: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 22

Sous quelle forme se présente le BIOS

En général, une ROM

Utilise une partie de la RAM

Gère une mémoire CMOS rémanente

Décrit la “configuration” du système

Tous les BIOS sont différents : cartes mères, périphériques, bus, constructeur…

Page 23: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 23

Système Exploitation : Le DOS “Disk Operating System”

MS-DOS

Conçu par Microsoft à la demande d’IBM

Première version : 1980

But :

Gestion de plus haut niveau des périphériques

Gestion du système de fichiers

Enchaînement des tâches

Page 24: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 24

Les services du DOS S’obtiennent à travers l’instruction INT 21h

Paramètres dans des registres

Un certain registre (ah) contient un numéro de fonction

Autres paramètres éventuels dans des registres

MS-DOS préserve les valeurs des registres(sauf s’il fournit des résultats dans certains d’entre eux)

Page 25: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 25

Autres types de fonctions Gestion de l’heure / date

Lire, écrire les informations concernant l’heure et la date

Maintenues par un mécanisme spécifique : RTC, “real time clock”

Gestion de la mémoire

Allouer un bloc de mémoire

Libérer un bloc de mémoire

Modifier la taille d’un bloc de mémoire

Possibilité d’influer sur les stratégies d’allocation

Page 26: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 26

Gestion du système de fichiers Fonctions de haut niveau

Ouverture de fichiers

Nom du fichier, nature de l’accès [lecture, écriture, màj]

Création de fichiers

Fermeture de fichiers

Effacement, renommage de fichiers

Lecture, écriture, déplacement de pointeur, etc...

Traitement des anomalies, comptes-rendus

Page 27: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 27

Résumé : BIOS et DOS BIOS : un “moniteur résident” qui offre des fonctions de bas

niveau, et permet le chargement de DOS

Fournit à DOS une vision “standard” de la machine

DOS : un système d’exploitation qui :

Assure l’enchaînement & la gestion des tâches

Fournit aux programmes des services de haut niveau :

gestion de la mémoire

gestion des périphériques

en particulier, système de fichiers

Page 28: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 28

Notion de “Tâche” DOS ne permet qu’un “travail” à la fois :

Le programme de l’utilisateur,

...ou DOS lui-même, réalisant une opération pour le compte de ce programme

Système monotâche

Avantages :

simplicité de conception, taille raisonnable, etc.

Inconvénient :

utilisation médiocre des ressources de la machine

Page 29: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 29

Système Multitâches Partage les ressources entre plusieurs processus

Ressources : mémoire, processeur, périphériques…

Processus : un programme en cours d’exécution

Caractéristiques :

Système plus complexe

Nécessite des ordinateurs disposant de plus de ressources

Permet une meilleure utilisation des caractéristiques de la machine

Exemple : programmes réalisant des E/S

Page 30: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 30

Système Multi-utilisateurs Notion d’utilisateur :

Personne “autorisée” à utiliser la machine

Mécanisme d’authentification

Notions de droits relatifs à une ressource [ex: fichier]

Problèmes de protection et de partage des ressources.

Peu de différences avec un système multi-tâches

Page 31: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 31

Que partager : L’unité centrale Plusieurs programmes peuvent s’exécuter en même temps

Une seule CPU, mais...

un programme réalise des E/S, pendant lesquelles la CPU est “inactive”

un autre programme peut utiliser la CPU pendant ces attentes

Comment s’assurer d’un partage de temps équitable

Permettre à tous les programmes de progresser régulièrement

pouvoir interrompre un programme, par exemple à intervalles de temps fixes : les horloges, “timers”

Utiliser au mieux la CPU

Page 32: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 32

Que partager : La mémoire centrale Plusieurs programmes peuvent cohabiter en mémoire

“bonne programmation”

mécanismes de protection mutuelle

système de gestion matérielle de la mémoire

Comment fournir aux programmes la mémoire dont ils ont besoin, au moment où ils en ont besoin ?

gestion de la mémoire

Les périphériques

Les périphériques physiques

Imprimante :queues d’impression, ou “spool”

Disques :systèmes de gestion de fichiers

Page 33: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 33

Comment partager : File d’attente Imprimante, requêtes disque

Les données à imprimer sont conservées dans une file d’attente

espace mémoire, espace disque, priorités, etc...

Les requêtes passent par l’intermédiaire de “tampons”

une suite d’écritures de petite taille sur un fichier est transformée en une seule écriture d’élément de taille plus importante

Page 34: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 34

Périphériques Non directement connectés au bus

Grande variété des équipements

La CPU ne peut “connaître” tous les types/modèles de périphériques : commandes très variées

Débits non compatibles avec celui du bus

Différentes représentations des données

Module(s) d’entrée/sortie

Assurer l’interface entre :

CPU & Mémoire

Équipement

Page 35: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 35

Module d’entrée/sortie Interface processeur/équipement

Vision “standard” d’une catégorie d’équipement

disque, imprimante, etc

Réalise une partie de la “gestion” du périphérique

libère la CPU pour d’autres tâches

Interface fournissant :

Contrôle

État

Données

Page 36: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 36

Mémoire : les besoins L’informatique a toujours besoin de plus de mémoire

Programmes plus ambitieux

Programmes plus gourmands en mémoire

A l’échelle d’une machine :

plus de mémoire = plus de ressources, meilleure utilisation de celles-ci

A l’échelle d’un programme :

plus de mémoire = plus de “puissance individuelle”

besoins multipliés par 1.7 chaque année

Page 37: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 37

Mémoire : les besoins de l’OS De la mémoire, encore plus de mémoire

Besoins propres du système :

TSM [1976] : 8 ko. Solaris 2.4 [1996] : 14 Mo.

Besoins “auxiliaires” du système :

Outils divers [mail, serveurs ftp, http, gestionnaire de fenêtres…]

Répondre aux besoins des utilisateurs

Les applications deviennent de plus en plus grosses, tout comme les données manipulées

Le multi-tâche encourage à exécuter plusieurs applications simultanément

Page 38: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 38

Mémoire : les besoins des programmes Mémoire Globale

Variables et tableaux : toujours plus

Mémoire locale

Allocation automatique [connue du compilateur]

Allocation dans la pile [alloca]

Mémoire dynamique

Allocation dynamique sous contrôle du programme

new/delete, malloc/free

Allocation “transparente” [sous-programmes système, E/S, fenêtres…]

Page 39: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 39

La vision “utilisateur” Gestion dynamique de la mémoire

C : malloc, free

C++ : new, delete

Comment : l’allocateur de mémoire

Procédures qui :

reçoivent les requêtes de l’application

gèrent de la mémoire, statique ou demandée au système

divisent les gros blocs pour répondre à des demandes fines

rassemblent les petits blocs libres si possible

Page 40: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 40

malloc(), free() Allocation dynamique de mémoire dans le tas

Fournir un bloc de mémoire de la taille demandée, situé à une adresse mémoire “convenable” void * malloc(size_t size);

Prise en compte des particularités d’adressage du processeur

Libérer un bloc de mémoire void free(void * ptr);

ptr doit être null ou l’adresse d’un bloc fourni par malloc

Page 41: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 41

new, delete() Vision C++

Création d’un objet = allocation de mémoire + initialisation

Destruction d’un objet = gestion de la destruction + libération de la mémoire

Primitives de “haut niveau”

On peut utiliser new, delete, malloc et free dans un même programme

Les objets créés par new doivent être libérés par delete

La mémoire allouée par malloc doit être libérée par free

Page 42: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 42

Gestion de mémoire par chaînage

après une quatrième allocation

zone libre

Informations de contrôle

après deux allocations

après une libération

après une troisième allocation

La mémoire devient fragmentée. Une nouvelle demande de mémoire peut échouercar il ne reste plus de bloc de mémoire contiguë de taille suffisante

Page 43: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 43

Aspects Type d’allocation

First fit : le premier rencontré en partant du début de la liste

Next fit : un first fit où l’on explore à partir de la position courante

Best fit : on parcourt toute la liste pour trouver le “meilleur” libre

Worst fit : on parcourt tout et on choisit le plus gros… Curieux ?

Fragmentation de la mémoire

Beaucoup de petits morceaux ne remplacent pas un gros bloc

On ne peut, en général, pas déplacer les blocs de manière “transparente” aux programmes

Influer sur l’algorithme d’allocation n’est qu’un pis-aller

Page 44: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 44

Améliorations possibles Caractéristiques du chaînage

Simple : allocation/désallocation plus rapide

Double : réunification des blocs plus simple

Séparer la liste des blocs libres et des blocs utilisés

Listes multiples

On maintient les blocs libres dans différentes listes, en fonction de leur “classe” de taille

allocation plus rapide

libération plus complexe

Page 45: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 45

Bugs typiques dans les programmes Utiliser de la mémoire qui n'est pas/plus allouée

Fournir en résultat d’une fonction l’adresse d’une variable locale

Oublier de désallouer une zone allouée par malloc()

Désallouer deux fois une zone allouée par malloc()

Déborder d’une zone allouée par malloc()

Ne pas tester le résultat de malloc()

Utiliser alloca() sans en comprendre le fonctionnement

Mélanger les allocations de haut et de bas niveau

malloc/free et new/delete

etc…

Page 46: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 46

Commande de procédés industriels. Temps réel

Un ordinateur qui contrôle un procédé industriel doit veiller sur un ensemble de paramètres physiques et engager des actions en fonction de leurs valeurs. Les délais de réponse peuvent être très courts et doivent être toujours garantis

Les informations doivent être acquises sur les différents dispositifs d'entrés périodiquement. Le traitement de ces informations est effectué en un temps maximum T.

Les fonctions de sécurité sont prioritaires avec un outil de gestion des priorités.

Page 47: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 47

Systèmes transactionnels Gérer un ensemble d'informations structurées de

grande dimension (Go), appelé base de données . Ces informations sont consultées, modifiées simultanément à partir d'un grand nombre de points d'accès, terminaux ou micro-ordinateurs.

En cas d'interruption du service il faut pouvoir redémarrer les nombreuses activités parallèles de façon cohérente sans perte d'information, dans l'état exact où était le système avant cette interruption.

On mesure les performances en nombre de transactions par secondes (TPS)

Page 48: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 48

Systèmes en temps partagé Donner aux utilisateurs l'impression qu'ils sont

chacun seul en face de la machine. Il faut donc ajouter les services adéquats pour tenir compte de l’utilisation par un grand nombre de personnes.

Exemple : 90% du temps est utilisé pour la réflexion, soit 10% d’utilisateurs actifs. Si le SE alloue des tranches de temps de 50 ms à chacun temps d'attente moyen = 0,5s pour 10 utilisateurs

Page 49: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation

EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 49

Donner un exemple de SE pour chaque type

Ordinateur individuel

DOS, Windows 95, 98 ,Millénium, Linux

Temps réel

MVS, RTE, …

Systèmes transactionnels

Gros Système, VMS

Systèmes en temps partagé

Les UNIX, Windows NT Server, W2000, XP à voir?