Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde:teme:tema_fr_2 [2020/03/02 22:16]
diana.ghindaoanu
— (current)
Line 1: Line 1:
-====== Devoir 2 - Mini-busybox ====== 
  
-Le but de ce devoir est de créer une bibliothèque d’allocation de mémoire appelée ''​sde_alloc''​. Il simule la modalité 
-dans laquel la mémoire est allouée à l’aide de l’allocateur standard, c’est-à-dire des fonctions ''​malloc''​ et ''​free''​. 
- 
-===== Informations générales ===== 
- 
-<note important>​ 
-Date limite: **18 Mars, 23:55**\\ 
-Points: **1 point** de la note finale\\ 
-Téléchargement du devoir: [[https://​vmchecker.cs.pub.ro|vmchecker.cs.pub.ro]]\\ 
-Télécharger en retard: **1 points / jour** (maximum 4 jours)\\ 
-</​note>​ 
- 
- 
-===== Connaissances évaluées ===== 
- 
-  * Utiliser le langage Python 
-  * Comprendre le mode de fonctionnement de la ligne de commande 
- 
-===== Règles ===== 
- 
-  - Le devoir doit contenir un fichier nommé //Readme// avec des explications concernant la manière choisie pour résoudre le devoir (-0.1p) 
-  - Le devoir doit être implémenté en Python et seulement en utilisant des fonctions POSIX (la bibliothèque **os** de Python). Toute autre implémentation conduira à l'​annulation du devoir.(**0 points**) 
- 
-===== Copiage ===== 
- 
-Le devoir est individuel. Toute tentative de copier entraînera ** 0p ** pour les devoirs. On utilisera un système automatisé pour détecter le copiage. Si on a des doutes, on va vous adresser des questions supplémentaires concernant le devoir. ​ 
- 
-===== Questions ===== 
- 
-Si vous avez des questions concernant le devoir, posez-les en publiant un //issue// sur le github [[https://​github.com/​upb-fils/​sde|repository]] avec le format // [busybox] <le titre de votre question>​ //. Vous aurez besoin d'un compte github pour publier des questions. 
- 
-<note warning> 
-**NE PUBLIEZ PAS DE CODE SOURCE**. Cela est considéré comme copiage et vous aller recevoir **0p** pour le devoir. 
-</​note>​ 
- 
-Si vous voulez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'​il y a de nouveaux messages, accédez au site github [[https://​github.com/​upb-fils/​sde|repository]] et cliquez sur //Watch//. 
- 
- 
-===== Mini-busybox ===== 
- 
-Le but de ce devoir est d’implémenter un utilitaire capable d'​exécuter des commandes de type Linux bash. 
- 
-Pour résoudre le devoir, vous allez réaliser un script de Python qui reçoit comme arguments la commande qu'on désire d'​exécuter,​ suivie par ses paramètres. Le script exécutera la commande et après il finira son exécution. 
- 
-**Exemple:​** 
- 
-<code bash> 
-python busybox.py cp file folder 
-</​code>​ 
- 
-<​note>​ 
-Le programme sera exécuté en utilisant Python 3. 
-</​note>​ 
- 
-===== Commandes acceptées ===== 
- 
-En ce qui suit, on va définir les commandes supportées par l'​utilitaire,​ ainsi que le comportement caractéristique et les parametres acceptés. Pour toute autre commande ou pour un format différent, le script va afficher le message **Invalid command** et il va retourner la valeur **1**. 
- 
-Si la commande reçue par l'​utilitaire a été exécutée sans erreur, le script va retourner la valeur 1. Si non, il va retourner la valeur 1. 
- 
-<​note>​ 
-Pour vous aider à comprendre le mode fonctionnement de chaque commande, on a attaché la page de mannuel de celle-ci. On de demande pas l'​implémentation de tous les parametres précisés dans le manuel, mais seulement de ceux qui seront précisés dans l'​énoncé du devoir. ​ 
- 
-Les parametres qui ont la forme [param] sont optionnels. 
-</​note>​ 
- 
-Les commandes supportées par l'​application mini-busybox sont: 
- 
-   - **pwd** - Affiche le chemin complet du directoire courant ([[https://​linux.die.net/​man/​1/​pwd]]) 
- 
-**Exemple:​** 
- 
-<code bash> 
-$ python busybox.py pwd 
-/​home/​pi/​my_directories 
-</​code>​ 
-   - ** echo [option] arguments** - Affiche les arguments de la console, suivies par une nouvelle ligne ([[https://​linux.die.net/​man/​1/​echo]]) 
-     - **-n** on n'​ajoute pas une nouvelle ligne 
- 
-**Exemple:​** 
- 
-<code bash> 
-$ python busybox.py echo a b c 
-a b c 
-$ python busybox.py echo -n a b c 
-a b c$  
-</​code>​ 
- 
-   - **cat fichiers** - Concatène le contenu des fichiers et l'​affiche a la sortie standard ([[https://​linux.die.net/​man/​1/​cat]]) 
- 
-**Exemple:​** 
- 
-<code bash> 
-$ python busybox.py cat file1 
-Text in file1                        
-$ python busybox.py cat file2 
-Text in file 2 
-$ python busybox.py cat file1 file2 
-Text in file1 
-Text in file 2  
-</​code>​ 
- 
-   - **mkdir directoires** - Crée les directoires envoyés comme parametre, s'ils n'​existent pas. Si l'​opération de création des directoires échoue, le script va retourner la valeur 1. ([[https://​linux.die.net/​man/​1/​mkdir]]) 
- 
-**Exemple:​** 
- 
-<code bash> 
- ​python busybox.py mkdir my_drectory 
- ​python busybox.py mkdir my_drectory1 my_drectory2 my_drectory3 
-</​code>​ 
- 
-   - **mv source destination** - Déplace/​Renomme le fichier/​directoire source dans la destination ([[https://​linux.die.net/​man/​1/​mv]]) 
- 
-**Exemple:​** 
- 
-<code bash> 
-python busybox.py mv my_file my_directory 
-python busybox.py mv my_directory1 my_drectory2 ​ 
-</​code>​ 
- 
-   - **ln [option] source nom_lien** - Crée un lien symbolique avec le nom nom_lien vers le fichier source. On peut créer ​ un lien seulement vers un fichier. ([[https://​linux.die.net/​man/​1/​ln]]) 
-     - **-s, -symbolic** crée un lien symbolique a la place d'un lien hard 
- 
-**Exemple:​** 
-<code bash> 
-python busybox.py ln my_file my_file_link 
-python busybox.py ln -s my_file my_file_link3 
-</​code>​ 
- 
- 
- 
- 
-===== Télécharger les devoirs ===== 
-Les devoirs doivent être téléchargés sur [[https://​vmchecker.cs.pub.ro|vmchecker]]. ​ 
-Connectez-vous avec votre nom d'​utilisateur moodle, sélectionnez le cours //Systemes d'​Explotation (FILS)// et téléchargez [[#​archivage-de-devoir | l'​archive de devoir]]. 
- 
-==== Readme ==== 
-Le fichier //readme// a le format suivant: 
- 
-<​code>​ 
-Nom complet 
-Groupe 
- 
-Une explication comment vous avez écrit le devoir, ce que vous avez utilisé, les idées principales. 
-</​code>​ 
- 
- 
-==== Archivage de devoir ==== 
-Pour télécharger votre devoir, suivez les instructions suivantes: 
- 
-  - Créez une archive zip (pas rar, ace, 7zip ou autre) contenant: 
-    * vos fichiers antet (*.h) 
-    * vos fichiers source (*.c) 
-    * le fichier Makefile (déjà fait dans le template de devoir) 
-    * le fichier Readme 
-  - Connectez-vous avec [[https://​vmchecker.cs.pub.ro|vmchecker]] 
-  - sélectionner le cours //Systemes d'​Explotation (FILS)// 
-  - sélectionnez //2. Allocator// 
-  - télécharger l'​archive 
- 
- 
-<​note>​ 
-L'​archive doit contenir les fichiers dans sa racine, pas dans un dossier. NE PAS archiver un dossier avec les fichiers, archiver DIRECTEMENT les fichiers. 
- 
-NE PAS inclure les fichiers objets (*.o) et le fichier executable (Suggestion:​ utilisez //make clean// pour les supprimer avant d’archiver le devoir). ​ 
-</​note>​ 
- 
-Lorsque l'​archive est téléchargée,​ //​vmchecker//​ va exécuter: 
- 
-<code bash> 
-unzip archive.zip homework 
-cd homework 
-make build 
-make run 
-</​code>​ 
sde/teme/tema_fr_2.1583180176.txt.gz · Last modified: 2020/03/02 22:16 by diana.ghindaoanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0