Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parEudes Henry Modifié depuis plus de 10 années
1
GPA435 – Lab #2 partie 2 Explications compl é mentaires GPA435 – révision 2013, Tony Wong, ing., Ph.D.
2
2 Problématique Création d un programme Bourne shell ( tparente ) capable de retracer la parenté des processus. Processus en mémoire au moment du l exécution du programme tparente. Affichage des liens de parenté selon les options données par l utilisateur du programme.
3
3 Liens de parenté Ces liens de parenté existent car: Un processus peut créer et exécuter un autre processus; Un processus peut créer et exécuter un autre processus; En langage C – fork(), exec(), etc. En langage C – fork(), exec(), etc. Un interpréteur de commandes peut exécuter un autre interpréteur de commandes; Un interpréteur de commandes peut exécuter un autre interpréteur de commandes; Dans le bourne shell – regroupement des commandes entre parenthèses – ( ). Dans le bourne shell – regroupement des commandes entre parenthèses – ( ).
4
4 Liens de parenté Tous les processus en mémoire ont un ancêtre commun: Processus sched portant le numéro PID = 0. Processus sched portant le numéro PID = 0. Processus sched crée et exécute les processus suivants: Processus sched crée et exécute les processus suivants: init (PID = 1), pageout (PID = 2), fsflush (PID = 3). init (PID = 1), pageout (PID = 2), fsflush (PID = 3).
5
5 Liens de parenté Vos propres programmes en exécution sont créés de la même façon. L environnement CDE est un ensemble de processus créés à partir du processus init (PID = 1); L environnement CDE est un ensemble de processus créés à partir du processus init (PID = 1); Le terminal avec lequel vous travaillez est la création d un des processus de l environnement CDE. Le terminal avec lequel vous travaillez est la création d un des processus de l environnement CDE.
6
6 Numéros PID Identification des liens de parenté: Par le numéro PID (Process IDentification) des processus. Par le numéro PID (Process IDentification) des processus. Les parents d un processus possèdent un PID plus petit que le PID d un enfant: Les parents d un processus possèdent un PID plus petit que le PID d un enfant: PID père < PID enfant PID père < PID enfant Le processus p è re est indiqu é par le numéro PPID (Parent PID). Le processus p è re est indiqu é par le numéro PPID (Parent PID). Tous les processus ont comme ancêtre le processus PID = 0. Tous les processus ont comme ancêtre le processus PID = 0.
7
7 USER PID PPID S PRI TT STIME TIME COMMAND root 0 0 T 96 ? Jan_03 0:17 sched root 1 0 S 59 ? Jan_03 0:02 /etc/init - root 2 0 S 98 ? Jan_03 0:00 pageout root 3 0 S 60 ? Jan_03 9:05 fsflush root 541 1 S 59 ? Jan_03 0:00 /usr/lib/saf/sac -t 300 root 228 1 S 59 ? Jan_03 0:00 /usr/sbin/inetd -s daemon 247 1 S 59 ? Jan_03 0:00 /usr/lib/nfs/statd root 62 1 S 59 ? Jan_03 0:00 /usr/lib/sysevent/syseve root 31 1 S 59 ? Jan_03 0:00 /sbin/dhcpagent root 74 1 S 59 ? Jan_03 0:00 /usr/lib/picl/picld root 98 1 S 59 ? Jan_03 0:00 /etc/opt/SUNWconn/atm/bi root 19209 520 S 59 ?? Jan_16 0:00 /usr/openwin/bin/fbconso nobody 716 228 S 59 ? Jan_04 0:38 fs catia11 10181 1 S 49 ? Jan_14 0:00 /bin/ksh /usr/catia/cfg/ root 2191 228 S 59 ? Jan_09 0:00 rpc.ttdbserverd root 24925 228 S 59 ? 08:29:18 0:00 in.telnetd catia11 10186 10181 S 49 ? Jan_14 0:01 CATLICSL 1515 root 19207 520 S 59 ? Jan_16 0:01 /usr/openwin/bin/Xsun :0 root 24945 228 S 59 ? 08:30:07 0:00 in.telnetd wong 24927 24925 S 59 pts/2 08:29:18 0:00 -tcsh root 11841 2314 S 59 ? Jan_15 0:00 remotedprovider solaris_ wong 24947 24945 S 49 pts/3 08:30:08 0:00 -tcsh daemon 12064 228 S 59 ? Jan_15 0:00 rpc.cmsd
8
8 Programme tparente Le programme permet la spécification de trois options facultatives qui modifient son comportement Lisez attentivement la description contenue dans le cahier de laboratoire. Lisez attentivement la description contenue dans le cahier de laboratoire. Le programme permet la saisie d un paramètre facultative qui spécifie le fonctionnement du programme.
9
9 Aide à la programmation Pour obtenir les options et le paramètre donnés sur la ligne de commande: Utiliser la commande for – do – done. Utiliser la commande for – do – done. Pour déterminer les options et le paramètres donnés sur la ligne de commande: Utiliser les instructions case – esac. Utiliser les instructions case – esac.
10
10 Aide à la programmation Pour déterminer les liens de parenté des processus en exécution: Utiliser la commande ps avec les options et les paramètres appropriés; Utiliser la commande ps avec les options et les paramètres appropriés; Enregistrer l information obtenue dans un fichier à l aide d une redirection; Enregistrer l information obtenue dans un fichier à l aide d une redirection; Lire le fichier de donn é es par la commande read ; Lire le fichier de donn é es par la commande read ; Appliquer un algorithme approprié pour retracer les liens de parenté à partir du fichier de donn é es. Appliquer un algorithme approprié pour retracer les liens de parenté à partir du fichier de donn é es.
11
11 Aide à la programmation Pour afficher les résultats à la sortie standard: Utiliser la commande echo Utiliser la commande echoou Utiliser la commande printf Utiliser la commande printf Pour enregistrer les résultats dans un fichier: Rediriger la sortie standard vers le fichier spécifié par le paramètre obtenu de la ligne de commandes. Rediriger la sortie standard vers le fichier spécifié par le paramètre obtenu de la ligne de commandes.
12
12 Aide à la programmation Séparer les différentes parties de votre programme en fonctions. Répartir le travail entre les membres de l équipe. Tester les parties séparément. Assembler les parties pour former le programme final.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.