BOUZEFRANE Samia Les Systèmes d exploitation : cours et exercices corrigés UNIX, Linux et Windows XP avec C et Java Dunod 2003

Documents pareils
Partie 7 : Gestion de la mémoire

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Cours Programmation Système

Introduction aux Systèmes et aux Réseaux

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Linux 1: Présentation

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

GESTION DE LA MEMOIRE

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Architecture des ordinateurs

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Unix/Linux I. 1 ere année DUT. Université marne la vallée

LA mémoire principale est le lieu où se trouvent les programmes et les

Exécutif temps réel Pierre-Yves Duval (cppm)

Chapitre 4 : Outils de communication centralisés entre processus

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

gestion des processus La gestion des processus

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

La mémoire. Un ordinateur. L'octet. Le bit

Systèmes d exploitation

2011 Hakim Benameurlaine 1

Qu'est-ce qu'un processus: Définitions

Architecture des ordinateurs. Environnement Windows : sauvegarde

la virtualisation pour quoi faire?

Cours A7 : Temps Réel

Cours de Systèmes d Exploitation

Réparer un disque dur passé en RAW

Gestion de la mémoire

Clients et agents Symantec NetBackup 7

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

CH.3 SYSTÈMES D'EXPLOITATION

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Gestion répartie de données - 1

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Tutoriel Création d une source Cydia et compilation des packages sous Linux

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Charte d'utilisation des infrastructures de la plate-forme bioinformatique Genotoul

Chapitre I Notions de base et outils de travail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Personnes ressources Tice. Académie de Rouen


Le système GNU/Linux IUP NTIC /11/05

Système clients serveur Kwartz Vulgarisation, identification, dossier personnel

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

Projet gestion d'objets dupliqués

Concept de machine virtuelle

ManageEngine EventLog Analyzer. Les bonnes critiques et recommandations

Réparer un disque dur passé en RAW

Licence Sciences et Technologies Examen janvier 2010

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Manuel d'installation de GESLAB Client Lourd

Guide de l'administrateur Citrix Personal vdisk 5.6.5

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

Serveurs de noms Protocoles HTTP et FTP

SafeGuard Enterprise Guide des outils. Version du produit : 5.60

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Programmation système en C/C++

FreeNAS Shere. Par THOREZ Nicolas

Utiliser Glary Utilities

1 Prise en main des machines

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Gestion des processus

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

Cloner un disque dur

Annexe : La Programmation Informatique

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)

Chapitre 3 : Système de gestion de fichiers

Séquencer une application

Fonctionnalités d Acronis :

GESTION DE L'ORDINATEUR

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

1 Démarrage de Marionnet

Guide utilisation SFR Sync. SFR Business Team - Présentation

<Insert Picture Here> Solaris pour la base de donnés Oracle

TP 1 Prise en main de l environnement Unix

Samsung Drive Manager FAQ

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

LES SYSTÈMES DE FICHIERS

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

WEMAG 99, FAX:

Installation FollowMe Q server

Cours de Système : Gestion de Fichiers

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

Virtualisation open source État de l'art

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Système et réseaux (SR1) Gestion des utilisateurs

Transcription:

Plan de l'exposé 2 III Implantation d'un système 1 Introduction à Unix 2 Structure d'un système 3 Les processus 4 La mémoire Bibliographie BOUZEFRANE Samia Les Systèmes d exploitation : cours et exercices corrigés UNIX, Linux et Windows XP avec C et Java Dunod 2003 Pour une étude avancée : SILBERSCHATZ,GALVIN,GAGNE Operating System Concepts with Java Wiley 2007 RIFLET La programmation sous Unix Ediscience Historique : GOODHEART,COX The Magic Garden Explained. The Internals of Unix system V release 4 Prentice Hall 1994 C.KAISER Systèmes Informatiques Cours B4 Polycopié CNAM E.GRESSIER Projet CDI Introduction à UNIX 1

III Implantation d'un système 1 Introduction à Unix Origines d'unix Deux principales versions : 1969 Naissance d'unix Ken Thompson, puis Dennie Ritchie PDP-11 Laboratoires Bell ----> Unix Système V 1978 Université de Berkeley VAX ---> 4.4 BSD Standardisation de l'interface des appels systèmes Norme POSIX Unification système OSF/1 1991 Naissance de Linux Linus Thorvalds conçu pour PC et Internet 2

