• Aucun résultat trouvé

S´erie d’exercices #2 IFT-2245 January 22, 2017

N/A
N/A
Protected

Academic year: 2022

Partager "S´erie d’exercices #2 IFT-2245 January 22, 2017"

Copied!
2
0
0

Texte intégral

(1)

S´erie d’exercices #2

IFT-2245 January 22, 2017

2.1 Syst` emes distribu´ es

Expliquer la diff´erence entre le mod`ele client-serveur et le mod`ele d´ecentralis´e peer-to-peer de syst`emes distribu´es.

2.2 Programme vs processus

Expliquer ce qui distingue un programme (program) d’un processus (process)?

Indice: Penser `a la relation entre les deux et o`u ils r´esident.

2.3 Ordonnanceur

Donner une diff´erence entre ordonnanceur `a court terme et `a long terme (long- term andshort-term schedulers).

2.4 Cr´ eation de thread

Quand unthread cr´ee un nouveauthread, quelles parties, parmis les suivantes, sont-elles partag´ees entre les deuxthreads:

• Les registres

• Le tas

• Les variables globales

• La pile

2.5 L’´ etat d’un thread

Pour chaque fl`eche dans le diagramme ci-bas, d´ecrire une condition qui causerait un fil (thread) de passer d’un ´etat `a l’autre. Indiquer ”impossible” si cela ne peut pas se produire. S’il y a lieu, indiquer aussi quelle action d’un context switch s’y produit (save ou restore).

En ex´ecution ⇒2 Prˆet ⇒4 Bloqu´e ⇒6 En ex´ecution (running) ⇐

1 (ready) ⇐

3 (blocked) ⇐

5 (running) 1

(2)

2.6 Context switch

D´ecrire les actions entreprises par le noyau lorsqu’il change d’un processus `a un autre (context switch).

2.7 Fork

Quand un processus cr´ee un nouveau processus avec l’op´eration fork, quelles parties, parmis les suivantes, sont-elles partag´ees entre le processus parent et le processus enfant:

• La pile

• Le tas

• Les segments de m´emoire partag´es

2.8 Fork

2

Soit le code suivant:

#include <stdio.h>

int value = 5;

int main () {

if (fork () == 0) value += 15;

else {

wait (NULL);

printf ("Value = %d\n", value);

}

return 0;

}

Quelle valeur va-t-il renvoyer `a l’´ecran?

2.9 Fork

3

Soit le code suivant:

int main () {

fork (); fork (); fork (); return 1;

}

Incluant le processus initial, combien de processus sont cr´e´es par ce programme?

2

Références

Documents relatifs

Est-il possible d’am´ eliorer la performance d’une application multi-threaded utilisant des user thread en ex´ ecutant le programme sur une machine ayant plu- sieurs processeurs

Expliquer pourquoi les spinlock sont inappropri´ es dans un syst` eme mono- processeur, mais sont souvent utilis´ es dans les syst` emes multiprocesseurs. 4.7 Section critique `

Illustrer comment un s´ emaphore binaire peut ˆ etre utilis´ e pour impl´ ementer l’exclusion mutuelle entre N threads.. 5.3 Spinlocks

Corriger ces mˆ emes conditions de course sans utiliser de verrous, en uti- lisant ` a la place une approche de synchronisation optimiste, en utilisant l’op´ eration

Soit un algorithme de queues ` a niveaux multiples, o` u un processus passe ` a la queue de priorit´ e sup´ erieure s’il relˆ ache le CPU avant la fin de son quantum et passe ` a

Jouez le rˆ ole du syst` eme d’exploitation qui doit faire fonctionner les processus suivants sur une machine avec 16MB de m´ emoire et donc d´ ecider o` u placer ces segments dans

Dans beaucoup de syst` emes, les programmes sont structur´ es de la mani` ere suivante : le code commence ` a l’adresse 0, ensuite vient le bloc de donn´ ees utilis´ e pour

Soit un processeur avec des adresses logiques et physiques de 64bit, des pages de 16KBytes, et une pagination bas´ ee sur un table de pages hi´ erarchique.. Deviner combien de