• Aucun résultat trouvé

Travail pratique #1 IFT-2245 January 10, 2017

N/A
N/A
Protected

Academic year: 2022

Partager "Travail pratique #1 IFT-2245 January 10, 2017"

Copied!
3
0
0

Texte intégral

(1)

Travail pratique #1

IFT-2245 January 10, 2017

¡¡ Dˆ u le 30 janvier ` a 23h59 !!

1 Survol

Ce TP vise `a vous familiariser avec la programmation syst`eme dans un syst`eme d’exploitation de style POSIX. Les ´etapes de ce travail sont les suivantes:

1. Parfaire sa connaissance de Python et POSIX.

2. Lire et comprendre cette donn´ee. Cela prendra probablement une partie importante du temps total.

3. Lire, trouver, et comprendre les parties importantes du code fourni.

4. Compl´eter le code fourni.

5. ´Ecrire un rapport. Il doit d´ecrire votre exp´erience pendant les points pr´ec´edents: probl`emes rencontr´es, surprises, choix que vous avez dˆu faire, options que vous avez sciemment rejet´ees, etc... Le rapport ne doit pas exc´eder 5 pages.

Ce travail est `a faire en groupes de 2 ´etudiants. Le rapport, au format LATEX exclusivement (compilable sur frontal.iro) et le code sont `a remettre par remise ´electronique avant la date indiqu´ee. Aucun retard ne sera accept´e.

Indiquez clairement votre nom au d´ebut de chaque fichier.

Si un ´etudiant pr´ef`ere travailler seul, libre `a lui, mais l’´evaluation de son travail n’en tiendra pas compte. Si un ´etudiant ne trouve pas de partenaire, il doit me contacter au plus vite. Des groupes de 3 ou plus sontexclus.

1

(2)

2 CH: un shell pour les h´ elv` etes

Vous allez devoir implanter une ligne de commande, similaire `a /bin/sh, qui sait:

1. D´emarrer des processus externes: ˆetre capable d’ex´ecuter des commandes comme “cat Makefile”.

2. Expansion d’arguments: ˆetre capable d’ex´ecuter des commandes comme

“echo *”.

3. Rediriger les entr´ees et sorties de ces processus: ˆetre capable d’ex´ecuter des commandes comme “cat <Makefile >foo”.

4. Connecter ces processus via despipes pour faire despipelines: ˆetre capa- ble d’ex´ecuter des commandes comme “find -name Makefile | xargs grep ch”.

Tout cela bien sˆur sans r´eutiliser un autre shell mais en utilisant les primitives du syst`eme d’exploitation, telles que os.exec, os.fork, os.dup2, os.pipe, os.listdir,os.waitpid, ... (et pasos.systemouos.popen, et pas un module commesubprocess non plus).

Le programme doit ˆetre ex´ecutable surfrontal.iro. Cela ne vous empˆeche pas bien sˆur de le d´evelopper sur un syst`eme diff´erent, e.g. sous Windows avec Cygwin, mais assurez-vous que le r´esultat fonctionneaussi surfrontal.iro.

3 Cadeaux

Vous recevez en cadeau de bienvenue les fichiers Makefile, rapport.tex, et ch.pyqui contiennent le squelette (vide) du code et du rapport que vous devez rendre.

3.1 Remise

Pour la remise, vous devez remettre deux fichiers (ch.pyet rapport.tex) par la page Moodle (aussi nomm´e StudiUM) du cours. Assurez-vous que tout fonc- tionne correctement surfrontal.iro.

4 D´ etails

• La note sera divis´ee comme suit: 20% pour chacune des 4 fonctionalit´es, et 20% pour le rapport.

• Tout usage de mat´eriel (code ou texte) emprunt´e `a quelqu’un d’autre (trouv´e sur le web, ...) doit ˆetre dˆument mentionn´e, sans quoi cela sera consid´er´e comme du plagiat.

• Le code ne doit en aucun cas d´epasser 80 colonnes.

2

(3)

• V´erifiez la page web du cours, pour d’´eventuels errata, et d’autres indica- tions suppl´ementaires.

• La note sera bas´ee d’une part sur des tests automatiques, d’autre part sur la lecture du code, ainsi que sur le rapport. Le crit`ere le plus important, et que votre code doit se comporter de mani`ere correcte. Ensuite, vient la qualit´e du code: plus c’est simple, mieux c’est. S’il y a beaucoup de commentaires, c’est g´en´eralement un symptˆome que le code n’est pas clair; mais bien sˆur, sans commentaires le code (mˆeme simple) est souvent incompr´ehensible. L’efficacit´e de votre code est sans importance, sauf s’il utilise un algorithme vraiment particuli`erement ridiculement inefficace.

3

Références

Documents relatifs

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

Pour savoir quelles frames devraient ˆ etre ´ evinc´ ees pour faire place ` a de nou- velles pages, le syst` eme d’exploitation aimerait bien savoir quelles pages sont beaucoup

Lorsqu’une page fault se produit, le processus qui tente d’acc´ eder ` a la page doit bloquer en attendant la dite page?. Supposons qu’il existe un processus contenant 5

Pourtant lorsqu’un syst` eme multiprocessus souffre de thrashing, un syst` eme bas´ e sur le mod` ele du working-set ou sur celui de la fr´ equence de page faults peut obtenir