[SOS] PID et fcntl

David Decotigny david.decotigny at free.fr
Dim 19 Mar 12:17:52 CET 2006


Bonjour,

Nous avons une série de patches qui traine. Parmi ceux-ci, de quoi
définir et gérer des "numéros de processus" (aka PID) ! Rien de bien
extraordinaire :
  - la liste des processus process_list de process.c est remplacée par
    la hash table process_hash qui etablit la correspondance PID ->
    struct process *
  - Pour l'allocation des PID, on utilise une API de gestion de bitmaps.
    Cette API est dans hwcore/bitmap.{c,h} parce que son implémentation
    est processor-specific afin d'etre rapide. Le bitmap pour les
    processus est bitmap_pid dans process.c. Il a une taille d'une page,
    ce qui represente un espace de 32768 PIDs possibles à chaque
    instant => max 32768 processus en cours à chaque instant.
  - lors de la creation / suppression de processus, le PID du processus
    est alloué / désalloué dans le bitmap, ce qui signifie que le bit du
    bitmap qui possède l'index correspondant à ce PID est mis à 1 / à 0.
  - L'API "table de hachage" (sos/hash.{c,h}) a été modifiée pour
    permettre de lister tous les processus en cours.

Parmi les autres modifs :
  - ajout d'un fcntl basique que les codes de FS peuvent appeler si ils
    sont faineants. Ce fcntl generique gere les commandes DUPFD, GETFD,
    SETFD et GETFL de fcntl. Avec ce patch, tcc va un peu plus loin
    qu'avant (Thomas pourra detailler).

Tout est disponible sur le site web, page des "patches".

Bonne journee,

-- 
http://david.decotigny.free.fr/


Plus d'informations sur la liste de diffusion Sos