logo

Sistēmas izsaukumi operētājsistēmā (OS)

Sistēmas izsaukums ir veids, kā lietotāja programma var saskarties ar operētājsistēmu. Programma pieprasa vairākus pakalpojumus, un OS atbild, izsaucot virkni sistēmas izsaukumu, lai apmierinātu pieprasījumu. Sistēmas zvanu var rakstīt montāžas valodā vai augsta līmeņa valodā, piemēram C vai Paskāls . Sistēmas izsaukumi ir iepriekš definētas funkcijas, kuras operētājsistēma var tieši izsaukt, ja tiek izmantota augsta līmeņa valoda.

Šajā rakstā jūs uzzināsit par sistēmas izsaukumiem operētājsistēmā un apspriedīsiet to veidus un daudzas citas lietas.

Kas ir sistēmas zvans?

Sistēmas izsaukums ir metode, kā datorprogramma pieprasa pakalpojumu no tās operētājsistēmas kodola, kurā tā darbojas. Sistēmas izsaukums ir metode mijiedarbībai ar operētājsistēmu, izmantojot programmas. Sistēmas izsaukums ir pieprasījums no datora programmatūras operētājsistēmas kodolam.

The Lietojumprogrammas saskarne (API) savieno operētājsistēmas funkcijas ar lietotāja programmām. Tas darbojas kā saikne starp operētājsistēmu un procesu, ļaujot lietotāja līmeņa programmām pieprasīt operētājsistēmas pakalpojumus. Kodola sistēmai var piekļūt, tikai izmantojot sistēmas izsaukumus. Sistēmas izsaukumi ir nepieciešami visām programmām, kas izmanto resursus.

Kā tiek veikti sistēmas zvani?

Kad datora programmatūrai ir jāpiekļūst operētājsistēmas kodolam, tā veic sistēmas izsaukumu. Sistēmas izsaukums izmanto API, lai lietotāja programmām pakļautu operētājsistēmas pakalpojumus. Tā ir vienīgā metode, kā piekļūt kodola sistēmai. Visām programmām vai procesiem, kuru izpildei nepieciešami resursi, ir jāizmanto sistēmas izsaukumi, jo tie kalpo kā saskarne starp operētājsistēmu un lietotāja programmām.

Tālāk ir sniegti daži piemēri, kā sistēmas izsaukums atšķiras no lietotāja funkcijas.

pasta pasūtījumu šķērsošanas binārais koks
  1. Sistēmas izsaukuma funkcija var izveidot un izmantot kodola procesus, lai izpildītu asinhrono apstrādi.
  2. Sistēmas izsaukumam ir lielāka autoritāte nekā standarta apakšprogrammai. Sistēmas izsaukums ar kodola režīma privilēģijām tiek izpildīts kodola aizsardzības domēnā.
  3. Sistēmas izsaukumos nav atļauts izmantot koplietojamās bibliotēkas vai simbolus, kas neatrodas kodola aizsardzības domēnā.
  4. Sistēmas izsaukumu kods un dati tiek glabāti globālajā kodola atmiņā.

Kāpēc operētājsistēmā nepieciešami sistēmas izsaukumi?

Pastāv dažādas situācijas, kad operētājsistēmā ir jāpieprasa sistēmas izsaukumi. Šādas situācijas ir šādas:

  1. Tas ir nepieciešams, ja failu sistēma vēlas izveidot vai dzēst failu.
  2. Tīkla savienojumiem ir nepieciešami sistēmas zvani datu pakešu nosūtīšanai un saņemšanai.
  3. Ja vēlaties lasīt vai rakstīt failu, jums ir jāveic sistēmas zvani.
  4. Ja vēlaties piekļūt aparatūras ierīcēm, tostarp printerim, skenerim, nepieciešams sistēmas izsaukums.
  5. Sistēmas izsaukumi tiek izmantoti jaunu procesu izveidei un pārvaldībai.

