Systémové volanie je spôsob, ako používateľský program prepojiť s operačným systémom. Program požaduje niekoľko služieb a OS odpovedá vyvolaním série systémových volaní na uspokojenie požiadavky. Systémové volanie môže byť napísané v jazyku symbolických inštrukcií alebo v jazyku vysokej úrovne C alebo Pascal . Systémové volania sú preddefinované funkcie, ktoré môže operačný systém priamo vyvolať, ak sa použije jazyk na vysokej úrovni.
V tomto článku sa dozviete o systémových volaniach v operačnom systéme a rozoberiete ich typy a mnoho ďalších vecí.
Čo je systémové volanie?
Systémové volanie je spôsob, akým počítačový program požaduje službu od jadra operačného systému, na ktorom beží. Systémové volanie je metóda interakcie s operačným systémom prostredníctvom programov. Systémové volanie je požiadavka z počítačového softvéru na jadro operačného systému.
The Aplikačné programové rozhranie (API) spája funkcie operačného systému s používateľskými programami. Funguje ako prepojenie medzi operačným systémom a procesom a umožňuje programom na úrovni používateľa požadovať služby operačného systému. K systému jadra je možné pristupovať iba pomocou systémových volaní. Systémové volania sú potrebné pre všetky programy, ktoré využívajú prostriedky.
Ako prebiehajú systémové volania?
Keď počítačový softvér potrebuje získať prístup k jadru operačného systému, vykoná systémové volanie. Systémové volanie používa API na vystavenie služieb operačného systému užívateľským programom. Je to jediný spôsob prístupu k systému jadra. Všetky programy alebo procesy, ktoré vyžadujú prostriedky na spustenie, musia používať systémové volania, pretože slúžia ako rozhranie medzi operačným systémom a používateľskými programami.
Nižšie je uvedených niekoľko príkladov, ako sa systémové volanie líši od používateľskej funkcie.
filmy123 až
- Funkcia systémového volania môže vytvárať a používať procesy jadra na vykonanie asynchrónneho spracovania.
- Systémové volanie má väčšie oprávnenie ako štandardný podprogram. Systémové volanie s privilégiom režimu jadra sa vykoná v doméne ochrany jadra.
- Systémové volania nemajú povolené používať zdieľané knižnice ani žiadne symboly, ktoré nie sú prítomné v doméne ochrany jadra.
- Kód a údaje pre systémové volania sú uložené v globálnej pamäti jadra.
Prečo potrebujete systémové volania v operačnom systéme?
Existujú rôzne situácie, kedy musíte v operačnom systéme vyžadovať systémové volania. Nasledujúce situácie sú nasledovné:
- Musí sa vyžadovať, keď súborový systém chce vytvoriť alebo odstrániť súbor.
- Sieťové pripojenia vyžadujú systémové volania na odosielanie a prijímanie dátových paketov.
- Ak chcete čítať alebo zapisovať súbor, musíte vykonať systémové volania.
- Ak chcete získať prístup k hardvérovým zariadeniam vrátane tlačiarne, skenera, potrebujete systémové volanie.
- Systémové volania sa používajú na vytváranie a riadenie nových procesov.
Ako fungujú systémové volania
Aplikácie bežia v oblasti pamäte známej ako užívateľský priestor. Systémové volanie sa pripája k jadru operačného systému, ktoré sa vykonáva v priestore jadra. Keď aplikácia vytvorí systémové volanie, musí najprv získať povolenie od jadra. Dosahuje to pomocou požiadavky na prerušenie, ktorá pozastaví aktuálny proces a prenesie riadenie na jadro.
Ak je požiadavka povolená, jadro vykoná požadovanú akciu, ako je vytvorenie alebo odstránenie súboru. Ako vstup prijíma aplikácia výstup jadra. Aplikácia pokračuje v procedúre po prijatí vstupu. Po dokončení operácie jadro vráti výsledky aplikácii a potom presunie údaje z priestoru jadra do používateľského priestoru v pamäti.
Jednoduché systémové volanie môže trvať niekoľko nanosekúnd, kým poskytne výsledok, ako je získanie systémového dátumu a času. Zložitejšie systémové volanie, napríklad pripojenie k sieťovému zariadeniu, môže trvať niekoľko sekúnd. Väčšina operačných systémov spúšťa samostatné jadrové vlákno pre každé systémové volanie, aby sa predišlo úzkym miestam. Moderné operačné systémy sú viacvláknové, čo znamená, že dokážu spracovať rôzne systémové volania súčasne.
Typy systémových volaní
Bežne existuje päť typov systémových volaní. Sú to nasledovné:
Teraz sa dozviete o všetkých rôznych typoch systémových volaní jeden po druhom.
Riadenie procesov
Riadenie procesov je systémové volanie, ktoré sa používa na riadenie procesov. Niektoré príklady riadenia procesov zahŕňajú vytvorenie, načítanie, prerušenie, ukončenie, spustenie, spracovanie, ukončenie procesu atď.
Správa súborov
Správa súborov je systémové volanie, ktoré sa používa na spracovanie súborov. Niektoré príklady správy súborov zahŕňajú vytváranie súborov, mazanie súborov, otváranie, zatváranie, čítanie, zápis atď.
sql vybrať ako
Správa zariadenia
Správa zariadení je systémové volanie, ktoré sa používa na prácu so zariadeniami. Niektoré príklady správy zariadení zahŕňajú čítanie, zariadenie, zápis, získanie atribútov zariadenia, vydanie zariadenia atď.
Údržba informácií
Údržba informácií je systémové volanie, ktoré sa používa na udržiavanie informácií. Existuje niekoľko príkladov údržby informácií vrátane získania systémových údajov, nastavenia času alebo dátumu, získania času alebo dátumu, nastavenia systémových údajov atď.
Komunikácia
Komunikácia je systémové volanie, ktoré sa používa na komunikáciu. Existuje niekoľko príkladov komunikácie vrátane vytvárania, odstraňovania komunikačných spojení, odosielania, prijímania správ atď.
Príklady systémových volaní Windows a Unix
Existujú rôzne príklady systémových volaní Windows a Unix. Sú uvedené nižšie v tabuľke:
Proces | Windows | Unix |
---|---|---|
Riadenie procesov | CreateProcess() ExitProcess() WaitForSingleObject() | Vidlička() VÝCHOD() počkaj() |
Manipulácia so súbormi | CreateFile() ReadFile() WriteFile() CloseHandle() | OTVORENÉ() Čítať() Napíšte () Zavrieť() |
Správa zariadenia | SetConsoleMode() ReadConsole() WriteConsole() | Ioctl() Čítať() Napíšte () |
Údržba informácií | GetCurrentProcessID() SetTimer() spánok () | Getpid() alarm() spánok () |
Komunikácia | CreatePipe() CreateFileMapping() MapViewOfFile() | Rúra() Shmget() Mmap() |
Ochrana | SetFileSecurity() InitializeSecurityDescriptor() SetSecurityDescriptorgroup() | Chmod() umask() Chown() |
Tu sa stručne dozviete o niektorých metódach:
OTVORENÉ()
The OTVORENÉ() systémové volanie vám umožňuje prístup k súboru v súborovom systéme. Prideľuje prostriedky súboru a poskytuje rukoväť, na ktorú môže proces odkazovať. Mnoho procesov môže otvoriť súbor naraz alebo iba jedným procesom. Všetko je založené na súborovom systéme a štruktúre.
Cassidy Hutchinson vzdelanie
čítať()
Používa sa na získanie údajov zo súboru v súborovom systéme. Vo všeobecnosti prijíma tri argumenty:
- Deskriptor súboru.
- Vyrovnávacia pamäť na ukladanie prečítaných údajov.
- Počet bajtov na čítanie zo súboru.
Na identifikáciu a otvorenie súboru je možné použiť deskriptor súboru, ktorý sa má čítať OTVORENÉ() pred čítaním.
počkaj ()
V niektorých systémoch môže proces pred pokračovaním čakať na dokončenie vykonania iného procesu. Keď nadradený proces vytvorí podriadený proces, vykonávanie nadradeného procesu sa pozastaví, kým sa podriadený proces neskončí. The počkaj () systémové volanie sa používa na pozastavenie rodičovského procesu. Po dokončení vykonania podriadeného procesu sa riadenie vráti rodičovskému procesu.
písať ()
Používa sa na zapisovanie údajov z vyrovnávacej pamäte používateľa do zariadenia, ako je súbor. Toto systémové volanie je jedným zo spôsobov, ako program generovať údaje. Vo všeobecnosti sú potrebné tri argumenty:
- Deskriptor súboru.
- Ukazovateľ na vyrovnávaciu pamäť, v ktorej sú uložené údaje.
- Počet bajtov, ktoré sa majú zapísať z vyrovnávacej pamäte.
vidlička()
Procesy generujú svoje klony pomocou vidlička() systémové volanie. Je to jeden z najbežnejších spôsobov vytvárania procesov v operačných systémoch. Keď nadradený proces vytvorí podriadený proces, vykonávanie nadradeného procesu sa preruší, kým sa podriadený proces nedokončí. Po dokončení vykonania podriadeného procesu sa riadenie vráti rodičovskému procesu.
Zavrieť()
Používa sa na ukončenie prístupu k súborovému systému. Keď je vyvolané toto systémové volanie, znamená to, že program už nevyžaduje súbor a vyrovnávacie pamäte sa vyprázdnia, informácie o súbore sa zmenia a v dôsledku toho sa uvoľnia prostriedky súboru.
latexové zoznamy
exec()
Keď spustiteľný súbor nahradí predchádzajúci spustiteľný súbor v už spustenom procese, spustí sa táto systémová funkcia. Keďže sa nevybuduje nový proces, stará identifikácia procesu zostáva, ale nový proces nahrádza dáta, zásobník, dáta, hlavu atď.
VÝCHOD()
The VÝCHOD() je systémové volanie, ktoré sa používa na ukončenie vykonávania programu. Toto volanie označuje, že spustenie vlákna je dokončené, čo je užitočné najmä v prostrediach s viacerými vláknami. Operačný systém získava späť zdroje vynaložené procesom po použití VÝCHOD() systémová funkcia.