Chapitre 4: Gestion des processus - e8me-2015-2016-   (cr©ation --> disparition) Version

  • View
    213

  • Download
    0

Embed Size (px)

Text of Chapitre 4: Gestion des processus - e8me-2015-2016-   (cr©ation --> disparition)...

  • 1

    Chapitre 4: Gestion des processus

    Version septembre 2015 N186

    Plan de travail

    Qu'est-ce qu'un processus ?

    concept, identification

    Cration de processus

    Description d'un processus

    Environnement dun processus

    Terminaison dun processus

    Information sur un processus (tat)

    Chargement dun processus

  • 2

    Version septembre 2015 N187

    Qu'est-ce qu'un processus: Dfinitions

    Instruction = indcomposable et indivisible

    Processeur = ...

    Processus = suite temporelle d'excutions d'instructions

    Processus = excution d'un programme (instructions + donnes)

    Processus = entit dynamique (cration --> disparition)

    Version septembre 2015 N188

    Les processus (systme temps partag)

    Ordonnanceur : un processus un cotNcessit davoir des oprations atomique (appels systmes)

    Un processeur

    Activation: chaque appel systme ou interruption

  • 3

    Version septembre 2015 N189

    Les processus (systme temps partag)

    Ordonnanceur : un processus un cotNcessit davoir des oprations atomique (appels systmes)

    Plusieurs processeurs ( n ?)

    Version septembre 2015 N190

    Notion de processus UNIX (1)

    Approche intuitiveUNIX = systme "temps partag

    Plusieurs processus en mme temps

    Un seul processus actif

    Attente des autres (dans/hors mmoire)

    Contenu d'un processusCode

    Donnes

    Valeur des registres gnraux

    tat des fichiers ouverts

    Rpertoire courant

    ...

    Le ncessaire pour l'excution

    et la reprise d'excution

  • 4

    Version septembre 2015 N191

    Notion de processus UNIX (2)

    Processus (quelques centaines / machine)Associ un utilisateur

    Sur une seule machine ou distribu sur le rseau

    Comptition entre processus

    Varit de mcanismes de communication / synchron.

    Ordonnanceur: mode privilgi, dans le noyau

    Sous-processus (Threads quelques milliers / machine)Partage donnes, code, M.V. mais pile excution

    Mme utilisateur, mme machine

    Trs peu dinfos, peu de comptition,

    Ordonnanceur: simple, mode utilisateur

    Version septembre 2015 N192

    Identification dun processus

    PID

    Processus P

    Process Identifier : unique gnr0

    12

    pid

    0: scheduler, swapper (intgr au noyau) 1: /sbin/init (pre de tous les processus) 2: gestionnaire de pagination (intgr au noyau)

    50

    200

    Proc. utilisateurDmons

    init : excute /etc/rc. (initial.) gre mono ou multi processus privilgi lance processus connexion

    Table des Processus (TdP)

  • 5

    Version septembre 2015 N193

    Contexte d'un processus:

    Notion de rgion (1)

    Pile Noyau

    Zone Utilisateur

    Rp.c

    oura

    nt

    Rp.

    raci

    ne

    Fich. ouverts

    x

    rw

    4K

    10K

    20K

    rw

    Table Rgions

    code

    pile

    Table Rgions

    donnes

    partage

    prive

    prive

    Version septembre 2015 N194

    Contexte d'un processus:

    Notion de rgion (2)

    StructurePointeur: inode du fichier associ

    Type: code, pile, donnes prives, partages

    Taille

    Localisation (mmoire physique)

    Etat: Fonction (verrouille, demande, en chargement, valide)

    Compteur: nombre de processus qui la rfrence

    OprationsAllocation/libration

    (D)Verrouillage

    Attacher/dtacher une rgion

    ... Exemple: voir appels systmes exec, sbrk

  • 6

    Version septembre 2015 N195

    Contenu (rgions) :Code du programme

    Donnes

    Pile utilisateur du processus

    Mmoire partage

    Quelques lments :Compteur ordinal: adresse virtuelle

    Registre d'tat processeur

    Elment de la table des processus

    Etat + contrle gnral du processus

    Correspondance des adresses

    virtuelle / physique

    Contexte d'un processus :

    Autres lments (1)

    Version septembre 2015 N196

    Contexte d'un processus :

    Autres lments (2)

    Quelques lments (suite)Rpertoires: courant, racine

    Table des descripteurs

    Pointeur (table des processus)

    Identificateurs de l'utilisateur

    Compteurs de temps

    Tableau de raction aux signaux Voir cours gestion des signaux

    Terminal de connexion ventuel (voir ps)

    Champs: erreur, valeur de retour appels systmes

    Champs limites: taille processus, ...

    Modes de permission (voir umask)

    Paramtres E/S: volume, adresse, ...

  • 7

    Version septembre 2015 N197

    Intgration dans le systme:

    Table des processus (1)

    Pages Mmoires

    Code 1

    Pile 1

    Table des Rgions

    Donnes 1

    Donnes 2

    Pile Noyau

    Zone Utilisateur

    Rp.c

    oura

    nt

    Rp.

    raci

    ne

    Fich. ouvertsProcessus 1

    Table des Processus (TdP)

    Processus 2

    Processus 1

    Version septembre 2015 N198

    Intgration dans le systme:

    Table des processus (2)

    Contenu d'un lmentEtat d'un processus

    Localisation de la zone U Mmoire principale/secondaire

    Identificateurs d'utilisateur Voir gestion des signaux

    Identificateurs de processus Lien de parent

    Evnement ayant provoqu le sommeil (sleep)

    Paramtres d'ordonnancement Ordre d'excution

    Signaux envoys au processus (non traits)

    Paramtres de calcul de priorit Temps d'excution, ...

  • 8

    Version septembre 2015 N199

    Intgration dans le systme:

    Entre-sortie

    Pile Noyau

    Zone Utilisateur

    Rp.c

    oura

    nt

    Rp.

    raci

    ne

    Fich. ouverts

    Pile Utilisateur

    Donnes Table Rgions

    Table des Inodes Table des Fichiers

    Version septembre 2015 N201

    Etats d'un processus1

    2

    6 8

    5

    4

    3

    7

    9

    Endormi (hors memoire)

    Pret a s'executer (hors memoire)

    Execution (mode utilisateur)

    Creation

    Execution (mode noyau)

    Endormi (en memoire)

    Pret a s'executer (en memoire)

    Interruption

    Retour Appel systeme

    Preempte

    Reordonnancement

    Preemption

    est-equivalent

    S'endort

    Reveil

    processus

    Assez de memoire

    Transfert

    Manque de memoire(swapping ?)Reveil

    Transfert

    zombie

    "exit"

    ou interruption

  • 9

    Version septembre 2015 N202

    Changements d'tats d'un processus

    Processus en attente:

    Etats: endormi-en-mmoire, endormi-transfr

    Rveil (changement d'tat): par interruption

    Premption:

    Mode utilisateur: oui

    Mode noyau: Oui si se termine

    Excution d'une interruption: passage en mode noyau

    Prt s'excuter en mmoire

    Ordonnanceur / horloge

    Gestion des priorits

    Version septembre 2015 N203

    Ordonnancement des processus:

    principes de base (1)

    Politique gnrale

    Slection de l'lu:

    {prempt, en mmoire, prt s'excuter}

    Plus haute priorit ou Maxtemps (prt s'excuter)

    Changement de processus:

    dpassement du quantum de temps

    Re-valuation de la priorit:

    mode noyau mode utilisateur

    mode noyau endormi-en-mmoire

    rajustement priodique: {prt s'excuter}

    Gestion des changements d'tats

  • 10

    Version septembre 2015 N204

    Ordonnancement des processus:

    principes de base (2)

    Calcul de la prioritCalcul du temps utilis en excution

    Recalcul de la priorit:

    Changement de files de priorit

    Paramtres:

    Priorit dynamique :

    Le moins rcemment en excution

    Raison de l'attente

    Priorit statique (nice)

    En pratiqueProgramme interactif: plus prioritaire

    U.C. rcemment utilis: moins prioritaire

    Version septembre 2015 N205

    Utilisateurs et groupes

    effectifs/rels

    Le bit SETUIDStructure processus: utilisateur effectif/rel

    l'utilisateur associ au login (rel)

    avec les droits d'un utilisateur donn (effectif)

    chmod : chmod u+s fichier (fichier excutable)

    exemple: commande passwd

    idem pour le groupe

    Utilisation des groupes secondaires groupe primaire/standard vs groupes

    secondaires

    newgrp : prend le groupe pass en paramtre

    Vrification des droits (groupe secondaire ?)

    Fichier /etc/group

  • 11

    Version septembre 2015 N207

    Norme POSIX

    Routine Description

    pid = fork () Cration fils

    e = waitpid (pid,&etat,opts) Attendre fils

    e = execve (nom,argv,envp) Remp. image

    exit (etat) Term. process.

    e = sigaction (sig,&act,&oact) Spcif. action

    e = kill (pid, sig) Envoi signal

    residuel = alarm (seconde) Prog. SIG...

    pause() Susp. process.

    Version septembre 2015 N208

    Processus et Windows

    (sous-systme POSIX)

    Norme POSIX 1 : Contrle de processus Communication inter-processus Entres/sorties caractres

    Ne contient pas : cration de processus lger, cration de fentre RPC et sockets

    Services Windows pour UNIX

    2000 fonctions 300 utilitaires

    Pas daccs aux fonctions de Windows

  • 12

    Version septembre 2015 N210

    Cration dun processus (1)

    Nouveau pid, nouvelle entre dans la TdP

    hritage dinformations

    Qui sexcute? Quand? partir do?

    Partage : code mm. read_only

    Duplication : information donnes

    Version septembre 2015 N211

    Cration de processus (2)

    main(){res=fork()}

    530934

    jean

    PID: 5300

    0

    res:

    main(){res=fork()}

    034

    jean

    PID: 5309

    0

    res:

  • 13

    Version septembre 2015 N212

    Cration de processus (3)

    Appel systme fork

    Deux processus identiques