Kā darbojas sistēmas zvani

Lietojumprogrammas darbojas atmiņas apgabalā, kas pazīstams kā lietotāja vieta. Sistēmas izsaukums savienojas ar operētājsistēmas kodolu, kas tiek izpildīts kodola telpā. Kad lietojumprogramma izveido sistēmas zvanu, tai vispirms jāsaņem atļauja no kodola. Tas tiek panākts, izmantojot pārtraukuma pieprasījumu, kas aptur pašreizējo procesu un nodod kontroli kodolam.

Ja pieprasījums ir atļauts, kodols veic pieprasīto darbību, piemēram, izveido vai dzēš failu. Kā ievadi lietojumprogramma saņem kodola izvadi. Pieteikums atsāk procedūru pēc ievades saņemšanas. Kad darbība ir pabeigta, kodols atgriež rezultātus lietojumprogrammai un pēc tam pārvieto datus no kodola vietas uz lietotāja vietu atmiņā.

Vienkāršs sistēmas izsaukums var aizņemt dažas nanosekundes, lai nodrošinātu rezultātu, piemēram, sistēmas datuma un laika izgūšanai. Sarežģītāks sistēmas zvans, piemēram, savienojuma izveide ar tīkla ierīci, var ilgt dažas sekundes. Lielākā daļa operētājsistēmu katram sistēmas izsaukumam palaiž atsevišķu kodola pavedienu, lai izvairītos no sastrēgumiem. Mūsdienu operētājsistēmas ir daudzpavedienu, kas nozīmē, ka tās var apstrādāt dažādus sistēmas zvanus vienlaikus.

Sistēmas zvanu veidi

Parasti ir pieci sistēmas zvanu veidi. Tie ir šādi:

diskete
Sistēmas zvani operētājsistēmā
    Procesu kontrole Failu pārvaldība Ierīču pārvaldība Informācijas uzturēšana Komunikācija

Tagad jūs uzzināsit par visiem dažādajiem sistēmas zvanu veidiem pa vienam.

Procesu kontrole

Procesa vadība ir sistēmas izsaukums, ko izmanto procesu virzīšanai. Daži procesa vadības piemēri ietver izveidi, ielādi, pārtraukšanu, beigšanu, izpildi, apstrādi, procesa pārtraukšanu utt.

Failu pārvaldība

Failu pārvaldība ir sistēmas izsaukums, ko izmanto failu apstrādei. Daži failu pārvaldības piemēri ietver failu izveidi, failu dzēšanu, atvēršanu, aizvēršanu, lasīšanu, rakstīšanu utt.

Ierīču pārvaldība

Ierīču pārvaldība ir sistēmas izsaukums, ko izmanto, lai apstrādātu ierīces. Daži ierīces pārvaldības piemēri ir lasīšana, ierīce, rakstīšana, ierīces atribūtu iegūšana, ierīces atbrīvošana utt.

sakārtot pēc nejaušības principa SQL

Informācijas uzturēšana

Informācijas uzturēšana ir sistēmas izsaukums, ko izmanto informācijas uzturēšanai. Ir daži informācijas uzturēšanas piemēri, tostarp sistēmas datu iegūšana, laika vai datuma iestatīšana, laika vai datuma iegūšana, sistēmas datu iestatīšana utt.

Komunikācija

Komunikācija ir sistēmas zvans, ko izmanto saziņai. Ir daži saziņas piemēri, tostarp sakaru savienojumu izveide, dzēšana, ziņojumu sūtīšana, saņemšana utt.

Windows un Unix sistēmas zvanu piemēri

Ir dažādi Windows un Unix sistēmas izsaukumu piemēri. Tie ir norādīti zemāk tabulā:

