SEII - ch1 - PROCESSUS

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

I.

Chapitre I - Les Processus

Rappels sur les notions de système d’exploitation, processus et ressources

I.1. Définitions
I.1.1. Système informatique
L’ensemble matériels et logiciels dans une architecture à processeur constitue ce qu’on appelle un Système
Informatique (SIQ) auxquels on rajoute les programmes d’applications et les utilisateurs (Figure I-1).
o Le matériel : toute architecture à microprocesseur regroupant une UC, une MC, des périphériques
d’E/S, ... et constituant l’ensemble des ressources de base du SIQ.
o Les programmes d’applications : regroupent les utilitaires aidant à la mise au point des programmes
(Assembleurs, compilateurs, éditeurs de liens, …) ainsi que les SGBD, les applications PAO,
bureautiques, …
o Ces applications consomment des ressources pour pouvoir résoudre le problème visé.
o L’utilisateur : inclut toute entité demandant un service de la machine, que ce soit un être humain,
un ordinateur, un capteur ou une architecture à microprocesseur (robot, machine FAO,
surveillance, …),... etc.
I.1.2. Système d’exploitation (SE)
C’est la partie la plus importante d’un système informatique. Il est constitué d’un ensemble de
programmes agissant comme interface entre l’utilisateur et le matériel. Son but principal est de rendre
le système informatique plus pratique à utiliser d’une manière efficace et optimale.
 Ensemble de Programmes : un SE est un environnement constitué de plusieurs modules dont
chacun a une fonction bien déterminée (éditeurs de liens, chargeurs, scheduler (ordonnanceur),
protection et sécurité, gestion des ressources, …). Mais ceci n’empêche plus qu’une partie d’un SE soit
implémentée physiquement ou câblée (la table des pages, l’instruction TAS (ou XCHG), …)
 Utilisation Pratique (Notion de la machine virtuelle) : la machine est censée être utilisée par
des utilisateurs non forcément spécialistes, voire même des néophytes. Cependant l’intercation directe
avec elle nécessite une connaissnace des moindre détails du matériel ce qui rend l’utilisation du matériel
difficile et fastidieuse. Le SE s’interface entre l’utilisateur et la machine pour fournir un environnement
plus commode à lui et le détacher au maximum possible de toute connaissance technique du matériel
en fournissant une interface Homme Machine plus intuitive, plus conviviale et plus pratique. Ainsi

User1 User2 User3

Applications
SGBD, Bureautique, PAO, FAO, …

Système d’Exploitation
{Modules}
Machine physique
UC, MC, Périph E/S, …

Figure I-1 : Les composants d’un Système Informatique


Système d’Exploitation, 3ème Année licence - décembre 2020

l’utilisateur aura l’impression que la machine avec laquelle il s’interagit est celle offerte par le SE non
plus la matériel qu’il voit.
 Utilisation efficace et optimale : le SE doit contrôler le comportement des différentes
applications des utilisateurs et celui des périphs d’E/S pour garder le SIQ dans un état cohérent en
évitant les erreurs et les utilisations incorrectes de la machine par ces programmes. De plus, il doit
appliquer une stratégie d’allocation des ressources (matérielles ou logicielles) rigoureuse pour en
optimiser l’exploitation (les performances du système). Il doit appliquer également une stratégie de
sécurité gardant le SIQ loin de tout accès non autorisé (Mode d’execution, groupes d’utilisateurs,
cryptage de données, …)

I.2. Machine physique : l’architecture de Von Neumann

L’architecture de base d’un ordinateur est celle définie par Von Neumann se basant essentiellement sur :

- Quatre composants matériels : le processeur central (CPU) pour l’exécution, la mémoire centrale
pour le stockage des données, l’unité d’échanges pour la communication avec le monde extérieure et
l’ensemble des bus pour véhiculer les données et les commandes entre les différents composants
(Figure I-2).
- Codage et stockage des programmes est données dans la mémoire centrale : l’idée innovante de
Von Neumann réside dans la possibilité de concevoir un jeu d’instructions dédié à un processeur. Tout
comme les données, ces instructions seront codés en binaire. Au moment de l’exécution, la totalité du
programme avec ses données seront chargés en mémoire.

CPU MC Unité
d’échanges

Bus de données
Bus d’adresses
Bus de commandes

Figure I-2 Architecture de base de Von Neumann

I.3. Programme

C’une suite ordonnée d’instructions. L’instruction est l’élément indivisible du programme constituant la
plus petite unité atomique du langage.

I.4. Processeur

C’est un dispositif physique capable de comprendre et d’exécuter un programme. Il a trois principales


caractéristiques :
 Il peut prendre un ensemble pratiquement fini d’états distincts.
 Il communique avec un environnement caractérisé lui aussi par son état.
 Il peut modifier son propre état et celui de son environnement en exécutant un programme.
L’état du processeur peut être résumé par :

2
Système d’Exploitation, 3ème Année licence - décembre 2020

 Le registre d’état de l’UAL.


 Le contenu des registres programmables et Les registres internes
