Fiche système exploitation

Pages: 6 (1413 mots) Publié le: 15 avril 2011
PROCESSUS

On appelle processus un programme en cours d’exécution. A un instant donné, un processus peut être dans l’un des états suivants :
* actif : le processus s’exécute sur un processeur (il n’y a donc qu’un seul processus actif en même temps sur une machine monoprocesseur) ;
* prêt : le processus peut devenir actif dès que le processeur lui sera attribué par le système ;
*bloqué : le processus a besoin d’une ressource pour continuer (attente d’entrée/-sortie par exemple). Le blocage ne peut avoir lieu qu’à la suite d’un appel système. Un processus bloqué ne consomme pas de temps processeur.

A savoir
* -------------------------------------------------
Lorsqu’on entre une commande dans un shell, le shell lance un processus pour l’exécuter. Le shellattend ensuite la fin de ce processus, puis demande la commande suivante.
* -------------------------------------------------
Chaque processus a ainsi un processus père, qui est celui qui l’a lancé. Le numéro du processus père est noté PPID. Un processus n’a bien sûr qu’un seul père, mais peut lancer l’exécution de plusieurs autres processus, nommés processus fils. On a donc affaire à unearborescence de processus.
* -------------------------------------------------
Lors de l’initialisation du système UNIX, un premier processus, nommé init, est créé avec un PID=1. init est l’ancêtre de tous les processus.
* -------------------------------------------------
A bas niveau, il n’y a qu’une seule façon de donner naissance à un nouveau processus, la duplication. Un processuspeut demander au système sa duplication en utilisant la primitive fork(). Le système crée alors une copie complète du processus, avec un PID différent. L’un des deux processus est fils de l’autre.
* -------------------------------------------------
Il n’est évidemment guère utile d’avoir deux copies du même programme s’exécutant dans le système. Après duplication, le fils va “changer deprogramme” en utilisant la primitive exec(). Cette primitive conserve l’identité du processus mais remplace son code exécutable (et ses données) par celui d’une nouvelle commande.

Fork()
-------------------------------------------------
#include <unistd.h>
-------------------------------------------------
intfork();
-------------------------------------------------

-------------------------------------------------
L’appel à fork() duplique le processus. L’exécution continue dans les deux processus après l’appel à
-------------------------------------------------
fork(). Tout se passe comme si les deux processus avaient appelé fork(). La seule différence (outre le PID et le PPID) est la valeurretournée par fork() :
-------------------------------------------------
– dans le processus père (celui qui l’avait appelé), fork() retourne le PID du processus fils créé ;
-------------------------------------------------
– dans le processus fils, fork() retourne 0.
-------------------------------------------------
Notons que le fork peut échouer par manque de mémoire ou sil’utilisateur a déjà créé trop de processus ; dans ce cas, aucun fils n’est créé et fork() retourne -1.

getpid() et getppid()
-------------------------------------------------
L’appel système getpid() retourne le PID du processus appelant. getppid() retourne le PID du père du processus.

exec()
-------------------------------------------------
La primitive execlp() permet le recouvrement d’unprocessus par un autre exécutable.
-------------------------------------------------
int execlp( char *comm, char *arg, ..., NULL );
-------------------------------------------------
comm est une chaîne de caractères qui indique la commande à exécuter. arg spécifie les arguments de cette commande(argv).
-------------------------------------------------
Exemple : exécution de ls -l /usr...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Systemes d´exploitation
  • Systeme exploitation
  • Systeme D Exploitation Android
  • EXPLOITATION SYSTEME INFORMATIQUEdev 1
  • U42 exploitation du système informatique
  • Expos systeme d exploitation 1
  • Système exploitation commande linux
  • 544723 les systemes d exploitation

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !