Vous êtes sur la page 1sur 2

Universit Ferhat Abbas - Facult des sciences Dpart.

dInformatique
Niveau : 2eme Anne LMD - Module: Systme dExploitation
Anne universitaire : 2014/2015

TP 6

L'objectif de ce TP est d'implmenter diffrentes politiques d'ordonnancement. Pour cela


vous allez utiliser une bibliothque de programmation (crite en langage C) qui permet
d'ordonnancer des processus : la bibliothque libsched (library for scheduling). Cette
bibliothque a t dveloppe au sein de luniversit Paris 6. Cette bibliothque propose
de trs nombreuses fonctionnalits. Au cours de ce TP nous utiliserons principalement les
deux suivantes :

- Cration de processus excuter


- Modification de l'algorithme d'ordonnancement

La premire tape de ce TP consiste compiler la bibliothque libsched afin de pouvoir


l'utiliser sur votre machine. Suivez les instructions suivantes :

1) Dcompressez l'archive tp6.zip dans votre rpertoire de travail.


2) Dans le rpertoire libsched, excutez la commande make.

Le rpertoire libsched contient tous les fichiers sources de la bibliothque de


programmation. Le rpertoire exercices contient des programmes C correspondants
des bases de travail pour les exercices de ce TP. Le fichier Makefile est un script
permettant de compiler et dexcuter facilement tous les programmes.

Exercice 1 : Politique FIFO


Le fichier demo.c, dans le rpertoire exercices, contient un scnario d'excution de
processus qui utilise une politique d'ordonnancement FIFO en mode batch. Vous n'avez
rien ajouter au fichier pour qu'il fonctionne.

1) Dans le rpertoire exercices, excutez la commande make demo.sched

Le fichier demo.c va tre compil et li la bibliothque libsched. Un fichier


demo.sched va tre cr. Ce programme montre l'excution de 4 processus de tailles
diffrentes (2 processus courts, 2 processus longs) en respectant la politique
d'ordonnancement.

Question 1 Lisez le code source et expliqu le fonctionnement des processus courts et


des processus longs.

Question 2 Modifiez le fichier demo.c pour que les processus courts s'excutent avant
les processus longs. (Utilisez la commande make demo.sched pour recompiler le
programme)

Question 3 Crez une fonction ProcMoyen qui dcrit le comportement d'un processus
plus long qu'un processus court, et plus court qu'un processus long (inspirez vous des
fonctions ProcLong et ProcCourt). Puis, modifiez la fonction main, pour crer dans l'ordre
2 processus courts, 2 processus moyens et 1 processus long.

Exercice 2 : Politique Random


Nous allons crire une premire politique trs simple : lection alatoire. Cette politique
consiste choisir au hasard un processus prt s'excuter.

1
Universit Ferhat Abbas - Facult des sciences Dpart. dInformatique
Niveau : 2eme Anne LMD - Module: Systme dExploitation
Anne universitaire : 2014/2015

Qu'il soit ancien ou rcent, long ou court, la politique ne tient compte d'aucun de ces
critres. On utilisera cette politique avec un ordonnanceur en mode batch.

Question 1 En utilisant la fonction random(), crivez la fonction RandomElect qui choisi


alatoirement un processus prt. Un squelette de programme existe dj dans le fichier
exo-random.c.

Indications :
1) Le nombre maximum de processus est donn par la constante MAXPROC.
2) Tous les processus sont placs dans un tableau Tproc, dont le premier processus
est plac dans la case Tproc[0].
3) Vrifiez avant de choisir un processus qu'il est en attente Tproc[k].flag==RUN.
4) Utilisez int i = (int) random(); pour rcuprer un entier alatoire.

Pour compiler cet exercice,utilisez la commande la commande make exo-random.sched.

Exercice 3 : Politique SJF (Shortest Job First)

Nous souhaitons maintenant implmenter la politique SJF (en mode batch). Pour cela,
vous devez complter le fichier exo-sjf.c. Ce fichier lance l'excution de 3 processus
moyens, 3 processus longs et 3 processus courts.

Question 1 En lisant le code source, dterminez la valeur du champ duration (dur


dexcution) pour chaque type de processus.

Question 2 Compltez la fonction SJFElect en implmentant l'algorithme qui, lors de


chaque lection, choisi le processus le plus court.

Indications :
1) N'oubliez pas de vrifier que le processus est en attente avant de le choisir.

Pour compiler cet exercice, utilisez la commande la commande make exo-sjf.sched.

Exercice 4 : Politique Round Robin

Nous souhaitons maintenant implmenter la politique Round Robin (en mode temps
partag). Pour cela, vous devez complter le fichier exo-rr.c. Ce fichier lance Lexcution de
3 processus longs, 3 processus moyens et 3 processus courts.

Question 1 Compltez la fonction RRElect en implmentant l'algorithme qui, lors de


chaque lection, choisi le processus suivant dans la table des processus.

Indications :
- Utilisez la variable statique head pour stocker la tte de la file.
- N'oubliez pas de vrifier que le processus est en attente avant de le choisir.

Pour compiler cet exercice, utilisez la commande la commande make exo-rr.sched.