Principes de conception d'unix Système conçu par et pour des programmeurs - Modularité et flexibilité - Simplicité des algorithmes - Interactivité et outils d'aide à la programmation - Portabilité la plupart des programmes sont écrits en C il suffit de disposer d'un compilateur C pour la machine cible - Programmation de bas niveau à partir de C Caractéristiques Systèmes multiprocessus : multiutilisateurs, multitâches Organisation basée sur un système de fichiers hiérarchisé : arborescence - Environnement d'exécution d'un utilisateur sous-arbre (répertoire) l'interpréteur du langage de commande (shell) est un processus utilisateur Machine virtuelle pour l'utilisateur Uniformisation des mécanismes d'accès aux objets externes "Tout est fichier" : programmes, données des utilisateurs programmes systèmes périphériques 3

2 Structure d'un système Exemple d'unix Système multiprogrammé et temps partagé 4

Interface de programmation Appels système Ordonnanceur UC sauvegarde contexte PU chargement contexte processus traitement restauration contexte PU Utlisateur Mode utilisateur Processus système Mode noyau Types d'appels systèmes Manipulation de fichiers accès par un chemin dans l'arborescence des répertoires Unix - périphériques /etc/ttys - programmes systèmes /usr/bin - fichiers utilisateurs /usr/... appels : create, open, read, write, close etc... Gestion des processus fork, exec, exit, kill, wait, sleep,wake-up... Signaux conditions exceptionnelles --> interruption logicielle référence mémoire invalide, alarme, instruction machine illégale exemple ctrl Z --->SIGINT suspension du processus en cours 5

3 Les processus Processus Programme en exécution code, données + mot d état programme et contexte d'exécution Le mot d état programme (PSW) : état de la machine compteur du programme (Compteur Ordinal) registres de l'uc Le contexte d exécution statut d'accès à l'uc (priorité) information sur la mémoire allouée au processus informations statistiques Informations d'e/s (fichiers,périphériques alloués) Etc états d'un processus en multiprogrammation nouveau création interruption fin terminé prêt allocation CPU élu E/S ou événement bloqué E/S ou attente d'événement 6

Ordonnancement des processus Files d'attente + ordonnanceur pour chaque ressource 7

Opérations sur les processus Création Terminaison normale ou erreur Suspension,réveil Coopération entre processus Processus concurrents : indépendants ou coopérants - partage d'information exemple fichier partagé - synchronisation : division d'un programme en plusieurs tâches concurrentes Communication entre processus partage de mémoire messages 8

Cas d'unix Représentation d'un processus en mémoire pile noyau contexte utilisateur pile utilisateur données utilisateur code utilisateur pile noyau exécution de programmes systèmes pour l'utilisateur lors d'appels système contexte utilisateur contexte UC (registres généraux, pointeur de pile, pointeur table des pages) environnement table des pages table des processus pile utilisateur variables temporaires, adresse retour de procédures... 9

Vue d'un processus par le système table des processus Id,priorité --> fils pile noyau contexte utilisateur pile utilisateur données utilisateur code utilisateur table codes partagés espace système tables résidentes en mémoire espace utilisateur "swappable" 10

Création de processus 1 utilisateur = plusieurs processus appel système fork crée une copie du processus appelant : contexte, pile, code, données un lien dans la table des processus de l'utilisateur Remarques - En fait, le code n'est pas dupliqué mais partagé (réentrance des programmes), les données ne sont copiées que si elles sont modifiées par le père ou par le fils, le fils aura toujours initialement la vue des données lors du fork - Les fichiers du père ouverts au moment du fork sont partagés entre le père et le fils Comment savoir si un processus exécute le code du père ou du fils? fork renvoie un identifiant de processus pid pid=fork(); si fork réussit pid>=0 si pid<0 alors échec sinon si pid>0 alors code du père sinon code du fils - un processus peut avoir un arbre de descendants 11

Exemple : gestion de terminaux init login T1 login shell T2 login shell T3 cp A l'inialisation, init est activé -- lecture /etc/ttys Création d'un fils pour chaque terminal; mise en veille de init jusqu'à ce qu'un fils se termine exécution des fils programme login création du processus shell tant que non terminé faire attente d'une commande création du processus commande exécution de commande La commande ps permet de connaître les processus d'un utilisateur et les processus système s'exécutant pour lui 12

Création d'un processus pour exécuter un programme création appel système fork() exécution des commandes : appel système exec() charge un nouvel exécutable en mémoire terminaison d'un processus exit() attente de la terminaison d'un fils wait() processus shell fork processus père wait processus shell processus fils processus zombie exec programme exécution exit 13

Les états d'un processus 14

Ordonnancement du processeur - temps partagé : allocation par quantum de temps (0.1s) aux processus - ordonnancement selon priorités : à chaque processus est associée une priorité processus du noyau plus forte priorité (p<0), non préemptible processus utilisateurs plus faible priorité (p>0), préemptible, périodiquement (1 s) réévaluation des priorités - File d'attente des processus prêts tableau de files par priorité recyclage dans la file en fin de quantum (tourniquet) - Activation de l'ordonnanceur interruption horloge demande d'e/s fin d'e/s attente d'un événement 15

