devoir de syst emes d’exploitation 1 objectif g en eral 2 … · 2012. 1. 8. · le but de ce...

4
Institut Galil´ ee Syst` emes d’exploitation Ann´ ee 2010-2011 ISPG INFO 1 Devoir de syst` emes d’exploitation Le projet est `a r´ ealiser en binˆomes. Le code (´ ecrit en C) doit utiliser les fonctions du C stan- dard et ˆ etre compilable avec gcc. Le projet doit adopter une approche de compilation s´ epar´ ee : un fichier makefile doit ˆ etre fourni avec le code pour simplifier la compilation. Un rapport doit ˆ etre rendu avec le projet. Il sera not´ e sur l’effort de r´ edaction et sur la pr´ esentation, autant que sur le contenu (qui ne contiendra pas de code C). Le rapport devra ˆ etre fourni au format PDF et le code sous forme d’une archive (format de compression zip ou tar.gz uniquement). Enfin, une pr´ esentation sur machine de 15 minutes sera demand´ ee. 1 Objectif g´ en´ eral Le but de ce projet est de r´ ealiser un simulateur d’algorithmes d’ordonnancement. A partir d’une configuration de processus et du choix d’un algorithme d’ordonnancement, le programme doit afficher le diagramme d’ex´ ecution tel qu’il a ´ et´ e vu dans les cours et les travaux dirig´ es. 2 Description du projet 2.1 Le programme principal Le programme principal doit prendre en param` etre : – Un nom de fichier qui contient la description des propri´ et´ es des processus (premier param` etre). – L’une des options suivantes permettant de s´ electionner l’algorithme d’ordonnancement : -FIFO : First In First Out -SJF : Shortest Job First -SRT : Shortest Remaining Time -RR quantum : Round Robin avec quantum la valeur du quantum de temps (par d´ efaut ` a 1) -FP nbFiles quantum : files de priorit´ es avec nbFiles le nombre de files de priorit´ e (par d´ efaut ` a 5) et quantum la valeur du quantum de temps (par d´ efaut ` a 1) -p nb : indique le nombre de processeurs ou coeurs de la machine ; si l’option n’est pas sp´ ecifi´ ee, on consid` ere que la machine poss` ede uniquement 1 processeur. -out nomFichier : indique si la sortie doit ˆ etre dans un fichier texte ou non ; si l’option n’est pas sp´ ecifi´ ee, le programme affiche le r´ esultat ` a l’´ ecran. Votre programme devra obligatoirement supporter toutes ces options (en respectant la syntaxe). Par contre, si vous n’avez pas le temps de coder tous les algorithmes, un message d’erreur pourra s’afficher afin d’indiquer que l’option n’est pas impl´ ement´ ee. Bien entendu, plus il y aura d’options impl´ ement´ ees (et correctement), plus la note finale sera ´ elev´ ee. 2.2 Ex´ ecution du programme principal Voici, par un exemple, un exemple de commande pour ex´ ecuter le simulateur ` a partir d’un fichier de description des processus config.txt : 1

Upload: others

Post on 14-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Devoir de syst emes d’exploitation 1 Objectif g en eral 2 … · 2012. 1. 8. · Le but de ce projet est de r ealiser un simulateur d’algorithmes d’ordonnancement. A partir

Institut Galilee Systemes d’exploitationAnnee 2010-2011 ISPG INFO 1

Devoir de systemes d’exploitation

Le projet est a realiser en binomes. Le code (ecrit en C) doit utiliser les fonctions du C stan-dard et etre compilable avec gcc. Le projet doit adopter une approche de compilation separee :un fichier makefile doit etre fourni avec le code pour simplifier la compilation. Un rapport doitetre rendu avec le projet. Il sera note sur l’effort de redaction et sur la presentation, autantque sur le contenu (qui ne contiendra pas de code C). Le rapport devra etre fourni au formatPDF et le code sous forme d’une archive (format de compression zip ou tar.gz uniquement).Enfin, une presentation sur machine de 15 minutes sera demandee.

1 Objectif general

Le but de ce projet est de realiser un simulateur d’algorithmes d’ordonnancement. Apartir d’une configuration de processus et du choix d’un algorithme d’ordonnancement, leprogramme doit afficher le diagramme d’execution tel qu’il a ete vu dans les cours et lestravaux diriges.

2 Description du projet

2.1 Le programme principal

Le programme principal doit prendre en parametre :– Un nom de fichier qui contient la description des proprietes des processus (premier

parametre).– L’une des options suivantes permettant de selectionner l’algorithme d’ordonnancement :– -FIFO : First In First Out– -SJF : Shortest Job First– -SRT : Shortest Remaining Time– -RR quantum : Round Robin avec quantum la valeur du quantum de temps (par defaut

a 1)– -FP nbFiles quantum : files de priorites avec nbFiles le nombre de files de priorite

