Chiamata di sistema e Discussione:Muktikā: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
 
Rise Yogi13 (discussione | contributi)
aggiunto template tradotto da
 
Riga 1:
{{Tradotto da|en|Muktikā}}
{{S|software}}
In [[informatica]], una '''chiamata di sistema''' (in inglese ''system call'') è il meccanismo, usato da un [[processo (informatica)|processo]] a livello utente o livello applicativo, per richiedere un servizio a livello [[kernel]] dal [[sistema operativo]] del [[computer]] in uso. Essa, di solito, è disponibile come [[funzione (informatica)|funzione]] in quei [[linguaggio di programmazione|linguaggi di programmazione]] che supportano la [[programmazione]] di sistema (es. il dispositivo [[C (linguaggio)|C]]), oppure come particolari istruzioni [[assembler]].
 
== Descrizione ==
Fondamentale è il passaggio dall'[[user mode]] al [[Kernel mode]] attraverso una particolare [[istruzione (informatica)|istruzione]] che si identifica nel [[trap]].
 
Per motivi di sicurezza, il codice inerente ai servizi del SO è 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", sui processori [[Intel]] e compatibili si dice 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 [[libreria (informatica)|librerie]] utente ([[Application programming interface|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 [[registro (informatica)|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.
 
== Tipi di chiamate di sistema ==
Le categorie principali di system call sono:
#''controllo dei processi/thread'':
#* load,
#* execude,
#* create/terminate un [[processo (informatica)|processo]]/thread,
#* get/set gli attributi di un processo/[[Thread]],
#* wait e signal,
#* allocate
#* ecc.
#''gestione dei [[file]] e dei [[file system]]'':
#* create file,
#* delete file,
#* open/close,
#* read e write,
#* get/set gli attributi del file,
#* ecc.
#''gestione dei dispositivi'':
#* request,
#* release,
#* read e write,
#* get/set attributi,
#* ecc.
# ''gestione delle informazioni'':
#* get/set time o date,
#* get/set system data,
#* get/set processo, file o attributi di un dispositivo,
#* ecc.
#''comunicazione'':
#* create/delete connessione,
#* send/receive messaggi,
#* trasferimento di informazioni di stato,
#* ecc.
 
Su [[Posix]] e su sistemi simili, comuni system call sono <code>[[close() (system call)|close()]]</code>, <code>[[execlp() (Unix)|execlp()]]</code>, <code>[[fork (programmazione)|fork()]]</code>, <code>[[kill() (Unix)|kill()]]</code>, <code>[[open() (system call)|open()]]</code>, <code>[[read() (system call)|read()]]</code>, <code>[[wait ()(system call)|wait()]]</code> e <code>[[write() (system call)|write()]]</code>.
 
Per i sistemi [[Windows NT]] vedere l'articolo [[Native API]].
 
{{FOLDOC}}
 
[[Categoria:Kernel]]
 
[[ca:Crida de sistema]]
[[cs:Systémové volání]]
[[da:Systemkald]]
[[de:Systemaufruf]]
[[el:Κλήση συστήματος]]
[[en:System call]]
[[es:Llamada al sistema]]
[[fi:Järjestelmäkutsu]]
[[fr:Appel système]]
[[he:קריאת מערכת]]
[[ja:システムコール]]
[[ko:시스템 호출]]
[[nl:Systeemaanroep]]
[[pl:Wywołanie systemowe]]
[[pt:Chamada de sistema]]
[[ru:Системный вызов]]
[[sv:Systemanrop]]
[[uk:Системний виклик]]
[[zh:系统调用]]