I.4.1. Point Observable (Interruptible)
L’état du processeur ne peut être observable qu’au début ou à la fin de l’exécution d’une instruction.
Autrement dit, le processeur ne peut être arrêté qu’après avoir exécuté complètement l’instruction courante
(principe d’une instruction atomique). Par conséquent, aucune interruption n’est tolérée par le processeur
au milieu d’une instruction.

Début inst d(I) Exécution de l’Instruction atomique I Fin inst f(I)

Etat observable Etat inobservable Etat observable


Interruption acceptable Interruption inacceptable Interruption acceptable

I.5. Ressources

On appelle une ressource tout élément qui contribue à la progression de l’exécution d’un programme.
Certaines ressources relèvent aux matériels : le CPU, la mémoire, les périphs d’E/S, … d’autres de nature
logicielle : des variables, des procédures, des applications, des processus systèmes, …
 Une ressource peut être consommée par un programme en cours d’exécution suivant le modèle suivant :
Demander( type_ressource, qté_demandée) ;
<Utiliser(ressource) >;
Libérer(type_ressource, qté_allouée) ;
 Selon le degré de partageabilité d’une ressource on distingue des ressources N_ partageable et d’autres
critiques non partageables.
 Ressource N_partageable : accepte au maximum N accès simultané (mémoire, lecture disque, …).
 Ressource critique : ne tolère aucun partage avec d’autres (le processeur, imprimante, fichier en
écriture, variable globale, procédure non réentrante, ..)
 On distingue aussi des ressources banalisées, existant en plusieurs copies identiques (espace mémoire
ou espace disque, …), et d’autres non banalisées (un fichier nommé, terminal, …)
 il y a aussi des ressources physiques ayant une existence physique réelle dans le système informatique
(RAM, CPU, imprimante, …) et d’autres logiques ou virtuelles créées par le système d’exploitation ( port
réseau, mémoire virtuelle, …).

I.6. Processus

- Définition : c’est un programme en cours d’exécution auquel on associe :


 Un Contexte du processeur (CPU) : l’ensemble des registres (CO, SW, SP, Rx, …)
 Un Contexte de la Mémoire Centrale : segments de code, segments de données, …
- Un programme est une entité statique n’ayant sens qu’au niveau de son support de stockage. Autrement
dit, c’est un simple fichier ayant une structure particulière.
- Un processus est une entité (instance d’un programme) dynamique qui, une fois se rencontre avec le
CPU, peut modifier l’état de son environnement ;
- Un processus est dit séquentiel si l’exécution de l’ensemble de ses instructions s’établie dans un ordre
strict et bien déterminé. Un process qui ne génère pas d’autres process (ou threads) est dit séquentiel.

3
Système d’Exploitation, 3ème Année licence - décembre 2020

I.6.1. Etats d’un processus


L’aspect dynamique que présente un process lors de son exécution n’implique pas uniquement l’évolution
de son contexte, il s’étend aux différents états d’exécution qu’un process connaît dans un SE
multiprogrammé. En fait, dans de tel environnement, un process peut :
 Obtenir le processeur et s’exécuter, on dit qu’il est actif ou élu. Le processus alors dispose de toutes les
ressources nécessaires à son exécution.
 Demander une ressource et il ne peut pas poursuivre son exécution tant qu’il ne l’a pas obtenue. Donc
le processeur bloque le process qui doit attendre la disponibilité de cette ressource. On dit qu’il est en
état bloqué ou endormi
 Lorsqu’un process vient d’être chargé dans la MC, ou il vient d’obtenir une ressource qu’il a demandée,
et il trouve que le processeur est alloué à un autre process, il passe à l’état prêt , on dit qu’il est en attente
du CPU (cette dernière est critique).

1 5
2
Prêt Actif
6
3
4 Bloqu

I.6.2. Représentation interne des processus


 Au moment du chargement d’un programme exécutable, le SE lui crée une
structure représentant le process associé. Cette structure devrait contenir toutes PCB
les informations nécessaires permettant l’évolution dynamique du process au ID process, IDpropriétaire
sein du SE, entre autre son contexte, son état, …cette structure est appelée le état du process
Bloc de Contrôle du Process (PCB). Contexte processeur
 Pour manipuler tous les process, le SE détient d’une table de process dont Contexte mémoire