Process Windows Unix
Procesu kontrole CreateProcess()
ExitProcess()
WaitForSingleObject()
Dakša ()
Izeja()
Pagaidi ()
Failu manipulācijas Izveidot failu()
Lasīt failu ()
WriteFile()
CloseHandle()
Atvērt ()
Lasīt ()
Rakstīt ()
Aizvērt ()
Ierīču pārvaldība SetConsoleMode()
ReadConsole()
WriteConsole()
Ioctl()
Lasīt ()
Rakstīt ()
Informācijas uzturēšana Get CurrentProcessID()
SetTimer()
Gulēt()
Getpid()
Signalizācija ()
Gulēt()
Komunikācija CreatePipe()
CreateFileMapping()
MapViewOfFile()
Caurule ()
Shmget ()
Mmap()
Aizsardzība SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorgroup()
Chmod ()
umask ()
Chown ()

Šeit jūs īsumā uzzināsit par dažām metodēm:

atvērt ()

The atvērt () sistēmas izsaukums ļauj piekļūt failam failu sistēmā. Tas piešķir failam resursus un nodrošina rokturi, uz kuru process var atsaukties. Daudzi procesi var atvērt failu uzreiz vai tikai ar vienu procesu. Tas viss ir balstīts uz failu sistēmu un struktūru.

lasīt ()

To izmanto, lai iegūtu datus no faila failu sistēmā. Tā kopumā pieņem trīs argumentus:

  • Faila deskriptors.
  • Buferis nolasīto datu glabāšanai.
  • No faila nolasāmo baitu skaits.

Lai to identificētu un atvērtu, izmantojot, var izmantot lasāmā faila faila deskriptoru atvērt () pirms lasīšanas.

gaidi ()

Dažās sistēmās procesam pirms turpināšanas var būt jāgaida, kamēr cits process pabeigs tā izpildi. Kad vecākprocess veido pakārtotu procesu, vecākprocesa izpilde tiek apturēta, līdz pakārtotais process ir pabeigts. The gaidi () sistēmas izsaukums tiek izmantots, lai apturētu vecāku procesu. Kad pakārtotais process ir pabeidzis izpildi, kontrole tiek atgriezta vecākprocesam.

rakstīt ()

To izmanto, lai ierakstītu datus no lietotāja bufera ierīcē, piemēram, failā. Šis sistēmas izsaukums ir viens no veidiem, kā programma var ģenerēt datus. Kopumā ir nepieciešami trīs argumenti:

  • Faila deskriptors.
  • Rādītājs uz buferi, kurā tiek saglabāti dati.
  • No bufera ierakstāmo baitu skaits.

dakša ()

Procesi ģenerē sevi klonus, izmantojot dakša () sistēmas zvans. Tas ir viens no visizplatītākajiem veidiem, kā izveidot procesus operētājsistēmās. Kad vecākprocess rada bērnprocesu, vecākprocesa izpilde tiek pārtraukta, līdz tiek pabeigts pakārtotais process. Kad pakārtotais process ir pabeidzis izpildi, kontrole tiek atgriezta vecākprocesam.

aizvērt ()

To izmanto, lai pārtrauktu piekļuvi failu sistēmai. Kad tiek izsaukts šis sistēmas izsaukums, tas nozīmē, ka programmai fails vairs nav vajadzīgs, un buferi tiek izskaloti, faila informācija tiek mainīta un faila resursi tiek atcelti.

izpildīt()

Kad izpildāmais fails aizstāj agrāku izpildāmo failu jau izpildāmā procesā, šī sistēmas funkcija tiek izsaukta. Tā kā jauns process netiek veidots, vecā procesa identifikācija paliek, bet jaunais process aizstāj datus, steku, datus, galvu utt.

Izeja()

The Izeja() ir sistēmas izsaukums, ko izmanto, lai beigtu programmas izpildi. Šis izsaukums norāda, ka pavediena izpilde ir pabeigta, kas ir īpaši noderīgi daudzpavedienu vidēs. Operētājsistēma atgūst resursus, kas iztērēti procesam pēc izmantošanas Izeja() sistēmas funkcija.

vesels skaitlis, salīdzinot ar java