Академический Документы
Профессиональный Документы
Культура Документы
dExploitation
Licence Informatique 2me Anne
2015-2016
Introduction
Un processus est un programme en excution
Un processus a besoin de ressources : du temps
CPU, de la mmoire, des fichiers, des devices dI/O pour
accomplir sa tche
Le systme dexploitation est responsable des activits
Problme:
Comment grer lexcution de plusieurs
particulires
lpsched assure l'ordonnancement des requtes
d'impression
fork() cre un processus fils identique son pre
change dtat :
New:
(gestion du scheduler)
Terminated: le processus a termin son excution
Ordonnanceur UCT
Une UCT dans un ordi est une ressource qui peut
Nouveau
Le SE a cr le processus
Termin:
Transitions de processus
Prt Excution
Excution Prt
Transitions de processus
Excution Attente
Attente Prt
Ch.4
13
Commutation de processus
et
Process Control Block
Sauvegarde dinformations de
processus
Un processus excute sur lUCT de faon
intermittente
Chaque fois quun processus reprend lUCT
(transition prt excution) il doit la reprendre
dans la mme situation o il la laisse (mme
contenu de registres UCT, etc.)
Donc au moment o un processus sort de ltat
excution il est ncessaire de sauvegarder ses
informations essentielles, quil faudra rcuprer
quand il retourne cet tat
15
Registres UCT
16
enchanes ( voir)
tat de processus: prt, exec, attente
compteur programme: le processus doit reprendre
linstruction suivante
autres registres UCT
Accumulateur etc.
bornes de mmoire
fichiers quil a ouvert
etc., v. manuel
17
O se trouve le BCP
Puisque le BCP contient des informations
..
P1
PCB1
P2
PCB2
P3
PCB3
.
Table des
processus
rsidente en
mmoire
Pointeur vers
code
.
PCB2
..
Compteur
ordinal
..
chargs en
mmoire
Pointeur
vers code
Commutation de processeur
Aussi appl commutation de contexte ou context switching
sauvegard avant
remettre les registres dUCT tels que le
compteur dinstructions etc. dans la
mme situation qui est dcrite dans le
PCB de P1
Ch.4
20
inactif?
LOGICIEL
Infos
sauvegardes dans PCB
Le code de traitement de
linterruption est excut
Lordonnanceur choisit un
processus qui est prt
Les infos relatives ce processus
sont rtablies partir de son PCB
Les registres dUCT sont rechargs
avec ces infos
LUCT reprend lexec de ce proc
dispatcher
22
du programme
Ceci se fait normalement en gardant limage
du programme en mmoire primaire ou
secondaire (RAM ou disque)
Le PCB pointera cette image
Ch.4
23
Appel A
Appel B
B
Donnes B
Donnes A
Donnes P
PILE
26
pointeur de borne
cadre 4
cadre 3
cadre 2
pointeur de base
cadre 1
Les pointeurs sont souvent des registres dUCT donc il sont sauvegards dans le PCB
27
Files dattentes de
processus
28
Files dattente
Les ressources dordi sont souvent limites par
attente
Quand il y a interruption sur une ressource (pex fin
Files dattente
En changeant dtat, les processus se
file prt
Nous ferons lhypothse que le premier processus dans une file est celui qui utilise la
ressource: ici, proc7 excute, proc3 utilise disque 0, etc.
31
prt 7 2
bandmag0
bandmag1
disq0 3 14 6
term0 5
32
term. unit 0
. . .
PCB2
PCB3
disk unit 0
PCB4
PCB5
ready
PCB6
PCB7
. . .
PCB14
33
interruptions
Liste des PCBs actifs dans le systme un moment donn,
36
des interruptions
Cette pile doit exister dans tout systme qui
admet des interruptions, mme sil nadmet pas
de multiprogrammation
Elle est gre directement par le matriel
Ordonnanceurs
(schedulers)
39
Ordonnanceurs
(schedulers)
Programmes qui grent lutilisation de ressources de
lordinateur
Trois types dordonnanceurs :
court terme = ordonnanceur processus: slectionne quel
prtexcution
40
Dispatcheur
Programme qui, faisant suite la dcision de
Ch.4
41
Ordonnanceur processus
42
Ordonnanceurs
L`ordonnanceur court terme est excut
Ordonnanceur moyen
terme
Le manque de ressources peut parfois forcer
44
long
court
45
Programmation en C sous
UNIX
46
Manipulation de processus.
Les commandes fork(),wait().
Communication inter-processus.
Les signaux
Les processus
Cration dun processus.
Lorsquon entre une commande, le shell lance un
processus pour lexcuter.
Le shell attend la fin du processus, puis attend la
commande suivante.
Arborescence de processus.
Chaque processus a un pre, celui qui la lanc.
Le numro du processus du pre est le PPID.
Un processus pre peut avoir plusieurs processus fils
Sous UNIX, un premier processus init est crer avec
Cration de processus
Duplication dun processus.
Seule faon de crer un processus bas niveau.
Appel systme fork()
Cre une copie complte du processus, fils de
ce processus.
Le fils change de programme en appelant
exec().
La fonction exec() remplace le code et ses
donnes par celui dune nouvelle commande.
Excution dune
commande
Excution dune commande:
Le shell se duplique avec fork(). On a alors deux
processus shell identiques.
Le shell pre attend la fin du processus fils avec
wait().
Le shell fils remplace son excutable par celui de
la commande tar avec exec()
La commande tar sexcute. Lorsquelle se
termine, le processus fils disparait.
Le shell pre est ractiv et attend la commande
suivante.
wait
La primitive wait( &Etat ) permet un
wait
Quand un processus se termine, le signal
exit
La primitive exit permet de terminer le
La primitive sleep
Similaire la commande shell sleep
int sleep(int seconds)
Le processus qui appelle sleep est bloqu
pendant le nombre de secondes spcifi.
Diffrence avec wait()
wait() bloque jusqu la fin du fils, alors que
sleep() bloque un temps spcifi.
Exemple
int pidfils=fork();
if(pidfils!=0)
{
printf("Je suis le pre.\n");
if (wait(&status)>0)
printf("mon fils a termin.\n");
}
else
{
printf("je suis le fils.\n");
sleep(2);
printf("arrt du fils.\n");
exit(0);
}
Rsultat
Rsultat
$ fork
Je suis le pre
je suis le fils
arrt du fils
mon fils a termin
$
sexcute.
Cela entraine par dfaut la fin du processus.
Ctrl-Z:
Envoie un signal SIGTSTP au processus qui
sexcute.
Par dfaut, lexcution du processus est
suspendu.