chaque entrée contient un pointeur vers un PCB d’un processus. Informations ressources
(fichiers ouverts, E/S,..
I.6.2.1. Opérations sur les processus Infos : Pages, Segments,
infos sur les fils
L’ensemble minimum d’opérations exercées par le SE sur les process

comprend :

* Création – Destruction
* Blocage – réveil
* Suspension – Reprise
* Modification de la priorité
 Certaines opérations sont invocables par le processus lui-même (création, destruction, …) d’autres sont
réservées au SE (scheduler, dispatcher, chargeur, …)
I.6.3. Notion de tâche et thread
Lorsqu’un processus présente un code un petit peu long ou compliqué, il peut être décortiqué en un
ensemble d’unités de traitements élémentaires ayant une cohérence logique dont la fonction est bien
déterminée. Cette unité est appelée une tâche.
Ainsi un process séquentiel P de N tâches peut être écrit comme suit : P = T1 T2 T3 …. TN
 Une tâche « ti » a une date « début d’exécution (dti) » et une « date de fin d’exécution (fti) »
4
Système d’Exploitation, 3ème Année licence - décembre 2020

 Certaines tâches doivent s’exécuter en série d’autres peuvent s’exécuter en parallèle.


 On peut représenter l’ensemble de tâches constituant un processus par un graphe de précédence
 On résolvant un problème, on peut transformer un processus séquentiel (une série de tâches
séquentielles) en un système équivalent où certaines tâches peuvent s’exécuter en parallèle. Ainsi on
augmente le degré de multiprogrammation.
P P
Lire A Parbegin Lire A Lire B
lire(A) ;
lire(B) ; Lire B lire(A) ; lire(B) ;

X := A+B ; parend ;
X :=A+B Y :=A*B
X :=A+B Parbegin
Y := A*B ;
X := X + Y ; X := A+B ;Y := A*B ;
Y :=A*B parend ;
Fin X := X+Y
X := X + Y
X := X+Y Fin
Processus parallèle
Processus séquentiel

Dans l’exemple précédent, deux questions se posent :


• Q1 : Pourquoi les deux PREMIRES tâches peuvent s’exécuter en parallèle?
 Les deux instructions ne partagent aucune variable, elles sont indépendantes. En conséquence, elles
peuvent s’exécuter en parallèle.
• Q2 : Pourquoi la dernière tâche ne peut s’exécuter en parallèle avec les autres ?
 Elle dépend des instructions précédentes car elle a besoin des résultats provenant des deux dernières
instructions ; elle en dépend.

I.6.3.1. Notion de thread


La plupart des systèmes d’exploitation modernes ont adopté la notion de « processus léger » pour alléger la
gestion des processus qui sont gourmand en termes de temps et de ressources. Cette notion a donné
naissance au concept de thread. Cette notion permet de gérer efficacement les processus surtout dans le cas
où un process génère plusieurs fils d’exécution pour achever plusieurs tâches en même temps.
Ainsi, un thread peut être défini comme étant un fils d’exécution généré par un processus, appelé père,
ayant une unité d’exécution CPU. Il partage avec son père et les autres threads frères le segment de données,
le segment de codes et d’autres ressources systèmes telles que les fichiers ouverts, …
Création de thread en Java
Les threads en java sont gérés par la machine virtuelle ; ceci veut dire qu’ils ne sont pas gérés nativement
par le noyau du système d’exploitation. En java, un thread peut être crée en étendant la classe Thread ou en
implémentant l’interface runnable. Dans les deux cas on doit réécrire la méthode Run.
Création de thread en utilisant fork
L’appel système fork permet de créer un processus identique au process appelant en termes de segment
de données et segment de code. Le process créée (appelé fils), partage avec le process qui l’a créé le segment
de code et les autres ressources système. Il a son propre segment de données. La syntaxe de l’appel est :
int id = fork() ;
 En cas de succès, la fonction fork retourne dans la variable « id » du père l’identificateur PID du process
fils créé et dans la variable « id » du fils la valeur 0;
 en cas d’échec, la fonction ne peut pas créer un process, elle retourne au père -1.

5
Système d’Exploitation, 3ème Année licence - décembre 2020

I.7. Conclusion
 Un système d’exploitation est un ensemble de programmes agissant comme interface entre l’utilisateur
et le matériel. Son but principal est de fournir à l’user une machine virtuelle plus pratique à utiliser en
optimisant la gestion et le contrôle des ressources.
 Un processus est l’acteur le plus importante dan su système d’exploitation, il désigne un programme en
cours d’exécution. A l’inverse d’un programme, un process est une entité dynamqiue capable de modifier
l’état de son environnement.
 Un process a une durée de vie au sein du système, elle commence par une cération et se termine par
une mort (destruction). Durant sa vie, il peut être prêt à l’execution mais il lui manque le CPU. Un fois
choisi par le scheduler, il passe à l’état actif détenant le CPU qui l’exécute. Il peut passer à l’état bloqué s’il
demande une ressource qu n’est pas encore disponible.
 Pour pouvoir s’exécuter, un rpocess a besoin de ressources telles que l’espace mémoire, des fichiers, …
mais aussi, il a besoin duCPU pour pouvoir s’exécuter.
 Une ressource est toute entité système permettant la progression de l’execution d’un processus.
 La consommation de ressource par un process doit passer obligatoirement par une demande du
système qui, selon la disponibilité, accorde au process demandeur la quantité demndée, sinon il met le
process à l’état bloqué.

Références:
1. Principes des systèmes d’exploitation, Abraham Silberchatz
2. Architecture des machines et des systèmes informatiques, Alain Cazes
3. Architecture des systèmes informatiques, S. Ait Aoudia
4. Cours système d’exploitation I

Vous aimerez peut-être aussi