Vous êtes sur la page 1sur 63

II) Le processus dans la machine

Miramond Benot - UCP


Plan de la partie VII
1. Rappel modle dexcution dun processeur
2. Les fonctions dun OS embarqu
3. Au dmarrage tait le bootstrap
4. Comment faire du multi-tches ?
5. Les tats dun processus
6. PCB
7. Oprations sur les processus
8. Exemple : les processus Unix
2

Miramond Benot - UCP


Niveau 5 Couche des langages dapplication
Traduction (compilateur)

Niveau 4 Couche du langage dassemblage

Traduction (assembleur)
Niveau 3 Couche du systme dexploitation
Interprtation partielle (OS)
Couche architecture du jeu dinstruction
Niveau 2
(ISA)
Interprtation (microprogramme
ou excution directe (cabl)
Niveau 1
Couche microarchitecture
Matriel
3
Niveau 0 Couche logique numrique
Miramond Benot - UCP
Systmes premptifs
Au lieu dune boucle continue, un systme est dcrit
par une collection de threads de contrle
indpendants les tches.
Le systme dexploitation excute les processus selon
une politique dordonnancement et peu alterner entre
leur excution pour satisfaire les chances.
Contrairement lexcutif cyclique ou les fonctions
et leur ordre dexcution est impos dans la boucle
principale, lOS dtermine quelle fonction sexcute
quel instant.

Miramond Benot - UCP


1. Les fonctions de lOS
dans lembarqu
La gestion de la mmoire
Labstraction des instructions dentre/sortie
(fichiers)
Le traitement parallle

Cest un interprteur entre les programmes


excutables et le matriel (proc. + systme)

Miramond Benot - UCP


1. Les fonctions de lOS
dans lembarqu
La gestion de la mmoire
Labstraction des instructions dentre/sortie
(fichiers)
Le traitement parallle

Cest un interprteur entre les programmes


excutables et le matriel (proc. + systme)
Les SE simples nont pas besoin dOS, ils
excutent un seul programme cyclique (montres
digitales, fours micro-ondes, calculatrices) 6

Miramond Benot - UCP


Le traitement parallle
Relativit dEinstein :
Limite de vitesse des signaux lectriques
0,3m par nanoseconde (dans le vide)
2*1ns pour aller charger une donne situe en
mmoire 30 cm de lUC
Or travail en dessous de la ns
Soit multiprocesseur
Soit simuler le calcul parallle
7

Miramond Benot - UCP


Le traitement parallle
Monoprocesseur squentiel

P1

Multiprocesseurs Monoprocesseur parallle

P3

P2

P1
8

Miramond Benot - UCP


2. Au dmarrage tait le
bootstrap

Miramond Benot - UCP


Au dmarrage
Le programme excutable (mon programme C)
est stock sur le disque.
Comment se retrouve-t-il en cours
dexcution?
Quelles sont les lments en jeu au dmarrage?

10

Miramond Benot - UCP


Les lments en jeu
Les programmes Ou se trouvent-ils dans
excuter lordinateur au
Le systme dmarrage ?
dexploitation
Le programme de
lancement (le bootstrap)
Lexcuteur

11

Miramond Benot - UCP


Les lments en jeu
Les programmes Sur le disque
excuter
Le systme Sur le disque
dexploitation
Le programme de Sur une mmoire ROM
lancement (le bootstrap)
Lexcuteur Processeur (carte mre/
embarque)

12

Miramond Benot - UCP


Une carte mre

13

Miramond Benot - UCP


Une carte embarque (Stratix/Altera)

14

Miramond Benot - UCP


Carte Stratix

15

Miramond Benot - UCP


Le bootstrap
Il connat ladresse du systme dexploitation
sur le disque/dans la ROM
A la mise sous tension, automatiquement le
boostrap
Charge en mmoire centrale le noyau du systme
dexploitation et lance son excution (en plaant le
registre PC)

16

Miramond Benot - UCP


Le BIOS
Le Basic Input/Output System ralise les tche
suivantes:
Un test de fonctionnement des composants matriels
(POST = power-on self-test)
Activation des Bios des autres cartes (SCSI et cartes
graphiques)
Rglage des paramtres du systme (adresses,
horloges)

Lance le boostrap
17

Miramond Benot - UCP


Rsum de la squence de dmarrage
Mise sous tension
Tests matriels
Lancement du boostrap
Initialisation du systme dexploitation
Lancement des programmes
Ligne de commande
GUI
Excution automatique (embarqu)
Chargement des programmes auprs du processeur
18

Miramond Benot - UCP


Bootstrap
Fetch/Execute
Power/Reset Processeur Memory Map
OxOOOOO
Excuter le Vecteur ROM
Reset vector est 0x00000 OxOOO1F
Reset

Excuter le chargeur OxOOO40


FLASH
Initialise le matriel OxOO103

Image No Download limage depuis Ox10000


dans ROM PC vers RAM
RAM
Yes
Ox103FF
Copier limage depuis
la ROM vers la RAM
19
Excute limage Miramond Benot - UCP
20

Miramond Benot - UCP


3. Comment faire du multi-tches

21

Miramond Benot - UCP


Exemple de chargement
Le chargeur place ladresse Adresse Contenu
de dbut de programme :
PC <= 0x0A10
Linstruction Load adr R1
0x0A10 Load adr R1
est charge dans le registre
instruction 0x0A14 AddI R1 5
RI <= Load adr R1 0x0A18 Store adr R1
Le PC est incrment et
pointe sur la prochaine
instruction

22

Miramond Benot - UCP


Comment faire du multi-tches?
Supposons quun Adresse Contenu
nouveau programme

demande sexcuter
Et ensuite ?? 0x0A10 Load adr R1

0x0A14 AddI R1 5
0x0A18 Store adr R1

23

Miramond Benot - UCP


Comment faire du multi-tches?
Supposons quun nouveau Adresse Contenu
programme demande de
sexcuter
Une politique dordonnancement
dcide dinterrompre le 0x0A10 Load adr R1
programme courant 0x0A14 AddI R1 5
Et dexcuter le nouveau
A lissue de son excution 0x0A18 Store adr R1
lancien programme continue son
excution l ou il stait arrt!
Comment faire ?
24

Miramond Benot - UCP


Sauvegarder le contexte!
Que modifie un programme lorsquil sexcute ?

25

Miramond Benot - UCP


Sauvegarder le contexte
Que modifie un programme lorsquil sexcute ?
Les registres internes au processeurs (registre
dtat, de donnes, dinstruction, dadresses)
La pile dexcution du programme
Les variables

Comment appelle-t-on lensemble de ces


informations ?
26

Miramond Benot - UCP


Notion de processus
On appelle processus limage de ltat du
processeur et de la mmoire au cours de
lexcution dun programme.

Le programme est statique et le processus


reprsente la dynamique de son excution

27

Miramond Benot - UCP


Plus prcisment
Un processus est un programme en cours dexcution
auquel est associ un environnement processeur (PC,
registre dtat) et un environnement mmoire (zone
de code, de donne et de pile) appels contexte du
processus
Un processus est linstance dynamique dun
programme et incarne le fil dexcution de celui-ci
dans un espace dadressage protg
Si n processus sont en cours dexcution, chaque
processus volue son rythme et les ressources sont
partages
28

Miramond Benot - UCP


Structure de code dun processus
Run-to-completion_Task (){// (Processus dinitialisation)
Initialisation de lapplication
Cration de processus endless-loop
Cration des objets Kernel
Auto-suppression
}
Endless-loop () {
Boucle infinie {
Corps de boucle
Appels bloquants
}
} 29

Miramond Benot - UCP


Plan de la partie I
1. Les fonctions de lOS dans lembarqu
2. Au dmarrage tait le bootstrap
3. Comment faire du multi-tches ?
1. Les tats dun processus
2. PCB
3. Oprations sur les processus
4. Exemple : les processus Unix

30

Miramond Benot - UCP


4. Les tats dun processus

31

Miramond Benot - UCP


Les tats
Elu : ltat dexcution du processus

Bloqu : en attente dune ressource, dune


donne

Prt : le processus est prt, il attend quon lui


donne le droit de sexcuter sur le processeur

32

Miramond Benot - UCP


Diagramme dtat dun processus
Premption Elu
Cration Destruction

Election
Prt Blocage

Dblocage
Bloqu

33

Miramond Benot - UCP


Ou est sauvegard le contexte?
En mmoire
Dans une structure de donne dpendant de
lOS utilis
Cette structure sappelle le PCB

34

Miramond Benot - UCP


5. PCB

35

Miramond Benot - UCP


PCB = Process Control Block
Le PCB permet la sauvegarde et la restauration
du contexte mmoire
et du contexte processeur
lors des oprations de commutation de
contexte

Que contient cette structure ?

36

Miramond Benot - UCP


Bloc de contrle dun processus
Identificateur processus
Etat courant du processus
Contexte processeur
Contexte mmoire
Ressources utilises
Ordonnancement
Informations de
comptabilisation 37

Miramond Benot - UCP


Plus prcisment
Lidentificateur du processus tel quil lui a t affct
sa cration (un entier)
Lun des 3 tats du processus
La valeur des registres du processeur (PC, RI, SR)
Les adresses de dbut et de fin de la pile dexcution
Les fichiers ouverts, les outils de synchronisation
utiliss
La priorit du processus, sa file dattente
Le temps CPU utilis, la taille de sa pile,
38

Miramond Benot - UCP


Rsum sur le processus
PCB Stack

Tche : Nom/ID

int MyTask(){
while(1){
printf();
Routine Priorit
}
}

39

Miramond Benot - UCP


Changement de contexte /
Context Switches
Lorsque lordonnanceur dcide dexcuter une
nouvelle tche, il ralise un changement de
contexte :
Sauvegarde du contexte de la tche courante en
Pile (Registres)
Restitution du contexte de la nouvelle tche depuis
son TCB et sa Pile.
Ce changement a un cot dans un RTOS qui
dpend directement du nombre de registres
sauvegarder.
40

Miramond Benot - UCP


Surcot dun RTOS
Parce que le noyau dun RTOS propose les services
dexcution multi-tches, il ncessite un certain temps
dexcution en plus du temps de lapplication.
Ce temps dpend directement de la frquence dappel
aux services du noyau.
En embarqu TR, le noyau prend entre 2% et 5% de
temps CPU supplmentaire.
Il ncessite videmment galement une certaine
occupation mmoire (ROM + RAM).

41

Miramond Benot - UCP


6. Les oprations sur un
processus

42

Miramond Benot - UCP


Oprations
Cration Destruction Suspension
-Autodestruction
- Lancement (exit) - Autosuspension
systme - erreur => trappe (sleep)
- par dautres (division par 0) - Premption
processus (fork) - par un autre processus- Interruption
(kill)

En attente de la Ressources Sauvegarde


ressource libres PCB
processeur Contexte
Allocation dun dmantel 43
contexte mmoire PCB dtruit
Miramond Benot - UCP
La cration de processus en Unix
Cration de processus par fork():
Processus pre
Processus fils
Les deux processus sont identiques
Appel la commande exec() par le fils
Remplacement de son programme et de ses
donnes par lexcutable en paramtre

44

Miramond Benot - UCP


Plan de la partie I
1. Les fonctions dun OS embarqu
2. Au dmarrage tait le bootstrap
3. Comment faire du multi-tches ?
4. Les tats dun processus
5. PCB
6. Oprations sur les processus
1. Exemple : les processus Unix

45

Miramond Benot - UCP


Les processus Processus 0
Unix
Processus 1
init

Processus Processus Processus


dmons getty getty

Processus
login

Processus
shell

Processus Processus
myProg.exe ls -l 46

Miramond Benot - UCP


Modes dexcutions
Un programme peut sexcuter en mode utilisateur ou
superviseur
Linformation relative au mode dexcution du jeu
dinstruction des programmes est mmorise dans le
registre dtat du processeur

Exemple : Motorola 68000 le registre dtat est un


registre 16 bits dans lequel le bit 13 permet le codage
du mode dexcution

47

Miramond Benot - UCP


Modes dexcution
Actif utilisateur
Mode Utilisateur

Nouveau Prt Actif noyau Zombi

Mode noyau Endormi


en mmoire

Mode noyau Prt Swapp Endormi Swapp


swapp 48

Miramond Benot - UCP


Ordonnancement

49

Miramond Benot - UCP


Rle de lordonnancement
Arbitrer lutilisation du processeur par les
processus
De manire respecter les contraintes
temporelles des processus

Ordonnancement premptif/non premptif

50

Miramond Benot - UCP


Premption sur un processus

Premption
Elu
Cration Destruction

Election
Prt Blocage

Dblocage
Bloqu

51

Miramond Benot - UCP


Diffrence entre les deux familles
Avec un ordonnancement non premptif, un
processus quitte le processeur sil a termin
son excution ou sil se bloque

Avec un ordonnancement premptif, un


processus quitte le processeur sil a termin
son excution, sil se bloque ou sil est
rquisitionn par un processus plus prioritaire.
52

Miramond Benot - UCP


Entits systmes responsables de
lordonnancement
2 files dattente :
Les processus prts
Les processus boqus
Un module Ordonnanceur qui trie la file des
processus prts de manire placer le plus
prioritaire en tte de file. La priorit dpend de
la politique dordonnancement choisie.
Un module dispacher qui alloue le processus prt
parmi les processeurs libres (multiprocesseurs)
53

Miramond Benot - UCP


Ordonnanceur et rpartiteur
Premption

CPU0 Classement selon


une politique
dordonnancement

PCB

PCB

PCB
PCB

PCB
PCB
CPU1 Rpartiteur Ordonnanceur
Prts
Election
CPU2
PCB
PCB
PCB
PCB

PCB
PCB

bloqu 54

Miramond Benot - UCP


Politiques dordonnancement
(cf. Cours Andry)
Premier arriv, premier servi (FIFO)
Plus court dabord
Par priorit fixe (RTOS)
Rate monotonic
Par priorit dynamique
EDF
LLF
Par tourniquet (round robin)
55

Miramond Benot - UCP


Critres
Taux doccupation du processeur =
Temps doccupation par les processus / temps total
Capacit de traitement du processeur =
Nombre de processus sur un intervalle de temps
Temps de rponse des processus =
Temps coul entre la cration du processus et sa
fin dexcution

56

Miramond Benot - UCP


Objectifs de lOrdonnanceur
Pour :
Systme de traitement par lots
Maximiser le dbit
Systme en temps partag
Maximiser le taux doccupation
Minimiser le temps de rponse
Systme temps rel
Respecter les chances
57

Miramond Benot - UCP


Plan gnral
I) Entrevue avec lembarqu
II) Le processus dans la machine
III) Cas dtude : uC/OS-II et la carte Altera
pour lembarqu

58

Miramond Benot - UCP


Les questions se poser

59

Miramond Benot - UCP


Les questions se poser
Que font les programmes suivants ?
Le chargeur
Le systme dexploitation
Le bootstrap
Le Bios
Le programme applicatif
Quel est leur ordre de lancement ?

60

Miramond Benot - UCP


V) Cas dtude

61

Miramond Benot - UCP


Parcours architecture
Architectures multimdia M2 Circuits
reconfigurables
Conception des SoC
Les classes darchitecture
M1-S2
Architecture avance Les DSP
Architectures embarque
Informatique embarque M1-S1
Couche OS
RTOS
Le contrle du processeur Couche ISA
L3 Couche assemblage

Lexcution des programmes L2 Couche physique


Couche micro-architecture
62

Miramond Benot - UCP


63

Miramond Benot - UCP

Vous aimerez peut-être aussi