1 / 12

GPA435 – Lab #2 partie 2

GPA435 – Lab #2 partie 2. Explications compl é mentaires. 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 .

wauna
Download Presentation

GPA435 – Lab #2 partie 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPA435 – Lab #2 partie 2 Explications complémentaires GPA435 – révision 2013, Tony Wong, ing., Ph.D.

  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. Liens de parenté • Ces liens de parenté existent car: • Un processus peut créer et exécuter un autre processus; • En langage C –fork(), exec(), etc. • Un interpréteur de commandes peut exécuter un autre interpréteur de commandes; • Dans le bourne shell – regroupement des commandes entre parenthèses –( ).

  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 crée et exécute les processus suivants: • init (PID = 1), pageout (PID = 2), fsflush (PID = 3).

  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); • Le terminal avec lequel vous travaillez est la création d’un des processus de l’environnement CDE.

  6. Numéros PID • Identification des liens de parenté: • 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: • PIDpère < PIDenfant • Le processus père est indiqué par le numéro PPID (Parent PID). • Tous les processus ont comme ancêtre le processus PID = 0.

  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. 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. • Le programme permet la saisie d’un paramètre facultative qui spécifie le fonctionnement du programme.

  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. • Pour déterminer les options et le paramètres donnés sur la ligne de commande: • Utiliser les instructions case–esac.

  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; • Enregistrer l’information obtenue dans un fichier à l’aide d’une redirection; • 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.

  11. Aide à la programmation • Pour afficher les résultats à la sortie standard: • Utiliser la commande echo ou • 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.

  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.

More Related