Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> unix >> .

Ako fungujú hovory systému UNIX?

Ako systém UNIX volá prácu

Systémové hovory sú základným rozhraním medzi užívateľským programom a jadrom operačného systému. Umožňujú programom požadovať služby z jadra, ako je prístup k hardvéru, riadenie procesov a interakcia so súborom. Tu je zrútenie toho, ako fungujú:

1. Žiadosť používateľa:

* Používateľský program, ktorý beží v priestore používateľa, potrebuje konkrétnu službu, napríklad čítanie súboru, vytvorenie nového procesu alebo prístup k zariadeniu.

* Program používa na podanie žiadosti funkciu knižnice (napr. `Open ()`, `Fork ()`, `ret ()`).

2. Volanie funkcie knižnice:

* Funkcia knižnice je zodpovedná za vytvorenie špecifickej štruktúry systému volania. Táto štruktúra obsahuje informácie o požadovanom volaní systému (napr. Číslo funkcie, argumenty).

* Táto štruktúra sa potom odovzdáva na jadro pomocou špeciálnej inštrukcie známeho ako prerušenie volania systému (často `int 0x80` alebo` sysCall`).

3. Manipulácia s jadrom:

* Prerušenie spôsobuje prepínač kontextu, ktorý prenáša ovládanie z používateľského programu do jadra.

* Jadro identifikuje požadovaný systémový hovor na základe jeho čísla.

* Jadro potvrdzuje argumenty volania systému a kontroluje povolenia.

* Jadro vykonáva požadovanú službu, ktorá potenciálne zahŕňa interakcie s hardvérom, systémom súborov alebo inými procesmi.

4. Návratová hodnota:

* Akonáhle jadro dokončí požadovanú službu, vráti stavový kód a potenciálne údaje do užívateľského programu.

* Funkcia knižnice interpretuje stavový kód a vráti výsledok do používateľského programu.

5. Odpoveď používateľského programu:

* Používateľský program dostáva výsledok, spracováva ho a pokračuje vo svojom vykonávaní.

Kľúčové body:

* Systémové hovory sú základnými stavebnými blokmi pre akýkoľvek operačný systém podobný UNIX.

* Poskytujú štandardizované, bezpečné a kontrolované rozhranie medzi užívateľskými programami a jadrom.

* Jadro chráni systémové zdroje a zaisťuje, že programy nemajú prístup alebo úpravu komponentov na úrovni systému bez povolenia.

* Rozhranie systémového hovoru je vo všeobecnosti konzistentné v rôznych systémoch podobných UNIX, čím sa zabezpečuje prenosnosť aplikácií.

Príklad:

Zoberme si systémové volanie „read ()`. Program môže použiť funkciu knižnice `ret ()` na čítanie údajov zo súboru. Táto funkcia:

1. Zostavuje štruktúru systémového hovoru pomocou čísla `read ()`, deskriptor súboru, adresa vyrovnávacej pamäte a počet bajtov na čítanie.

2. Vykonáva prerušenie prenosu systému na prenos kontroly do jadra.

3. Jadro potvrdzuje argumenty, načíta údaje zo súboru a skopíruje ich do vyrovnávacej pamäte poskytovanej používateľom.

4. Jadro vracia počet bajtov prečítaných do používateľského programu.

5. Užívateľský program prijíma výsledok a podľa potreby používa údaje.

Pochopenie toho, ako volá systémy, je nevyhnutné na pochopenie vnútorného fungovania operačných systémov podobných UNIX a programov písania, ktoré efektívne interagujú s jadrom.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené