• Aucun résultat trouvé

Les processus

N/A
N/A
Protected

Academic year: 2022

Partager "Les processus"

Copied!
52
0
0

Texte intégral

(1)

1

Systèmes d’exploitation

Fonctions des systèmes d’exploitation

Nicolas Belloir

(2)

Les processus

(3)

Définition

Activité / Programme en exécution

Aspect actif vs. Aspect passif (programme / fichier) Unité de travail dans la plupart des systèmes

d'aujourd'hui

Objectif : Exécution concurrente / multiprogrammation / temps partagé

(4)

Quelques aspects des processus

Les processus utilisent des ressources (processeur, mémoire, E/S, …)

Processus système vs. Processus utilisateur

Le SE est responsable de la gestion des processus

Création / destruction allocation de ressources Ordonnancement

Synchronisation

(5)

Implantation d’un processus

Eléments constituants d'un processus :

section de texte : le code du programme compteur d'instructions

contenu des registres pile d'exécution

section de données : variables globales

Deux processus peuvent exécuter le même programme mais ils ne partagent rien !

(6)

Etat d’un processus

Durant son exécution un processus est amené à changer d'état

Etats possibles d'un processus :

nouveau (en cours de création) en exécution (par le processeur)

en attente (d'un événement tel que fin d'E/S) prêt (attend d'être exécuté par le processeur) Terminé

(7)

Diagramme d'états

Remarque : à un instant donné t

un processus au plus est en exécution par le processeur plusieurs processus peuvent être prêts ou en attente

nouveau terminé

en exécution prêt

en attente

admis

interruption sortie

dispath de l'ordonnanceur

attente d'E/S ou d'événement terminaison d'E/S

ou d'événement

(8)

Commutation de processeur d'un processus à un autre

interruption ou appel système inactif

processus P0 système d'exploitation processus P1

sauver l'état dans le PCB0 recharger l'état depuis le PCB1

interruption ou appel système

inactif exécuter

exécuter

(9)

Bloc de contrôle de processus

PCB : Process Control Bloc pointeur état de

processus numéro de processus compteur de programme

registres

limites mémoire liste des fichiers

ouverts

. .

.

(10)

Contenu d'un PCB

Etat courant du processus

Compteur d'instructions : adresse de la prochaine instruction à exécuter

Registres de processeur : doivent être sauvegardés afin de reprendre l'exécution du processus là où elle a été

interrompue

Informations sur l'ordonnancement du processus : niveau

(11)

Contenu d'un PCB (suite)

Informations sur la gestion mémoire : valeur des

registres de base et de limite, tables de pages ou de segments

Information de comptabilisation : temps CPU et réel, limite de temps, ...

Information de statut d'E/S : listes de périphériques alloués, des fichiers ouverts, ...

(12)

Ordonnancement des processus

Objectif : gérer l'accès concurrent aux ressources par les processus

Gestion par files d'attentes

file d'attente des travaux : tous les processus

file d'attente des processus prêts (liste chaînée de PCBs) file d'attente pour chaque périphérique

(13)

Diagramme des files d'attente

Représentation de l'ordonnancement

E/S file d'attente d'E/S requête d'E/S

tranche de temps expirée le fils

s'exécute

création d'un fils l'interruption

se produit

en attente d'une interruption

file des processus prêts UC

(14)

Ordonnanceurs

Ordonnanceur : programmes chargé de gérer l'ordonnancement

Ordonnanceur à long terme : dans un contexte de traitement par lots (mode batch)

Ordonnanceur à court terme : gère l'allocation du processeur

Ordonnanceur à moyen terme : pour le swap

(15)

Ordonnanceur à long terme

Contrôle le degré de multiprogrammation

Fréquence d'exécution faible (de l'ordre de la minute) Algorithme assez complexe et relativement coûteux :

prend en compte les caractéristiques des processus : processus tributaires du processeur vs. processus tributaires des E/S

objectif : mélange équilibré entre les 2 types

(16)

Ordonnanceur à court terme

Fréquence d'exécution élevée (< à 0,1 sec) Algorithme doit être efficace !

Si temps d'exécution = 0,01 sec alors 9% du temps perdu dans l'ordonnancement

(17)

Problème des systèmes interactifs

