Vous êtes sur la page 1sur 2

UNIVERSITE Mohamed Khider BISKRA

Faculté des sciences exactes et des sciences de la nature et de la vie


Département d’Informatique
Module : Systèmes d’exploitation 2
Année Universitaire 2023/2024

Série d'exercice n°1


Gestion des processus et exclusion mutuelle

Exercice 1 :

Expliquer le schéma suivant représentant les états possibles d'un processus et les transitions entre ces états.
Expliquer pourquoi certaines transitions ne sont pas possibles.

Répondre an détails aux questions suivante, justifier vos réponses :

1. Qu'est-ce qu'un processus dans le contexte des systèmes d'exploitation ? et quel est l'objectif
principal de la gestion des processus dans un système d'exploitation ?
2. Qu'est-ce qu'un thread et en quoi diffère-t-il d'un processus ?
3. Quel est le rôle d'un ordonnanceur de processus dans un système d'exploitation ?
4. Qu'est-ce que le changement de contexte dans la gestion des processus et pourquoi est-il nécessaire ?
5. Quelle est la différence entre les algorithmes d'ordonnancement préemptifs et non préemptifs ?
6. Qu'est-ce que le "bloc de contrôle de processus" (PCB) dans les systèmes d'exploitation ?
7. Quel est le rôle du gestionnaire de processus dans les systèmes d'exploitation ?
8. Qu'est-ce qu'un processus zombie dans le contexte de la gestion des processus ?
9. Quel est le rôle de la priorité des processus dans un système d'exploitation multitâche ?
10. Quel est le rôle de l'appel système fork() dans la création de processus sur les systèmes d'exploitation
de type Unix ?
11. Expliquer le concept de communication de processus dans les systèmes d'exploitation.
12. Quel est le rôle du processus init dans les systèmes d'exploitation de type Unix ?
Exercice 2 :
On recherche une solution au problème de l'exclusion mutuelle qui consiste à définir un ensemble de variables
d'état, communes aux contextes des divers processus ; l'autorisation d'entrée en section critique sera définie par
des tests sur ces variables, et l'attente éventuelle sera programmée comme une attente active, c'est-à-dire par
répétition cyclique des tests. On se limite dans notre étude au cas de deux processus, notée pl et p2.
1) On essaiera d'abord de construire une solution utilisant une variable booléenne unique c, égale à vrai si l'un
des processus pi se trouve dans sa section critique, à faux autrement. Vérifier que l'exclusion mutuelle ne
peut être programmée en utilisant cette seule variable.
2) On construit une solution utilisant une variable commune unique t, avec t = i si et seulement si le processus
pi est autorisé à s'engager dans sa section critique (i = 1, 2). Ecrire le programme du processus pi, puis
vérifier que la solution obtenue ne répond pas à une des conditions de l'EM.
3) Pour éviter la restriction précédente, on introduit maintenant une variable booléenne par processus ; soit
c[i]la variable attachée à pi, avec la signification : c[i] = vrai si le processus pi est dans sa section critique
ou demande à y entrer, et c[i] = faux si le processus pi est hors de sa section critique. Le processus pi a le
pouvoir de lire et modifier c[i] et de lire seulement c[j]
Ecrire le programme du processus pi puis vérifier que la solution obtenue ne répond pas à une des
conditions de l'EM.
4) Une solution correcte peut être obtenue en complétant la solution 3) par l'introduction d'une variable
supplémentaire t servant à régler les conflits à l'entrée de la section critique. Cette variable n'est modifiée
qu'en fin de section critique. Le principe de la solution est le suivant : en cas de conflit (c'est-à-dire si c[1]
= vrai et c[2] = vrai) les deux processus s'engagent dans une séquence d'attente où t garde une valeur
constante. Le processus pi tel que i <> t annule sa demande en faisant c[i]=faux laissant donc l'autre
processus entrer en section critique ; pi attend ensuite dans une boucle que t soit remis à i avant de refaire
sa demande d'entrée par c[i] := vrai. Ecrire le programme du processus pi, puis vérifier qu'on peut obtenir
une solution satisfaisant aux conditions de l'EM.
Exercice n°3 :
Décrire la méthode de réalisation de l'exclusion mutuelle en utilisant l'instruction tas, puis donner un exemple en
prenant deux processus et en supposant que l'exécution s'effectue sur une machine multiprocesseur.
Exercice n°4 :
a) Proposer une solution permettant de résoudre le problème de l'exclusion mutuelle par les sémaphores, puis
vérifier que cette solution est conforme aux quatre conditions de l'exclusion mutuelle (énoncé en cours).
b) N tâches T01, .... T0N0, T0, T11, ..., T1N1, T1 sont lancées en parallèle dans une boucle infinie. Ajouter à
chaque tâche les opérations sur les deux sémaphores nécessaires (pour lesquels vous préciserez les valeurs
initiales) pour obtenir la précédence des tâches suivante

Vous aimerez peut-être aussi