Chiamata di sistema nel sistema operativo (Operating System): cos'è, tipologie ed esempi
Cos'è la chiamata di sistema in Operasistema?
A chiamata di sistema è un meccanismo che fornisce l'interfaccia tra un processo e il sistema operativo. È un metodo programmatico in cui un programma per computer richiede un servizio dal kernel del sistema operativo.
La chiamata di sistema offre i servizi del sistema operativo ai programmi utente tramite API (Application Programming Interface). Le chiamate di sistema sono gli unici punti di ingresso per il sistema kernel.
Esempio di chiamata di sistema
Ad esempio, se dobbiamo scrivere un codice di programma per leggere i dati da un file, copiamo tali dati in un altro file. La prima informazione che il programma richiede è il nome dei due file, quello di input e quello di output.
In un sistema interattivo, questo tipo di esecuzione del programma richiede alcune chiamate di sistema da parte del sistema operativo.
- La prima chiamata è scrivere un messaggio di suggerimento sullo schermo
- In secondo luogo, leggere dalla tastiera i caratteri che definiscono i due file.
Come funziona la chiamata di sistema?
Ecco i passaggi per la chiamata di sistema nel sistema operativo:
Come puoi vedere nel diagramma di esempio della chiamata di sistema sopra indicato.
Passo 1) I processi eseguiti in modalità utente fino al momento in cui una chiamata di sistema lo interrompe.
Passo 2) Successivamente, la chiamata di sistema viene eseguita in modalità kernel in base alla priorità.
Passo 3) Una volta terminata l'esecuzione della chiamata di sistema, il controllo ritorna alla modalità utente.,
Passo 4) L'esecuzione dei processi utente è ripresa in Modalità kernel.
Perché hai bisogno delle chiamate di sistema nel sistema operativo?
Di seguito sono riportate le situazioni in cui sono necessarie chiamate di sistema nel sistema operativo:
- La lettura e la scrittura da file richiedono chiamate di sistema.
- Se un file system desidera creare o eliminare file, sono necessarie le chiamate di sistema.
- Le chiamate di sistema vengono utilizzate per la creazione e la gestione di nuovi processi.
- Le connessioni di rete necessitano di chiamate di sistema per inviare e ricevere pacchetti.
- L'accesso a dispositivi hardware come scanner, stampante, richiede una chiamata di sistema.
Tipi di chiamate di sistema
Ecco i cinque tipi di chiamate di sistema nel sistema operativo:
- Controllo di processo
- Gestione dei file
- Gestione dei dispositivi
- Manutenzione delle informazioni
- Comunicazioni
Controllo di processo
Queste chiamate di sistema eseguono il compito di creazione del processo, terminazione del processo, ecc.
Funzioni:
- Fine e interruzione
- Carica ed esegui
- Crea processo e termina processo
- Aspetta e Signal Evento
- Assegnare e liberare memoria
Gestione dei file
Le chiamate del sistema di gestione dei file gestiscono lavori di manipolazione dei file come la creazione di un file, la lettura e la scrittura, ecc.
Funzioni:
- Crea un file
- Cancella il file
- Apri e chiudi il file
- Leggi, scrivi e riposiziona
- Ottieni e imposta gli attributi del file
Gestione dei dispositivi
La gestione dei dispositivi si occupa della manipolazione dei dispositivi stessi, ad esempio della lettura dai buffer dei dispositivi, della scrittura nei buffer dei dispositivi, ecc.
Funzioni:
- Richiesta e rilascio dispositivo
- Collega/scollega i dispositivi in modo logico
- Ottieni e imposta gli attributi del dispositivo
Manutenzione delle informazioni
Gestisce le informazioni e il loro trasferimento tra il sistema operativo e il programma utente.
Funzioni:
- Ottieni o imposta ora e data
- Ottieni attributi di processo e dispositivo
Comunicazione
Questi tipi di chiamate di sistema sono utilizzati specialmente per le comunicazioni tra processi.
Funzioni:
- Creare, eliminare connessioni di comunicazione
- Invia, ricevi messaggio
- Aiuta il sistema operativo a trasferire le informazioni sullo stato
- Collega o scollega dispositivi remoti
Regole per il passaggio dei parametri per la chiamata di sistema
Di seguito sono riportate le regole comuni generali per il passaggio dei parametri alla chiamata di sistema:
- I parametri dovrebbero essere inseriti o estratti dallo stack dal sistema operativo.
- I parametri possono essere passati nei registri.
- Quando sono presenti più parametri che registri, è necessario memorizzarli in un blocco e l'indirizzo del blocco deve essere passato come parametro a un registro.
Chiamate di sistema importanti utilizzate nel sistema operativo
aspettare()
In alcuni sistemi, un processo deve attendere che un altro processo completi la sua esecuzione. Questo tipo di situazione si verifica quando un processo genitore crea un processo figlio e l'esecuzione del processo genitore rimane sospesa finché non viene eseguito il processo figlio.
La sospensione del processo genitore avviene automaticamente con una chiamata di sistema wait(). Quando il processo figlio termina l'esecuzione, il controllo torna al processo genitore.
forchetta()
I processi utilizzano questa chiamata di sistema per creare processi che sono una copia di se stessi. Con l'aiuto di questo sistema Chiama il processo genitore crea un processo figlio e l'esecuzione del processo genitore verrà sospesa fino all'esecuzione del processo figlio.
exec ()
Questa chiamata di sistema viene eseguita quando un file eseguibile nel contesto di un processo già in esecuzione sostituisce il file eseguibile precedente. Tuttavia, l'identificatore del processo originale rimane poiché un nuovo processo non viene creato, ma stack, dati, head, dati, ecc. vengono sostituiti dal nuovo processo.
uccisione()
La chiamata di sistema kill() viene utilizzata dal sistema operativo per inviare un segnale di terminazione a un processo che sollecita l'uscita del processo. Tuttavia, una chiamata di sistema kill non significa necessariamente terminare il processo e può avere vari significati.
Uscita()
La chiamata di sistema exit() viene utilizzata per terminare l'esecuzione del programma. Specialmente nell'ambiente multi-thread, questa chiamata definisce che l'esecuzione del thread è completa. Il sistema operativo recupera le risorse utilizzate dal processo dopo l'utilizzo della chiamata di sistema exit().
Sommario
Categorie | Windows | Unix |
---|---|---|
Processi industriali | CreaProcesso() Processo di uscita() WaitForSingleObject() |
forchetta() Uscita() aspettare() |
Manipolazione del dispositivo | Imposta modalità console() LeggiConsole() ScriviConsole() |
loctl() read () write () |
Manipolazione dei file | CreateFile () LeggiFile() ScriviFile() CloseHandle () |
Aprire() Leggere() write () vicino!) |
Manutenzione delle informazioni | OttieniIDProcessoCorrente() ImpostaTimer() Dormire () |
getpid() allarme() dormire () |
Comunicazione | CreaPipe() CreaFileMapping() MapViewOfFile() |
Tubo() shm_open() mmp() |
Marchio | SetFileSecurity() InizializzareSecurityDescripto() ImpostasicurezzaDescriptoGruppo () |
Chmod() Umask() Chown() |