Sur certains systèmes interactifs comme Unix il n'y a pas d’ordonnanceur long terme (logique)

Si trop de processus (en particulier si beaucoup

d'utilisateurs) la mémoire ne peut plus les contenir tous Solutions :

"éjecter"des utilisateurs (très convivial !) swap

(18)

Ordonnanceur à moyen terme

Régule le degré de multiprogrammation

Transfert de processus de la mémoire vers les unités de stockage et inversement : permutation ou swapping

En général fonction du degré d'utilisation de la mémoire principale

Peut également permettre de réguler le dosage entre

processus tributaires du processeur et processus tributaires

(19)

Gestion du swap

swap in processus en mémoire auxiliaire swap out partiellement exécutés

file d'attente d'E/S E/S

UC fin file d'attente des

processus prêts

Ajout de l'ordonnancement à moyen terme au diagramme des files d'attente

(20)

Commutation de contexte

C'est la sauvegarde de l'état du processus courant et le chargement de l'état sauvegardé d'un nouveau processus Contexte = PCB

Coût de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines dispositifs

spéciaux pour la copie des registres) : de 1 à 1000 micro- sec

(21)

Gestion de processus

Organisation arborescente avec init comme racine

init commence par créer un processus getty qui initialise le terminal et demande un login

Puis un processus d'ouverture de session (login process) est créé, qui lit un mot de passe, le crypte et le compare à celui stocké dans le

fichier /etc/passwd

Si correspondance alors une session utilisateur est initialisée par le lancement d'un shell dont l'identifiant utilisateur est correctement positionné

L'identifiant utilisateur permet déterminer les permissions de l'utilisateur pour certains appels système

(22)

Information sur les processus

Un processus est identifié par son PID (Process IDentifier) : unique

Le PID est attribué par le système à la création Le père d’un processus est identifié par son PPID Un processus particulier : le processus init

PID = 1

Initialise un terminal par utilisateur connecté à la machine

(23)

La commande ps

La commande ps donne la liste des processus en exécution

-e affiche tous les processus

-C affiche tous les processus d’un certain nom -f affiche plus d’information (voir exemple) [belloir@scinfe100 belloir]$ ps –ef

UID PID PPID C STIME TTY TIME CMD root 1 0 0 Feb03 ? 00:00:21 init

belloir 18531 1 0 05:40 ? 00:00:00 xterm - title Terminal

belloir 18533 18531 0 05:40 pts/1 00:00:00 bash belloir 18562 18533 0 05:41 pts/1 00:00:00 ps -ef

(24)

La commande kill

La commande kill permet de terminer un processus

kill –signal PID

SIGHUP 1 fin du shell

SIGINT 2 interruption du programme SIGKILL 9 tuer le processus

SIGTERM 15 terminaison douce SIGQUIT 3 terminaison brutale SIGSTOP 17 stopper le processus

[belloir@scinfe100 belloir]$ kill -9 18531

(25)

La commande top

05:56:57 up 12 days, 15:24, 5 users, load average: 1,00, 1,00, 1,00 136 processes: 129 sleeping, 2 running, 1 zombie, 4 stopped

CPU0 states: 99,3% user 0,33% system 99,9% nice 0,0% iowait 0,15% idle CPU1 states: 0,3% user 0,50% system 0,0% nice 0,0% iowait 99,7% idle Mem: 2064444k av, 2052732k used, 11712k free, 0k shrd, 432568k buff

1511400k actv, 0k in_d, 45688k in_c

Swap: 2104464k av, 82080k used, 2022384k free 1379552k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND

16801 bdejean 39 19 15936 15M 940 R N 99,9 0,7 652:31 0 setiathome 18597 belloir 19 0 2364 2364 1716 R 1,9 0,1 0:00 1 top

18531 belloir 15 0 4344 4344 2096 S 0,9 0,2 0:01 0 xterm 1 root 15 0 112 80 56 S 0,0 0,0 0:21 1 init

2 root RT 0 0 0 0 SW 0,0 0,0 0:00 0 migration/0 3 root RT 0 0 0 0 SW 0,0 0,0 0:00 1 migration/1

(26)

Création de processus

Toute commande est le fils de l’interpréteur de commande

Le processus fils :

