Aller au contenu principal

III. Appels système

Voici des appels système typiques qu'un processus utilisateur pourrait exécuter.

Nous utilisons la notation

SYSCALL (ARG1, ARG2....)

où SYSCALL est le nom de l'appel système et ARGk, etc. sont les paramètres de l'appel système.

CONNECT (P, AEN, FS, CR)​

  • P: désigne un port du processus
  • AEN: désigne un socket local ; le numéro d'utilisateur et l'hôte sont implicites
  • FS: désigne un socket ayant n'importe quel numéro d'utilisateur, sur n'importe quel hôte, et avec n'importe quel AEN
  • CR: le code de condition renvoyé

CONNECT tente d'attacher le socket local désigné par AEN au port P et d'établir une connexion avec un socket distant déterminé, FS. Les valeurs possibles de CR sont :

  • CR=OK: Le CONNECT était légal et le socket FS est en cours de contact. Lorsque la connexion sera établie ou refusée, l'état sera mis à jour.
  • CR = BUSY: Le socket local est déjà utilisé (séquence de commandes illégale).
  • CR = BADSKT: La spécification du socket était illégale.
  • CR = NOROOM: Les ressources de l'hôte local sont épuisées.
  • CR = HOMOSEX: Paire émission/réception incorrecte
  • CR = IMP DEAD: Notre IMP est hors service
  • CR = LINK DEAD: Le lien vers l'hôte distant est hors service parce que : 1. l'IMP distant est hors service, 2. l'hôte distant est hors service, ou 3. le NCP distant ne répond pas.

LISTEN (P, AEN, CR)​

  • P: désigne un port du processus
  • AEN: désigne un socket local
  • CR: le code de condition renvoyé

Le socket local désigné par AEN est attaché au port P. S'il existe un appel en attente, il est traité ; sinon, aucune action n'est entreprise. Lorsqu'un appel arrive, l'utilisateur en est averti. Après avoir examiné l'appel, il peut soit l'accepter, soit le refuser. Les valeurs possibles de CR sont :

  • CR = OK: Connexion amorcée, en écoute
  • CR = BUSY
  • CR = NOROOM
  • CR = IMP DEAD
  • CR = LINK DEAD

ACCEPT (P, CR)​

  • P: désigne un port du processus
  • CR: le code de condition renvoyé

ACCEPT implique que le processus utilisateur a inspecté le socket distant pour déterminer qui appelle et qu'il va accepter l'appel. (Remarque : une variante intéressante définit ACCEPT comme la condition implicite par défaut. Ainsi, tout RFC entrant satisfait automatiquement un LISTEN.) Les valeurs possibles de CR sont :

  • CR = BADSKT
  • CR = NOROOM
  • CR = IMP DEAD
  • CR = LINK DEAD
  • CR = BADCOMM: Séquence de commandes illégale. (Par ex., ACCEPT émis avant un LISTEN.)
  • CR = PREMCLS: L'utilisateur distant a abandonné la connexion après que le RFC a été reçu localement mais avant que ACCEPT ait été exécuté.

TRANSMIT (P, BUFF, BITSRQST, BITSACC, CR)​

  • P: désigne un port du processus
  • BUFF: désigne le tampon de texte à transmettre
  • BITSRQST: désigne la longueur à transmettre, en bits
  • BITSACC: renvoie le nombre de bits effectivement transmis
  • CR: le code de condition renvoyé

La transmission a lieu. Les valeurs possibles de CR sont :

  • CR = OK
  • CR = IMP DEAD
  • CR = LINK DEAD
  • CR = NOT OPEN: La connexion n'est pas ouverte (séquence de commandes illégale).
  • CR = BAD BOUND: BITSRQST hors limites (par ex., pour un socket de réception, BUFF était plus court que ce qu'indiquait BITSRQST).

INT (P, CR)​

  • P: désigne le socket local de ce processus
  • CR: le code de condition renvoyé

Le processus situé de l'autre côté (distant) de ce port doit être interrompu. Les valeurs possibles de CR sont :

  • CR = OK
  • CR = BADSKT
  • CR = BADCOMM
  • CR = IMP DEAD
  • CR = LINK DEAD

STATUS (P, RTAB, CR)​

  • P: désigne un port de ce processus
  • RTAB: l'entrée de la table de rendez-vous renvoyée
  • CR: le code de condition renvoyé

Les champs pertinents de l'entrée de la table de rendez-vous associée à ce port sont renvoyés dans RTAB. C'est le mécanisme qu'un processus utilisateur emploie pour surveiller l'état d'une connexion. Les valeurs possibles de CR sont :

  • CR = OK
  • CR = BADSKT

CLOSE (P, CR)​

  • P: désigne un port de ce processus
  • CR: le code de condition renvoyé

L'activité sur la connexion attachée à ce port s'arrête, la connexion est rompue et le port redevient libre pour un autre usage. Les valeurs possibles de CR sont :

  • CR = OK
  • CR = BADSKT
  • CR = BADCOMM
  • CR = IMP DEAD
  • CR = LINK DEAD