Chiamata di sistema - it.LinkFang.org

Chiamata di sistema


Una chiamata di sistema (in inglese system call), in informatica, indica il meccanismo usato da un processo a livello utente o livello applicativo, per richiedere un servizio a livello kernel del sistema operativo del computer in uso. Essa, di solito, è disponibile come funzione in quei linguaggi di programmazione che supportano la programmazione di sistema (ad esempio il linguaggio C), oppure come particolari istruzioni assembly.

Caratteristiche


Fondamentale è il passaggio dall'user mode al Kernel mode attraverso una particolare istruzione che si identifica nel trap.

Per motivi di sicurezza, il codice inerente ai servizi del sistema operativo è eseguibile solo in kernel mode, avendo completo accesso all'hardware. Infatti, una chiamata al kernel, richiede spesso l'uso di una speciale istruzione di linguaggio macchina che provoca una commutazione di contesto del microprocessore (da "modalità protetta" a "modalità supervisore", che, sui processori Intel e compatibili viene chiamata da "Ring 3" a "Ring 0"). Questo permette al kernel del sistema operativo di eseguire operazioni riservate quali l'accesso all'hardware o all'unità di gestione della memoria, tuttavia comporta un overhead molto più elevato. Successivamente, quando è terminato il compito esercitato dalla chiamata di sistema invocata, il controllo fa il procedimento inverso, da kernel mode per arrivare nuovamente allo user mode.

Molto importanti, poi, sono anche le chiamate alle librerie utente (API). La chiamata ad una API è identica ad una chiamata ad una funzione dell'applicazione stessa, in pratica viene registrato nello stack lo stato dei registri del microprocessore e l'indirizzo di ritorno. Perciò anche nei sistemi operativi con protezione della memoria e separazione degli spazi di indirizzamento vi sarà un overhead ridotto.

Tipologia

Le categorie principali di system call sono:

  1. controllo dei processi/thread:
    • load,
    • execute,
    • create/terminate un processo/thread,
    • get/info/set gli attributi di un processo/Thread,
    • wait e signal,
    • allocate
    • ecc.
  2. gestione dei file e dei file system:
    • create file,
    • delete file,
    • open/close,
    • read e write,
    • get/set gli attributi del file,
    • ecc.
  3. gestione dei dispositivi:
    • request,
    • release,
    • read e write,
    • get/set attributi,
    • ecc.
  4. gestione delle informazioni:
    • get/set time o date,
    • get/set system data,
    • get/set processo, file o attributi di un dispositivo,
    • ecc.
  5. comunicazione:
    • create/delete connessione,
    • send/receive messaggi,
    • trasferimento di informazioni di stato,
    • ecc.

Su Posix e su sistemi simili, comuni system call sono close(), execlp(), fork(), kill(), open(), read(), wait() e write().

Per i sistemi Windows NT vedere l'articolo Native API.

Collegamenti esterni











Categorie: Kernel




Data: 01.03.2021 01:18:30 CET

Sorgente: Wikipedia (Autori [Cronologia])    Licenza: CC-by-sa-3.0

Modifiche: Tutte le immagini e la maggior parte degli elementi di design correlati a questi sono stati rimossi. Alcune icone sono state sostituite da FontAwesome-Icons. Alcuni modelli sono stati rimossi (come "l'articolo ha bisogno di espansione) o assegnati (come" note "). Le classi CSS sono state rimosse o armonizzate.
Sono stati rimossi i collegamenti specifici di Wikipedia che non portano a un articolo o una categoria (come "Redlink", "collegamenti alla pagina di modifica", "collegamenti a portali"). Ogni collegamento esterno ha un'icona FontAwesome aggiuntiva. Oltre ad alcuni piccoli cambiamenti di design, sono stati rimossi i media container, le mappe, i box di navigazione, le versioni vocali e i geoformati.

Notare che Poiché il dato contenuto viene automaticamente prelevato da Wikipedia in un determinato momento, una verifica manuale è stata e non è possibile. Pertanto LinkFang.org non garantisce l'accuratezza e l'attualità del contenuto acquisito. Se ci sono informazioni che al momento sono sbagliate o che hanno una visualizzazione imprecisa, non esitate a Contattaci: e-mail.
Guarda anche: Impronta & Politica sulla riservatezza.