Una trucada al sistema és una manera perquè un programa d'usuari s'interfaci amb el sistema operatiu. El programa sol·licita diversos serveis i el sistema operatiu respon invocant una sèrie de trucades al sistema per satisfer la sol·licitud. Una trucada al sistema es pot escriure en llenguatge ensamblador o en un llenguatge d'alt nivell C o Pascal . Les trucades al sistema són funcions predefinides que el sistema operatiu pot invocar directament si s'utilitza un llenguatge d'alt nivell.
En aquest article, coneixeràs les trucades del sistema al sistema operatiu i parlaràs dels seus tipus i moltes altres coses.
Què és una trucada al sistema?
Una trucada al sistema és un mètode perquè un programa informàtic sol·liciti un servei des del nucli del sistema operatiu en què s'executa. Una trucada al sistema és un mètode d'interacció amb el sistema operatiu mitjançant programes. Una trucada al sistema és una sol·licitud del programari informàtic al nucli d'un sistema operatiu.
El Interfície de programa d'aplicació (API) connecta les funcions del sistema operatiu als programes d'usuari. Actua com un enllaç entre el sistema operatiu i un procés, permetent que els programes a nivell d'usuari sol·licitin els serveis del sistema operatiu. Només es pot accedir al sistema del nucli mitjançant trucades al sistema. Les trucades al sistema són necessàries per a qualsevol programa que utilitzi recursos.
Com es fan les trucades al sistema?
Quan un programari informàtic necessita accedir al nucli del sistema operatiu, fa una trucada al sistema. La trucada al sistema utilitza una API per exposar els serveis del sistema operatiu als programes d'usuari. És l'únic mètode per accedir al sistema del nucli. Tots els programes o processos que requereixen recursos per a l'execució han d'utilitzar trucades al sistema, ja que serveixen com a interfície entre el sistema operatiu i els programes d'usuari.
A continuació es mostren alguns exemples de com varia una trucada al sistema d'una funció d'usuari.
notes al peu de reducció
- Una funció de crida al sistema pot crear i utilitzar processos del nucli per executar el processament asíncron.
- Una trucada al sistema té més autoritat que una subrutina estàndard. S'executa una trucada al sistema amb privilegi de mode nucli al domini de protecció del nucli.
- Les trucades al sistema no estan permeses per utilitzar biblioteques compartides ni cap símbol que no estigui present al domini de protecció del nucli.
- El codi i les dades de les trucades al sistema s'emmagatzemen a la memòria global del nucli.
Per què necessiteu trucades al sistema al sistema operatiu?
Hi ha diverses situacions en què heu de requerir trucades al sistema al sistema operatiu. Les situacions següents són les següents:
- S'ha de requerir quan un sistema de fitxers vol crear o suprimir un fitxer.
- Les connexions de xarxa requereixen les trucades del sistema per enviar i rebre paquets de dades.
- Si voleu llegir o escriure un fitxer, heu de fer trucades al sistema.
- Si voleu accedir a dispositius de maquinari, com ara una impressora, un escàner, necessiteu una trucada al sistema.
- Les trucades al sistema s'utilitzen per crear i gestionar nous processos.
Com funcionen les trucades del sistema
Les aplicacions s'executen en una àrea de memòria coneguda com a espai d'usuari. Una trucada al sistema es connecta al nucli del sistema operatiu, que s'executa a l'espai del nucli. Quan una aplicació crea una trucada al sistema, primer ha d'obtenir permís del nucli. Ho aconsegueix mitjançant una sol·licitud d'interrupció, que atura el procés actual i transfereix el control al nucli.
Si la sol·licitud està permesa, el nucli realitza l'acció sol·licitada, com ara crear o suprimir un fitxer. Com a entrada, l'aplicació rep la sortida del nucli. L'aplicació reprèn el procediment després de rebre l'entrada. Quan s'acaba l'operació, el nucli retorna els resultats a l'aplicació i després mou les dades de l'espai del nucli a l'espai d'usuari de la memòria.
Una simple trucada al sistema pot trigar uns quants nanosegons a proporcionar el resultat, com ara recuperar la data i l'hora del sistema. Una trucada del sistema més complicada, com ara connectar-se a un dispositiu de xarxa, pot trigar uns quants segons. La majoria dels sistemes operatius inicien un fil del nucli diferent per a cada trucada del sistema per evitar colls d'ampolla. Els sistemes operatius moderns són multifils, el que significa que poden gestionar diverses trucades al sistema alhora.
Tipus de trucades al sistema
Normalment hi ha cinc tipus de trucades al sistema. Aquestes són les següents:
Ara, aprendràs sobre tots els diferents tipus de trucades del sistema un per un.
Procés de control
El control de processos és la trucada al sistema que s'utilitza per dirigir els processos. Alguns exemples de control de processos inclouen crear, carregar, avortar, finalitzar, executar, processar, finalitzar el procés, etc.
Gestió de fitxers
La gestió de fitxers és una trucada del sistema que s'utilitza per gestionar els fitxers. Alguns exemples de gestió de fitxers inclouen crear fitxers, suprimir fitxers, obrir, tancar, llegir, escriure, etc.
col·leccions java java
Gestió de dispositius
La gestió de dispositius és una trucada del sistema que s'utilitza per tractar els dispositius. Alguns exemples de gestió de dispositius inclouen la lectura, el dispositiu, l'escriptura, l'obtenció d'atributs del dispositiu, l'alliberament del dispositiu, etc.
Manteniment de la informació
El manteniment de la informació és una trucada del sistema que s'utilitza per mantenir la informació. Hi ha alguns exemples de manteniment de la informació, com ara obtenir dades del sistema, establir l'hora o la data, obtenir l'hora o la data, establir les dades del sistema, etc.
Comunicació
La comunicació és una trucada del sistema que s'utilitza per a la comunicació. Hi ha alguns exemples de comunicació, com ara crear, eliminar connexions de comunicació, enviar, rebre missatges, etc.
Exemples de trucades al sistema Windows i Unix
Hi ha diversos exemples de trucades al sistema Windows i Unix. Aquestes són les que s'enumeren a continuació a la taula:
Procés | Windows | Unix |
---|---|---|
Procés de control | Crea un procés () ExitProcess() WaitForSingleObject() | Forquilla () Sortir() Espera () |
Manipulació de fitxers | Crea fitxer() ReadFile() WriteFile() CloseHandle() | Obre() Llegir() Escriure () Tanca() |
Gestió de dispositius | SetConsoleMode() ReadConsole() WriteConsole() | Ioctl() Llegir() Escriure () |
Manteniment de la informació | GetCurrentProcessID() SetTimer() Dormir () | Getpid() Alarma() Dormir () |
Comunicació | CreatePipe() CreateFileMapping() MapViewOfFile() | Pipa () Shmget() Mmap() |
Protecció | SetFileSecurity() InitializeSecurityDescriptor() SetSecurityDescriptorgroup() | Chmod() umask() Chown() |
Aquí aprendràs breument alguns mètodes:
obert()
El obert() La trucada al sistema us permet accedir a un fitxer en un sistema de fitxers. Assigna recursos al fitxer i proporciona un identificador al qual pot fer referència el procés. Molts processos poden obrir un fitxer alhora o només mitjançant un sol procés. Tot es basa en el sistema de fitxers i l'estructura.
serveis web java
llegir ()
S'utilitza per obtenir dades d'un fitxer del sistema de fitxers. Admet tres arguments en general:
- Un descriptor de fitxer.
- Un buffer per emmagatzemar dades de lectura.
- El nombre de bytes a llegir del fitxer.
El descriptor de fitxer del fitxer a llegir es podria utilitzar per identificar-lo i obrir-lo obert() abans de llegir.
espera ()
En alguns sistemes, un procés pot haver d'esperar que un altre procés completi la seva execució abans de continuar. Quan un procés principal fa un procés fill, l'execució del procés principal se suspèn fins que s'acabi el procés secundari. El espera () La crida al sistema s'utilitza per suspendre el procés principal. Un cop el procés fill ha completat la seva execució, el control es retorna al procés principal.
escriure ()
S'utilitza per escriure dades des d'una memòria intermèdia d'usuari a un dispositiu com un fitxer. Aquesta crida al sistema és una manera d'un programa per generar dades. Es necessita tres arguments en general:
- Un descriptor de fitxer.
- Un punter a la memòria intermèdia on es guarden les dades.
- El nombre de bytes que s'han d'escriure des de la memòria intermèdia.
forquilla ()
Els processos generen clons d'ells mateixos mitjançant el forquilla () trucada al sistema. És una de les maneres més habituals de crear processos en sistemes operatius. Quan un procés principal genera un procés fill, l'execució del procés principal s'interromp fins que es completa. Un cop el procés fill ha completat la seva execució, el control es retorna al procés principal.
Tanca()
S'utilitza per finalitzar l'accés al sistema de fitxers. Quan s'invoca aquesta crida al sistema, significa que el programa ja no necessita el fitxer i que els buffers s'esborren, la informació del fitxer s'altera i, com a resultat, els recursos del fitxer es desassignen.
travessa d'arbres
exec()
Quan un fitxer executable substitueix un fitxer executable anterior en un procés ja en execució, s'invoca aquesta funció del sistema. Com que no es construeix un procés nou, l'antic procés d'identificació es manté, però el nou procés substitueix dades, pila, dades, capçalera, etc.
sortir ()
El sortir () és una crida al sistema que s'utilitza per finalitzar l'execució del programa. Aquesta crida indica que l'execució del fil s'ha completat, cosa que és especialment útil en entorns multifils. El sistema operatiu recupera els recursos gastats pel procés després de l'ús del sortir () funció del sistema.