4 La mémoire Espaces d adressage d un programme Espace d'adressage physique : ensemble des adresses mémoire centrale des instructions et des objets que le programme référence Espace d'adressage logique (virtuel) En général, le programme est enregistré sur disque comme un fichier binaire exécutable, l ensemble d adresses mémoire ne prenant pas en compte l implantation du programme en mémoire. Correspondance entre les espaces d' adressage logique et physique Quand? - à la compilation : adresse d'implantation en mémoire connue code absolu adresses du programme=adresses mémoire Inconvénient si l'adresse d'implantation change, il faut recompiler - au chargement : code relatif (relogeable, translatable) - à l'exécution : programme peut changer de place en mémoire en cours d'exécution. Un dispositif matériel spécifique (Memory Management Unit) transforme une adresse logique en une adresse physique au moment de l exécution. 16

Va-et-vient (swapping) Principe Manque de mémoire => transfert de l'image mémoire du processus sur disque Va (swapping out) Assez de mémoire =>chargement du processus Vient (swapping-in) pile noyau contexte utilisateur pile utilisateur données utilisateur code utilisateur espace utilisateur "swappable" 17

Fonctionnement - manque de mémoire allocation dynamique de mémoire : un processus augmente son espace mémoire au cours de son exécution, l'espace libre diminue au détriment d'autres processus. - le choix d'un processus : réalisé par le"swapper"(ordonnancement des processus pour la mémoire) périodiquement (4s) réévaluation des processus à retirer et à charger critères de choix : retrait : inactivité d'un processus depuis longtemps, taille du programme, ancienneté de chargement chargement ; swappé depuis longtemps, petit programme - les actions du système retrait mise à jour du descripteur de processus, libération de la mémoire, libération des ressources alllouées au processus problèmes : entrées sorties pendantes, attente d'un événement chargement mise à jour du descripteur, allocation de mémoire, allocation d'autres ressources Remarques Le swapping n'est en général utilisé qu'en dernier ressort dans les systèmes Unix (Version Berkeley) coût de transfert d'un processus en mémoire; la gestion est en amont par le mécanisme de pagination 18

Allocation contigüe Partition unique Monoprogrammation protection du moniteur : Registre de limite translation d'adresse : Registre de translation (relocation) RL RT Mémoire UC @log < oui @ph non erreur MMU Problème : insuffisance mémoire pour le processus ->recouvrements 19

Partitions multiples Multiprogrammation : plusieurs programmes en mémoire Protection du système Protection entre utilisateurs Registre de translation pour chaque programme Ordonnanceur à long terme Les programmes sont stockés sur disque : Choix dans la file d attente d un programme à exécuter Les problèmes Choix d une zone de mémoire adéquate (first fit,best fit, worst fit) La fragmentation interne (toute la zone allouée n est pas utilisée) La fragmentation externe : les allocations successives créent des trous ; Solution : compactage mais difficile et coûteux 20

La pagination Principe Allocation par blocs de taille fixe : Mémoire physique = suite de blocs de taille fixe : cases Mémoire logique = suite de blocs de taille fixe : pages Taille case = taille page Correspondance par le MMU(Memory Management Unit) Adresse logique n de page déplacement 21

22

Mémoire virtuelle Objectif : offrir à l'utilisateur un espace d'adressage supérieur à la place mémoire allouée Principe de localité un processus exécute pendant un certain temps une partie du code (localité temporelle) et utilise une partie des données (localité spatiale). Idée ne maintenir en mémoire que le code et les données utiles, l'ensemble du programme étant conservé sur disque de pagination --> allocation d'espace disque à la création des processus Mémoire virtuelle paginée 23

Table des pages d'un processus Fonctionnement MMU Recherche d'une instruction ou d'un opérande en mémoire si page présente en mémoire alors adresse= n case + déplacement sinon défaut de page Défaut de page : appel système - si case libre alors charger la page dans la case - sinon libérer une case : choisir une case occupée; transférer la page correspondante sur disque; charger la page en défaut dans la case; Choix d'une case : algorithme de remplacement de pages par exemple choisir la page la plus anciennement référencée (LRU) 24

Ecroulement du système Problème : beaucoup de processus en mémoire =>peu de place mémoire par processus =>nombreux défauts de pages => file d'attente au disque augmente=>ralentissement des processus écroulement du système Remèdes Abaisser le taux de multiprogrammation Unix utilise le va-et-vient par exemple 25