janvier
2012
Le système d’exploitation dispose d’une table de processus, permettant de gérer de manière globale chaque processus. Chaque processus possède une entrée, appelée bloc de contrôle de processus. Il contient diverses informations, comme : – son PID ; – son PPID ; – son état ; – son contexte processeur (état des registres) et mémoire (adresses de l’espace d’adressage) ; – ses critères d’ordonnancement ; – les fichiers ouverts.
janvier
2012
Un processus Unix peut-être caractérisé par son état. Il existe communément trois états : – élu ; – bloqué ; – prêt. Un processus est dans l’état élu lorsqu’il s’exécute, après avoir obtenu le processeur. Il est bloqué lorsqu’il est en attente, par exemple d’une lecture de disque. Il est dans l’état prêt lorsqu’il est n’est pas en attente, mais qu’il n’a pas le processeur. Il attend simplement que ce soit son tour. Le passage […]
janvier
2012
Un processus peut se terminer suite à l’appel de la fonction : void exit(int status); de stdlib.h. status est un entier, qui permet d’indiquer la valeur de retour du processus. Conventionnellement, on utilise la valeur de 0 pour indiquer une sortie correcte, ou une autre valeur pour indiquer l’erreur. Exemple : #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> void task(void) { puts("Child process… end."); exit(0); } int main(void) { […]
janvier
2012
Bonjour, Après avoir introduit la création des processus, je souhaitais vous présenter quelques fonctions qui sont utiles, notamment lors du débogage de votre application. Je cite : pid_t getpid(void); qui retourne le PID du processus courant. pid_t getppid(void); qui retourne le PID du processus père du processus courant. uid_t getuid(void); qui retourne l’UID (identificateur de l’utilisateur qui a créé le processus) du processus courant. gid_t getgid(void); qui retourne le GID (identificateur du groupe auquel appartient […]
janvier
2012
Bonjour, Dans ce billet, qui est le premier de ce blog, je souhaitais vous présenter mon projet. Je suis passionné par la programmation en C, et plus particulièrement par l’aspect « bas niveau » de celle-ci. Le C a été créé pour développer le système d’exploitation UNIX, sur lequel sont basés la plupart des OS couramment usés. La programmation système consiste au développement d’applications qui font partie intégrante du système d’exploitation. C’est ce type de […]