Sistemos iškvietimas yra būdas vartotojo programai susieti su operacine sistema. Programa reikalauja kelių paslaugų, o OS atsako iškviesdama sistemos iškvietimus, kad patenkintų užklausą. Sistemos iškvietimas gali būti parašytas asamblėjos kalba arba aukšto lygio kalba, pvz C arba Paskalis . Sistemos iškvietimai yra iš anksto nustatytos funkcijos, kurias operacinė sistema gali tiesiogiai iškviesti, jei naudojama aukšto lygio kalba.
Šiame straipsnyje sužinosite apie sistemos iškvietimus operacinėje sistemoje ir aptarsite jų tipus bei daugelį kitų dalykų.
Kas yra sistemos skambutis?
Sistemos iškvietimas – tai būdas kompiuterio programai paprašyti paslaugos iš operacinės sistemos, kurioje ji veikia, branduolio. Sistemos skambutis – tai sąveikos su operacine sistema per programas būdas. Sistemos iškvietimas yra kompiuterio programinės įrangos užklausa operacinės sistemos branduoliui.
The Taikomosios programos sąsaja (API) sujungia operacinės sistemos funkcijas su vartotojo programomis. Jis veikia kaip sąsaja tarp operacinės sistemos ir proceso, leidžianti vartotojo lygio programoms prašyti operacinės sistemos paslaugų. Branduolio sistemą galima pasiekti tik naudojant sistemos iškvietimus. Sistemos iškvietimai reikalingi visoms programoms, kurios naudoja išteklius.
Kaip atliekami sistemos skambučiai?
Kai kompiuterio programinė įranga turi pasiekti operacinės sistemos branduolį, ji atlieka sistemos skambutį. Sistemos iškvietimas naudoja API, kad pateiktų operacinės sistemos paslaugas vartotojo programoms. Tai vienintelis būdas pasiekti branduolio sistemą. Visos programos ar procesai, kuriems vykdyti reikalingi ištekliai, turi naudoti sistemos iškvietimus, nes jie tarnauja kaip sąsaja tarp operacinės sistemos ir vartotojo programų.
Toliau pateikiami keli pavyzdžiai, kaip sistemos iškvietimas skiriasi nuo vartotojo funkcijos.
bfs vs dfs
- Sistemos iškvietimo funkcija gali sukurti ir naudoti branduolio procesus asinchroniniam apdorojimui vykdyti.
- Sistemos iškvietimas turi didesnį autoritetą nei standartinė paprogramė. Sistemos iškvietimas su branduolio režimo privilegija vykdomas branduolio apsaugos srityje.
- Sistemos iškvietimams neleidžiama naudoti bendrinamų bibliotekų ar simbolių, kurių nėra branduolio apsaugos domene.
- Sistemos skambučių kodas ir duomenys saugomi pasaulinėje branduolio atmintyje.
Kodėl jums reikia sistemos skambučių operacinėje sistemoje?
Yra įvairių situacijų, kai reikia reikalauti sistemos iškvietimų operacinėje sistemoje. Šios situacijos yra tokios:
- Tai būtina, kai failų sistema nori sukurti arba ištrinti failą.
- Tinklo ryšiams reikia sistemos skambučių siunčiant ir priimant duomenų paketus.
- Jei norite skaityti ar rašyti failą, turite atlikti sistemos skambučius.
- Jei norite pasiekti techninės įrangos įrenginius, įskaitant spausdintuvą, skaitytuvą, jums reikia sistemos skambučio.
- Sistemos skambučiai naudojami naujiems procesams kurti ir valdyti.
Kaip veikia sistemos skambučiai
Programos veikia atminties srityje, vadinamoje vartotojo erdve. Sistemos iškvietimas prisijungia prie operacinės sistemos branduolio, kuris vykdomas branduolio erdvėje. Kai programa sukuria sistemos iškvietimą, ji pirmiausia turi gauti leidimą iš branduolio. Tai pasiekiama naudojant pertraukimo užklausą, kuri pristabdo dabartinį procesą ir perduoda valdymą branduoliui.
Jei užklausa leidžiama, branduolys atlieka prašomą veiksmą, pvz., sukuria arba ištrina failą. Kaip įvestį programa gauna branduolio išvestį. Paraiška atnaujinama gavus įvestį. Kai operacija baigta, branduolys grąžina rezultatus programai ir perkelia duomenis iš branduolio vietos į vartotojo vietą atmintyje.
Paprastas sistemos iškvietimas gali užtrukti kelias nanosekundes, kad būtų pateiktas rezultatas, pvz., sistemos data ir laikas. Sudėtingesnis sistemos skambutis, pvz., prisijungimas prie tinklo įrenginio, gali užtrukti kelias sekundes. Daugelis operacinių sistemų paleidžia atskirą branduolio giją kiekvienam sistemos iškvietimui, kad būtų išvengta kliūčių. Šiuolaikinės operacinės sistemos yra kelių gijų, o tai reiškia, kad jos vienu metu gali apdoroti įvairius sistemos skambučius.
Sisteminių skambučių tipai
Paprastai yra penkių tipų sistemos skambučiai. Tai yra tokia:
Dabar sužinosite apie visus skirtingus sistemos skambučių tipus po vieną.
Procesų valdymo
Proceso valdymas yra sistemos iškvietimas, naudojamas procesams nukreipti. Kai kurie proceso valdymo pavyzdžiai apima kūrimą, įkėlimą, nutraukimą, pabaigą, vykdymą, apdorojimą, proceso nutraukimą ir kt.
mama kulkarni
Failų valdymas
Failų tvarkymas yra sistemos iškvietimas, naudojamas failams tvarkyti. Kai kurie failų tvarkymo pavyzdžiai apima failų kūrimą, failų trynimą, atidarymą, uždarymą, skaitymą, rašymą ir kt.
Įrenginių valdymas
Įrenginių valdymas yra sistemos skambutis, naudojamas tvarkyti įrenginius. Kai kurie įrenginių valdymo pavyzdžiai apima skaitymą, įrenginį, rašymą, įrenginio atributų gavimą, įrenginio išleidimą ir kt.
Informacijos priežiūra
Informacijos priežiūra yra sistemos iškvietimas, naudojamas informacijai palaikyti. Yra keletas informacijos priežiūros pavyzdžių, įskaitant sistemos duomenų gavimą, laiko ar datos nustatymą, laiko ar datos gavimą, sistemos duomenų nustatymą ir kt.
c programa dvimačiai masyvai
Bendravimas
Ryšys yra sistemos skambutis, naudojamas ryšiui palaikyti. Yra keletas bendravimo pavyzdžių, įskaitant ryšio ryšių kūrimą, ištrynimą, pranešimų siuntimą, gavimą ir kt.
„Windows“ ir „Unix“ sistemos skambučių pavyzdžiai
Yra įvairių Windows ir Unix sistemos skambučių pavyzdžių. Jie yra išvardyti toliau lentelėje:
Procesas | Windows | Unix |
---|---|---|
Procesų valdymo | CreateProcess() ExitProcess () WaitForSingleObject() | Šakė () Išeiti () Laukti() |
Failų manipuliavimas | Sukurti failą () Skaityti failą () WriteFile () CloseHandle () | Atviras() Skaityti () Rašyti () Uždaryti() |
Įrenginių valdymas | SetConsoleMode() ReadConsole () WriteConsole () | Ioctl() Skaityti () Rašyti () |
Informacijos priežiūra | GetCurrentProcessID() SetTimer () Miegas () | Getpid () Signalizacija () Miegas () |
Bendravimas | CreatePipe() CreateFileMapping() MapViewOfFile() | Vamzdis () Shmget () Mmap () |
Apsauga | SetFileSecurity() InitializeSecurityDescriptor() SetSecurityDescriptorgroup() | Chmod () umask () Chown () |
Čia trumpai sužinosite apie kai kuriuos metodus:
atviras()
The atviras() sistemos skambutis leidžia pasiekti failą failų sistemoje. Jis paskirsto išteklius failui ir pateikia rankenėlę, kurią procesas gali nurodyti. Daugelis procesų gali atidaryti failą vienu metu arba tik vienu procesu. Viskas priklauso nuo failų sistemos ir struktūros.
skaityti ()
Jis naudojamas duomenims iš failų sistemoje gauti. Jame apskritai priimtini trys argumentai:
- Failo aprašas.
- Buferis nuskaitytiems duomenims saugoti.
- Iš failo nuskaitytų baitų skaičius.
Skaitytino failo failo aprašas gali būti naudojamas identifikuoti ir atidaryti naudojant atviras() prieš skaitant.
java konstantos
laukti()
Kai kuriose sistemose prieš tęsiant procesą gali tekti palaukti, kol kitas procesas užbaigs jo vykdymą. Kai pirminis procesas sukuria antrinį procesą, pirminio proceso vykdymas sustabdomas, kol bus baigtas antrinis procesas. The laukti() sistemos iškvietimas naudojamas pagrindiniam procesui sustabdyti. Kai antrinis procesas baigs vykdyti, valdymas grąžinamas pirminiam procesui.
rašyti ()
Jis naudojamas duomenims iš vartotojo buferio įrašyti į įrenginį, pavyzdžiui, failą. Šis sistemos iškvietimas yra vienas iš būdų, kaip programa generuoja duomenis. Apskritai reikia trijų argumentų:
- Failo aprašas.
- Rodyklė į buferį, kuriame saugomi duomenys.
- Iš buferio įrašomų baitų skaičius.
šakutė ()
Procesai sukuria savo klonus naudodami šakutė () sistemos skambutis. Tai vienas iš labiausiai paplitusių procesų kūrimo būdų operacinėse sistemose. Kai pirminis procesas sukuria antrinį procesą, pirminio proceso vykdymas pertraukiamas, kol baigsis antrinis procesas. Kai antrinis procesas baigs vykdyti, valdymas grąžinamas pirminiam procesui.
Uždaryti()
Jis naudojamas norint užbaigti prieigą prie failų sistemos. Kai iškviečiamas šis sistemos iškvietimas, tai reiškia, kad programai nebereikia failo, o buferiai išvalomi, failo informacija pakeičiama ir dėl to failo ištekliai panaikinami.
vykdyti ()
Kai vykdomasis failas pakeičia ankstesnį vykdomąjį failą jau vykdomame procese, iškviečiama ši sistemos funkcija. Kadangi naujas procesas nesukuriamas, senasis proceso identifikavimas išlieka, tačiau naujas procesas pakeičia duomenis, krūvą, duomenis, galvutę ir kt.
išeiti ()
The išeiti () yra sistemos iškvietimas, naudojamas programos vykdymui užbaigti. Šis iškvietimas rodo, kad gijos vykdymas baigtas, o tai ypač naudinga kelių gijų aplinkoje. Operacinė sistema susigrąžina išteklius, išleistus procesui po to, kai naudojama išeiti () sistemos funkcija.