hérite d'une copie du code de son père (il exécute donc le même programme que son père)

hérite d'une copie des données de son père

hérite d'une copie des descripteurs de fichiers de son père (mêmes fichiers ouverts et même pointeurs courants)

(27)

Création de processus (suite)

Le processus fils :

a le même répertoire de travail que son père

réagit aux signaux de le même façon que son père est attaché au même terminal que son père

(28)

Exécution d’une commande

5 modes

Mode interactif (foreground)

Mode en arrière-plan (background) Mode différé

Mode bach

Mode cyclique

(29)

Mode interactif

Le plus fréquemment utilisé

Cmd lancée à partir d’un interpréteur de commande Terminal non utilisable pendant l’exécution de la cmd Interruption de la cmd par ctrl-C

Suspension de la commande par ctrl-Z [belloir@]$ emacs

(30)

Mode en arrière-plan

Rend immédiatement le contrôle à l’utilisateur

Utile lorsqu’il n’y a pas d’interaction entre l’utilisateur et la commande (lancement d’une interface graphique)

[belloir@]$ emacs &

Ou

[belloir@]$ emacs ctrl-Z

[belloir@]$ bg

(31)

Mode différé

Déclenche l’exécution d’une commande à une date fixée Commande at

Gestion par atq ou at –l et atrm

[belloir@]$ at 06:15 16.02.05 <toto

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

job 29 at 2005-02-16 06:15 [belloir@]$

(32)

Mode bash

Permet de placer une cmd dans une file d’attente Le système exécute toujours la cmd en tête de file Gestion des sorties similaires à la commande at Mode altruiste sur système chargé

(33)

Mode cyclique

Réalisé à l’aide de la commande crontab

Le pcs cron scrute un fichier dans lequel sont définies les commandes à exécuter à date fixe

(34)

Organisation du Système de

Gestion de Fichiers

(35)

Récapitulatif

Fichier = unité d’organisation Différents types

Protégés par des droits

Organisation hiérarchique (catalogues) Transfert entre disques et E/S par blocs

Un bloc est composé de secteurs (entre 32 et 4096 octets) En général 512

(36)

Les opérations sur les fichiers

Création

Suppression Ouverture Fermeture Lecture Écriture

Ajout de données Aller à la position

Récupérer les attributs Positionner les attributs

(37)

Organisation d’ un SGF

Programme d’application Système de fichiers logique

Module d’organisation de fichiers Système de fichiers de base

Contrôle des E/S périphériques

Traducteur entre

« extraire le bloc 123 »

et instruction spécifiques au matériel Accès à un emplacement physique

Utilise la structure des

répertoires pour fournir au MOF les infos qu’il demande en fonction du nom symbolique

Connaît les fichiers et leurs blocs logiques et physiques.

Fait le lien entre les 2.

Gère l’espace libre Utilise des commandes génériques pour lecture et écriture sur disque de blocs

physique.

(38)

Ouverture d’un fichier

Table des fichiers ouverts (mémoire)

Contient pour chaque fichier ouvert les informations du fichier Nom, taille, propriétaire, autorisation d’accès, emplacement des blocs de données

Oblige le système à parcourir le répertoire

Chargement dans la table des fichiers ouverts

Ouverture renvoie l’indice dans la table. : descripteur de fichier ou bloc de contrôle.

(39)

Exemple de l’accès à /usr/belloir

1 .

1 ..

4 bin

7 dev

14 lib 9 etc

6 usr

8 tmp

Répertoire racine

Le répertoire usr A le nœud

d’information 6

Mode Taille Dates

132

Nœud d’information 6 du répertoire /usr

Indique que /usr est situé dans le bloc 132

6 .

1 ..

21 pierre

30 paul

12 nico

26 belloir

Bloc 132 est le répertoire /usr

/usr/belloir a le nœud D’information 26

ModeTaille Dates 406

Nœud d’information 26 du répertoire /usr/belloir

Indique que /usr/belloir

est situé dans le bloc 406

(40)

Allocation de l’espace disque

Allocation : gestion de l’espace disque pour une meilleure performance des accès fichiers

3 méthodes :

Allocation contiguë Allocation chaînée Allocation indexée

(41)

Allocation contiguë

Un fichier occupe un ensemble de blocs contiguës sur le disque

