Vous êtes sur la page 1sur 6

Université Ibn Khaldoun Tiaret Module : Systèmes d’exploitation II

Faculté Mathématiques-Informatique Niveau : troisième année licence


Département d’informatique Année : 2022-2023

FICHE TD N° 01
Questions :
1) Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les
compilateurs font-ils parties du système d’exploitation ?
2) Qu’est-ce qu’un système multiprogrammé ? Un système de traitement par lots ? Un
système en temps partagé ?
3) Donner la différence entre un système multi processus, un système multiprocesseur et un
système distribué (réparti).
4) Soit 3 taches A, B et C à faire tourner sur une machine monoprocesseur. Expliquer
pourquoi le temps de réponse total est plus grand quand on exécute les trois taches
séquentiellement que quand on les exécute parallèlement avec un noyau multitâche (malgré le
temps perdu dans la commutation de contexte).

Exercice 1:

Soient les deux fonctions C suivantes :


Les cases du tableau tab sont initialisées à zéro. Donnez le contenu du tableau tab après la fin
d’exécution des deux fonctions dans les trois cas suivants :

a) Les deux fonctions s’exécutent dans deux processus différents (chaque fonction dans un
seul processus chacune).
b) Les deux fonctions s’exécutent dans deux threads du même processus (chaque fonction
dans un seul thread chacune).
c) Les deux fonctions s’exécutent dans deux threads de deux processus différents (chaque
fonction dans un seul thread de chaque processus).

1
Exercice 2 : (section critique)
Soit X, Y et Z des variables numériques. P1 et P2 sont deux processus dont les codes sont les
suivants :
Processus P1 Processus P2
Début Début
X := X+1 Si X > 50 Alors
Fin Y : = Y +1
Sinon
Y: = Y/2
Finsi;
Z := Z +Y
Fin

- Expliquez quel problème peut-on avoir si les deux processus s'exécutent simultanément.

Exercice 3: (Parallélisation d’un système de tâches)


1) On considère le programme utilisant les primitives parbegin/parend donné ci-
dessous:

begin
parbegin
lire(a)
lire(b)
parend ;
parbegin
c := a*a
begin
d := a*b ;
e := d*a ;
end
parend ;
e := c + d + e
end

- a) Donner le graphe de précédence en précisant les tâches que vous considérez.


- b) Indiquer les domaines de lecture et écriture des différentes tâches.
2) Donner un exemple simple de système de tâche (sous forme d’un graphe de
précédence) ne pouvant pas être décrit avec les primitives parbegin/parend.

2
Solutions :
Solutions Exercice 1 :
1) Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les
compilateurs font-ils parties du système d’exploitation ?
1) Il gère et contrôle le matériel et offre aux utilisateurs une machine virtuelle plus simple
d’emploi que la machine réelle (appels systèmes). Non, les interpréteurs et les compilateurs ne
font pas parties du système d’exploitation.
2) Qu’est ce qu’un système multiprogrammé ? Un système de traitement par lots ? Un
système en temps partagé ?
2) Un système multiprogrammé gère le partage des ressources (mémoire, processeur,
périphériques…) de l’ordinateur entre plusieurs programmes chargés en mémoire. Dans un
système de traitement par lots, les processus sont exécutés l’un à la suite de l’autre selon
l’ordre d’arrivée. Dans un système en temps partagé, le processeur est alloué à chaque
processus pendant au plus un quantum de temps. Au bout de ce quantum, le processeur est
alloué à un autre processus.
3) Donner la différence entre un système multi processus, un système multiprocesseur et un
Système distribué (réparti).
Réponse :
Un système multiprocessus : plusieurs processus s’exécutent en parallèles
Un système multiprocesseur : plusieurs processeurs s’exécutent en parallèles et partage la
mémoire commune (la ram), ils sont reliés entre eux par des bus de données
Un système distribué : c’est un système composé par plusieurs processeurs qui ne partage ni
la mémoire ni la fréquence d’horloge et communique entre eux par un réseau de
communication.
4) Soit 3 taches A, B et C à faire tourner sur une machine monoprocesseur. Expliquer
pourquoi le temps de réponse total est plus grand quand on exécute les trois taches
séquentiellement que quand on les exécute parallèlement avec un noyau multitâche (malgré le
temps perdu dans la commutation de contexte).
Réponse :
Dans un système séquentiel, un processus qui s’exécute les entrées / sorties ne libère pas le
processeur malgré qu’il ne l’utilise pas (il n’y a pas une exécution parallèle entre les
traitements cpu et les traitements des entrées/sorties.
Par contre dans un système parallèle lorsqu’un processus demande des entrées/ sorties libère
automatiquement le processeur aux autres processus (il y a une exécution parallèle entre les
traitements CPU et les traitements entrés/sortie.

3
Solution exercice 2
Soient les deux fonctions C suivantes :

Les cases du tableau tab sont initialisées à zéro. Donnez le contenu du tableau tab après la fin
d’exécution des deux fonctions dans les trois cas suivants :
a) Les deux fonctions s’exécutent dans deux processus différents (chaque fonction dans un
seul processus chacune).
Réponse :
Fonction 1 processus1 : tab[1000]={0,1,2,......499,0,0..............0}
ou
Fonction 2 processus2 : tab[1000]={0,0,0,......0,500,501,502,..............999}
Les deux processus ne partagent pas le même tableau tab (chaque processus possède son
propre espace mémoire)
b) Les deux fonctions s’exécutent dans deux threads du même processus (chaque fonction
dans un seul thread chacune).
Réponse :
Fonction 1 processus1 : tab[1000]={0,1,2,......499,0,0..............0}
Fonction 2 processus2 : tab[1000]={0,1,2,......499,500,501,502,..............999}
Donc tab[]={0,1,2,......499,500,501,502,..............999}
Les deux threads partagent le même tableau tab (même espace mémoire)
c) Les deux fonctions s’exécutent dans deux threads de deux processus différents (chaque
fonction dans un seul thread de chaque processus).
Réponse :
Même résultat que la question a

4
Exercice 3 :
Soit X, Y et Z des variables numériques. P1 et P2 sont deux processus dont les codes sont les
suivants :
Processus P1 Processus P2
Début Début
X := X+1 Si X > 50 Alors
Fin Y : = Y +1
Sinon
Y: = Y/2
Finsi;
Z := Z +Y
Fin
Question 1 : Expliquez quel problème peut-on avoir si les deux processus s'exécutent
simultanément.
Réponse :
Si les deux processus s'exécutent simultanément, il y'a un problème d'accès concurrents à la
variable partagée X. On peut avoir un résultat incohérent si le processus P1 tente de modifier
cette variable alors que le processus P2 tente de son coté de la consulter.
Solution exercice 3: (Parallélisation d’un système de tâches)
1) On considère le programme utilisant les primitives
parbegin/parend donné ci-dessous:
begin
parbegin
lire(a)
lire(b)
parend ;
parbegin
c := a*a
begin
d := a*b ;
e := d*a ;
end
parend ;
e := c + d + e
end
- a) Donner le graphe de précédence en précisant les tâches que vous considérez.
- b) Indiquer les domaines de lecture et écriture des différentes tâches.

5
2) Donner un exemple simple de système de tâche (sous forme d’un graphe de précédence) ne
pouvant pas être décrit avec les primitives parbegin/parend.
1.a) graphe de précédence
1.b) les domaines de lecture et écriture des différentes tâches.

Vous aimerez peut-être aussi