(par defaut a 5) et quantum la valeur du quantum de temps (par defaut a 1)– -p nb : indique le nombre de processeurs ou coeurs de la machine ; si l’option n’est pas

specifiee, on considere que la machine possede uniquement 1 processeur.– -out nomFichier : indique si la sortie doit etre dans un fichier texte ou non ; si l’option

n’est pas specifiee, le programme affiche le resultat a l’ecran.Votre programme devra obligatoirement supporter toutes ces options (en respectant lasyntaxe). Par contre, si vous n’avez pas le temps de coder tous les algorithmes, un messaged’erreur pourra s’afficher afin d’indiquer que l’option n’est pas implementee. Bien entendu,plus il y aura d’options implementees (et correctement), plus la note finale sera elevee.

2.2 Execution du programme principal

Voici, par un exemple, un exemple de commande pour executer le simulateur a partir d’unfichier de description des processus config.txt :

1

Page 2: Devoir de syst emes d’exploitation 1 Objectif g en eral 2 … · 2012. 1. 8. · Le but de ce projet est de r ealiser un simulateur d’algorithmes d’ordonnancement. A partir

./ordo config.txt -RR 1Nous supposons ici que le contenu du fichier config.txt est le suivant :

0 3 10 4 21 4 34 4 2

La sortie ecran pourrait etre la suivante a partir du fichier precedent :

4 --------*--*-**3 ----*--*--*-*--2 -*-*--*--*-----1 *-*--*---------

000000000011111012345678901234

La sortie devra etre obligatoirement en mode texte (soit a l’ecran, dans le terminal, soitdans un fichier texte) : aucune interface graphique n’est demandee.

2.3 Les fichiers d’entree

Le fichier contenant la description des proprietes des processus doit etre au format texteou au format binaire. Dans le premier cas (fichier texte), pour chaque processus est decrit sadate de soumission, son temps d’execution et sa priorite. Chaque valeur doit etre separee parun espace ou une tabulation. Chaque ligne du fichier correspond a un seul processus. Dans ledeuxieme cas (fichier binaire), les valeurs des processus sont decrites dans le meme ordre, lesprocessus etant decrit les uns apres les autres. a noter que la gestion des fichiers binaires doitetre realisee en bas niveau.

3 Informations generales

3.1 Le code

Il est tres important de bien structurer votre code : la note globale en tient compte.Une bonne structuration commence par une separation des differents outils qui sont utilises.Par exemple, pour la gestion des processus, il est necessaire d’utiliser une liste chaınee (lenombre de processus dans le 2 fichier etant inconnu). Dans ce cas, il faut regrouper toutes lesmethodes associees a la gestion de la liste chaınee dans un fichier separe (fichier source .c etfichier d’entete .h associe). De meme, les algorithmes d’ordonnancement implementes doiventfigurer dans d’autres fichiers. La programmation, realisee en C, doit etre propre (indentationdu code) et commentee. Pour compiler facilement votre code, vous devez imperativementfournir un makefile avec les sources. Ce dernier doit permettre de compiler l’ensemble desfichiers sources et de creer le ou les executables. Pour un exemple de makefile, reportez-vousa l’annexe.

2

Page 3: Devoir de syst emes d’exploitation 1 Objectif g en eral 2 … · 2012. 1. 8. · Le but de ce projet est de r ealiser un simulateur d’algorithmes d’ordonnancement. A partir

3.2 Le rapport

Le rapport final a pour but de presenter tout le travail realise lors de ce projet. Il presentele fonctionnement general de l’application ainsi que sa structure (organisation du code). Ildecrit l’ensemble des structures utilisees sous la forme de schemas. Il ne contiendra aucuncode C. Cependant, il est possible de presenter les algorithmes utilises sous la forme presenteeen annexe. Enfin, le rapport doit etre structure et un effort est demande sur la grammaire etl’orthographe.

3.3 La soutenance

La presentation de 15 minutes permet de presenter brievement sur machine le fonction-nement du programme. Il est donc necessaire d’envoyer le code a l’avance par e-mail poureviter de perdre du temps a le recuperer a partir d’une clef USB ou depuis Internet. Le codesera compile au prealable par nos soins sur une machine d’une salle de TP et la presentationdoit donc obligatoirement etre realisee sur cet ordinateur (pas d’ordinateur personnel). Il estnecessaire que le binome prepare a l’avance une demonstration (penser a joindre au projetdes fichiers de configuration de processus) dans le but de mettre en avant les fonctionnalitesdu programme.

3.4 Planning

Voici le planning previsionnel concernant le pro jet :– 06/02/2011 : code + rapport ;– 8/02/2010 : presentation sur machine (salles et horaires precises ulterieurement).

Remarque 1 : La note tiendra compte de la proprete du code (commentaires, indentation,choix du nom des variables), du choix des structures et des algorithmes implementes. Cesdeux derniers points devront etre mis en valeur dans le rapport.

