Systèmes d’exploitation INF 3723—Automne 2008
Université du Québec en Outaouais
Département d'informatique et d’ingénierie
C.P. 1250 -
Hull -
Québec
J8X 3X7
Téléphone: (819) 595-3900
Télécopieur: (819) 773-1638
Lab2 : Introduction au système Unix –suite : les processus
Objectifs:
Gestion des processus et surveillance de comportement.
Éditeur de texte Vi et programmes en C/C++
Les appels fork(), exec() and Wait
Deuxième série d’exercices sur Unix
Partie 1
Tapez la commande qui permet de réaliser ce qui suit :
1. Afficher la liste des utilisateurs connectés au système.
2. Afficher votre code utilisateur.
3. Afficher le nom du répertoire courant.
4. Afficher le contenu du répertoire courant.
5. Créer un répertoire de nom laboratoire, afficher le contenu du répertoire courant
et changer de répertoire pour passer à celui qui vient d’être créé.
6. Afficher le nom du répertoire courant puis son contenu.
7. Créer un fichier de nom fich1, en utilisant l’éditeur Vi (Annexe1), dont le contenu
du fichier est :
#include<iostream.h>
#define long 180
int main ()
{
char chaine [long];
cin.getline(chaine,long);
cout<<chaine<<endl;
return 0;
}
8. Afficher le code de protection du fichier créé.
9. Ajouter la permission en exécution pour le propriétaire et le groupe.
10. Changer le nom du fichier en prog1.cpp.
11. Compiler le fichier avec la commande g++ -o prog1 prog1.cpp.
Systèmes d’exploitation INF 3723—Automne 2008
Université du Québec en Outaouais
Département d'informatique et d’ingénierie
C.P. 1250 -
Hull -
Québec
J8X 3X7
Téléphone: (819) 595-3900
Télécopieur: (819) 773-1638
12. Exécuter le programme : prog1
13. Supprimer la permission en exécution du programme prog1.cpp pour le groupe.
14. Rediriger la sortie standard du programme vers un fichier nommé resultat.
15. Afficher le contenu de ce fichier.
Partie 2
Que fait chacune des commandes suivantes :
ls *.cpp
file laboratoire
ls|sort
ls*/*.c
ls|wc –w
cat>>prog1.cpp
//fin du programme
^D
grep cin prog1.cpp|wc –l
find . –name titi –print
Partie 3
Écrire la commande qui permet d’afficher:
Les 2 premières lignes du fichier prog1.cpp.
Les 3 dernières lignes du fichier prog1.cpp.
La 4ème ligne du fichier prog1.cpp.
Partie 4
1. Soit le script suivant
:
#!/bin/csh
# Mon script d’exo
clear
while (1)
echo "Menu"
echo " Affichage repertoire courant 1"
echo " Liste des fichiers du repertoire 2"
echo " Informations sur un fichier 3"
echo " Changement de repertoire 4"
echo " n premieres lignes d'un fichier 5"
Systèmes d’exploitation INF 3723—Automne 2008
Université du Québec en Outaouais
Département d'informatique et d’ingénierie
C.P. 1250 -
Hull -
Québec
J8X 3X7
Téléphone: (819) 595-3900
Télécopieur: (819) 773-1638
echo " Sortie 0"
echo -n "Choix: "
set choix=$<
switch ($choix)
case 0: exit(0)
case 1: ?? ; breaksw
case 2: ??
case 3: ??
case 4: ??
case 5: ??
default: echo "Choix non propose"
endsw
end
Créez le fichier Menu qui sera exécuté sous le shell et programmez les différents
éléments du menu.
2. Écrire un programme crcdrep qui crée un répertoire (dont le nom sera passé en
paramètre) dans le répertoire courant et qui vous positionne dedans
Partie 5
Qu’affiche chacun des segments de programmes suivants :
1. for (i=1 ; i<=4 ; i++ )
{ pid = fork();
if(pid >0) printf(“%d”,pid);
}
2. for (i=1 ; i<=4 ; i++ )
{ pid = fork();
if(pid == 0) break;
else printf(“%d”,pid);
}
Quel est le nombre de processus créés ?
Systèmes d’exploitation INF 3723—Automne 2008
Université du Québec en Outaouais
Département d'informatique et d’ingénierie
C.P. 1250 -
Hull -
Québec
J8X 3X7
Téléphone: (819) 595-3900
Télécopieur: (819) 773-1638
Partie 6
Écrire un programme en C ou C++ qui lit à l’écran le nombre de fils à créer puis
les crée l’un à la suite de l’autre. Chaque fils affiche à l’écran son pid (getpid()) et
celui de son père (getppid()).
Partie 7
Écrire un programme qui lance en créant un processus le programme prog2.cpp,
puis se met en attente de la fin d’exécution du programme.
NB. Deux annexes (A & B) sont à votre disposition afin
résoudre les exercices ci-dessus.
Systèmes d’exploitation INF 3723—Automne 2008
Université du Québec en Outaouais
Département d'informatique et d’ingénierie
C.P. 1250 -
Hull -
Québec
J8X 3X7
Téléphone: (819) 595-3900
Télécopieur: (819) 773-1638
Annexe A
1. Éditeurs Unix
Plusieurs éditeurs fonctionnent sous Unix : emacs, vi, xedit, pico….
Mais vi est l’éditeur standard sur la majorité des systèmes UNIX.
vi utilise deux modes :
Mode insertion : utilisé pour entrer du texte.
Mode de commandes : utilisé pour manipuler le fichier.
Pour créer un fichier nomfich avec vi :
On lance la commande : vi nomfich
Appuyer sur la touche i pour passer en mode insertion
Taper le texte
Peser sur <Esc> pour passer en mode commandes
Pour la sauvegarde, appuyer sur les 3 touches :wq
Pour plus d’informations sur cet éditeur, consulter le lien suivant :
http://w3.uqah.uquebec.ca/DOC/unx_vi.html ou
http://www.cs.fsu.edu/general/vimanual.html
2. Fichiers et répertoires
Chaque utilisateur du système Unix est identifié par un numéro unique appelé
UID (user identifier).
Un utilisateur particulier, appelé le superviseur ou l’administrateur avec le UID
= 0 possède des privilèges que les autres utilisateurs n’ont pas. Il peut accéder à
tous les fichiers et effectuer certains appels systèmes réservés.
Le système Unix offre la possibilité de constituer des groupes d’utilisateurs.
Chaque groupe a un numéro unique appelé GID (group identifier).
Les UID et GID d’un utilisateur servent, par exemple, à définir les droits d’accès
aux fichiers de l’utilisateur.
a. Permissions d’accès aux fichiers et aux répertoires
Les fichiers sont regroupés dans des répertoires qui peuvent contenir aussi
d’autres répertoires. Le système de fichiers UNIX représente donc une
structure arborescente.
Chaque fichier a un propriétaire (le créateur du fichier) et un groupe.
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !