1 Questions de cours (6 points) 2 Shell UNIX (2 points)
Transcription
1 Questions de cours (6 points) 2 Shell UNIX (2 points)
Université Pierre Mendès France U.F.R. Sciences de l’Homme et de la Société Master ICA – Spécialités IHS – AST 19.12.2006 UE Systèmes et Réseaux Examen de Systèmes Durée : 1h30 Documents autorisés Si vous avez un doute sur la syntaxe d'une commande où sur le caractère qui remplit un certain rôle dans le langage de commande, utilisez votre propre syntaxe, ou un autre caractère, mais ajoutez un commentaire explicatif. 1 Questions de cours (6 points) 1.1 – Base de Registres a) Expliquez brièvement le rôle et le contenu de la base de registres dans les systèmes Windows. b) Quand est modifiée la base de registres ? Donnez deux exemples de situations où la base de registres est modifiée. c) Donnez un exemple de situation dans laquelle vous modifiez la base de registre sans passer par la commande regedit. 1.2 – Processus a) Qu’est-ce qu’un processus ? Quelle différence y a-t-il entre un programme et un processus ? b) Donner le graphe des états d’une tâche s’exécutant sur une machine mono-processeur et décrire en quelques mots chaque état et chaque transition. c) Qu'est-ce qu'un changement de contexte ? Par quoi est-il déclenché et quelles sont les opérations effectuées à cette occasion ? 2 Shell UNIX (2 points) Analyser la session suivante : [toto@prevert essai]$ cat rep/f1 bonjour, au revoir [toto@prevert essai]$ cat rep/f2 hello goodbye [toto@prevert essai]$ ls rep ls: rep: Permission non accordée On suppose que pendant cette séquence aucune action extérieure ne perturbe le système ; répondre aux questions suivantes : a) Quels sont les droits d'accès du répertoire rep ? b) Quel pourrait être le résultat de la commande ls -l rep/f1 ? c) Quel pourrait être le résultat de la commande ls -l . ? Examen Système Master ICA – IHS et AST Page 1 sur 3 3 Fichiers de commande Windows (5 points) On souhaite écrire un fichier de commande Windows pour d’installation d’un logiciel simple, avec enregistrement des paramètres du logiciel dans la base de registre. Les fichiers nécessaires à l’installation du logiciel sur un cd-rom, dans le répertoire \Install. La commande d’installation à réaliser, est à placer sur le répertoire racine de ce même cd-rom. L’installation se fait en deux étapes : 1) copie des fichiers du répertoire \Install du cd-rom vers le répertoire par défaut : %programfiles%\nom_editeur\nom_du_logiciel ; la variable d’environnement programfiles contient le répertoire d’installation par défaut des logiciels (en général C:\Program Files ) 2) modification de la base de registre à partir d’un fichier de suffixe .reg à créer, portant le nom du logiciel à installer, et contenant deux paramètres du logiciel : son répertoire d’installation et le nom complet du programme principal. La clé d’enregistrement des ces paramètres dans la base de registre est calculée à partir du nom du logiciel et du nom de l’éditeur de ce logiciel. Par exemple, pour l’installation du logiciel PowerDVD de la société Cyberlink, le fichier PowerDVD.reg serait le suivant : [HKEY_LOCAL_MACHINE\SOFTWARE\CyberLink\PowerDVD] "InstallPath"="C:\Program Files\CyberLink\PowerDVD" "Main"="C:\Program Files\CyberLink\PowerDVD\PowerDVD.exe" L’enregistrement des informations de ce fichier dans la base de registre se fait par la commande : regedit /s PowerDVD.reg a) Écrire le fichier de commande inst.bat qui copie les fichiers du cd-rom vers le répertoire d’installation %programfiles%\nom_editeur\nom_du_logiciel. Si ce répertoire n’existe pas, la commande crée ce répertoire. Si celui-ci existe, la commande détruit les fichiers qui s’y trouveraient. Cette commande a 2 paramètres : le nom du logiciel et le nom de l’éditeur. Exemple : inst CyberLink PowerDVD Cette commande crée le répertoire C:\Program Files\CyberLink\PowerDVD (ou vide son contenu s’il existait déjà) puis copie y les fichiers du logiciel PowerDVD depuis le cd-rom. b) Écrire le fichier de commande creerreg.bat qui crée le fichier nom_du_logiciel.reg dans le répertoire temporaire de Windows (variable d’environnement TEMP) à partir des 3 paramètres suivants : nom du logiciel, nom de l’éditeur, nom du programme principal. Exemple : creerreg PowerDVD CyberLink PowerDVD.exe Cette commande crée le fichier PowerDVD.reg dont le contenu est donné ci-dessus. c) Écrire la commande install.bat qui, en faisant appel aux commandes précédentes, installe le logiciel, crée le fichier de registre, enregistre ses paramètres dans la base de registre, puis détruit le fichier registre créé et affiche un message indiquant que l’installation est terminée. 4 Fichiers de commande Unix (4 points) - la commande ps –fU username affiche en format long tous les processus de l’utilisateur username - La commande kill –KILL pid1 pid2 … pidN permet d’arrêter les processus dont le numéro est pid1, pid2 … pidN - la commande test –z chaine renvoie vrai si chaine est vide et faux sinon. Examen Système Master ICA – IHS et AST Page 2 sur 3 - la commande echo affiche simplement ses paramètres sur la sortie standard. - la commande fgrep permet d’effectuer la recherche d’une chaîne de caractère dans un ou plusieurs fichiers, sa syntaxe est : fgrep "chaine_a_chercher" fic1 fic2 … ficN Si aucun fichier n’est donné en paramètre, fgrep effectue la recherche sur son entrée standard. fgrep affiche toutes les lignes des fichiers concernés contenant chaine_a_chercher. - la commande cut permet d’effectuer une projection (au sens des bases de données) sur des lignes de texte, la syntaxe utile pour ce qui suit est : cut –c pos1-pos2 fic1 fic2 … ficN pos1 et pos2 sont respectivement les positions des premiers et derniers caractères à garder dans la ligne. Si aucun fichier n’est donné en paramètre, cut effectue la projection sur les lignes de son entrée standard. a) Donner une commande Unix permettant de garder dans un fichier commandes une trace de tous les processus actifs d’un utilisateur donné. b) Faire un script shell permettant d’afficher la liste des numéros de processus (PID) d’un utilisateur donné. Dans la liste des processus affichés par la commande ps, les PID sont dans la tranche 10-14. c) Faire un script shell, baptisé deconnecter, qui a en paramètre le nom d’un utilisateur et qui arrête tous les processus actifs de cet utilisateur s’il y en a, ou qui affiche un message d’erreur sinon. Dans la liste des processus affichés par ps, les PID sont dans la tranche 10-14. On commencera par ranger dans une variable proc la liste des processus de l’utilisateur, ppuis on détruira les processus contenus dans cette variable. 5 Processus Unix (3 points) Soit le programme C++ / Unix suivant : void main() { pid_t id; id=fork(); if (id == 0) fils1(); else { id=fork(); if (id == 0) fils2(); else pere(); } } void pere(void) { wait(NULL); printf("Il s’est passé un truc ?\n"); wait(NULL); printf("Tiens, encore un truc !\n"); } void fils1(void) { sleep(1); printf("Fils1, bonjour\n"); } void fils2(void) { sleep(5); printf("Fils2, bonjour\n"); } Faire la trace d'exécution de ce programme : écrire ce qu'il va afficher sur l'écran, dans le bon ordre, en justifiant votre réponse. Examen Système Master ICA – IHS et AST Page 3 sur 3