Remarque 2 : Le code de chaque binome doit etre unique.

3

Page 4: Devoir de syst emes d’exploitation 1 Objectif g en eral 2 … · 2012. 1. 8. · Le but de ce projet est de r ealiser un simulateur d’algorithmes d’ordonnancement. A partir

Annexes

Makefile

Voici un makefile simple pour compiler deux programmes executables differents :

Annexes

Makefile

Voici un makefile simple pour compiler deux programmes exécutables di!érents :!tout : prog1 prog2

prog1 : prog1 . ogcc !o prog1 prog1 . o

prog1 . o : prog1 . c prog1 . hgcc !c prog1 . c !W !Wall

prog2 : prog2 . ogcc !o prog2 prog2 . o

prog2 . o : prog2 . c prog2 . hgcc !c prog1 . c !W !Wall"# $

Dans ce cas, lorsque la commande make est exécutée, deux exécutables sont crées : prog1 et prog2.

Présentation des structures utilisées

Il est conseillé de présenter l’ensemble des structures utilisées dans votre projet (dans le rapportet éventuellement durant la présentation orale). Pour illustrer vos explications, utilisez des schémas.Voici un exemple de représentation d’une liste chaînée d’entiers :

3Valeur

Suivante

5

Cellule

Liste

Valeur

Suivante

Cellule

Valeur

Suivante

Cellule

8

Algorithmes

Les algorithmes de votre programme peuvent être présentés sous la forme suivante :!Fonction PGCD(a , b : e n t i e r s p o s i t i f s ) : e n t i e rDébut

TantQue a "= b Fai reS i ( a > b) a l o r s

a # a ! bSinon

b # b ! aFinTantQueretourner a

Fin"# $

4

Dans ce cas, lorsque la commande make est executee, deux executables sont crees : prog1et prog2.

Presentation des structures utilisees

Il est conseille de presenter l’ensemble des structures utilisees dans votre pro jet (dansle rapport et eventuellement durant la presentation orale). Pour illustrer vos explications,utilisez des schemas. Voici un exemple de representation d’une liste chaınee d’entiers :

Annexes

Makefile

Voici un makefile simple pour compiler deux programmes exécutables di!érents :!tout : prog1 prog2

prog1 : prog1 . ogcc !o prog1 prog1 . o

prog1 . o : prog1 . c prog1 . hgcc !c prog1 . c !W !Wall

prog2 : prog2 . ogcc !o prog2 prog2 . o

prog2 . o : prog2 . c prog2 . hgcc !c prog1 . c !W !Wall"# $

Dans ce cas, lorsque la commande make est exécutée, deux exécutables sont crées : prog1 et prog2.

Présentation des structures utilisées

Il est conseillé de présenter l’ensemble des structures utilisées dans votre projet (dans le rapportet éventuellement durant la présentation orale). Pour illustrer vos explications, utilisez des schémas.Voici un exemple de représentation d’une liste chaînée d’entiers :

3Valeur

Suivante

5

Cellule

Liste

Valeur

Suivante

Cellule

Valeur

Suivante

Cellule

8

Algorithmes

Les algorithmes de votre programme peuvent être présentés sous la forme suivante :!Fonction PGCD(a , b : e n t i e r s p o s i t i f s ) : e n t i e rDébut

TantQue a "= b Fai reS i ( a > b) a l o r s

a # a ! bSinon

b # b ! aFinTantQueretourner a

Fin"# $

4

Algorithmes

Les algorithmes de votre programme peuvent etre presentes sous la forme suivante :

Annexes

Makefile

Voici un makefile simple pour compiler deux programmes exécutables di!érents :!tout : prog1 prog2

prog1 : prog1 . ogcc !o prog1 prog1 . o

prog1 . o : prog1 . c prog1 . hgcc !c prog1 . c !W !Wall

prog2 : prog2 . ogcc !o prog2 prog2 . o

prog2 . o : prog2 . c prog2 . hgcc !c prog1 . c !W !Wall"# $

Dans ce cas, lorsque la commande make est exécutée, deux exécutables sont crées : prog1 et prog2.

Présentation des structures utilisées

Il est conseillé de présenter l’ensemble des structures utilisées dans votre projet (dans le rapportet éventuellement durant la présentation orale). Pour illustrer vos explications, utilisez des schémas.Voici un exemple de représentation d’une liste chaînée d’entiers :

3Valeur

Suivante

5

Cellule

Liste

Valeur

Suivante

Cellule

Valeur

Suivante

Cellule

8

Algorithmes

Les algorithmes de votre programme peuvent être présentés sous la forme suivante :!Fonction PGCD(a , b : e n t i e r s p o s i t i f s ) : e n t i e rDébut

TantQue a "= b Fai reS i ( a > b) a l o r s

a # a ! bSinon

b # b ! aFinTantQueretourner a

Fin"# $

4

4