Déplacement minimes

Entre le bloc n et le bloc n+1, aucun déplacement de la tête

Plus

Performance des accès

Moins

Difficulté à trouver de la place

Fragmentation externe (petits espaces libres) Evaluation à l’avance de la taille du fichier Compactage de l’espace disque

(42)

Allocation contiguë

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

16 17 18 9

Fichier début taille

count 0 2

Toto 6 2

Hello 12 4

Répertoire

(43)

Allocation chaînée

Un fichier est une liste chaînée de blocs

Chaque bloc contient un pointeur sur un bloc suivant Plus

Pas de compactage de l’espace disque

Moins

Utilisable avec des fichiers à accès séquentiel uniquement Temps de parcours pour accéder à un nième bloc

Les pointeurs occupent de l’espace mémoire

Solution : travailler sur des clusters de blocs (groupes de blocs)

(44)

Allocation chaînée

0 1 2 3

4 5 6 7 X

8 9 15 10 11

12 13 14 15 7

16 17 18 19

Fichier début fin

count 9 7

Répertoire

(45)

Application

FAT : la table d’allocation des fichiers

Une partie est réservée à la FAT au début de chaque partition disque

Contient une entrée pour chaque bloc du disque Est indexée sur les numéros de blocs

Organisée comme une liste chaînée

Entrée du répertoire

test 217

Nom Bloc de départ

618

EOF 339

618 339 217

(46)

Allocation indexée

Rassemble tous les pointeurs de bloc dans le bloc index

Améliore les performance de l’allocation contiguë

Chaque fichier a son propre bloc index

Le répertoire contient l’adresse du bloc index Plus

Accès direct rapide et sans fragmentation

Moins

Gaspillage de place du aux pointeurs

(47)

Allocation indexée

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

16 17 18 19

Fichier bloc index

toto 15

Répertoire

9 161 10-1 -1

(48)

MAIS …

Quel est la taille idéale du bloc index ???

La solution Unix : les i-nodes mode

propriétaire

Marques temporelles Taille de bloc

compteur

Blocs directs

données données

données

.

données

données . .

données

(49)

49

Gestion de la mémoire

(50)

La mémoire

Ressource primordiale : gestion stricte nécessaire Accès rapide

Taille réduite (par rapport au SGF) Différentes politiques de gestion Vue logique pour l’utilisateur

(51)

Exemple : le va-et-vient avec partition variable

temps

Syst. D’ex A

Syst. D’ex A

B

Syst. D’ex A

B C

Syst. D’ex B

C

Syst. D’ex C

D Syst. D’ex

B C

D

Syst. D’ex D C

E

(52)

Le va-et-vient avec gestion par table des BIT

1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0

A B C

8 16

P 0 5 H 5 3 P 8 6

P 14 4 H 18 2 P 20 4

Références

Documents relatifs

• Pour réaliser ou maintenir une valeur économique, la direction d’une organisation doit décider des projets de transformation de processus. • Ces projets de transformation

● C'est un des rôles du système d'exploitation d'amener en mémoire centrale l'image mé- moire d'un processus avant de l'élire et de lui allouer le processeur. Le système

l'utilisation d'un tampon de communication Un processus élabore une donnée et la dépose dans un tampon et envoie une information à un second processus pour l'informer de

Aussi les exégètes et les Pères de l’Eglise, surtout préoccupés par l’aspect messianique de Jésus, me semblent-ils avoir trop négligé les facteurs de for- mation de son

Sont attendues des communications proposant un retour sur des enquêtes menées sur des compagnies, spectacles, dispositifs développés en cirque ou en arts de la rue

« environnement socioculturel» de l’Algérie, étant un pays de plus de 40 millions de citoyens qui sont définies par 4 grandes ethnies, possédants leurs propres dialecte

Exemple : Asservissement num érique de la vitesse d é rique de la vitesse d’ ’un moteur un moteur. Cas de la commande d’un moteur CC par

CON 01 GERER LES ACQUISITIONS DE SOLUTIONS CON 02 GERER LE DEVELOPPEMENT DE SOLUTIONS CON 03 GERER LE CATALOGUE DE SERVICES CON 04 GERER LES NIVEAUX DE SERVICE CON 05 GERER