Passa al contenuto principale

III. Chiamate di sistema

Queste sono chiamate di sistema tipiche che un processo utente potrebbe eseguire.

Usiamo la notazione

SYSCALL (ARG1, ARG2....)

dove SYSCALL è il nome della chiamata di sistema e ARGk, ecc. sono i parametri della chiamata di sistema.

CONNECT (P, AEN, FS, CR)​

  • P: specifica una porta del processo
  • AEN: specifica un socket locale; il numero utente e l’host sono impliciti
  • FS: specifica un socket con qualsiasi numero utente su qualsiasi host e con qualsiasi AEN
  • CR: il codice di condizione restituito

CONNECT tenta di collegare il socket locale specificato da AEN alla porta P e di avviare una connessione con uno specifico socket remoto, FS. I valori possibili di CR sono:

  • CR=OK: La CONNECT era legale e il socket FS viene contattato. Quando la connessione sarà stabilita o rifiutata, lo stato verrà aggiornato.
  • CR = BUSY: Il socket locale è in uso (sequenza di comandi illegale).
  • CR = BADSKT: La specifica del socket era illegale.
  • CR = NOROOM: Le risorse dell’host locale sono esaurite.
  • CR = HOMOSEX: Coppia invio/ricezione errata
  • CR = IMP DEAD: Il nostro IMP è fuori servizio
  • CR = LINK DEAD: Il link verso l’host remoto è fuori servizio perché: 1. l’IMP remoto è fuori servizio, 2. l’host remoto è fuori servizio, oppure 3. l’NCP remoto non risponde.

LISTEN (P, AEN, CR)​

  • P: specifica una porta del processo
  • AEN: specifica un socket locale
  • CR: il codice di condizione restituito

Il socket locale specificato da AEN viene collegato alla porta P. Se c’è una chiamata in sospeso, viene elaborata; altrimenti non viene intrapresa alcuna azione. Quando arriva una chiamata, l’utente viene avvisato. Dopo aver esaminato la chiamata, può accettarla o rifiutarla. I valori possibili di CR sono:

  • CR = OK: Connessione avviata, in ascolto
  • CR = BUSY
  • CR = NOROOM
  • CR = IMP DEAD
  • CR = LINK DEAD

ACCEPT (P, CR)​

  • P: specifica una porta del processo
  • CR: il codice di condizione restituito

Accept implica che il processo utente ha esaminato il socket remoto per determinare chi sta chiamando e accetterà la chiamata. (Nota: un’alternativa interessante definisce ACCEPT come condizione predefinita implicita. In tal modo qualsiasi RFC in arrivo soddisfa automaticamente una LISTEN.) I valori possibili di CR sono:

  • CR = BADSKT
  • CR = NOROOM
  • CR = IMP DEAD
  • CR = LINK DEAD
  • CR = BADCOMM: Sequenza di comandi illegale. (Ad es. Accept emessa prima di una LISTEN.
  • CR = PREMCLS: L’utente remoto ha interrotto la connessione dopo che l’RFC era stata ricevuta localmente ma prima che Accept fosse eseguita.

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

  • P: specifica una porta del processo
  • BUFF: specifica il buffer di testo da trasmettere
  • BITSRQST: specifica la lunghezza da trasmettere in bit
  • BITSACC: restituisce il numero di bit effettivamente trasmessi
  • CR: il codice di condizione restituito

Avviene la trasmissione. I valori possibili di CR sono:

  • CR = OK
  • CR = IMP DEAD
  • CR = LINK DEAD
  • CR = NOT OPEN: La connessione non è aperta (sequenza di comandi illegale).
  • CR = BAD BOUND: BITSRQST fuori dai limiti (ad es. per un socket di ricezione BUFF era più corto di quanto indicato da BITSRQST).

INT (P, CR)​

  • P: specifica il socket locale di questo processo
  • CR: il codice di condizione restituito

Il processo dall’altro lato (remoto) di questa porta deve essere interrotto. I valori possibili di CR sono:

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

STATUS (P, RTAB, CR)​

  • P: specifica una porta di questo processo
  • RTAB: la voce della tabella di rendezvous restituita
  • CR: il codice di condizione restituito

I campi rilevanti della voce della tabella di rendezvous associata a questa porta vengono restituiti in RTAB. Questo è il meccanismo che un processo utente impiega per monitorare lo stato di una connessione. I valori possibili di CR sono:

  • CR = OK
  • CR = BADSKT

CLOSE (P, CR)​

  • P: specifica una porta di questo processo
  • CR: il codice di condizione restituito

L’attività sulla connessione collegata a questa porta si arresta, la connessione viene interrotta e la porta diventa libera per altri usi. I valori possibili di CR sono:

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