Systemesexploitationii tps n3 4 5 6

Université Ibn Khaldoun ?? Tiaret Niveau LMD Département d ? Informatique Module Systèmes d ? Exploitation II TP Année - Chargé du module B Boudaa Fiche TP N Manipulation des Processus et Threads en langage C ? Remarques ? Les primitives de manipulation des processus sous Unix Linux sont signal gestion des signaux fork création d ? un processus pause mise en sommeil sur l ? arrivée d ? un signal wait mise en sommeil sur la terminaison d ? un ?ls sleep mise en sommeil sur une durée déterminée argument kill envoi de signal à un processus exit terminaison d ? un processus pour plus d ? informations voir le man de chaque primitive ? L ? appel fork duplique un processus et le système crée alors une copie complète du processus avec un PID di ?érent L ? un des deux processus est ?ls de l ? autre ? fork peut échouer par manque de mémoire ou si l ? utilisateur a déjà créé trop de processus dans ce cas aucun ?ls n ? est créé et fork retourne - ? Lors de la création d ? un nouveau thread dans un processus il obtient sa propre pile et de ce fait ses propres variables locales mais partage avec son créateur les variables globales ? Pour compiler un programme en langage C on utilise soit gcc logiciel libre dans la cadre du projet GNU GPL ou bien cc compilateur c c ps -e -l A ?che la liste des processus - L ? option -e permet d ? a ?cher les processus de tous les utilisateurs - L ? option -l permet d ? obtenir plus d ? informations dont les plus importantes sont UID identité du propriétaire du processus ?? PID numéro du processus ?? PPID PID du père du processus ?? NI priorité nice ?? S état du processus R si actif S si bloqué Z si terminé - En utilisant l ? éditeur gedit écrire les programmes suivants - Compiler et exécuter ces programmes - Expliquer le déroulement de ces programmes Exercice gestion des processus par fork pid et ppid cprocessus c Exemple utilisation primitive fork sous Linux include include include int main void int pid PID du processus ?ls int i pid fork switch pid case - printf Erreur echec du fork n exit break Ccase PROCESSUS FILS printf je suis le processus ?ls PID d mon pere est PPID d n getpid getppid exit ?n du processus ?ls break default PROCESSUS PERE printf Ici le pere le ?ls a un pid d n pid wait attente de la ?n du ?ls printf Fin du pere n Exercice gestion des threads à l ? aide de l ? API POSIX pthread h Ce programme crée un autre thread qui va montrer qu ? il partage des variables avec le thread original et permettre au petit nouveau de renvoyer un résultat à l ? original N B cthread cpour compiler ce programme il faut établir

  • 34
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager